1 #ifndef FIX50SP1_EXECUTIONREPORT_H
2 #define FIX50SP1_EXECUTIONREPORT_H
3 
4 #include "Message.h"
5 
6 namespace FIX50SP1
7 {
8 
9   class ExecutionReport : public Message
10   {
11   public:
ExecutionReport()12     ExecutionReport() : Message(MsgType()) {}
ExecutionReport(const FIX::Message & m)13     ExecutionReport(const FIX::Message& m) : Message(m) {}
ExecutionReport(const Message & m)14     ExecutionReport(const Message& m) : Message(m) {}
ExecutionReport(const ExecutionReport & m)15     ExecutionReport(const ExecutionReport& m) : Message(m) {}
MsgType()16     static FIX::MsgType MsgType() { return FIX::MsgType("8"); }
17 
ExecutionReport(const FIX::OrderID & aOrderID,const FIX::ExecID & aExecID,const FIX::ExecType & aExecType,const FIX::OrdStatus & aOrdStatus,const FIX::Side & aSide,const FIX::LeavesQty & aLeavesQty,const FIX::CumQty & aCumQty)18     ExecutionReport(
19       const FIX::OrderID& aOrderID,
20       const FIX::ExecID& aExecID,
21       const FIX::ExecType& aExecType,
22       const FIX::OrdStatus& aOrdStatus,
23       const FIX::Side& aSide,
24       const FIX::LeavesQty& aLeavesQty,
25       const FIX::CumQty& aCumQty )
26     : Message(MsgType())
27     {
28       set(aOrderID);
29       set(aExecID);
30       set(aExecType);
31       set(aOrdStatus);
32       set(aSide);
33       set(aLeavesQty);
34       set(aCumQty);
35     }
36 
37     FIELD_SET(*this, FIX::ApplID);
38     FIELD_SET(*this, FIX::ApplSeqNum);
39     FIELD_SET(*this, FIX::ApplLastSeqNum);
40     FIELD_SET(*this, FIX::ApplResendFlag);
41     FIELD_SET(*this, FIX::OrderID);
42     FIELD_SET(*this, FIX::SecondaryOrderID);
43     FIELD_SET(*this, FIX::SecondaryClOrdID);
44     FIELD_SET(*this, FIX::SecondaryExecID);
45     FIELD_SET(*this, FIX::ClOrdID);
46     FIELD_SET(*this, FIX::OrigClOrdID);
47     FIELD_SET(*this, FIX::ClOrdLinkID);
48     FIELD_SET(*this, FIX::QuoteRespID);
49     FIELD_SET(*this, FIX::OrdStatusReqID);
50     FIELD_SET(*this, FIX::MassStatusReqID);
51     FIELD_SET(*this, FIX::HostCrossID);
52     FIELD_SET(*this, FIX::TotNumReports);
53     FIELD_SET(*this, FIX::LastRptRequested);
54     FIELD_SET(*this, FIX::NoPartyIDs);
55     class NoPartyIDs: public FIX::Group
56     {
57     public:
NoPartyIDs()58     NoPartyIDs() : FIX::Group(453,448,FIX::message_order(448,447,452,802,0)) {}
59       FIELD_SET(*this, FIX::PartyID);
60       FIELD_SET(*this, FIX::PartyIDSource);
61       FIELD_SET(*this, FIX::PartyRole);
62       FIELD_SET(*this, FIX::NoPartySubIDs);
63       class NoPartySubIDs: public FIX::Group
64       {
65       public:
NoPartySubIDs()66       NoPartySubIDs() : FIX::Group(802,523,FIX::message_order(523,803,0)) {}
67         FIELD_SET(*this, FIX::PartySubID);
68         FIELD_SET(*this, FIX::PartySubIDType);
69       };
70     };
71     FIELD_SET(*this, FIX::TradeOriginationDate);
72     FIELD_SET(*this, FIX::NoContraBrokers);
73     class NoContraBrokers: public FIX::Group
74     {
75     public:
NoContraBrokers()76     NoContraBrokers() : FIX::Group(382,375,FIX::message_order(375,337,437,438,655,0)) {}
77       FIELD_SET(*this, FIX::ContraBroker);
78       FIELD_SET(*this, FIX::ContraTrader);
79       FIELD_SET(*this, FIX::ContraTradeQty);
80       FIELD_SET(*this, FIX::ContraTradeTime);
81       FIELD_SET(*this, FIX::ContraLegRefID);
82     };
83     FIELD_SET(*this, FIX::ListID);
84     FIELD_SET(*this, FIX::CrossID);
85     FIELD_SET(*this, FIX::OrigCrossID);
86     FIELD_SET(*this, FIX::CrossType);
87     FIELD_SET(*this, FIX::TrdMatchID);
88     FIELD_SET(*this, FIX::ExecID);
89     FIELD_SET(*this, FIX::ExecRefID);
90     FIELD_SET(*this, FIX::ExecType);
91     FIELD_SET(*this, FIX::OrdStatus);
92     FIELD_SET(*this, FIX::WorkingIndicator);
93     FIELD_SET(*this, FIX::OrdRejReason);
94     FIELD_SET(*this, FIX::ExecRestatementReason);
95     FIELD_SET(*this, FIX::Account);
96     FIELD_SET(*this, FIX::AcctIDSource);
97     FIELD_SET(*this, FIX::AccountType);
98     FIELD_SET(*this, FIX::DayBookingInst);
99     FIELD_SET(*this, FIX::BookingUnit);
100     FIELD_SET(*this, FIX::PreallocMethod);
101     FIELD_SET(*this, FIX::AllocID);
102     FIELD_SET(*this, FIX::NoAllocs);
103     class NoAllocs: public FIX::Group
104     {
105     public:
NoAllocs()106     NoAllocs() : FIX::Group(78,79,FIX::message_order(79,661,736,467,539,80,0)) {}
107       FIELD_SET(*this, FIX::AllocAccount);
108       FIELD_SET(*this, FIX::AllocAcctIDSource);
109       FIELD_SET(*this, FIX::AllocSettlCurrency);
110       FIELD_SET(*this, FIX::IndividualAllocID);
111       FIELD_SET(*this, FIX::NoNestedPartyIDs);
112       class NoNestedPartyIDs: public FIX::Group
113       {
114       public:
NoNestedPartyIDs()115       NoNestedPartyIDs() : FIX::Group(539,524,FIX::message_order(524,525,538,804,0)) {}
116         FIELD_SET(*this, FIX::NestedPartyID);
117         FIELD_SET(*this, FIX::NestedPartyIDSource);
118         FIELD_SET(*this, FIX::NestedPartyRole);
119         FIELD_SET(*this, FIX::NoNestedPartySubIDs);
120         class NoNestedPartySubIDs: public FIX::Group
121         {
122         public:
NoNestedPartySubIDs()123         NoNestedPartySubIDs() : FIX::Group(804,545,FIX::message_order(545,805,0)) {}
124           FIELD_SET(*this, FIX::NestedPartySubID);
125           FIELD_SET(*this, FIX::NestedPartySubIDType);
126         };
127       };
128       FIELD_SET(*this, FIX::AllocQty);
129     };
130     FIELD_SET(*this, FIX::SettlType);
131     FIELD_SET(*this, FIX::SettlDate);
132     FIELD_SET(*this, FIX::MatchType);
133     FIELD_SET(*this, FIX::OrderCategory);
134     FIELD_SET(*this, FIX::CashMargin);
135     FIELD_SET(*this, FIX::ClearingFeeIndicator);
136     FIELD_SET(*this, FIX::Symbol);
137     FIELD_SET(*this, FIX::SymbolSfx);
138     FIELD_SET(*this, FIX::SecurityID);
139     FIELD_SET(*this, FIX::SecurityIDSource);
140     FIELD_SET(*this, FIX::NoSecurityAltID);
141     class NoSecurityAltID: public FIX::Group
142     {
143     public:
NoSecurityAltID()144     NoSecurityAltID() : FIX::Group(454,455,FIX::message_order(455,456,0)) {}
145       FIELD_SET(*this, FIX::SecurityAltID);
146       FIELD_SET(*this, FIX::SecurityAltIDSource);
147     };
148     FIELD_SET(*this, FIX::Product);
149     FIELD_SET(*this, FIX::ProductComplex);
150     FIELD_SET(*this, FIX::SecurityGroup);
151     FIELD_SET(*this, FIX::CFICode);
152     FIELD_SET(*this, FIX::SecurityType);
153     FIELD_SET(*this, FIX::SecuritySubType);
154     FIELD_SET(*this, FIX::MaturityMonthYear);
155     FIELD_SET(*this, FIX::MaturityDate);
156     FIELD_SET(*this, FIX::MaturityTime);
157     FIELD_SET(*this, FIX::SettleOnOpenFlag);
158     FIELD_SET(*this, FIX::InstrmtAssignmentMethod);
159     FIELD_SET(*this, FIX::SecurityStatus);
160     FIELD_SET(*this, FIX::CouponPaymentDate);
161     FIELD_SET(*this, FIX::IssueDate);
162     FIELD_SET(*this, FIX::RepoCollateralSecurityType);
163     FIELD_SET(*this, FIX::RepurchaseTerm);
164     FIELD_SET(*this, FIX::RepurchaseRate);
165     FIELD_SET(*this, FIX::Factor);
166     FIELD_SET(*this, FIX::CreditRating);
167     FIELD_SET(*this, FIX::InstrRegistry);
168     FIELD_SET(*this, FIX::CountryOfIssue);
169     FIELD_SET(*this, FIX::StateOrProvinceOfIssue);
170     FIELD_SET(*this, FIX::LocaleOfIssue);
171     FIELD_SET(*this, FIX::RedemptionDate);
172     FIELD_SET(*this, FIX::StrikePrice);
173     FIELD_SET(*this, FIX::StrikeCurrency);
174     FIELD_SET(*this, FIX::StrikeMultiplier);
175     FIELD_SET(*this, FIX::StrikeValue);
176     FIELD_SET(*this, FIX::OptAttribute);
177     FIELD_SET(*this, FIX::ContractMultiplier);
178     FIELD_SET(*this, FIX::MinPriceIncrement);
179     FIELD_SET(*this, FIX::MinPriceIncrementAmount);
180     FIELD_SET(*this, FIX::UnitOfMeasure);
181     FIELD_SET(*this, FIX::UnitOfMeasureQty);
182     FIELD_SET(*this, FIX::PriceUnitOfMeasure);
183     FIELD_SET(*this, FIX::PriceUnitOfMeasureQty);
184     FIELD_SET(*this, FIX::SettlMethod);
185     FIELD_SET(*this, FIX::ExerciseStyle);
186     FIELD_SET(*this, FIX::OptPayAmount);
187     FIELD_SET(*this, FIX::PriceQuoteMethod);
188     FIELD_SET(*this, FIX::FuturesValuationMethod);
189     FIELD_SET(*this, FIX::ListMethod);
190     FIELD_SET(*this, FIX::CapPrice);
191     FIELD_SET(*this, FIX::FloorPrice);
192     FIELD_SET(*this, FIX::PutOrCall);
193     FIELD_SET(*this, FIX::FlexibleIndicator);
194     FIELD_SET(*this, FIX::FlexProductEligibilityIndicator);
195     FIELD_SET(*this, FIX::TimeUnit);
196     FIELD_SET(*this, FIX::CouponRate);
197     FIELD_SET(*this, FIX::SecurityExchange);
198     FIELD_SET(*this, FIX::PositionLimit);
199     FIELD_SET(*this, FIX::NTPositionLimit);
200     FIELD_SET(*this, FIX::Issuer);
201     FIELD_SET(*this, FIX::EncodedIssuerLen);
202     FIELD_SET(*this, FIX::EncodedIssuer);
203     FIELD_SET(*this, FIX::SecurityDesc);
204     FIELD_SET(*this, FIX::EncodedSecurityDescLen);
205     FIELD_SET(*this, FIX::EncodedSecurityDesc);
206     FIELD_SET(*this, FIX::SecurityXMLLen);
207     FIELD_SET(*this, FIX::SecurityXML);
208     FIELD_SET(*this, FIX::SecurityXMLSchema);
209     FIELD_SET(*this, FIX::Pool);
210     FIELD_SET(*this, FIX::ContractSettlMonth);
211     FIELD_SET(*this, FIX::CPProgram);
212     FIELD_SET(*this, FIX::CPRegType);
213     FIELD_SET(*this, FIX::NoEvents);
214     class NoEvents: public FIX::Group
215     {
216     public:
NoEvents()217     NoEvents() : FIX::Group(864,865,FIX::message_order(865,866,1145,867,868,0)) {}
218       FIELD_SET(*this, FIX::EventType);
219       FIELD_SET(*this, FIX::EventDate);
220       FIELD_SET(*this, FIX::EventTime);
221       FIELD_SET(*this, FIX::EventPx);
222       FIELD_SET(*this, FIX::EventText);
223     };
224     FIELD_SET(*this, FIX::DatedDate);
225     FIELD_SET(*this, FIX::InterestAccrualDate);
226     FIELD_SET(*this, FIX::NoInstrumentParties);
227     class NoInstrumentParties: public FIX::Group
228     {
229     public:
NoInstrumentParties()230     NoInstrumentParties() : FIX::Group(1018,1019,FIX::message_order(1019,1050,1051,1052,0)) {}
231       FIELD_SET(*this, FIX::InstrumentPartyID);
232       FIELD_SET(*this, FIX::InstrumentPartyIDSource);
233       FIELD_SET(*this, FIX::InstrumentPartyRole);
234       FIELD_SET(*this, FIX::NoInstrumentPartySubIDs);
235       class NoInstrumentPartySubIDs: public FIX::Group
236       {
237       public:
NoInstrumentPartySubIDs()238       NoInstrumentPartySubIDs() : FIX::Group(1052,1053,FIX::message_order(1053,1054,0)) {}
239         FIELD_SET(*this, FIX::InstrumentPartySubID);
240         FIELD_SET(*this, FIX::InstrumentPartySubIDType);
241       };
242     };
243     FIELD_SET(*this, FIX::AgreementDesc);
244     FIELD_SET(*this, FIX::AgreementID);
245     FIELD_SET(*this, FIX::AgreementDate);
246     FIELD_SET(*this, FIX::AgreementCurrency);
247     FIELD_SET(*this, FIX::TerminationType);
248     FIELD_SET(*this, FIX::StartDate);
249     FIELD_SET(*this, FIX::EndDate);
250     FIELD_SET(*this, FIX::DeliveryType);
251     FIELD_SET(*this, FIX::MarginRatio);
252     FIELD_SET(*this, FIX::NoUnderlyings);
253     class NoUnderlyings: public FIX::Group
254     {
255     public:
NoUnderlyings()256     NoUnderlyings() : FIX::Group(711,311,FIX::message_order(311,312,309,305,462,463,310,763,313,542,1213,241,242,243,244,245,246,256,595,592,593,594,247,316,941,317,436,998,1423,1424,1425,1000,1419,435,308,306,362,363,307,364,365,877,878,972,318,879,975,973,974,810,882,883,884,885,886,1044,1045,1046,1038,1039,315,0)) {}
257       FIELD_SET(*this, FIX::UnderlyingSymbol);
258       FIELD_SET(*this, FIX::UnderlyingSymbolSfx);
259       FIELD_SET(*this, FIX::UnderlyingSecurityID);
260       FIELD_SET(*this, FIX::UnderlyingSecurityIDSource);
261       FIELD_SET(*this, FIX::NoUnderlyingSecurityAltID);
262       class NoUnderlyingSecurityAltID: public FIX::Group
263       {
264       public:
NoUnderlyingSecurityAltID()265       NoUnderlyingSecurityAltID() : FIX::Group(457,458,FIX::message_order(458,459,0)) {}
266         FIELD_SET(*this, FIX::UnderlyingSecurityAltID);
267         FIELD_SET(*this, FIX::UnderlyingSecurityAltIDSource);
268       };
269       FIELD_SET(*this, FIX::UnderlyingProduct);
270       FIELD_SET(*this, FIX::UnderlyingCFICode);
271       FIELD_SET(*this, FIX::UnderlyingSecurityType);
272       FIELD_SET(*this, FIX::UnderlyingSecuritySubType);
273       FIELD_SET(*this, FIX::UnderlyingMaturityMonthYear);
274       FIELD_SET(*this, FIX::UnderlyingMaturityDate);
275       FIELD_SET(*this, FIX::UnderlyingMaturityTime);
276       FIELD_SET(*this, FIX::UnderlyingCouponPaymentDate);
277       FIELD_SET(*this, FIX::UnderlyingIssueDate);
278       FIELD_SET(*this, FIX::UnderlyingRepoCollateralSecurityType);
279       FIELD_SET(*this, FIX::UnderlyingRepurchaseTerm);
280       FIELD_SET(*this, FIX::UnderlyingRepurchaseRate);
281       FIELD_SET(*this, FIX::UnderlyingFactor);
282       FIELD_SET(*this, FIX::UnderlyingCreditRating);
283       FIELD_SET(*this, FIX::UnderlyingInstrRegistry);
284       FIELD_SET(*this, FIX::UnderlyingCountryOfIssue);
285       FIELD_SET(*this, FIX::UnderlyingStateOrProvinceOfIssue);
286       FIELD_SET(*this, FIX::UnderlyingLocaleOfIssue);
287       FIELD_SET(*this, FIX::UnderlyingRedemptionDate);
288       FIELD_SET(*this, FIX::UnderlyingStrikePrice);
289       FIELD_SET(*this, FIX::UnderlyingStrikeCurrency);
290       FIELD_SET(*this, FIX::UnderlyingOptAttribute);
291       FIELD_SET(*this, FIX::UnderlyingContractMultiplier);
292       FIELD_SET(*this, FIX::UnderlyingUnitOfMeasure);
293       FIELD_SET(*this, FIX::UnderlyingUnitOfMeasureQty);
294       FIELD_SET(*this, FIX::UnderlyingPriceUnitOfMeasure);
295       FIELD_SET(*this, FIX::UnderlyingPriceUnitOfMeasureQty);
296       FIELD_SET(*this, FIX::UnderlyingTimeUnit);
297       FIELD_SET(*this, FIX::UnderlyingExerciseStyle);
298       FIELD_SET(*this, FIX::UnderlyingCouponRate);
299       FIELD_SET(*this, FIX::UnderlyingSecurityExchange);
300       FIELD_SET(*this, FIX::UnderlyingIssuer);
301       FIELD_SET(*this, FIX::EncodedUnderlyingIssuerLen);
302       FIELD_SET(*this, FIX::EncodedUnderlyingIssuer);
303       FIELD_SET(*this, FIX::UnderlyingSecurityDesc);
304       FIELD_SET(*this, FIX::EncodedUnderlyingSecurityDescLen);
305       FIELD_SET(*this, FIX::EncodedUnderlyingSecurityDesc);
306       FIELD_SET(*this, FIX::UnderlyingCPProgram);
307       FIELD_SET(*this, FIX::UnderlyingCPRegType);
308       FIELD_SET(*this, FIX::UnderlyingAllocationPercent);
309       FIELD_SET(*this, FIX::UnderlyingCurrency);
310       FIELD_SET(*this, FIX::UnderlyingQty);
311       FIELD_SET(*this, FIX::UnderlyingSettlementType);
312       FIELD_SET(*this, FIX::UnderlyingCashAmount);
313       FIELD_SET(*this, FIX::UnderlyingCashType);
314       FIELD_SET(*this, FIX::UnderlyingPx);
315       FIELD_SET(*this, FIX::UnderlyingDirtyPrice);
316       FIELD_SET(*this, FIX::UnderlyingEndPrice);
317       FIELD_SET(*this, FIX::UnderlyingStartValue);
318       FIELD_SET(*this, FIX::UnderlyingCurrentValue);
319       FIELD_SET(*this, FIX::UnderlyingEndValue);
320       FIELD_SET(*this, FIX::NoUnderlyingStips);
321       class NoUnderlyingStips: public FIX::Group
322       {
323       public:
NoUnderlyingStips()324       NoUnderlyingStips() : FIX::Group(887,888,FIX::message_order(888,889,0)) {}
325         FIELD_SET(*this, FIX::UnderlyingStipType);
326         FIELD_SET(*this, FIX::UnderlyingStipValue);
327       };
328       FIELD_SET(*this, FIX::UnderlyingAdjustedQuantity);
329       FIELD_SET(*this, FIX::UnderlyingFXRate);
330       FIELD_SET(*this, FIX::UnderlyingFXRateCalc);
331       FIELD_SET(*this, FIX::UnderlyingCapValue);
332       FIELD_SET(*this, FIX::NoUndlyInstrumentParties);
333       class NoUndlyInstrumentParties: public FIX::Group
334       {
335       public:
NoUndlyInstrumentParties()336       NoUndlyInstrumentParties() : FIX::Group(1058,1059,FIX::message_order(1059,1060,1061,1062,0)) {}
337         FIELD_SET(*this, FIX::UndlyInstrumentPartyID);
338         FIELD_SET(*this, FIX::UndlyInstrumentPartyIDSource);
339         FIELD_SET(*this, FIX::UndlyInstrumentPartyRole);
340         FIELD_SET(*this, FIX::NoUndlyInstrumentPartySubIDs);
341         class NoUndlyInstrumentPartySubIDs: public FIX::Group
342         {
343         public:
NoUndlyInstrumentPartySubIDs()344         NoUndlyInstrumentPartySubIDs() : FIX::Group(1062,1063,FIX::message_order(1063,1064,0)) {}
345           FIELD_SET(*this, FIX::UndlyInstrumentPartySubID);
346           FIELD_SET(*this, FIX::UndlyInstrumentPartySubIDType);
347         };
348       };
349       FIELD_SET(*this, FIX::UnderlyingSettlMethod);
350       FIELD_SET(*this, FIX::UnderlyingPutOrCall);
351     };
352     FIELD_SET(*this, FIX::Side);
353     FIELD_SET(*this, FIX::NoStipulations);
354     class NoStipulations: public FIX::Group
355     {
356     public:
NoStipulations()357     NoStipulations() : FIX::Group(232,233,FIX::message_order(233,234,0)) {}
358       FIELD_SET(*this, FIX::StipulationType);
359       FIELD_SET(*this, FIX::StipulationValue);
360     };
361     FIELD_SET(*this, FIX::QtyType);
362     FIELD_SET(*this, FIX::OrderQty);
363     FIELD_SET(*this, FIX::CashOrderQty);
364     FIELD_SET(*this, FIX::OrderPercent);
365     FIELD_SET(*this, FIX::RoundingDirection);
366     FIELD_SET(*this, FIX::RoundingModulus);
367     FIELD_SET(*this, FIX::LotType);
368     FIELD_SET(*this, FIX::OrdType);
369     FIELD_SET(*this, FIX::PriceType);
370     FIELD_SET(*this, FIX::Price);
371     FIELD_SET(*this, FIX::PriceProtectionScope);
372     FIELD_SET(*this, FIX::StopPx);
373     FIELD_SET(*this, FIX::TriggerType);
374     FIELD_SET(*this, FIX::TriggerAction);
375     FIELD_SET(*this, FIX::TriggerPrice);
376     FIELD_SET(*this, FIX::TriggerSymbol);
377     FIELD_SET(*this, FIX::TriggerSecurityID);
378     FIELD_SET(*this, FIX::TriggerSecurityIDSource);
379     FIELD_SET(*this, FIX::TriggerSecurityDesc);
380     FIELD_SET(*this, FIX::TriggerPriceType);
381     FIELD_SET(*this, FIX::TriggerPriceTypeScope);
382     FIELD_SET(*this, FIX::TriggerPriceDirection);
383     FIELD_SET(*this, FIX::TriggerNewPrice);
384     FIELD_SET(*this, FIX::TriggerOrderType);
385     FIELD_SET(*this, FIX::TriggerNewQty);
386     FIELD_SET(*this, FIX::TriggerTradingSessionID);
387     FIELD_SET(*this, FIX::TriggerTradingSessionSubID);
388     FIELD_SET(*this, FIX::PegOffsetValue);
389     FIELD_SET(*this, FIX::PegPriceType);
390     FIELD_SET(*this, FIX::PegMoveType);
391     FIELD_SET(*this, FIX::PegOffsetType);
392     FIELD_SET(*this, FIX::PegLimitType);
393     FIELD_SET(*this, FIX::PegRoundDirection);
394     FIELD_SET(*this, FIX::PegScope);
395     FIELD_SET(*this, FIX::PegSecurityIDSource);
396     FIELD_SET(*this, FIX::PegSecurityID);
397     FIELD_SET(*this, FIX::PegSymbol);
398     FIELD_SET(*this, FIX::PegSecurityDesc);
399     FIELD_SET(*this, FIX::DiscretionInst);
400     FIELD_SET(*this, FIX::DiscretionOffsetValue);
401     FIELD_SET(*this, FIX::DiscretionMoveType);
402     FIELD_SET(*this, FIX::DiscretionOffsetType);
403     FIELD_SET(*this, FIX::DiscretionLimitType);
404     FIELD_SET(*this, FIX::DiscretionRoundDirection);
405     FIELD_SET(*this, FIX::DiscretionScope);
406     FIELD_SET(*this, FIX::PeggedPrice);
407     FIELD_SET(*this, FIX::PeggedRefPrice);
408     FIELD_SET(*this, FIX::DiscretionPrice);
409     FIELD_SET(*this, FIX::TargetStrategy);
410     FIELD_SET(*this, FIX::NoStrategyParameters);
411     class NoStrategyParameters: public FIX::Group
412     {
413     public:
NoStrategyParameters()414     NoStrategyParameters() : FIX::Group(957,958,FIX::message_order(958,959,960,0)) {}
415       FIELD_SET(*this, FIX::StrategyParameterName);
416       FIELD_SET(*this, FIX::StrategyParameterType);
417       FIELD_SET(*this, FIX::StrategyParameterValue);
418     };
419     FIELD_SET(*this, FIX::TargetStrategyParameters);
420     FIELD_SET(*this, FIX::ParticipationRate);
421     FIELD_SET(*this, FIX::TargetStrategyPerformance);
422     FIELD_SET(*this, FIX::Currency);
423     FIELD_SET(*this, FIX::ComplianceID);
424     FIELD_SET(*this, FIX::SolicitedFlag);
425     FIELD_SET(*this, FIX::TimeInForce);
426     FIELD_SET(*this, FIX::EffectiveTime);
427     FIELD_SET(*this, FIX::ExpireDate);
428     FIELD_SET(*this, FIX::ExpireTime);
429     FIELD_SET(*this, FIX::ExecInst);
430     FIELD_SET(*this, FIX::AggressorIndicator);
431     FIELD_SET(*this, FIX::OrderCapacity);
432     FIELD_SET(*this, FIX::OrderRestrictions);
433     FIELD_SET(*this, FIX::PreTradeAnonymity);
434     FIELD_SET(*this, FIX::CustOrderCapacity);
435     FIELD_SET(*this, FIX::LastQty);
436     FIELD_SET(*this, FIX::CalculatedCcyLastQty);
437     FIELD_SET(*this, FIX::LastSwapPoints);
438     FIELD_SET(*this, FIX::UnderlyingLastQty);
439     FIELD_SET(*this, FIX::LastPx);
440     FIELD_SET(*this, FIX::UnderlyingLastPx);
441     FIELD_SET(*this, FIX::LastParPx);
442     FIELD_SET(*this, FIX::LastSpotRate);
443     FIELD_SET(*this, FIX::LastForwardPoints);
444     FIELD_SET(*this, FIX::LastMkt);
445     FIELD_SET(*this, FIX::TradingSessionID);
446     FIELD_SET(*this, FIX::TradingSessionSubID);
447     FIELD_SET(*this, FIX::TimeBracket);
448     FIELD_SET(*this, FIX::LastCapacity);
449     FIELD_SET(*this, FIX::LeavesQty);
450     FIELD_SET(*this, FIX::CumQty);
451     FIELD_SET(*this, FIX::AvgPx);
452     FIELD_SET(*this, FIX::DayOrderQty);
453     FIELD_SET(*this, FIX::DayCumQty);
454     FIELD_SET(*this, FIX::DayAvgPx);
455     FIELD_SET(*this, FIX::TotNoFills);
456     FIELD_SET(*this, FIX::LastFragment);
457     FIELD_SET(*this, FIX::NoFills);
458     class NoFills: public FIX::Group
459     {
460     public:
NoFills()461     NoFills() : FIX::Group(1362,1363,FIX::message_order(1363,1364,1365,1414,0)) {}
462       FIELD_SET(*this, FIX::FillExecID);
463       FIELD_SET(*this, FIX::FillPx);
464       FIELD_SET(*this, FIX::FillQty);
465       FIELD_SET(*this, FIX::NoNested4PartyIDs);
466       class NoNested4PartyIDs: public FIX::Group
467       {
468       public:
NoNested4PartyIDs()469       NoNested4PartyIDs() : FIX::Group(1414,1415,FIX::message_order(1415,1416,1417,1413,0)) {}
470         FIELD_SET(*this, FIX::Nested4PartyID);
471         FIELD_SET(*this, FIX::Nested4PartyIDSource);
472         FIELD_SET(*this, FIX::Nested4PartyRole);
473         FIELD_SET(*this, FIX::NoNested4PartySubIDs);
474         class NoNested4PartySubIDs: public FIX::Group
475         {
476         public:
NoNested4PartySubIDs()477         NoNested4PartySubIDs() : FIX::Group(1413,1412,FIX::message_order(1412,1411,0)) {}
478           FIELD_SET(*this, FIX::Nested4PartySubID);
479           FIELD_SET(*this, FIX::Nested4PartySubIDType);
480         };
481       };
482     };
483     FIELD_SET(*this, FIX::GTBookingInst);
484     FIELD_SET(*this, FIX::TradeDate);
485     FIELD_SET(*this, FIX::TransactTime);
486     FIELD_SET(*this, FIX::ReportToExch);
487     FIELD_SET(*this, FIX::Commission);
488     FIELD_SET(*this, FIX::CommType);
489     FIELD_SET(*this, FIX::CommCurrency);
490     FIELD_SET(*this, FIX::FundRenewWaiv);
491     FIELD_SET(*this, FIX::Spread);
492     FIELD_SET(*this, FIX::BenchmarkCurveCurrency);
493     FIELD_SET(*this, FIX::BenchmarkCurveName);
494     FIELD_SET(*this, FIX::BenchmarkCurvePoint);
495     FIELD_SET(*this, FIX::BenchmarkPrice);
496     FIELD_SET(*this, FIX::BenchmarkPriceType);
497     FIELD_SET(*this, FIX::BenchmarkSecurityID);
498     FIELD_SET(*this, FIX::BenchmarkSecurityIDSource);
499     FIELD_SET(*this, FIX::YieldType);
500     FIELD_SET(*this, FIX::Yield);
501     FIELD_SET(*this, FIX::YieldCalcDate);
502     FIELD_SET(*this, FIX::YieldRedemptionDate);
503     FIELD_SET(*this, FIX::YieldRedemptionPrice);
504     FIELD_SET(*this, FIX::YieldRedemptionPriceType);
505     FIELD_SET(*this, FIX::GrossTradeAmt);
506     FIELD_SET(*this, FIX::NumDaysInterest);
507     FIELD_SET(*this, FIX::ExDate);
508     FIELD_SET(*this, FIX::AccruedInterestRate);
509     FIELD_SET(*this, FIX::AccruedInterestAmt);
510     FIELD_SET(*this, FIX::InterestAtMaturity);
511     FIELD_SET(*this, FIX::EndAccruedInterestAmt);
512     FIELD_SET(*this, FIX::StartCash);
513     FIELD_SET(*this, FIX::EndCash);
514     FIELD_SET(*this, FIX::TradedFlatSwitch);
515     FIELD_SET(*this, FIX::BasisFeatureDate);
516     FIELD_SET(*this, FIX::BasisFeaturePrice);
517     FIELD_SET(*this, FIX::Concession);
518     FIELD_SET(*this, FIX::TotalTakedown);
519     FIELD_SET(*this, FIX::NetMoney);
520     FIELD_SET(*this, FIX::SettlCurrAmt);
521     FIELD_SET(*this, FIX::SettlCurrency);
522     FIELD_SET(*this, FIX::SettlCurrFxRate);
523     FIELD_SET(*this, FIX::SettlCurrFxRateCalc);
524     FIELD_SET(*this, FIX::HandlInst);
525     FIELD_SET(*this, FIX::MinQty);
526     FIELD_SET(*this, FIX::MatchIncrement);
527     FIELD_SET(*this, FIX::MaxPriceLevels);
528     FIELD_SET(*this, FIX::DisplayQty);
529     FIELD_SET(*this, FIX::SecondaryDisplayQty);
530     FIELD_SET(*this, FIX::DisplayWhen);
531     FIELD_SET(*this, FIX::DisplayMethod);
532     FIELD_SET(*this, FIX::DisplayLowQty);
533     FIELD_SET(*this, FIX::DisplayHighQty);
534     FIELD_SET(*this, FIX::DisplayMinIncr);
535     FIELD_SET(*this, FIX::RefreshQty);
536     FIELD_SET(*this, FIX::MaxFloor);
537     FIELD_SET(*this, FIX::PositionEffect);
538     FIELD_SET(*this, FIX::MaxShow);
539     FIELD_SET(*this, FIX::BookingType);
540     FIELD_SET(*this, FIX::Text);
541     FIELD_SET(*this, FIX::EncodedTextLen);
542     FIELD_SET(*this, FIX::EncodedText);
543     FIELD_SET(*this, FIX::SettlDate2);
544     FIELD_SET(*this, FIX::OrderQty2);
545     FIELD_SET(*this, FIX::LastForwardPoints2);
546     FIELD_SET(*this, FIX::MultiLegReportingType);
547     FIELD_SET(*this, FIX::CancellationRights);
548     FIELD_SET(*this, FIX::MoneyLaunderingStatus);
549     FIELD_SET(*this, FIX::RegistID);
550     FIELD_SET(*this, FIX::Designation);
551     FIELD_SET(*this, FIX::TransBkdTime);
552     FIELD_SET(*this, FIX::ExecValuationPoint);
553     FIELD_SET(*this, FIX::ExecPriceType);
554     FIELD_SET(*this, FIX::ExecPriceAdjustment);
555     FIELD_SET(*this, FIX::PriorityIndicator);
556     FIELD_SET(*this, FIX::PriceImprovement);
557     FIELD_SET(*this, FIX::LastLiquidityInd);
558     FIELD_SET(*this, FIX::NoContAmts);
559     class NoContAmts: public FIX::Group
560     {
561     public:
NoContAmts()562     NoContAmts() : FIX::Group(518,519,FIX::message_order(519,520,521,0)) {}
563       FIELD_SET(*this, FIX::ContAmtType);
564       FIELD_SET(*this, FIX::ContAmtValue);
565       FIELD_SET(*this, FIX::ContAmtCurr);
566     };
567     FIELD_SET(*this, FIX::NoLegs);
568     class NoLegs: public FIX::Group
569     {
570     public:
NoLegs()571     NoLegs() : FIX::Group(555,600,FIX::message_order(600,601,602,603,607,608,609,764,610,611,1212,248,249,250,251,252,253,257,599,596,597,598,254,612,942,613,614,999,1224,1421,1422,1001,1420,615,616,617,618,619,620,621,622,623,624,556,740,739,955,956,1358,1017,687,685,690,683,1366,670,564,565,948,654,587,588,637,675,1073,1074,1075,1379,1381,1383,1384,1418,0)) {}
572       FIELD_SET(*this, FIX::LegSymbol);
573       FIELD_SET(*this, FIX::LegSymbolSfx);
574       FIELD_SET(*this, FIX::LegSecurityID);
575       FIELD_SET(*this, FIX::LegSecurityIDSource);
576       FIELD_SET(*this, FIX::NoLegSecurityAltID);
577       class NoLegSecurityAltID: public FIX::Group
578       {
579       public:
NoLegSecurityAltID()580       NoLegSecurityAltID() : FIX::Group(604,605,FIX::message_order(605,606,0)) {}
581         FIELD_SET(*this, FIX::LegSecurityAltID);
582         FIELD_SET(*this, FIX::LegSecurityAltIDSource);
583       };
584       FIELD_SET(*this, FIX::LegProduct);
585       FIELD_SET(*this, FIX::LegCFICode);
586       FIELD_SET(*this, FIX::LegSecurityType);
587       FIELD_SET(*this, FIX::LegSecuritySubType);
588       FIELD_SET(*this, FIX::LegMaturityMonthYear);
589       FIELD_SET(*this, FIX::LegMaturityDate);
590       FIELD_SET(*this, FIX::LegMaturityTime);
591       FIELD_SET(*this, FIX::LegCouponPaymentDate);
592       FIELD_SET(*this, FIX::LegIssueDate);
593       FIELD_SET(*this, FIX::LegRepoCollateralSecurityType);
594       FIELD_SET(*this, FIX::LegRepurchaseTerm);
595       FIELD_SET(*this, FIX::LegRepurchaseRate);
596       FIELD_SET(*this, FIX::LegFactor);
597       FIELD_SET(*this, FIX::LegCreditRating);
598       FIELD_SET(*this, FIX::LegInstrRegistry);
599       FIELD_SET(*this, FIX::LegCountryOfIssue);
600       FIELD_SET(*this, FIX::LegStateOrProvinceOfIssue);
601       FIELD_SET(*this, FIX::LegLocaleOfIssue);
602       FIELD_SET(*this, FIX::LegRedemptionDate);
603       FIELD_SET(*this, FIX::LegStrikePrice);
604       FIELD_SET(*this, FIX::LegStrikeCurrency);
605       FIELD_SET(*this, FIX::LegOptAttribute);
606       FIELD_SET(*this, FIX::LegContractMultiplier);
607       FIELD_SET(*this, FIX::LegUnitOfMeasure);
608       FIELD_SET(*this, FIX::LegUnitOfMeasureQty);
609       FIELD_SET(*this, FIX::LegPriceUnitOfMeasure);
610       FIELD_SET(*this, FIX::LegPriceUnitOfMeasureQty);
611       FIELD_SET(*this, FIX::LegTimeUnit);
612       FIELD_SET(*this, FIX::LegExerciseStyle);
613       FIELD_SET(*this, FIX::LegCouponRate);
614       FIELD_SET(*this, FIX::LegSecurityExchange);
615       FIELD_SET(*this, FIX::LegIssuer);
616       FIELD_SET(*this, FIX::EncodedLegIssuerLen);
617       FIELD_SET(*this, FIX::EncodedLegIssuer);
618       FIELD_SET(*this, FIX::LegSecurityDesc);
619       FIELD_SET(*this, FIX::EncodedLegSecurityDescLen);
620       FIELD_SET(*this, FIX::EncodedLegSecurityDesc);
621       FIELD_SET(*this, FIX::LegRatioQty);
622       FIELD_SET(*this, FIX::LegSide);
623       FIELD_SET(*this, FIX::LegCurrency);
624       FIELD_SET(*this, FIX::LegPool);
625       FIELD_SET(*this, FIX::LegDatedDate);
626       FIELD_SET(*this, FIX::LegContractSettlMonth);
627       FIELD_SET(*this, FIX::LegInterestAccrualDate);
628       FIELD_SET(*this, FIX::LegPutOrCall);
629       FIELD_SET(*this, FIX::LegOptionRatio);
630       FIELD_SET(*this, FIX::LegQty);
631       FIELD_SET(*this, FIX::LegOrderQty);
632       FIELD_SET(*this, FIX::LegSwapType);
633       FIELD_SET(*this, FIX::NoLegStipulations);
634       class NoLegStipulations: public FIX::Group
635       {
636       public:
NoLegStipulations()637       NoLegStipulations() : FIX::Group(683,688,FIX::message_order(688,689,0)) {}
638         FIELD_SET(*this, FIX::LegStipulationType);
639         FIELD_SET(*this, FIX::LegStipulationValue);
640       };
641       FIELD_SET(*this, FIX::LegAllocID);
642       FIELD_SET(*this, FIX::NoLegAllocs);
643       class NoLegAllocs: public FIX::Group
644       {
645       public:
NoLegAllocs()646       NoLegAllocs() : FIX::Group(670,671,FIX::message_order(671,672,756,673,674,1367,0)) {}
647         FIELD_SET(*this, FIX::LegAllocAccount);
648         FIELD_SET(*this, FIX::LegIndividualAllocID);
649         FIELD_SET(*this, FIX::NoNested2PartyIDs);
650         class NoNested2PartyIDs: public FIX::Group
651         {
652         public:
NoNested2PartyIDs()653         NoNested2PartyIDs() : FIX::Group(756,757,FIX::message_order(757,758,759,806,0)) {}
654           FIELD_SET(*this, FIX::Nested2PartyID);
655           FIELD_SET(*this, FIX::Nested2PartyIDSource);
656           FIELD_SET(*this, FIX::Nested2PartyRole);
657           FIELD_SET(*this, FIX::NoNested2PartySubIDs);
658           class NoNested2PartySubIDs: public FIX::Group
659           {
660           public:
NoNested2PartySubIDs()661           NoNested2PartySubIDs() : FIX::Group(806,760,FIX::message_order(760,807,0)) {}
662             FIELD_SET(*this, FIX::Nested2PartySubID);
663             FIELD_SET(*this, FIX::Nested2PartySubIDType);
664           };
665         };
666         FIELD_SET(*this, FIX::LegAllocQty);
667         FIELD_SET(*this, FIX::LegAllocAcctIDSource);
668         FIELD_SET(*this, FIX::LegAllocSettlCurrency);
669       };
670       FIELD_SET(*this, FIX::LegPositionEffect);
671       FIELD_SET(*this, FIX::LegCoveredOrUncovered);
672       FIELD_SET(*this, FIX::NoNested3PartyIDs);
673       class NoNested3PartyIDs: public FIX::Group
674       {
675       public:
NoNested3PartyIDs()676       NoNested3PartyIDs() : FIX::Group(948,949,FIX::message_order(949,950,951,952,0)) {}
677         FIELD_SET(*this, FIX::Nested3PartyID);
678         FIELD_SET(*this, FIX::Nested3PartyIDSource);
679         FIELD_SET(*this, FIX::Nested3PartyRole);
680         FIELD_SET(*this, FIX::NoNested3PartySubIDs);
681         class NoNested3PartySubIDs: public FIX::Group
682         {
683         public:
NoNested3PartySubIDs()684         NoNested3PartySubIDs() : FIX::Group(952,953,FIX::message_order(953,954,0)) {}
685           FIELD_SET(*this, FIX::Nested3PartySubID);
686           FIELD_SET(*this, FIX::Nested3PartySubIDType);
687         };
688       };
689       FIELD_SET(*this, FIX::LegRefID);
690       FIELD_SET(*this, FIX::LegSettlType);
691       FIELD_SET(*this, FIX::LegSettlDate);
692       FIELD_SET(*this, FIX::LegLastPx);
693       FIELD_SET(*this, FIX::LegSettlCurrency);
694       FIELD_SET(*this, FIX::LegLastForwardPoints);
695       FIELD_SET(*this, FIX::LegCalculatedCcyLastQty);
696       FIELD_SET(*this, FIX::LegGrossTradeAmt);
697       FIELD_SET(*this, FIX::LegVolatility);
698       FIELD_SET(*this, FIX::LegDividendYield);
699       FIELD_SET(*this, FIX::LegCurrencyRatio);
700       FIELD_SET(*this, FIX::LegExecInst);
701       FIELD_SET(*this, FIX::LegLastQty);
702     };
703     FIELD_SET(*this, FIX::CopyMsgIndicator);
704     FIELD_SET(*this, FIX::NoMiscFees);
705     class NoMiscFees: public FIX::Group
706     {
707     public:
NoMiscFees()708     NoMiscFees() : FIX::Group(136,137,FIX::message_order(137,138,139,891,0)) {}
709       FIELD_SET(*this, FIX::MiscFeeAmt);
710       FIELD_SET(*this, FIX::MiscFeeCurr);
711       FIELD_SET(*this, FIX::MiscFeeType);
712       FIELD_SET(*this, FIX::MiscFeeBasis);
713     };
714     FIELD_SET(*this, FIX::DividendYield);
715     FIELD_SET(*this, FIX::ManualOrderIndicator);
716     FIELD_SET(*this, FIX::CustDirectedOrder);
717     FIELD_SET(*this, FIX::ReceivedDeptID);
718     FIELD_SET(*this, FIX::CustOrderHandlingInst);
719     FIELD_SET(*this, FIX::OrderHandlingInstSource);
720     FIELD_SET(*this, FIX::NoTrdRegTimestamps);
721     class NoTrdRegTimestamps: public FIX::Group
722     {
723     public:
NoTrdRegTimestamps()724     NoTrdRegTimestamps() : FIX::Group(768,769,FIX::message_order(769,770,771,1033,1034,1035,0)) {}
725       FIELD_SET(*this, FIX::TrdRegTimestamp);
726       FIELD_SET(*this, FIX::TrdRegTimestampType);
727       FIELD_SET(*this, FIX::TrdRegTimestampOrigin);
728       FIELD_SET(*this, FIX::DeskType);
729       FIELD_SET(*this, FIX::DeskTypeSource);
730       FIELD_SET(*this, FIX::DeskOrderHandlingInst);
731     };
732     FIELD_SET(*this, FIX::Volatility);
733     FIELD_SET(*this, FIX::TimeToExpiration);
734     FIELD_SET(*this, FIX::RiskFreeRate);
735     FIELD_SET(*this, FIX::PriceDelta);
736   };
737 
738 }
739 
740 #endif
741