CNEXからもらった仕様書をみると標準quickfixの FIX44 にはない
メッセージ仕様がいっぱいあるので、とりあえず対応
本体側で3ファイル
1/3 FixFieldNumbers.h(差分)
・・・
const int StreamAsgnAckType = 1503;
const int RelSymTransactTime = 1504;
const int StreamAsgnType = 1617;
+
+ const int PartyDetailsListRequestID = 1505; // C-NEX
+ const int PartyDetailsListReportID = 1510; // C-NEX
+ const int PartyDetailsRequestResult = 1511; // C-NEX
+ const int NoPartyList = 1513; // C-NEX
+ const int BelowMin = 7530; // C-NEX
+ const int StopSide = 7534; // C-NEX
+ const int IFDThenType = 7535; // C-NEX
+ const int IFDThenSide = 7536; // C-NEX
+ const int IFDThenPrStopRate = 7537; // C-NEX
+ const int IFDThenPrLimitRate = 7538; // C-NEX
+ const int IFDThenPrStopSide = 7539; // C-NEX
+ const int OCOLeg1LimitRate = 7540; // C-NEX
+ const int OCOLeg2Type = 7541; // C-NEX
+ const int OCOLeg2StopRate = 7542; // C-NEX
+ const int OCOLeg2StopSide = 7543; // C-NEX
+ const int OCOLeg2StopLimitRate = 7544; // C-NEX
+ const int IFDFillSide = 7545; // C-NEX
+ const int OCOLegID = 7546; // C-NEX
+ const int IFDIfOrdStatus = 7547; // C-NEX
+ const int OCOLeg1AvgPx = 7548; // C-NEX
+ const int OCOLeg1CumQty = 7549; // C-NEX
+ const int OCOLeg2AvgPx = 7550; // C-NEX
+ const int OCOLeg2CumQty = 7551; // C-NEX
+ const int IFDCancelType = 7552; // C-NEX
+ const int OCOLeg2Side = 7553; // C-NEX
+ const int IFDThenAvgPx = 7554; // C-NEX
+ const int IFDThenCumQty = 7555; // C-NEX
+ const int IFDThenPrLeavesQty = 7556; // C-NEX
+ const int ExpireSeconds = 7558; // C-NEX
+ const int OpenOrders = 7559; // C-NEX
+ const int IFDIfType = 7569; // C-NEX
+ const int IFDIfStopRate = 7570; // C-NEX
+ const int TrailBy = 7587; // C-NEX
+ const int MaxSlippage = 7588; // C-NEX
+ const int InitialTriggerRate = 7589; // C-NEX
+ const int PartyDetailsType = 7593; // C-NEX
+ const int TradeRealizedPL = 8018; // C-NEX
+
}
}
#endif //FIX_FIELDNUMBERS_H
2/3 FixFields.h(差分)
・・・
DEFINE_INT(StreamAsgnAckType);
DEFINE_UTCTIMESTAMP(RelSymTransactTime);
DEFINE_INT(StreamAsgnType);
+
+ DEFINE_STRING(PartyDetailsListRequestID); // C-NEX 1505
+ DEFINE_STRING(PartyDetailsListReportID); // C-NEX 1510
+ DEFINE_CHAR(PartyDetailsRequestResult); // C-NEX 1511
+ DEFINE_NUMINGROUP(NoPartyList); // C-NEX 1513
+ DEFINE_BOOLEAN(BelowMin); // C-NEX 7530
+ DEFINE_CHAR(StopSide); // C-NEX 7534
+ DEFINE_CHAR(IFDThenType); // C-NEX 7535
+ DEFINE_CHAR(IFDThenSide); // C-NEX 7536
+ DEFINE_PRICE(IFDThenPrStopRate); // C-NEX 7537
+ DEFINE_PRICE(IFDThenPrLimitRate); // C-NEX 7538
+ DEFINE_CHAR(IFDThenPrStopSide); // C-NEX 7539
+ DEFINE_PRICE(OCOLeg1LimitRate); // C-NEX 7540
+ DEFINE_CHAR(OCOLeg2Type); // C-NEX 7541
+ DEFINE_PRICE(OCOLeg2StopRate); // C-NEX 7542
+ DEFINE_CHAR(OCOLeg2StopSide); // C-NEX 7543
+ DEFINE_PRICE(OCOLeg2StopLimitRate); // C-NEX 7544
+ DEFINE_CHAR(IFDFillSide); // C-NEX 7545
+ DEFINE_CHAR(OCOLegID); // C-NEX 7546
+ DEFINE_CHAR(IFDIfOrdStatus); // C-NEX 7547
+ DEFINE_PRICE(OCOLeg1AvgPx); // C-NEX 7548
+ DEFINE_QTY(OCOLeg1CumQty); // C-NEX 7549
+ DEFINE_PRICE(OCOLeg2AvgPx); // C-NEX 7550
+ DEFINE_QTY(OCOLeg2CumQty); // C-NEX 7551
+ DEFINE_CHAR(IFDCancelType); // C-NEX 7552
+ DEFINE_CHAR(OCOLeg2Side); // C-NEX 7553
+ DEFINE_PRICE(IFDThenAvgPx); // C-NEX 7554
+ DEFINE_QTY(IFDThenCumQty); // C-NEX 7555
+ DEFINE_QTY(IFDThenPrLeavesQty); // C-NEX 7556
+ DEFINE_INT(ExpireSeconds); // C-NEX 7558
+ DEFINE_BOOLEAN(OpenOrders); // C-NEX 7559
+ DEFINE_CHAR(IFDIfType); // C-NEX 7569
+ DEFINE_PRICE(IFDIfStopRate); // C-NEX 7570
+ DEFINE_PRICE(TrailBy); // C-NEX 7587
+ DEFINE_FLOAT(MaxSlippage); // C-NEX 7588
+ DEFINE_PRICE(InitialTriggerRate); // C-NEX 7589
+ DEFINE_CHAR(PartyDetailsType); // C-NEX 7593
+ DEFINE_PRICE(TradeRealizedPL); // C-NEX 8018
+
}
#endif //FIX_FIELDS_H
3/3 FixValues.h(差分)
・・・
const int StreamAsgnType_ASSIGNMENT = 1;
const int StreamAsgnType_REJECTED = 2;
const int StreamAsgnType_TERMINATE_UNASSIGN = 3;
+
+ const int PartyDetailsRequestResult_VALID_REQUEST = 0; // C-NEX
+ const int PartyDetailsRequestResult_INVALID_OR_UNSUPPORTED_REQUEST = 1; // C-NEX
+ const char BelowMin_NO = 'N'; // C-NEX
+ const char BelowMin_YES = 'Y'; // C-NEX
+ const char StopSide_BID = '1'; // C-NEX
+ const char StopSide_OFFER = '2'; // C-NEX
+ const char IFDThenType_STOP = '3'; // C-NEX
+ const char IFDThenType_STOP_LIMIT = '4'; // C-NEX
+ const char IFDThenType_LIMIT = 'F'; // C-NEX
+ const char IFDThenType_OCO = 'W'; // C-NEX
+ const char IFDThenSide_BUY = '1'; // C-NEX
+ const char IFDThenSide_SELL = '2'; // C-NEX
+ const char IFDThenPrStopSide_BID = '1'; // C-NEX
+ const char IFDThenPrStopSide_OFFER = '2'; // C-NEX
+ const char OCOLeg2Type_STOP = '3'; // C-NEX
+ const char OCOLeg2Type_STOP_LIMIT = '4'; // C-NEX
+ const char OCOLeg2StopSide_BID = '1'; // C-NEX
+ const char OCOLeg2StopSide_OFFER = '2'; // C-NEX
+ const char IFDFillSide_IF = '1'; // C-NEX
+ const char IFDFillSide_THEN = '2'; // C-NEX
+ const char IFDIfOrdStatus_New = '0'; // C-NEX
+ const char IFDIfOrdStatus_PartialFill = '1'; // C-NEX
+ const char IFDIfOrdStatus_Fill = '2'; // C-NEX
+ const char IFDIfOrdStatus_Canceled = '4'; // C-NEX
+ const char IFDIfOrdStatus_Expired = 'C'; // C-NEX
+ const char IFDCancelType_PartialCancel = '0'; // C-NEX
+ const char IFDCancelType_CompleteCancel = '1'; // C-NEX
+ const char OCOLeg2Side_BUY = '1'; // C-NEX
+ const char OCOLeg2Side_SELL = '2'; // C-NEX
+ const char OpenOrders_NO = 'N'; // C-NEX
+ const char OpenOrders_YES = 'Y'; // C-NEX
+ const char IFDIfType_STOP = '3'; // C-NEX
+ const char IFDIfType_STOP_LIMIT = '4'; // C-NEX
+ const char IFDIfType_MARKET = 'C'; // C-NEX
+ const char IFDIfType_LIMIT = 'F'; // C-NEX
+ const char PartyDetailsType_AccountUpdate = '1'; // C-NEX
+ const char PartyDetailsType_SellOutTriggered = '3'; // C-NEX
+ const char PartyDetailsType_AccountDisabled = '4'; // C-NEX
+ const char PartyDetailsType_BR_RolloverComplete = '5'; // C-NEX
+ const char PartyDetailsType_MarginRollerComplete = '8'; // C-NEX
+
+ const int BusinessRejectReason_TRADE_TIMED_OUT = 6; // C-NEX
+ const int BusinessRejectReason_TRADE_LOCKED = 7; // C-NEX
+ const char SubscriptionRequestType_UNSUBSCRIBE = '2'; // C-NEX
+ const char MarketDepth_FULL_BOOK = '0'; // C-NEX
+ const char MarketDepth_TOP_OF_BOOK = '1'; // C-NEX
+ const char OrdType_CNEX_MARKET = 'C'; // C-NEX
+ const char OrdType_CNEX_MARKET_SLIPPAGE = 'T'; // C-NEX
+ const char OrdType_CNEX_LIMIT = 'F'; // C-NEX
+ const char OrdType_CNEX_DISCRETIONARY = 'R'; // C-NEX
+ const char OrdType_CNEX_TRAILING_STOP = 'V'; // C-NEX
+ const char OrdType_CNEX_OCO = 'W'; // C-NEX
+ const char OrdType_CNEX_IFD = 'X'; // C-NEX
+ const char OrdType_CNEX_IFD_OCO = 'Y'; // C-NEX
+ const char TimeInForce_GOOD_FOR_SECONDS = 'X'; // C-NEX
+ const char OrdStatus_PartialCanceled = 'D'; // C-NEX
+ const char OCOLegId_Leg1 = '1'; // C-NEX
+ const char OCOLegId_Leg2 = '2'; // C-NEX
+ const int MassStatusReqType_STATUS_ALL_ORDERS = 8; // C-NEX
+ const char FinancialStatus_DISABLED = '1'; // C-NEX
+ const char FinancialStatus_ACTIVE = '3'; // C-NEX
+ const int AccountType_Margin_Account_NET = 1; // C-NEX
+ const int AccountType_Margin_Account_Hedge = 2; // C-NEX
+ const int AccountType_Institutional_Account_Credit = 3; // C-NEX
+ const char PosType_OPEN_POSITION[] = "OPN"; // C-NEX
+ const char PosType_CLOSE_POSITION[] = "CLS"; // C-NEX
+ const int CollStatus_JOURNAL_ENTRY = 3; // C-NEX
+ const int QtyType_DEPOSIT = 10; // C-NEX
+ const int QtyType_WITHDRAWAL = 11; // C-NEX
+ const int QtyType_INTEREST = 12; // C-NEX
+ const int QtyType_ROLL = 13; // C-NEX
+ const int QtyType_PROFIT_AND_LOSS = 14; // C-NEX
+ const int QtyType_HOUSE_COMMISSION = 15; // C-NEX
+ const int QtyType_IB_COMMISSION = 16; // C-NEX
+ const int QtyType_MONEY_MANAGER_COMMISSION = 17; // C-NEX
+ const int QtyType_COLLATERAL = 18; // C-NEX
+
}
#endif //FIX_VALUES_H
#FIX4.4の仕様に追加
11ファイル
1/11 CollateralResponse.h(差分)
・・・
FIELD_SET(*this, FIX::Text);
FIELD_SET(*this, FIX::EncodedTextLen);
FIELD_SET(*this, FIX::EncodedText);
+ FIELD_SET(*this, FIX::FinancialStatus); // C-NEX 291
};
}
2/11 ExecutionReport.h(差分)
・・・
FIELD_SET(*this, FIX::MiscFeeType);
FIELD_SET(*this, FIX::MiscFeeBasis);
};
+
+ FIELD_SET(*this, FIX::BelowMin); // C-NEX 7530
+ FIELD_SET(*this, FIX::StopSide); // C-NEX 7534
+ FIELD_SET(*this, FIX::IFDIfOrdStatus); // C-NEX 7547
+ FIELD_SET(*this, FIX::IFDIfType); // C-NEX 7569
+ FIELD_SET(*this, FIX::IFDThenType); // C-NEX 7535
+ FIELD_SET(*this, FIX::IFDThenSide); // C-NEX 7536
+ FIELD_SET(*this, FIX::IFDIfStopRate); // C-NEX 7570
+ FIELD_SET(*this, FIX::IFDThenPrStopRate); // C-NEX 7537
+ FIELD_SET(*this, FIX::IFDThenPrLimitRate); // C-NEX 7538
+ FIELD_SET(*this, FIX::IFDThenPrStopSide); // C-NEX 7539
+ FIELD_SET(*this, FIX::IFDThenAvgPx); // C-NEX 7554
+ FIELD_SET(*this, FIX::IFDThenCumQty); // C-NEX 7555
+ FIELD_SET(*this, FIX::IFDThenPrLeavesQty); // C-NEX 7556
+ FIELD_SET(*this, FIX::OCOLeg1LimitRate); // C-NEX 7540
+ FIELD_SET(*this, FIX::OCOLeg2Type); // C-NEX 7541
+ FIELD_SET(*this, FIX::OCOLeg2Side); // C-NEX 7553
+ FIELD_SET(*this, FIX::OCOLeg2StopRate); // C-NEX 7542
+ FIELD_SET(*this, FIX::OCOLeg2StopSide); // C-NEX 7543
+ FIELD_SET(*this, FIX::OCOLeg2StopLimitRate); // C-NEX 7544
+ FIELD_SET(*this, FIX::IFDFillSide); // C-NEX 7545
+ FIELD_SET(*this, FIX::OCOLegID); // C-NEX 7546
+ FIELD_SET(*this, FIX::OCOLeg1AvgPx); // C-NEX 7548
+ FIELD_SET(*this, FIX::OCOLeg1CumQty); // C-NEX 7549
+ FIELD_SET(*this, FIX::OCOLeg2AvgPx); // C-NEX 7550
+ FIELD_SET(*this, FIX::OCOLeg2CumQty); // C-NEX 7551
+ FIELD_SET(*this, FIX::TrailBy); // C-NEX 7587
+ FIELD_SET(*this, FIX::MaxSlippage); // C-NEX 7588
+ FIELD_SET(*this, FIX::InitialTriggerRate); // C-NEX 7589
};
}
3/11 ListStatus.h(差分)
@@ -47,7 +47,23 @@ namespace FIX44
class NoOrders: public FIX::Group
{
public:
- NoOrders() : FIX::Group(73,11,FIX::message_order(11,526,14,39,636,151,84,6,103,58,354,355,0)) {}
+ NoOrders() : FIX::Group(73,11,FIX::message_order(11,526,14,39,636,151,84,6,103,58,354,355
+ ,59 // C-NEX
+ ,432 // C-NEX
+ ,126 // C-NEX
+ ,37 // C-NEX
+ ,55 // C-NEX
+ ,54 // C-NEX
+ ,40 // C-NEX
+ ,7547 // C-NEX
+ ,7554 // C-NEX
+ ,7555 // C-NEX
+ ,7556 // C-NEX
+ ,7548 // C-NEX
+ ,7549 // C-NEX
+ ,7550 // C-NEX
+ ,7551 // C-NEX
+ ,0)) {}
FIELD_SET(*this, FIX::ClOrdID);
FIELD_SET(*this, FIX::SecondaryClOrdID);
FIELD_SET(*this, FIX::CumQty);
@@ -60,6 +76,21 @@ namespace FIX44
FIELD_SET(*this, FIX::Text);
FIELD_SET(*this, FIX::EncodedTextLen);
FIELD_SET(*this, FIX::EncodedText);
+ FIELD_SET(*this, FIX::TimeInForce); // C-NEX 59
+ FIELD_SET(*this, FIX::ExpireDate); // C-NEX 432
+ FIELD_SET(*this, FIX::ExpireTime); // C-NEX 126
+ FIELD_SET(*this, FIX::OrderID); // C-NEX 37
+ FIELD_SET(*this, FIX::Symbol); // C-NEX 55
+ FIELD_SET(*this, FIX::Side); // C-NEX 54
+ FIELD_SET(*this, FIX::OrdType); // C-NEX 40
+ FIELD_SET(*this, FIX::IFDIfOrdStatus); // C-NEX 7547
+ FIELD_SET(*this, FIX::IFDThenAvgPx); // C-NEX 7554
+ FIELD_SET(*this, FIX::IFDThenCumQty); // C-NEX 7555
+ FIELD_SET(*this, FIX::IFDThenPrLeavesQty); // C-NEX 7556
+ FIELD_SET(*this, FIX::OCOLeg1AvgPx); // C-NEX 7548
+ FIELD_SET(*this, FIX::OCOLeg1CumQty); // C-NEX 7549
+ FIELD_SET(*this, FIX::OCOLeg2AvgPx); // C-NEX 7550
+ FIELD_SET(*this, FIX::OCOLeg2CumQty); // C-NEX 7551
};
};
4/11 NewOrderSingle.h(差分)
・・・
FIELD_SET(*this, FIX::MoneyLaunderingStatus);
FIELD_SET(*this, FIX::RegistID);
FIELD_SET(*this, FIX::Designation);
+
+ FIELD_SET(*this, FIX::ExpireSeconds); // C-NEX 7558
+ FIELD_SET(*this, FIX::StopSide); // C-NEX 7534
+ FIELD_SET(*this, FIX::IFDIfType); // C-NEX 7569
+ FIELD_SET(*this, FIX::IFDThenType); // C-NEX 7535
+ FIELD_SET(*this, FIX::IFDThenSide); // C-NEX 7536
+ FIELD_SET(*this, FIX::IFDIfStopRate); // C-NEX 7570
+ FIELD_SET(*this, FIX::IFDThenPrStopRate); // C-NEX 7537
+ FIELD_SET(*this, FIX::IFDThenPrLimitRate); // C-NEX 7538
+ FIELD_SET(*this, FIX::IFDThenPrStopSide); // C-NEX 7539
+ FIELD_SET(*this, FIX::OCOLeg1LimitRate); // C-NEX 7540
+ FIELD_SET(*this, FIX::OCOLeg2Type); // C-NEX 7541
+ FIELD_SET(*this, FIX::OCOLeg2Side); // C-NEX 7553
+ FIELD_SET(*this, FIX::OCOLeg2StopRate); // C-NEX 7542
+ FIELD_SET(*this, FIX::OCOLeg2StopSide); // C-NEX 7543
+ FIELD_SET(*this, FIX::OCOLeg2StopLimitRate); // C-NEX 7544
+ FIELD_SET(*this, FIX::TrailBy); // C-NEX 7587
+ FIELD_SET(*this, FIX::MaxSlippage); // C-NEX 7588
+ FIELD_SET(*this, FIX::InitialTriggerRate); // C-NEX 7589
};
}
5/11 OrderCancelReject.h(差分)
・・・
FIELD_SET(*this, FIX::Text);
FIELD_SET(*this, FIX::EncodedTextLen);
FIELD_SET(*this, FIX::EncodedText);
+ FIELD_SET(*this, FIX::NoPartyIDs); // C-NEX 453
+ class NoPartyIDs: public FIX::Group
+ {
+ public:
+ NoPartyIDs() : FIX::Group(453,448,FIX::message_order(448,447,452,802,0)) {} // C-NEX
+ FIELD_SET(*this, FIX::PartyID); // C-NEX 448
+ FIELD_SET(*this, FIX::PartyIDSource); // C-NEX 447
+ FIELD_SET(*this, FIX::PartyRole); // C-NEX 452
+ FIELD_SET(*this, FIX::NoPartySubIDs); // C-NEX 802
+ class NoPartySubIDs: public FIX::Group
+ {
+ public:
+ NoPartySubIDs() : FIX::Group(802,523,FIX::message_order(523,803,0)) {} // C-NEX
+ FIELD_SET(*this, FIX::PartySubID); // C-NEX 523
+ FIELD_SET(*this, FIX::PartySubIDType); // C-NEX 803
+ };
+ };
};
}
6/11 OrderCancelReplaceRequest.h(差分)
・・・
FIELD_SET(*this, FIX::MoneyLaunderingStatus);
FIELD_SET(*this, FIX::RegistID);
FIELD_SET(*this, FIX::Designation);
+ FIELD_SET(*this, FIX::TrailBy); // C-NEX 7587
+ FIELD_SET(*this, FIX::MaxSlippage); // C-NEX 7588
};
}
7/11 OrderCancelRequest.h(差分)
・・・
FIELD_SET(*this, FIX::Text);
FIELD_SET(*this, FIX::EncodedTextLen);
FIELD_SET(*this, FIX::EncodedText);
+
+ FIELD_SET(*this, FIX::OrdType); // C-NEX 40
+ FIELD_SET(*this, FIX::IFDCancelType); // C-NEX 7552
+ FIELD_SET(*this, FIX::OpenOrders); // C-NEX 7559
};
}
8/11 OrderMassStatusRequest.h(差分)
・・・
FIELD_SET(*this, FIX::UnderlyingCurrentValue);
FIELD_SET(*this, FIX::UnderlyingEndValue);
FIELD_SET(*this, FIX::Side);
+
+ FIELD_SET(*this, FIX::TransactTime); // C-NEX 60
};
}
9/11 OrderStatusRequest.h(差分)
・・・
FIELD_SET(*this, FIX::UnderlyingEndValue);
};
FIELD_SET(*this, FIX::Side);
+
+ FIELD_SET(*this, FIX::OrdType); // C-NEX 40
+ FIELD_SET(*this, FIX::OpenOrders); // C-NEX 7559
};
}
10/11 PositionReport.h(差分)
・・・
FIELD_SET(*this, FIX::Text);
FIELD_SET(*this, FIX::EncodedTextLen);
FIELD_SET(*this, FIX::EncodedText);
+
+ FIELD_SET(*this, FIX::ExecID); // C-NEX 17
+ FIELD_SET(*this, FIX::TradeRealizedPL); // C-NEX 8018
};
}
11/11 SecurityList.h(差分)
・・・
FIELD_SET(*this, FIX::Text);
FIELD_SET(*this, FIX::EncodedTextLen);
FIELD_SET(*this, FIX::EncodedText);
+
+ FIELD_SET(*this, FIX::NoInstrAttrib); // C-NEX 870
+ class NoInstrAttrib: public FIX::Group
+ {
+ public:
+ NoInstrAttrib() : FIX::Group(870,871,FIX::message_order(871,872,0)) {} // C-NEX 870
+ FIELD_SET(*this, FIX::InstrAttribType); // C-NEX 871
+ FIELD_SET(*this, FIX::InstrAttribValue); // C-NEX 872
+ };
+
};
};
#メッセージValidate
##FIX44.xml(差分)
@@ -247,6 +247,32 @@
<component name='InstrmtLegExecGrp' required='N' />
<field name='CopyMsgIndicator' required='N' />
<component name='MiscFeesGrp' required='N' />
+ <field name='StopSide' required='N' />
+ <field name='IFDIfOrdStatus' required='N' />
+ <field name='IFDIfType' required='N' />
+ <field name='IFDThenType' required='N' />
+ <field name='IFDThenSide' required='N' />
+ <field name='IFDIfStopRate' required='N' />
+ <field name='IFDThenPrStopRate' required='N' />
+ <field name='IFDThenPrLimitRate' required='N' />
+ <field name='IFDThenAvgPx' required='N' />
+ <field name='IFDThenCumQty' required='N' />
+ <field name='IFDThenPrLeavesQty' required='N' />
+ <field name='OCOLeg1LimitRate' required='N' />
+ <field name='OCOLeg2Type' required='N' />
+ <field name='OCOLeg2Side' required='N' />
+ <field name='OCOLeg2StopRate' required='N' />
+ <field name='OCOLeg2StopSide' required='N' />
+ <field name='OCOLeg2StopLimitRate' required='N' />
+ <field name='IFDFillSide' required='N' />
+ <field name='OCOLegId' required='N' />
+ <field name='OCOLeg1AvgPx' required='N' />
+ <field name='OCOLeg1CumQty' required='N' />
+ <field name='OCOLeg2AvgPx' required='N' />
+ <field name='OCOLeg2CumQty' required='N' />
+ <field name='TrailBy' required='N' />
+ <field name='MaxSlippage' required='N' />
+ <field name='InitialTriggerRate' required='N' />
</message>
<message name='OrderCancelReject' msgtype='9' msgcat='app'>
<field name='OrderID' required='Y' />
@@ -268,6 +294,7 @@
<field name='CxlRejResponseTo' required='Y' />
<field name='CxlRejReason' required='N' />
<field name='Text' required='N' />
+ <component name='Parties' required='N' />
<field name='EncodedTextLen' required='N' />
<field name='EncodedText' required='N' />
</message>
@@ -396,6 +423,24 @@
<field name='MoneyLaunderingStatus' required='N' />
<field name='RegistID' required='N' />
<field name='Designation' required='N' />
+ <field name='ExpireSeconds' required='N' />
+ <field name='StopSide' required='N' />
+ <field name='IFDIfType' required='N' />
+ <field name='IFDThenType' required='N' />
+ <field name='IFDThenSide' required='N' />
+ <field name='IFDIfStopRate' required='N' />
+ <field name='IFDThenPrStopRate' required='N' />
+ <field name='IFDThenPrLimitRate' required='N' />
+ <field name='IFDThenPrStopSide' required='N' />
+ <field name='OCOLeg1LimitRate' required='N' />
+ <field name='OCOLeg2Type' required='N' />
+ <field name='OCOLeg2Side' required='N' />
+ <field name='OCOLeg2StopRate' required='N' />
+ <field name='OCOLeg2StopSide' required='N' />
+ <field name='OCOLeg2StopLimitRate' required='N' />
+ <field name='TrailBy' required='N' />
+ <field name='MaxSlippage' required='N' />
+ <field name='InitialTriggerRate' required='N' />
</message>
<message name='NewOrderList' msgtype='E' msgcat='app'>
<field name='ListID' required='Y' />
@@ -434,12 +479,15 @@
<component name='FinancingDetails' required='N' />
<component name='UndInstrmtGrp' required='N' />
<field name='Side' required='Y' />
+ <field name='OrdType' required='Y' />
<field name='TransactTime' required='Y' />
<component name='OrderQtyData' required='Y' />
<field name='ComplianceID' required='N' />
<field name='Text' required='N' />
<field name='EncodedTextLen' required='N' />
<field name='EncodedText' required='N' />
+ <field name='IFDCancelType' required='N' />
+ <field name='OpenOrders' required='N' />
</message>
<message name='OrderCancelReplaceRequest' msgtype='G' msgcat='app'>
<field name='OrderID' required='N' />
@@ -517,6 +565,8 @@
<field name='MoneyLaunderingStatus' required='N' />
<field name='RegistID' required='N' />
<field name='Designation' required='N' />
+ <field name='TrailBy' required='N' />
+ <field name='MaxSlippage' required='N' />
</message>
<message name='OrderStatusRequest' msgtype='H' msgcat='app'>
<field name='OrderID' required='N' />
@@ -531,6 +581,8 @@
<component name='FinancingDetails' required='N' />
<component name='UndInstrmtGrp' required='N' />
<field name='Side' required='Y' />
+ <field name='OrdType' required='N' />
+ <field name='OpenOrders' required='N' />
</message>
<message name='AllocationInstruction' msgtype='J' msgcat='app'>
<field name='AllocID' required='Y' />
@@ -1498,6 +1550,7 @@
<component name='Instrument' required='N' />
<component name='UnderlyingInstrument' required='N' />
<field name='Side' required='N' />
+ <field name='TransactTime' required='N' />
</message>
<message name='QuoteRequestReject' msgtype='AG' msgcat='app'>
<field name='QuoteReqID' required='Y' />
@@ -1812,6 +1865,7 @@
<field name='PosMaintRptID' required='Y' />
<field name='PosReqID' required='N' />
<field name='PosReqType' required='N' />
+ <field name='ExecID' required='N' />
<field name='SubscriptionRequestType' required='N' />
<field name='TotalNumPosReports' required='N' />
<field name='UnsolicitedIndicator' required='N' />
@@ -1835,6 +1889,7 @@
<field name='RegistStatus' required='N' />
<field name='DeliveryDate' required='N' />
<field name='Text' required='N' />
+ <field name='TradeRealizedPL' required='N' />
<field name='EncodedTextLen' required='N' />
<field name='EncodedText' required='N' />
</message>
@@ -2346,6 +2401,24 @@
<field name='EncodedTextLen' required='N' />
<field name='EncodedText' required='N' />
</message>
+ <message name='PartyDetailsListReport' msgtype='CG' msgcat='app'>
+ <field name='PartyDetailsListReportID' required='Y' />
+ <field name='PartyDetailsListRequestID' required='Y' />
+ <field name='PartyDetailsRequestResult' required='Y' />
+ <field name='TotNumReports' required='Y' />
+ <field name='PartyDetailsType' required='Y' />
+ <field name='TransactTime' required='Y' />
+ <field name='Text' required='Y' />
+ <component name='PartyListGroup' required='N' />
+ </message>
+ <message name='OrderRateUpdate' msgtype='PU' msgcat='app'>
+ <field name='OrderID' required='Y' />
+ <field name='ClOrdID' required='Y' />
+ <field name='OrigClOrdID' required='Y' />
+ <field name='OrdType' required='Y' />
+ <field name='StopPx' required='N' />
+ <component name='Parties' required='N' />
+ </message>
</messages>
<trailer>
<field name='SignatureLength' required='N' />
@@ -3144,6 +3217,21 @@
<field name='Text' required='N' />
<field name='EncodedTextLen' required='N' />
<field name='EncodedText' required='N' />
+ <field name='TimeInForce' required='Y' />
+ <field name='ExpireDate' required='N' />
+ <field name='ExpireTime' required='N' />
+ <field name='OrderID' required='Y' />
+ <field name='Symbol' required='Y' />
+ <field name='Side' required='Y' />
+ <field name='OrdType' required='Y' />
+ <field name='IFDIfOrdStatus' required='N' />
+ <field name='IFDThenAvgPx' required='N' />
+ <field name='IFDThenCumQty' required='N' />
+ <field name='IFDThenPrLeavesQty' required='N' />
+ <field name='OCOLeg1AvgPx' required='N' />
+ <field name='OCOLeg1CumQty' required='N' />
+ <field name='OCOLeg2AvgPx' required='N' />
+ <field name='OCOLeg2CumQty' required='N' />
</group>
</component>
<component name='PosUndInstrmtGrp'>
@@ -3725,6 +3813,13 @@
<field name='Nested3PartySubIDType' required='N' />
</group>
</component>
+ <component name='PartyListGroup'>
+ <group name='NoPartyList' required='N'>
+ <field name='PartyID' required='N' />
+ <field name='PartyIDSource' required='N' />
+ <field name='PartyRole' required='N' />
+ </group>
+ </component>
</components>
<fields>
<field number='1' name='Account' type='STRING' />
@@ -3989,6 +4084,14 @@
<value enum='L' description='PREVIOUS_FUND_VALUATION_POINT' />
<value enum='M' description='NEXT_FUND_VALUATION_POINT' />
<value enum='P' description='PEGGED' />
+ <value enum='C' description='CNEX_MARKET' />
+ <value enum='T' description='CNEX_Market_SLIPPAGE' />
+ <value enum='F' description='CNEX_LIMIT' />
+ <value enum='R' description='CNEX_DISCRETIONARY' />
+ <value enum='V' description='CNEX_TRAILING_STOP' />
+ <value enum='W' description='CNEX_OCO' />
+ <value enum='X' description='CNEX_IFD' />
+ <value enum='Y' description='CNEX_IFD_OCO' />
</field>
<field number='41' name='OrigClOrdID' type='STRING' />
<field number='42' name='OrigTime' type='UTCTIMESTAMP' />
@@ -4034,6 +4137,7 @@
<value enum='5' description='GOOD_TILL_CROSSING' />
<value enum='6' description='GOOD_TILL_DATE' />
<value enum='7' description='AT_THE_CLOSE' />
+ <value enum='X' description='GOOD_zFOZ_SECONDS' />
</field>
<field number='60' name='TransactTime' type='UTCTIMESTAMP' />
<field number='61' name='Urgency' type='CHAR'>
@@ -6334,6 +6438,15 @@
<field number='854' name='QtyType' type='INT'>
<value enum='0' description='UNITS' />
<value enum='1' description='CONTRACTS' />
+ <value enum='10' description='Deposit' />
+ <value enum='11' description='Withdrawal' />
+ <value enum='12' description='Interest' />
+ <value enum='13' description='Roll' />
+ <value enum='14' description='Profit_and_Loss' />
+ <value enum='15' description='House_Commission' />
+ <value enum='16' description='IB_Commission' />
+ <value enum='17' description='MoneyManagerCommission' />
+ <value enum='18' description='Collateral' />
</field>
<field number='855' name='SecondaryTrdType' type='INT' />
<field number='856' name='TradeReportType' type='INT'>
@@ -6592,5 +6705,98 @@
<field number='954' name='Nested3PartySubIDType' type='INT' />
<field number='955' name='LegContractSettlMonth' type='MONTHYEAR' />
<field number='956' name='LegInterestAccrualDate' type='LOCALMKTDATE' />
+
+ <field number='7558' name='ExpireSeconds' type='INT' />
+ <field number='7534' name='StopSide' type='CHAR'>
+ <value enum='1' description='BID' />
+ <value enum='2' description='OFFER' />
+ </field>
+ <field number='7569' name='IFDIfType' type='CHAR'>
+ <value enum='3' description='STOP' />
+ <value enum='4' description='STOP_LIMIT' />
+ <value enum='C' description='CNEX_MARKET' />
+ <value enum='F' description='CNEX_LIMIT' />
+ </field>
+ <field number='7535' name='IFDThenType' type='CHAR'>
+ <value enum='3' description='STOP' />
+ <value enum='4' description='STOP_LIMIT' />
+ <value enum='F' description='CNEX_LIMIT' />
+ <value enum='W' description='CNEX_OCO' />
+ </field>
+ <field number='7536' name='IFDThenSide' type='CHAR'>
+ <value enum='1' description='BUY' />
+ <value enum='2' description='SELL' />
+ </field>
+ <field number='7570' name='IFDIfStopRate' type='FLOAT' />
+ <field number='7537' name='IFDThenPrStopRate' type='FLOAT' />
+ <field number='7538' name='IFDThenPrLimitRate' type='FLOAT' />
+ <field number='7539' name='IFDThenPrStopSide' type='CHAR'>
+ <value enum='1' description='BID' />
+ <value enum='2' description='OFFER' />
+ </field>
+ <field number='7540' name='OCOLeg1LimitRate' type='FLOAT' />
+ <field number='7541' name='OCOLeg2Type' type='CHAR'>
+ <value enum='3' description='STOP' />
+ <value enum='4' description='STOP_LIMIT' />
+ </field>
+ <field number='7553' name='OCOLeg2Side' type='CHAR'>
+ <value enum='1' description='BUY' />
+ <value enum='2' description='SELL' />
+ </field>
+ <field number='7542' name='OCOLeg2StopRate' type='FLOAT' />
+ <field number='7543' name='OCOLeg2StopSide' type='CHAR'>
+ <value enum='1' description='BID' />
+ <value enum='2' description='OFFER' />
+ </field>
+ <field number='7544' name='OCOLeg2StopLimitRate' type='FLOAT' />
+ <field number='7587' name='TrailBy' type='FLOAT' />
+ <field number='7588' name='MaxSlippage' type='FLOAT' />
+ <field number='7589' name='InitialTriggerRate' type='FLOAT' />
+ <field number='7530' name='BelowMin' type='FLOAT' />
+ <field number='7547' name='IFDIfOrdStatus' type='CHAR'>
+ <value enum='0' description='New' />
+ <value enum='1' description='Partial_Fill' />
+ <value enum='2' description='Fill' />
+ <value enum='4' description='Canceled' />
+ <value enum='C' description='Expired' />
+ </field>
+ <field number='7554' name='IFDThenAvgPx' type='FLOAT' />
+ <field number='7555' name='IFDThenCumQty' type='FLOAT' />
+ <field number='7556' name='IFDThenPrLeavesQty' type='FLOAT' />
+ <field number='7545' name='IFDFillSide' type='CHAR'>
+ <value enum='1' description='IF_SIDE' />
+ <value enum='2' description='THEN_SIDE' />
+ </field>
+ <field number='7546' name='OCOLegId' type='CHAR'>
+ <value enum='1' description='Leg1' />
+ <value enum='2' description='Leg2' />
+ </field>
+ <field number='7548' name='OCOLeg1AvgPx' type='FLOAT' />
+ <field number='7549' name='OCOLeg1CumQty' type='FLOAT' />
+ <field number='7550' name='OCOLeg2AvgPx' type='FLOAT' />
+ <field number='7551' name='OCOLeg2CumQty' type='FLOAT' />
+ <field number='7552' name='IFDCancelType' type='CHAR'>
+ <value enum='0' description='PartialCancel' />
+ <value enum='1' description='ComplateOrderCancel' />
+ </field>
+ <field number='7559' name='OpenOrders' type='BOOLEAN'>
+ <value enum='Y' description='YES' />
+ <value enum='N' description='NO' />
+ </field>
+ <field number='8018' name='TradeRealizedPL' type='FLOAT' />
+ <field number='1510' name='PartyDetailsListReportID' type='STRING' />
+ <field number='1505' name='PartyDetailsListRequestID' type='STRING' />
+ <field number='1511' name='PartyDetailsRequestResult' type='CHAR'>
+ <value enum='0' description='ValidRequest' />
+ <value enum='1' description='Invalid_or_Unsupported_Request' />
+ </field>
+ <field number='7593' name='PartyDetailsType' type='CHAR'>
+ <value enum='1' description='AccountUpdate' />
+ <value enum='3' description='SellOutTriggered' />
+ <value enum='4' description='AccountDisabled' />
+ <value enum='5' description='BR_RolloverComplete' />
+ <value enum='8' description='MarginRollerComplete' />
+ </field>
+ <field number='1513' name='NoPartyList' type='NUMINGROUP' />
</fields>
-</fix>
\ No newline at end of file
+</fix>
コンパイル
ちゃんとコンパイル通ること
<前 【QuickFIX】05 各種メッセージの枠を作成
次> 【QuickFIX】07 セッション開始 TradingSessionStatus
一覧
01 サンプルのコンパイル
02 ログイン時にPassword(554)を送信
03 送受信ログをMySQLに保存
04 情報保存用にMySQLコネクションを保持..他
05 各種メッセージの枠を作成
06 独自メッセージ仕様
07 セッション開始 TradingSessionStatus
08 通貨ペア要求 SecurityListRequest
09 通貨ペア取得 SecurityList
10 デモ環境サーバへ接続
11 ログ出力設定
12 マーケット情報要求 < V > MarketDataRequest
13 マーケット情報受信 < X > MarketDataIncrementalRefresh
14 口座情報要求 < AN > RequestForPositions
15 口座情報取得 < AZ > CollateralResponse