@sharplygroup/xtb-api-js
Version:
A module for interacting with the XTB API
93 lines • 3.11 kB
JavaScript
;
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