metaapi.cloud-sdk
Version:
SDK for MetaApi, a professional cloud forex API which includes MetaTrader REST API and MetaTrader websocket API. Supports both MetaTrader 5 (MT5) and MetaTrader 4 (MT4). CopyFactory copy trading API included. (https://metaapi.cloud)
55 lines (43 loc) • 1.75 kB
JavaScript
const RiskManagement = require('metaapi.cloud-sdk').RiskManagement;
const EquityChartListener = require('metaapi.cloud-sdk').EquityChartListener;
// your MetaApi API token
const token = process.env.TOKEN || '<put in your token here>';
// your MetaApi account id
// the account must have field riskManagementApiEnabled set to true
const accountId = process.env.ACCOUNT_ID || '<put in your account id here>';
const domain = process.env.DOMAIN;
const riskManagement = new RiskManagement(token, {domain});
const riskManagementApi = riskManagement.riskManagementApi;
class ExampleEquityChartListener extends EquityChartListener {
async onEquityRecordUpdated(equityChartEvent) {
console.log('equity record updated event received', equityChartEvent);
}
async onEquityRecordCompleted() {
console.log('equity record completed event received');
}
async onConnected() {
console.log('on connected event received');
}
async onDisconnected() {
console.log('on disconnected event received');
}
async onError(error) {
console.log('error event received', error);
}
}
async function main() {
try {
// adding an equity chart listener
const equityChartListener = new ExampleEquityChartListener(accountId);
const listenerId = await riskManagementApi.addEquityChartListener(equityChartListener, accountId);
console.log('Streaming equity chart events for 1 minute...');
await new Promise(res => setTimeout(res, 1000 * 60));
riskManagementApi.removeEquityChartListener(listenerId);
const equityChart = await riskManagementApi.getEquityChart(accountId);
console.log('equity chart', JSON.stringify(equityChart));
} catch (err) {
console.error(err);
}
process.exit();
}
main();