CTraderFixPy
A Python package for interacting with cTrader FIX API.
Install / Use
/learn @spotware/CTraderFixPyREADME
cTraderFixPy
A Python package for interacting with cTrader FIX API.
This package uses Twisted and it works asynchronously.
- Free software: MIT
- Documentation: https://spotware.github.io/cTraderFixPy/.
Features
-
Works asynchronously by using Twisted
-
Allows you to easily interact with cTrader FIX API and it manages everything in background
-
Generate FIX message by using Python objects
Insallation
pip install ctrader-fix
Config
Config file sample:
{
"Host": "",
"Port": 0,
"SSL": false,
"Username": "",
"Password": "",
"BeginString": "FIX.4.4",
"SenderCompID": "",
"SenderSubID": "QUOTE",
"TargetCompID": "cServer",
"TargetSubID": "QUOTE",
"HeartBeat": "30"
}
Usage
from twisted.internet import reactor
import json
from ctrader_fix import *
# Callback for receiving all messages
def onMessageReceived(client, responseMessage):
print("Received: ", responseMessage.getMessage().replace("", "|"))
messageType = responseMessage.getFieldValue(35)
if messageType == "A":
print("We are logged in")
# Callback for client disconnection
def disconnected(client, reason):
print("Disconnected, reason: ", reason)
# Callback for client connection
def connected(client):
print("Connected")
logonRequest = LogonRequest(config)
client.send(logonRequest)
# you can use two separate config files for QUOTE and TRADE
with open("config-trade.json") as configFile:
config = json.load(configFile)
client = Client(config["Host"], config["Port"], ssl = config["SSL"])
# Setting client callbacks
client.setConnectedCallback(connected)
client.setDisconnectedCallback(disconnected)
client.setMessageReceivedCallback(onMessageReceived)
# Starting the client service
client.startService()
reactor.run()
Please check documentation or samples for a complete example.
Dependencies
- <a href="https://pypi.org/project/twisted/">Twisted</a>
Related Skills
gh-issues
351.2kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
node-connect
351.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
oracle
351.2kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
taskflow-inbox-triage
351.2kname: taskflow-inbox-triage description: Example TaskFlow authoring pattern for inbox triage. Use when messages need different treatment based on intent, with some routes notifying immediately, some w
