Closed uwe closed 8 years ago
For RequestMarketData the ComboLeg structure was written uncorrectly.
Here is the C++ source code:
// Send combo legs for BAG requests (srv v8 and above) if( Compare(contract.secType, "BAG") == 0) { const Contract::ComboLegList* const comboLegs = contract.comboLegs.get(); const int comboLegsCount = comboLegs ? comboLegs->size() : 0; ENCODE_FIELD( comboLegsCount); if( comboLegsCount > 0) { for( int i = 0; i < comboLegsCount; ++i) { const ComboLeg* comboLeg = ((*comboLegs)[i]).get(); assert( comboLeg); ENCODE_FIELD( comboLeg->conId); ENCODE_FIELD( comboLeg->ratio); ENCODE_FIELD( comboLeg->action); ENCODE_FIELD( comboLeg->exchange); } } } if( m_serverVersion >= MIN_SERVER_VER_UNDER_COMP) { if( contract.underComp) { const UnderComp& underComp = *contract.underComp; ENCODE_FIELD( true); ENCODE_FIELD( underComp.conId); ENCODE_FIELD( underComp.delta); ENCODE_FIELD( underComp.price); } else { ENCODE_FIELD( false); } }
Now I can get quotes for combos (at least with Snapshot: false).
There was a mistake in my PR. It is fixed now (works correctly for BAG and non-BAG).
For RequestMarketData the ComboLeg structure was written uncorrectly.
Here is the C++ source code:
Now I can get quotes for combos (at least with Snapshot: false).