A Node.js communication layer for cTrader Open API.
This implementation is created and maintained by Reiryoku Technologies and its contributors.
npm install @reiryoku/ctrader-layerFor the cTrader Open API usage refer to the Open API Documentation.
const { CTraderConnection } = require("@reiryoku/ctrader-layer");
const connection = new CTraderConnection({
host: "demo.ctraderapi.com",
port: 5035,
});
await connection.open();You can use the sendCommand method to send a command with payload to the server.
The method returns a Promise resolved only when a response from the server is received.
If the response to the command contains an error code then the returned Promise is rejected.
await connection.sendCommand("PayloadName", {
foo: "bar",
});await connection.sendCommand("ProtoOAApplicationAuthReq", {
clientId: "foo",
clientSecret: "bar",
});You can get the access token to use your account from Open API Applications. First, you have to authenticate the application, then you can authenticate your trading accounts as follows.
await connection.sendCommand("ProtoOAAccountAuthReq", {
accessToken: "foo",
ctidTraderAccountId: "bar",
});You can send a heartbeat message every 25 seconds to keep the connection alive.
setInterval(() => connection.sendHeartbeat(), 25000);connection.on("EventName", (event) => {
console.log(event);
});Through HTTP request.
console.log(await CTraderConnection.getAccessTokenProfile("access-token"));Through HTTP request.
console.log(await CTraderConnection.getAccessTokenAccounts("access-token"));You can create a PR or open an issue for bug reports or ideas.