Skip to main content

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


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.7.tar.gz (27.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ejtraderCT-1.0.7-py3-none-any.whl (26.4 kB view details)

Uploaded Python 3

File details

Details for the file ejtraderCT-1.0.7.tar.gz.

File metadata

  • Download URL: ejtraderCT-1.0.7.tar.gz
  • Upload date:
  • Size: 27.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.15

File hashes

Hashes for ejtraderCT-1.0.7.tar.gz
Algorithm Hash digest
SHA256 6fa2b1eb95f45fa960310073d20dd2b891d26e2d176dd48936e7f03b7780a298
MD5 ec035eb53860f351fbce0f14192a5205
BLAKE2b-256 e5fb2ee4217cd2ea725b6f6dd2d0b525b6127d5c5e9f8f4f6441cbdc598e4ee0

See more details on using hashes here.

File details

Details for the file ejtraderCT-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: ejtraderCT-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 26.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.15

File hashes

Hashes for ejtraderCT-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 744b9362640efdf6b68e400881bcfa080e2a1b6dd921003ea0b8102b6bf8a7e4
MD5 9fdb8dd21e52e7f890a8d4f973599a1f
BLAKE2b-256 601fff64247c972c8476c0fffd5f18ae8f656ac943b8b7b5202f687a6acc2b80

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page