UNPKG

@sharplygroup/xtb-api-js

Version:

A module for interacting with the XTB API

93 lines 3.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TradeOperations = void 0; class TradeOperations { wsManager; constructor(wsManager) { this.wsManager = wsManager; } /** * Returns array of user's trades. * @param {boolean} openedOnly - if true then only opened trades will be returned * @returns {Promise<ITradesResponse>} */ async getTrades(openedOnly) { const response = (await this.wsManager.sendCommand({ command: "getTrades", arguments: { openedOnly: openedOnly, }, })); if (!response.status || !response.returnData) { throw new Error(response.errorDescr || "Failed to get trades"); } return { status: response.status, returnData: response.returnData, }; } /** * Returns array of trades listed in `orders` argument. * @param {number[]} orders - Array of orders (position numbers) * @returns {Promise<ITradesResponse>} */ async getTradeRecords(orders) { const response = (await this.wsManager.sendCommand({ command: "getTradeRecords", arguments: { orders: orders, }, })); if (!response.status || !response.returnData) { throw new Error(response.errorDescr || "Failed to get trade records"); } return { status: response.status, returnData: response.returnData, }; } /** * Returns array of user's trades which were closed within specified period of time. * @param {number} end - Time, 0 means current time for simplicity * @param {number} start - Time, 0 means last month interval * @returns {Promise<ITradesResponse>} */ async getTradesHistory(end, start) { const response = (await this.wsManager.sendCommand({ command: "getTradesHistory", arguments: { end: end, start: start, }, })); if (!response.status || !response.returnData) { throw new Error(response.errorDescr || "Failed to get trades history"); } return { status: response.status, returnData: response.returnData, }; } /** * Returns current transaction status. * @param {number} order - order * @returns {Promise<any>} // TODO: Create ITradeStatusResponse interface */ async getTradeStatus(order) { const response = await this.wsManager.sendCommand({ command: "tradeTransactionStatus", arguments: { order: order, }, }); if (!response.status || !response.returnData) { throw new Error(response.errorDescr || "Failed to get trade status"); } return { status: response.status, returnData: response.returnData, }; } } exports.TradeOperations = TradeOperations; //# sourceMappingURL=TradeOperations.js.map