Python project for Forexconnect API from FXCM
Project description
AlgoAPi
ALgoAPI is a Python library for dealing with executing trading using FXCM ForexConnect API.
Installation
git clone https://github.com/KrishnaInvestment/algoapi.git
cd algoapi
pip3 install .
Alternatively you can install the package using PIP
pip install algoapi
Usage
Login
from algoapi.fxconnect import FXCMClient
# Login to the API
fx = FXCMClient(
USER_ID="YOUR_ID",
USER_PASSWORD="YOUR_PASSWORD",
URL="http://www.fxcorporate.com/Hosts.jsp",
CONNECTION="Demo",
).login()
#You can add all the parameters of login in the link below as per the requirements
#to avoid entering the information each time maintain .env with variables
USER_ID = 'YOUR_ID'
USER_PASSWORD = 'YOUR_PASSWORD'
URL = 'http://www.fxcorporate.com/Hosts.jsp'
CONNECTION = 'Real'
You can check other inputs for login
Executing a trade
from algoapi.fxconnect.trade import OpenPosition
#You can place two types of order here at market price and at entry price
#Trading at entry price
op = OpenPosition(fx)
order_id = op.at_entry_price(
INSTRUMENT="EUR/USD",
TRANSACTION_TYPE="B",
LOTS=1,
RATE=rate,
RATE_STOP=40,
TRAIL_STEP_STOP=30,
RATE_LIMIT=30,
)
#At entry price the rate must be added and stop/target are based on the pip value
#Instrument, TRANSACTION_TYPE, LOTS, RATE are required variable for executing entry trade
#However other variable are optional
# The entry price returns the order_id
#Trading at market price
trade_id, order_id = op.at_market_price(
INSTRUMENT="EUR/USD", TRANSACTION_TYPE="B", LOTS=1
)
# You can add stop loss , limit , trail_step_stop as per the requirement
Closing a Trade
from algoapi.fxconnect.trade import ClosePosition
cp = ClosePosition(fx)
#Closing a position with the trade id
cp.close_position(trade_id)
#Close all Open position
cp.close_all_open_position()
Updating a Trade
from algoapi.fxconnect.trade import UpdatePosition
up = ClosePosition(fx)
#Update Limit price
up.update_limit_price(limit_price, trade_id)
#Limit price should be the actual price
up.update_limit_price(1.11875,'75134317')
#Note all the ID's (trade_id, order_id are in string format)
#Update Stop price
up.update_stop_price(stop_price, trade_id, trail_step)
#Stop price should be the actual price
up.update_stop_price(1.11575,'75134317', trail_step)
#Trail step moves the stop limit as the price fluctuates in our desire direction
Deleting an Order
from algoapi.fxconnect.trade import DeleteOrder
do = DeleteOrder(fx)
#Closing a position with the trade id
do.delete_order(order_id)
Fetching Trade and Order Information
from algoapi.fxconnect.utils import get_pandas_table
df = get_pandas_table(fx, table_type)
#Table types like TRADES, OFFERS, ORDERS, CLOSED_POSITION, ACCOUNTS etc
#It will list all the information of that particular table
df_orders = get_pandas_table(fx, 'TRADES')
#You can filter the tables based on the column value
df_filter_column = get_pandas_table(fx, table_type, key='Columns_name', value='column_value')
df_order_id_filter = get_pandas_table(fx, 'ORDERS', key='order_id', value='75134317')
#To get the latest price of the instrument
from forexconnect import Common
offer = Common.get_offer(fx, "EUR/USD")
# depending on the long and short position you can get the
ask = offer.ask
bid = offer.bid
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file algoapi-0.0.4.tar.gz.
File metadata
- Download URL: algoapi-0.0.4.tar.gz
- Upload date:
- Size: 8.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
196d9d33b1896e77722e56076866d4ee298f2762c5e6ef9974f4a167e3aa8758
|
|
| MD5 |
c41609e8ed9798a86923cbb650f38cae
|
|
| BLAKE2b-256 |
3ba4859211f754725a5fb4ee0a11dd9e1bcf059eab24e0cf79b9d316f31edefb
|
File details
Details for the file algoapi-0.0.4-py3-none-any.whl.
File metadata
- Download URL: algoapi-0.0.4-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a81c2cdb142b75473f7006bf29be1642e1b2cdd8d04fa59bd45c74b46c687195
|
|
| MD5 |
2dc2c3bc7310732b889bd14b7d7ee7c9
|
|
| BLAKE2b-256 |
523cbe4ff1e63bcddd487c629bc0bc70d43135ddea84899a571945324d41a0fd
|