Skip to content

A Node.js communication layer for cTrader Open API

License

Notifications You must be signed in to change notification settings

desoss/cTrader-Layer

 
 

Repository files navigation

cTrader Layer

Image Image

A Node.js communication layer for cTrader Open API.
This implementation is created and maintained by Reiryoku Technologies and its contributors.

Installation

npm install @reiryoku/ctrader-layer

Usage

For the cTrader Open API usage refer to the Open API Documentation.

How to establish a connection

const { CTraderConnection } = require("@reiryoku/ctrader-layer");

const connection = new CTraderConnection({
    host: "demo.ctraderapi.com",
    port: 5035,
});

await connection.open();

How to send commands

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",
});

How to authenticate an application

await connection.sendCommand("ProtoOAApplicationAuthReq", {
    clientId: "foo",
    clientSecret: "bar",
});

How to authenticate a trading account

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",
});

How to keep connection alive

You can send a heartbeat message every 25 seconds to keep the connection alive.

setInterval(() => connection.sendHeartbeat(), 25000);

How to listen events from server

connection.on("EventName", (event) => {
    console.log(event);
});

How to get the access token profile information

Through HTTP request.

console.log(await CTraderConnection.getAccessTokenProfile("access-token"));

How to get the access token accounts

Through HTTP request.

console.log(await CTraderConnection.getAccessTokenAccounts("access-token"));

Contribution

You can create a PR or open an issue for bug reports or ideas.

About

A Node.js communication layer for cTrader Open API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.1%
  • JavaScript 0.9%