Ctrader Fix API
Project description
Python Ctrader Fix API
ToDo
- Account Information "not possible fix limitation"
- Market Position buy and sell
- Peding orders limit and stop
- Partial close
- Stop loss & Take profit
- Modify Orders
- Modify position
- real time bid & ask
Installation
Tested on python 3.7 to 3.9
pip install ejtraderCT -U
Or install from source
git clone https://github.com/ejtraderLabs/ejtraderCT
cd ejtraderCT
python setup.py install
Import librarys
from ejtraderCT import Ctrader
import time
import logging
from datetime import datetime
logging.getLogger().setLevel(logging.INFO)
Fix login account and details
server="h8.p.c-trader.cn" # Host name
broker="icmarkets"
account="3152339"
password="393214"
currency="EUR"
api = Ctrader(server,broker,account,password,currency)
Real time quote
Subscribe to symbol
api.subscribe("EURUSD", "GBPUSD")
All symbols quote list
quote = api.quote()
print(quote)
# Output
{'EURUSD': {'bid': 1.02616, 'ask': 1.02618}, 'GBPUSD': {'bid': 1.21358, 'ask': 1.21362}}
Single symbol quote
quote = api.quote("EURUSD")
print(quote)
# Output
{'bid': 1.02612, 'ask': 1.02614}
Market position and pending order.
Market Position
# Buy position
symbol = "EURUSD"
volume = 0.01 # position size
stoploss = 1.18
takeprofit = 1.19
api.buy(symbol, volume, stoploss, takeprofit)
# sell position
symbol = "EURUSD"
volume = 0.01 # position size
stoploss = 1.19
takeprofit = 1.18
api.sell(symbol, volume, stoploss, takeprofit)
Limit Orders
# Buy limit order
symbol = "EURUSD"
volume = 0.01 # position size
stoploss = 1.17
takeprofit = 1.19
price = 1.18 # entry price
api.buyLimit(symbol, volume, stoploss, takeprofit, price)
# Sell limit order
symbol = "EURUSD"
volume = 0.01 # position size
stoploss = 1.23
takeprofit = 1.17
price = 1.22 # entry price
api.sellLimit(symbol, volume, stoploss, takeprofit, price)
Stop Orders
# Buy stop order
symbol = "EURUSD"
volume = 0.01 # position size
stoploss = 1.20
takeprofit = 1.24
price = 1.22 # entry price
api.buyStop(symbol, volume, stoploss, takeprofit, price)
# Sell stop order
symbol = "EURUSD"
volume = 0.01 # position size
stoploss = 1.19
takeprofit = 1.17
price = 1.18 # entry price
api.sellStop(symbol, volume, stoploss, takeprofit, price)
List Positions
positions = api.positions()
print(positions)
List limit and stop Orders
orders = api.orders()
print(orders)
Cancle order by id
orders = api.orders()
for order in orders:
api.orderCancelById(order['ord_id'])
Close position by id
for position in positions:
api.positionCloseById(position['pos_id'], position['amount'])
cancel all Orders
api.cancel_all()
close all positions
api.close_all()
Modify Position SL and TP
id = "position id "
stoploss = "stop loss price""
takeprofit "stop gain price"
api.positionModify(id, stoploss, takeprofit)
Modify order Order SL and TP and entry price
id = "order id "
stoploss = "stop loss price""
takeprofit= "stop gain price"
price = "limit or stop entry price"
api.orderModify(id, stoploss, takeprofit, price)
Thanks for
@HarukaMa @douglasbarros
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
ejtraderCT-1.0.6.tar.gz
(27.5 kB
view hashes)
Built Distribution
ejtraderCT-1.0.6-py3-none-any.whl
(26.3 kB
view hashes)
Close
Hashes for ejtraderCT-1.0.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf1134fd6848223a4594de763694a3fd0be1964ab15bff4abed50944922fa24b |
|
MD5 | a759f6e9ad6c14afbc6ae307092dc4f8 |
|
BLAKE2b-256 | 15d33ce2d0954357a818d7083712a4bbf009441d977948cac956a9e8f9d6bcee |