我正在使用node-ib npm,我想下一个组合订单。
我做的步骤:
获取两条腿定义的合约 ID。
一旦程序获得了每条腿的 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 工作站。
正常订单会毫无问题地添加到交易者工作站。
有谁知道如何通过这个 npm 使用 API 将组合订单添加到 Trader 工作站?
谢谢大家:)