OnixS CBOE CMi2 Trading Handler for C++  1.1.3.0
Message Checking

Field Data Validation

The values of message fields are not being checked automatically before processing because of performance and latency-minimizing reasons. If they are set up incorrectly it may lead to errors. Every message has validate() method. Using this method before message sending helps to check the values and prevent such mistakes. The method can be used only during the debugging process, when the debugging is finished it can be turned off to minimize latency.

OrderFormat1 msg;
msg.productKey = 984920333;
msg.branch = "BRH";
msg.branchSequenceNumber = 101;
msg.year = 2012;
msg.month = 6;
msg.day = 13;
msg.tradingSessionId = TradingSessionCodes::W_MAIN;
msg.originalQuantity = 100;
msg.priceType = PriceTypeCodes::LIMIT_VALUED;
msg.price = Decimal (1395, -2);
msg.side = SideCodesOrder::BUY;
msg.positionEffect = PositionEffect::OPEN;
msg.coverage = CoverageCodes::COVERED;
msg.nbboProtection = NBBOProtection::NONE;
msg.timeInForce = TimeInForce::DAY;
msg.originType = OriginTypeCodes::CUSTOMER;
msg.account = "C";
msg.executingGiveUpFirmNumber = "551";
msg.optionalFields = OrderFormat1::OptionalFields::CorrespondentFirm
| OrderFormat1::OptionalFields::SubAccount
| OrderFormat1::OptionalFields::CMTAFirmNumber
| OrderFormat1::OptionalFields::Extensions
| OrderFormat1::OptionalFields::OptionalData
| OrderFormat1::OptionalFields::UserAssignedId
| OrderFormat1::OptionalFields::OriginatorFirmNumber
| OrderFormat1::OptionalFields::Contingency
| OrderFormat1::OptionalFields::Preferred
| OrderFormat1::OptionalFields::AuctionId
| OrderFormat1::OptionalFields::ClearingInfo;
msg.correspondentFirm = "CORR";
msg.subAccount = "SUB";
msg.cmtaFirmNumber = "501";
msg.extensions = "EXT";
msg.optionalData = "OPT_DATA";
msg.userAssignedId = "USER_SID";
msg.originatorFirmNumber = "PRO";
msg.contingency_contingencyType = ContingencyTypes::NO_CONTINGENCY;
msg.contingency_priceType = PriceTypeCodes::LIMIT_VALUED;
msg.contingency_price = Decimal (1395, -2);
msg.contingency_volume = 100;
msg.preferred = "PFRD";
msg.auctionId_auctionIdHigh = 1111;
msg.auctionId_auctionIdLow = 2222;
msg.clearingInfo = "50=aaa;bbb;ccc;";
#ifdef DEBUG
msg.validate();
#endif
handler.send (msg);