Я использую node-ib npm, я хочу разместить комбинированный ордер.
Шаги, которые я сделал:
получение идентификаторов контрактов для обоих определений ног.
Как только программа получает значение conId для каждой ноги, я включаю его в объект ComboLeg.
Затем я вызываю метод placeOrder() с объектами контракта и заказа.
var leg1 = { conId: c1, ratio: 1, action: "SELL", exchange: "SMART", openClose: 0, shortSaleSlot: 0, designatedLocation: "" } var leg2 = { conId: c2, ratio: 1, action: "BUY", exchange: "SMART", openClose: 0, shortSaleSlot: 0, designatedLocation: "" } var legs = [leg1, leg2]; ib.placeOrder( 6, ib.contract.combo("USD", "USD", "SMART", legs), ib.order.limit("BUY", 1, 1) ); ib.reqOpenOrders();
значения c1, c2 являются conIds.
я не нашел способа добавить comboLegs в контракт, поэтому я открыл /node_modules/ib/lib/contract/combo.js и добавил новый аргумент в функцию.
function combo(symbol, currency, exchange, comboLegs) {
assert(_.isString(symbol), 'Symbol must be a string.');
return {
currency: currency || 'USD',
exchange: exchange || 'SMART',
secType: 'BAG',
symbol: symbol,
comboLegs: comboLegs || []
};
}
Последний аргумент - тот, который я добавил.
я не получаю никаких ошибок, но комбинированный заказ не добавляется на рабочую станцию трейдера.
Обычный ордер без проблем добавляется на рабочую станцию трейдера.
Кто-нибудь знает, как добавить комбо-ордер на рабочую станцию Trader с помощью API этим npm?
Спасибо всем:)