OnixS C++ Eurex T7 Market and Reference Data (EMDI, MDI, RDI, EOBI) Handlers  18.0.1
API documentation
Defines.h
Go to the documentation of this file.
1 /*
2 * Copyright Onix Solutions Limited [OnixS]. All rights reserved.
3 *
4 * This software owned by Onix Solutions Limited [OnixS] and is protected by copyright law
5 * and international copyright treaties.
6 *
7 * Access to and use of the software is governed by the terms of the applicable ONIXS Software
8 * Services Agreement (the Agreement) and Customer end user license agreements granting
9 * a non-assignable, non-transferable and non-exclusive license to use the software
10 * for it's own data processing purposes under the terms defined in the Agreement.
11 *
12 * Except as otherwise granted within the terms of the Agreement, copying or reproduction of any part
13 * of this source code or associated reference material to any other location for further reproduction
14 * or redistribution, and any amendments to this copyright notice, are expressly prohibited.
15 *
16 * Any reproduction or redistribution for sale or hiring of the Software not in accordance with
17 * the terms of the Agreement is a violation of copyright law.
18 */
19 
20 #pragma once
21 
22 #include <string>
23 
29 
30 namespace OnixS
31 {
32  namespace Eurex
33  {
34  namespace MarketData
35  {
36  /// Alias for Market Segment type (Product name).
37  typedef std::string MarketSegment;
38 
39  /// Alias for Market Segment ID type.
41 
42  /// Alias for Market depth type.
44 
45  const MarketSegmentId UndefinedMarketSegmentId = 0;
46 
47  /// Alias for Partition ID type.
49 
50  /// Alias for Security Id type.
51  typedef Int64 SecurityId;
52 
53  /// Alias for Quantity type.
54  typedef UInt64 Quantity;
55 
56  /// Feed types based on type of market data service.
57  struct NetFeedType
58  {
59  /// Integral base type of enumeration.
60  typedef char Base;
61 
62  /// Feed types based on type of market data service.
63  enum Enum
64  {
65  /// Incremental/real-time.
67 
68  /// Market recovery for MBP (Market By Price) books.
70  };
71  };
72 
73  /// Feed roles (primary, secondary).
74  struct NetFeedRole
75  {
76  /// Integral base type of enumeration.
77  typedef char Base;
78 
79  /// List of known feed roles.
80  enum Enum
81  {
82  /// Origin is unknown or lost
84 
85  /// FeedA
87 
88  /// FeedB
89  FeedB
90  };
91  };
92 
93  struct DataSource
94  {
95  /// Time when the packet was received by Handler from UDP, in system ticks, @see Time.h
97 
98  /// Time when the packet was originally received by Handler from UDP
99  /// Valid only for backtesting
101 
102  /// Packet sequence number
104 
105  /// Packet message number
107 
108  /// Indicates whether a message is last in the packet
110 
111  /// Time when market data feed handler writes packet on the wire.
112  UInt64 sendingTime;
113 
114  /// Current load of system.
115  ///
116  /// @note Time difference between the incoming ETS-order/quote
117  /// and the time the market data is written to the socket. This
118  /// information is provided for the incremental feed of Eurex EMDI only.
120 
121  /// Unique id for a sender.
123 
124  /// Sending partition.
125  ///
126  /// @note For EMDI feed messages only.
127  PartitionId partitionId;
128 
129  /// Product identifier
130  ///
131  /// @note For EOBI feed messages only.
132  MarketSegmentId marketSegmentId;
133 
134  /// An indicator whether the atomic unit of work fits into one datagram
135  ///
136  /// @note For EOBI feed messages only.
138 
139  /// An origin of the packet
141  Origin origin;
142 
143  ///
144  bool cached;
145  };
146 
147  /// Exposes list of leg sides
148  struct ONIXS_EUREX_EMDI_API LegSide
149  {
150  enum Enum
151  {
152  /// Used to identify absence of value.
153  Undefined = -1,
154 
155  /// Buy
156  Buy = 1,
157 
158  /// Sell
159  Sell = 2,
160  };
161  };
162 
163  /// Exposes list of available security statuses
164  struct ONIXS_EUREX_EMDI_API SecurityStatus
165  {
166  enum Enum
167  {
168  /// Used to identify absence of value.
169  Undefined = -1,
170 
171  /// Defines if product is traded on on NTA.
172  Active = 0,
173 
174  /// Inactive
175  Inactive = 1,
176 
177  /// Expired
178  Expired = 2,
179 
180  ///
181  KnockedOut = 3,
182 
183  ///
184  KnockOutRevoked = 4,
185 
186  /// Suspended
187  Suspended = 5,
188 
189  /// Defines if product is still traded on "Eurex classic"
190  Published = 6,
191 
192  ///
193  PendingDeletion = 7,
194 
195  ///
196  KnockedOutAndSuspended = 8,
197 
198  };
199  };
200 
201  /// Exposes list of available trade session statuses.
202  struct ONIXS_EUREX_EMDI_API TradSesStatus
203  {
204  enum Enum
205  {
206  /// Used to identify absence of value.
207  Undefined = -1,
208 
209  ///
210  Halted = 0,
211 
212  ///
213  Open = 1,
214 
215  ///
216  Closed = 2,
217 
218  ///
219  PreClose = 3,
220  };
221  };
222 
223  ///
224  struct ONIXS_EUREX_EMDI_API ImpliedMarketIndicator
225  {
226  enum Enum
227  {
228  /// Used to identify absence of value.
229  Undefined = -1,
230 
231  /// Not implied
232  NotImplied = 0,
233 
234  /// Both implied in and implied out
235  BothImpliedInAndImpliedOut = 1,
236  };
237  };
238 
239  /// Exposes list of available entry types
240  struct ONIXS_EUREX_EMDI_API MDEntryType
241  {
242  enum Enum
243  {
244  /// Used to identify absence of value.
245  Undefined = -1,
246 
247  /// Bid
248  Bid = 0,
249 
250  /// Offer
251  Offer = 1,
252 
253  /// Trade
254  Trade = 2,
255 
256  /// Empty book
257  EmptyBook = 3,
258 
259  /// Auction clearing price
260  AuctionClearingPrice = 4,
261 
262  /// Settlement Price
263  SettlementPrice = 5,
264 
265  /// Open Interest
267 
268  ///Trade Volume
269  TradeVolume = 7,
270 
271  ///Market Bid
272  MarketBid = 8,
273 
274  ///Market Offer
275  MarketOffer = 9,
276 
277  ///Imbalance
278  Imbalance = 10,
279  };
280  };
281 
282  struct ONIXS_EUREX_EMDI_API QuoteCondition
283  {
284  enum Enum
285  {
286  /// Used to identify absence of value.
287  Undefined = -1,
288 
289  // Crossed,
290  Crossed = 0,
291 
292  // OrderImbalance,
293  OrderImbalance = 1,
294  };
295  };
296 
297  /// Exposes list of available trade types
298  struct ONIXS_EUREX_EMDI_API TrdType
299  {
300  // The trade type enum entries do not use numeric values
301  // mentioned in documentation. Instead they are identified by
302  // ordinal (starting from zero) preserving the order in the doc.
303 
304  enum Enum
305  {
306  /// Used to identify absence of value.
307  Undefined = -1,
308 
309  /// Regular Trade
310  RegularTrade = 0,
311 
312  /// Block trade
314 
315  /// Exchange for Physical
317 
318  /// Exchange for swap
320 
321  ///
323 
324  /// Exchange basis facility
326 
327  /// Vola trade
329 
330  /// Exchange for Physical Fin trade
332 
333  /// EFPIndexFutures trade
335 
336  ///
338 
339  ///
341 
342  ///
344 
345  ///
347 
348  /// Opening auction trade
350 
351  /// Intraday auction trade
353 
354  /// Volatility auction trade
356 
357  /// Closing auction trade
359 
360  /// Cross auction trade
362 
363  ///
365 
366  ///
367  LiquidityImprovementCross
368  };
369 
370  static std::string toString (Enum value);
371  };
372 
373  /// Exposes list of available trading session IDs
374  struct ONIXS_EUREX_EMDI_API TradingSessionId
375  {
376  enum Enum
377  {
378  /// Used to identify absence of value.
379  Undefined = -1,
380 
381  /// Day
382  Day = 0,
383 
384  /// Morning
385  Morning = 1,
386 
387  /// Evening
388  Evening = 2,
389 
390  /// After-Hours
391  AfterHours = 3,
392 
393  /// Holiday
394  Holiday = 4,
395  };
396  };
397 
398  /// Exposes list of available trading session sub IDs
399  struct ONIXS_EUREX_EMDI_API TradingSessionSubID
400  {
401  enum Enum
402  {
403  /// Used to identify absence of value.
404  Undefined = -1,
405 
406  /// PreTrading
407  PreTrading = 0,
408 
409  /// Continuous
410  Continuous = 1,
411 
412  /// Closing
413  Closing = 2,
414 
415  /// PostTrading
416  PostTrading = 3,
417 
418  /// ScheduledIntradayAuction
419  ScheduledIntradayAuction = 4,
420 
421  /// Quiescent
422  Quiescent = 5,
423 
424  /// AnyAuction
425  AnyAuction = 6,
426 
427  /// ContinuousAuctionIssuer
428  ContinuousAuctionIssuer = 7,
429 
430  /// ContinuousAuctionSpecialist
431  ContinuousAuctionSpecialist
432  };
433  };
434 
435  ///
436  struct ONIXS_EUREX_EMDI_API TradingStyle
437  {
438  enum Enum
439  {
440  /// Used to identify absence of value.
441  Undefined = -1,
442 
443  ///
444  Regular = 0,
445 
446  ///
447  TRF_TAC = 1,
448 
449  //
450  TRF_TAM = 2,
451 
452  ///
453  MOC = 3
454  };
455  };
456 
457  /// Exposes list of available security trading statuses
458  struct ONIXS_EUREX_EMDI_API SecurityTradingStatus
459  {
460  enum Enum
461  {
462  /// Used to identify absence of value.
463  Undefined = -1,
464 
465  /// Trading Halt
466  TradingHalt = 0,
467 
468  /// Closed
469  Closed = 1,
470 
471  /// Restricted
472  Restricted = 2,
473 
474  /// Book
475  Book = 3,
476 
477  /// Continuous
478  Continuous = 4,
479 
480  /// Opening auction
481  OpeningAuction = 5,
482 
483  /// Opening auction freeze
484  OpeningAuctionFreeze = 6,
485 
486  /// Intraday auction
487  IntradayAuction = 7,
488 
489  /// Intraday auction freeze
490  IntradayAuctionFreeze = 8,
491 
492  /// Circuit breaker auction
493  CircuitBreakerAuction = 9,
494 
495  /// Circuit breaker auction freeze
496  CircuitBreakerAuctionFreeze = 10,
497 
498  /// Closing auction
499  ClosingAuction = 11,
500 
501  /// Closing auction freeze
502  ClosingAuctionFreeze = 12,
503 
504  /// CIPO Auction
505  IPOAuction = 13,
506 
507  /// IPO Auction Freeze
508  IPOAuctionFreeze = 14,
509 
510  ///
512 
513  ///
515 
516  ///
518 
519  ///
521 
522  ///
524 
525  ///
526  CircuitBreakerAuctionTriggeredByStaticLimitBreachFreeze
527  };
528  };
529 
530  ///
531  struct ONIXS_EUREX_EMDI_API SecurityTradingEvent
532  {
533  enum Enum
534  {
535  /// Used to identify absence of value.
536  Undefined = -1,
537 
538  ///
539  None = 0,
540 
541  ///
542  PriceVolatilityAuctionIsExtended = 1,
543 
544  ///
545  PriceVolatilityAuctionIsExtendedAgain = 2,
546  };
547  };
548 
549  /// Exposes list of available trade conditions
550  struct ONIXS_EUREX_EMDI_API TradeCondition
551  {
552  enum Enum
553  {
554  /// Used to identify absence of value.
555  Undefined = 0,
556 
557  /// Exchange last
558  ExchangeLast = 1,
559 
560  /// Opening price
561  OpeningPrice = 2,
562 
563  /// High price
564  HighPrice = 4,
565 
566  /// Low price
567  LowPrice = 8,
568 
569  /// Official closing price
570  OfficialClosingPrice = 16,
571 
572  /// Last auction price
573  LastAuctionPrice = 32,
574 
575  /// Out of sequence ETH
576  OutOfSequenceETH = 64,
577 
578  /// Previous Closing Price
579  PreviousClosingPrice = 128,
580 
581  /// Volume Only
582  VolumeOnly = 256,
583 
584  ///
585  TradingOnTermsOfIssue = 512,
586 
587  ///
588  SpecialAuction = 1024,
589 
590  ///
591  TradeAtClose = 2048,
592 
593  ///
594  Retail = 4096,
595 
596  ///
597  MidpointPrice = 8192
598  };
599  };
600 
601  ///
602  struct ONIXS_EUREX_EMDI_API MidpointTrading
603  {
604  enum Enum
605  {
606  ///
607  Disabled = 0,
608 
609  ///
610  Enabled = 1,
611 
612  /// Used to identify absence of value.
613  Undefined = -1,
614  };
615  };
616 
617  ///
618  struct ONIXS_EUREX_EMDI_API SecurityClassificationReasonType
619  {
620  enum Enum
621  {
622  ///
623  Fee = 0,
624 
625  ///
626  CreditControls = 1,
627 
628  ///
629  Margin = 2,
630 
631  ///
632  EntitlementOrEligibility = 3,
633 
634  ///
635  MarketData = 4,
636 
637  ///
638  AccountSelection = 5,
639 
640  ///
641  DeliveryProcess = 6,
642 
643  ///
644  Sector = 7,
645 
646  /// Used to identify absence of value.
647  Undefined = -1,
648  };
649  };
650 
651 
652  ///
653  struct ONIXS_EUREX_EMDI_API SecurityClassificationValueType
654  {
655  enum Enum
656  {
657  ///
658  EligibleForAllTradingActivities = 1,
659 
660  ///
661  NotEligibleForOTCTradeUpload = 2,
662 
663  ///
664  EligibleOnlyForOTCTradeUpload = 3,
665 
666  /// Used to identify absence of value.
667  Undefined = -1,
668  };
669  };
670 
671 
672  struct ONIXS_EUREX_EMDI_API TradeConditionSet
673  {
674  explicit
675  TradeConditionSet (UInt64 value)
676  : value_ (value)
677  {}
678 
679  bool contain (TradeCondition::Enum value) const
680  {
681  return (value_ & value) != 0;
682  }
683 
684  bool containExchangeLast() const
685  {
686  return contain (TradeCondition::ExchangeLast);
687  }
688  bool containOpeningPrice() const
689  {
690  return contain (TradeCondition::OpeningPrice);
691  }
692  bool containHighPrice() const
693  {
694  return contain (TradeCondition::HighPrice);
695  }
696  bool containLowPrice() const
697  {
698  return contain (TradeCondition::LowPrice);
699  }
701  {
702  return contain (TradeCondition::OfficialClosingPrice);
703  }
705  {
706  return contain (TradeCondition::LastAuctionPrice);
707  }
709  {
710  return contain (TradeCondition::OutOfSequenceETH);
711  }
713  {
714  return contain (TradeCondition::PreviousClosingPrice);
715  }
716  bool containVolumeOnly() const
717  {
718  return contain (TradeCondition::VolumeOnly);
719  }
720  bool containRetail() const
721  {
722  return contain (TradeCondition::Retail);
723  }
725  {
727  }
729  {
730  return contain (TradeCondition::SpecialAuction);
731  }
732  bool containTradeAtClose() const
733  {
734  return contain(TradeCondition::TradeAtClose);
735  }
736  bool containMidpointPrice() const
737  {
738  return contain(TradeCondition::MidpointPrice);
739  }
740 
741  std::string toString() const;
742 
743  private:
744  UInt64 value_;
745  };
746 
747  /// Exposes list of available origin types
748  struct ONIXS_EUREX_EMDI_API MDOriginType
749  {
750  enum Enum
751  {
752  /// Used to identify absence of value.
753  Undefined = -1,
754 
755  ///
756  Book = 0,
757 
758  ///
759  OffBook = 1,
760  };
761  };
762 
763  /// Exposes list of available update actions
764  struct ONIXS_EUREX_EMDI_API MDUpdateAction
765  {
766  enum Enum
767  {
768  /// Used to identify absence of value.
769  Undefined = -1,
770 
771  /// New
772  New = 0,
773 
774  /// Change
775  Change = 1,
776 
777  /// Delete
778  Delete = 2,
779 
780  /// DeleteThru
781  DeleteThru = 3,
782 
783  /// DeleteFrom
784  DeleteFrom = 4,
785 
786  /// Overlay
787  Overlay = 5
788  };
789  };
790 
791  /// Exposes list of available aggressor sides
792  struct ONIXS_EUREX_EMDI_API Side
793  {
794  enum Enum
795  {
796  /// Used to identify absence of value.
797  Undefined = -1,
798 
799  /// Buy
800  Buy = 1,
801 
802  /// Sell
803  Sell = 2,
804  };
805  };
806 
807  /// Exposes list of available market segment statuses.
808  struct ONIXS_EUREX_EMDI_API MarketSegmentStatus
809  {
810  enum Enum
811  {
812  /// Used to identify absence of value.
813  Undefined = -1,
814 
815  /// Defines if product is traded on on NTA.
816  Active = 0,
817 
818  /// Inactive
819  Inactive = 1,
820 
821  /// Defines if product is still traded on "Eurex classic"
822  Published = 2,
823  };
824  };
825 
826  /// Exposes list of available instrument types for tick rule.
827  struct ONIXS_EUREX_EMDI_API InstrumentType
828  {
829  enum Enum
830  {
831  /// Used to identify absence of value.
832  Undefined = -1,
833 
834  /// Simple instrument
835  SimpleInstrument = 1,
836 
837  /// Standard option strategy
838  StandardOptionStrategy = 2,
839 
840  /// Non standard option strategy
841  NonStandardOptionStrategy = 3,
842 
843  /// Volatility strategy
844  VolatilityStrategy = 4,
845 
846  /// Futures spread
847  FuturesSpread = 5,
848 
849  /// Inter Product Spread
850  InterProductSpread = 6,
851 
852  /// Standard Futures Strategy
853  StandardFuturesStrategy = 7,
854 
855  /// Pack And Bundle
856  PackAndBundle = 8,
857 
858  /// Strip
859  Strip = 9,
860 
861  /// Flexible
862  Flexible = 10,
863 
864  /// Commodity Strips
865  CommodityStrips = 11,
866 
867  /// Scaled Simple Instrument
868  ScaledSimpleInstrument = 12,
869 
870  /// Non Standard Volatility Strategy
871  NonStandardVolatilityStrategy = 13,
872 
873  /// Total Return Future Strategy
874  TotalReturnFutureStrategy = 14
875  };
876  };
877 
878  /// Exposes list of available book types.
879  struct ONIXS_EUREX_EMDI_API BookType
880  {
881  enum Enum
882  {
883  /// Used to identify absence of value.
884  Undefined = -1,
885 
886  /// Top Of Book
887  TopOfBook = 0,
888 
889  /// Price Depth
890  PriceDepth = 1,
891 
892  /// Order Depth
893  OrderDepth = 2,
894  };
895  };
896 
897  /// Exposes list of available sub book types.
898  struct ONIXS_EUREX_EMDI_API SubBookType
899  {
900  enum Enum
901  {
902  /// Used to identify absence of value.
903  Undefined = -1,
904 
905  /// Price Depth
906  IPSImpliedVolumeWithoutQuantityRestriction = 0,
907 
908  /// Order Depth
909  IPSImpliedVolumeWithQuantityRestriction = 1,
910  };
911  };
912 
913  /// Indicator for stressed market conditions.
914  struct ONIXS_EUREX_EMDI_API MarketCondition
915  {
916  enum Enum
917  {
918  /// Used to identify absence of value.
919  Undefined = -1,
920 
921  /// Normal
922  Normal = 0,
923 
924  /// Stressed
925  Stressed = 1
926  };
927  };
928 
929  /// A trade has to be flagged as "algorithmic", if at least one of the
930  /// matched orders was submitted by a trading algorithm.Applicable
931  /// for cash market products only.
932  struct ONIXS_EUREX_EMDI_API AlgorithmicTradeIndicator
933  {
934  enum Enum
935  {
936  /// Used to identify absence of value.
937  Undefined = -1,
938 
939  /// Algorithmic Trade
940  AlgorithmicTrade = 1
941  };
942  };
943 
944  /// MultiLegReportingType
945  struct ONIXS_EUREX_EMDI_API MultiLegReportingType
946  {
947  enum Enum
948  {
949  /// Used to identify absence of value.
950  Undefined = -1,
951 
952  /// Single Security
953  SingleSecurity = 1,
954 
955  /// Individual Leg Of A MultiLeg Security
956  IndividualLegOfMultiLegSecurity = 2,
957 
958  /// Multi Leg Security
959  MultiLegSecurity = 3
960  };
961  };
962 
963  /// MultiLegPriceModel
964  struct ONIXS_EUREX_EMDI_API MultiLegPriceModel
965  {
966  enum Enum
967  {
968  /// Used to identify absence of value.
969  Undefined = -1,
970 
971  /// Standard
972  Standard = 0,
973 
974  /// User Defined
975  UserDefined = 2
976  };
977  };
978 
979 
980  /// Exposes list of available sold out indicators.
981  struct ONIXS_EUREX_EMDI_API SoldOutIndicator
982  {
983  enum Enum
984  {
985  /// Used to identify absence of value.
986  Undefined = -1,
987 
988  ///
989  SoldOut = 1,
990  };
991  };
992 
993  ///
994  struct ONIXS_EUREX_EMDI_API LastFragment
995  {
996  enum Enum
997  {
998  /// Used to identify absence of value.
999  Undefined = -1,
1000 
1001  /// NotLastMessage
1002  NotLastMessage = 0,
1003 
1004  /// LastMessage
1006  };
1007  };
1008 
1009  namespace EOBI
1010  {
1011  /// Alias for Quantity Type
1012  /// Quantity in integer format including 4 decimals.
1013  typedef Int64 QuantityType;
1014 
1015  struct ONIXS_EUREX_EMDI_API AggressorSide // UInt8
1016  {
1017  enum Enum
1018  {
1019  /// Used to identify absence of value
1020  NoValue = 0xFF,
1021 
1022  /// Triggered by the buy side
1023  Buy = 1,
1024 
1025  /// Triggered by the sell side
1026  Sell = 2,
1027  };
1028 
1029  static std::string toString (Enum value);
1030  };
1031 
1032  struct ONIXS_EUREX_EMDI_API ApplSeqResetIndicator // UInt8
1033  {
1034  enum Enum
1035  {
1036  NoValue = 0xFF,
1037  NoReset = 0,
1038  Reset = 1,
1039  };
1040 
1041  static std::string toString (Enum value);
1042  };
1043 
1044  struct ONIXS_EUREX_EMDI_API CompletionIndicator // UInt8
1045  {
1046  enum Enum
1047  {
1048  NoValue = 0xFF,
1049  Incomplete = 0,
1050  Complete = 1,
1051  };
1052 
1053  static std::string toString (Enum value);
1054  };
1055 
1056  struct ONIXS_EUREX_EMDI_API FastMarketIndicator // UInt8
1057  {
1058  enum Enum
1059  {
1060  NoValue = 0xFF,
1061  No = 0,
1062  Yes = 1,
1063  };
1064 
1065  static std::string toString (Enum value);
1066  };
1067 
1068  struct ONIXS_EUREX_EMDI_API ImpliedMarketIndicator // UInt8
1069  {
1070  enum Enum
1071  {
1072  NoValue = 0xFF,
1073  NotImplied = 0,
1074  ImpliedInOut = 3,
1075  };
1076 
1077  static std::string toString (Enum value);
1078  };
1079 
1080  struct ONIXS_EUREX_EMDI_API LegSecurityIDSource // String(1)
1081  {
1082  enum Enum
1083  {
1084  NoValue = 0,
1085  Marketplace = 'M',
1086  };
1087 
1088  static std::string toString (Enum value);
1089  };
1090 
1091  struct ONIXS_EUREX_EMDI_API LegSide // UInt8
1092  {
1093  enum Enum
1094  {
1095  NoValue = 0xFF,
1096  Buy = 1,
1097  Sell = 2,
1098  };
1099 
1100  static std::string toString (Enum value);
1101  };
1102 
1103  struct ONIXS_EUREX_EMDI_API RelatedPriceType // uint8_t
1104  {
1105  enum Enum
1106  {
1107  NoValue = 0xFF,
1108  Basis = 1
1109  };
1110 
1111  static std::string toString (Enum value);
1112  };
1113 
1114  struct ONIXS_EUREX_EMDI_API TradingStyle // uint8_t
1115  {
1116  enum Enum
1117  {
1118  NoValue = 0xFF,
1119  Regular = 1,
1120  TAC = 2,
1121  TAM = 3,
1122  MOC = 4,
1123  };
1124 
1125  static std::string toString (Enum value);
1126  };
1127 
1128 
1129  struct ONIXS_EUREX_EMDI_API MDEntryType // UInt8
1130  {
1131  enum Enum
1132  {
1133  NoValue = 0xFF,
1134  Trade = 2,
1135  OpeningPrice = 4,
1136  ClosingPrice = 5,
1137  HighPrice = 7,
1138  LowPrice = 8,
1139  TradeVolume = 66,
1140  PreviousClosingPrice = 101,
1141  OpeningAuction = 200,
1142  IntradayAuction = 201,
1143  CircuitBreakerAuction = 202,
1144  ClosingAuction = 203,
1145  IPOAuction = 204,
1146  };
1147 
1148  static std::string toString (Enum value);
1149  };
1150 
1151  struct ONIXS_EUREX_EMDI_API MDReportEvent // UInt8
1152  {
1153  enum Enum
1154  {
1155  NoValue = 0xFF,
1156  ScopeDefinition = 0,
1157  };
1158  };
1159 
1160  struct ONIXS_EUREX_EMDI_API MDUpdateAction // UInt8
1161  {
1162  enum Enum
1163  {
1164  NoValue = 0xFF,
1165  New = 0,
1166  Change = 1,
1167  Delete = 2,
1168  Overlay = 5,
1169  };
1170  };
1171 
1172  struct ONIXS_EUREX_EMDI_API MarketDataType // UInt8
1173  {
1174  enum Enum
1175  {
1176  NoValue = 0xFF,
1177  OrderBookMaintenance = 1,
1178  OrderBookExecution = 2,
1181  AuctionBBO = 5,
1183  CrossTradeAnnouncement = 7,
1185  MarketSegmentSnapshot = 9,
1186  SingleInstrumentSnapshot = 10,
1187  OrderBookSnapshot = 11,
1188  MatchEvent = 12,
1190 
1191  ComplexInstrument = 14,
1192  TesTradeReport = 15,
1193  HhIndex = 16,
1194  FlexibleInstrument = 17,
1195  };
1196  };
1197 
1198  struct ONIXS_EUREX_EMDI_API MatchSubType // UInt8
1199  {
1200  enum Enum
1201  {
1202  NoValue = 0xFF,
1203  OpeningAuction = 1,
1204  ClosingAuction = 2,
1205  IntradayAuction = 3,
1206  CircuitBreakerAuction = 4,
1207  IPOAuction = 5,
1208  };
1209 
1210  static std::string toString (Enum value);
1211  };
1212 
1213  struct ONIXS_EUREX_EMDI_API MatchType // UInt8
1214  {
1215  enum Enum
1216  {
1217  NoValue = 0xFF,
1218  Manual = 3,
1219  Uncrossing = 5,
1220  Auction = 7,
1221  LiquidityImprovementCross = 13,
1222  ContinuousAuction = 14
1223  };
1224 
1225  static std::string toString (Enum value);
1226  };
1227 
1228  struct ONIXS_EUREX_EMDI_API NoMarketSegments // UInt8
1229  {
1230  enum Enum
1231  {
1232  NoValue = 0xFF,
1233  One = 1,
1234  };
1235 
1236  static std::string toString (Enum value);
1237  };
1238 
1239  struct ONIXS_EUREX_EMDI_API ProductComplex // UInt8
1240  {
1241  enum Enum
1242  {
1243  NoValue = 0xFF,
1244 
1245  SimpleInstrument = 1,
1246  StandardOptionStrategy = 2,
1247  NonStandardOptionStrategy = 3,
1248  VolatilityStrategy = 4,
1249  FuturesSpread = 5,
1250  InterProductSpread = 6,
1251  StandardFuturesStrategy = 7,
1252  PackAndBundle = 8,
1253  Strip = 9,
1254  FlexibleInstrument = 10,
1255  CommodityStrip = 11,
1256  ScaledSimpleInstrument = 12,
1257  NonStandardVolatilityStrategy = 13,
1258  TotalReturnFutureStrategy = 14
1259  };
1260 
1261  static std::string toString (Enum value);
1262  };
1263 
1264  struct ONIXS_EUREX_EMDI_API SecurityIDSource // String(1)
1265  {
1266  enum Enum
1267  {
1268  NoValue = 0,
1269  Marketplace = 'M',
1270  };
1271 
1272  static std::string toString (Enum value);
1273  };
1274 
1275  struct ONIXS_EUREX_EMDI_API SecurityStatus // UInt8
1276  {
1277  enum Enum
1278  {
1279  NoValue = 0xFF,
1280  Active = 1,
1281  Inactive = 2,
1282  Expired = 4,
1283  KnockedOut = 6,
1284  KnockOutRevoked = 7,
1285  Suspended = 9,
1286  PendingDeletion = 11,
1287  KnockedOutAndSuspended = 12,
1288  };
1289 
1290  static std::string toString (Enum value);
1291  };
1292 
1293  struct ONIXS_EUREX_EMDI_API SecurityTradingStatus // UInt8
1294  {
1295  enum Enum
1296  {
1297  NoValue = 0xFF,
1298 
1299  TradingHalt = 2,
1300  MarketImbalanceBuy = 7,
1301  MarketImbalanceSell = 8,
1302  Closed = 200,
1303  Restricted = 201,
1304  Book = 202,
1305  Continuous = 203,
1306  OpeningAuction = 204,
1307  OpeningAuctionFreeze = 205,
1308  IntradayAuction = 206,
1309  IntradayAuctionFreeze = 207,
1310  CircuitBreakerAuction = 208,
1311  CircuitBreakerAuctionFreeze = 209,
1312  ClosingAuction = 210,
1313  ClosingAuctionFreeze = 211,
1314  IPOAuction = 212,
1315  IPOAuctionFreeze = 213,
1316  PreCall = 214,
1317  Call = 215,
1318  Freeze = 216,
1319  TradeAtClose = 217,
1320  CircuitBreakerAuctionTriggeredByStaticLimitBreach = 220,
1321  CircuitBreakerAuctionTriggeredByStaticLimitBreachFreeze = 221
1322  };
1323 
1324  static std::string toString (Enum value);
1325  };
1326 
1327  struct ONIXS_EUREX_EMDI_API SecurityType // String(4)
1328  {
1329  enum Enum
1330  {
1331  NoValue = 0,
1332  Option = 1, // OPT,
1333  Future = 2, // FUT,
1334  MultiLeg = 3 // MLEG,
1335  };
1336 
1337  static std::string toString (Enum value);
1338  };
1339 
1340  struct ONIXS_EUREX_EMDI_API SecurityUpdateAction // String(1)
1341  {
1342  enum Enum
1343  {
1344  NoValue = 0,
1345  Add = 'A',
1346  Delete = 'D',
1347  };
1348 
1349  static std::string toString (Enum value);
1350  };
1351 
1352  struct ONIXS_EUREX_EMDI_API Side // UInt8
1353  {
1354  enum Enum
1355  {
1356  NoValue = 0xFF,
1357  Buy = 1,
1358  Sell = 2,
1359  };
1360 
1361  static std::string toString (Enum value);
1362  };
1363 
1364  /// Indicates whether a synthetic match is occurred.
1365  struct ONIXS_EUREX_EMDI_API TradeCondition // UInt16
1366  {
1367  enum Enum
1368  {
1369  NoValue = 0xFFFF,
1370  ImpliedTrade = 1,
1371  OutOfSequence = 107,
1372  MidpointPrice = 155,
1373  TradingOnTermsOfIssue = 156,
1374  SpetialAuction = 596,
1375  TradeAtClose = 624,
1376  Retail = 743
1377  };
1378 
1379  static std::string toString (Enum value);
1380  };
1381 
1382  struct ONIXS_EUREX_EMDI_API TradSesEvent // UInt8
1383  {
1384  enum Enum
1385  {
1386  NoValue = 0xFF,
1387  TBD = 0,
1388  StatusChange = 3,
1389  };
1390 
1391  static std::string toString (Enum value);
1392  };
1393 
1394  struct ONIXS_EUREX_EMDI_API TradSesStatus // UInt8
1395  {
1396  enum Enum
1397  {
1398  NoValue = 0xFF,
1399  Halted = 1,
1400  Open = 2,
1401  Closed = 3,
1402  };
1403 
1404  static std::string toString (Enum value);
1405  };
1406 
1407  struct ONIXS_EUREX_EMDI_API TradingSessionID // UInt8
1408  {
1409  enum Enum
1410  {
1411  NoValue = 0xFF,
1412  Day = 1,
1413  Morning = 3,
1414  Evening = 5,
1415  AfterHours = 6,
1416  Holiday = 7,
1417  };
1418 
1419  static std::string toString (Enum value);
1420  };
1421 
1422  struct ONIXS_EUREX_EMDI_API TradingSessionSubID // UInt8
1423  {
1424  enum Enum
1425  {
1426  NoValue = 0xFF,
1427  PreTrading = 1,
1428  Continuous = 3,
1429  Closing = 4,
1430  PostTrading = 5,
1431  Quiescent = 7,
1432  };
1433 
1434  static std::string toString (Enum value);
1435  };
1436 
1437 
1438  struct ONIXS_EUREX_EMDI_API PotentialSecurityTradingEvent // UInt8
1439  {
1440  enum Enum
1441  {
1442  NoValue = 0xFF,
1443 
1444  /// None
1445  None = 0,
1446 
1447  /// Price volatility, auction is extended
1448  PriceVolatilityAuctionIsExtended = 10,
1449  };
1450 
1451  static std::string toString (Enum value);
1452  };
1453 
1454  struct ONIXS_EUREX_EMDI_API OrdType // UInt8
1455  {
1456  enum Enum
1457  {
1458  NoValue = 0xFF,
1459 
1460  /// Market Order
1461  MarketOrder = 1,
1462  };
1463 
1464  static std::string toString(Enum value);
1465  };
1466 
1467  struct ONIXS_EUREX_EMDI_API SecurityTradingEvent // UInt8
1468  {
1469  enum Enum
1470  {
1471  NoValue = 0xFF,
1472 
1473  /// Price volatility, auction is extended
1474  PriceVolatilityAuctionIsExtended = 10,
1475 
1476  /// Price volatility, auction is extended again
1477  PriceVolatilityAuctionIsExtendedAgain = 11,
1478  };
1479 
1480  static std::string toString (Enum value);
1481  };
1482 
1483  struct ONIXS_EUREX_EMDI_API OrderType // UInt8
1484  {
1485  enum Enum
1486  {
1487  NoValue = 0xFF,
1488 
1489  ///
1490  MarketOrder = 1,
1491  };
1492 
1493  static std::string toString (Enum value);
1494  };
1495 
1496  struct ONIXS_EUREX_EMDI_API AlgorithmicTradeIndicator // UInt8
1497  {
1498  enum Enum
1499  {
1500  NoValue = 0xFF,
1501 
1502  ///
1503  AlgorithmicTrade = 1,
1504  };
1505 
1506  static std::string toString(Enum value);
1507  };
1508 
1509  struct ONIXS_EUREX_EMDI_API MarketCondition // UInt8
1510  {
1511  enum Enum
1512  {
1513  NoValue = 0xFF,
1514 
1515  ///
1516  Normal = 0,
1517 
1518  ///
1519  Stressed = 1
1520  };
1521 
1522  static std::string toString(Enum value);
1523  };
1524 
1525  struct ONIXS_EUREX_EMDI_API LegSecurityType // UInt8
1526  {
1527  enum Enum
1528  {
1529  NoValue = 0xFF,
1530 
1531  ///
1532  LegSecurityMultiLeg = 0,
1533 
1534  ///
1535  LegSecurityUnderlyingLeg = 1
1536  };
1537 
1538  static std::string toString(Enum value);
1539  };
1540 
1541  struct ONIXS_EUREX_EMDI_API SoldOutIndicator // UInt8
1542  {
1543  enum Enum
1544  {
1545  NoValue = 0xFF,
1546 
1547  ///
1548  SoldOut = 1,
1549  };
1550 
1551  static std::string toString(Enum value);
1552  };
1553 
1554  struct ONIXS_EUREX_EMDI_API SecurityMassStatus // UInt8
1555  {
1556  enum Enum
1557  {
1558  NoValue = 0xFF,
1559 
1560  ///
1561  Active = 1,
1562 
1563  ///
1564  Inactive = 2,
1565 
1566  ///
1567  Expired = 4,
1568 
1569  ///
1570  KnockedOut = 6,
1571 
1572  ///
1573  KnockOutRevoked = 7,
1574 
1575  ///
1576  Suspended = 9,
1577 
1578  ///
1579  PendingDeletion = 11,
1580 
1581  ///
1582  KnockedOutAndSuspended = 12
1583  };
1584 
1585  static std::string toString(Enum value);
1586  };
1587 
1588  struct ONIXS_EUREX_EMDI_API SecurityMassTradingStatus // UInt8
1589  {
1590  enum Enum
1591  {
1592  NoValue = 0xFF,
1593 
1594  ///
1595  TradingHalt = 2,
1596 
1597  ///
1598  MarketImbalanceBuy = 7,
1599 
1600  ///
1601  MarketImbalanceSell = 8,
1602 
1603  ///
1604  Closed = 200,
1605 
1606  ///
1607  Restricted = 201,
1608 
1609  ///
1610  Book = 202,
1611 
1612  ///
1613  Continuous = 203,
1614 
1615  ///
1616  OpeningAuction = 204,
1617 
1618  ///
1619  OpeningAuctionFreeze = 205,
1620 
1621  ///
1622  IntradayAuction = 206,
1623 
1624  ///
1625  IntradayAuctionFreeze = 207,
1626 
1627  ///
1628  CircuitBreakerAuction = 208,
1629 
1630  ///
1631  CircuitBreakerAuctionFreeze = 209,
1632 
1633  ///
1634  ClosingAuction = 210,
1635 
1636  ///
1637  ClosingAuctionFreeze = 211,
1638 
1639  ///
1640  IPOAuction = 212,
1641 
1642  ///
1643  IPOAuctionFreeze = 213,
1644 
1645  ///
1646  PreCall = 214,
1647 
1648  ///
1649  Call = 215,
1650 
1651  ///
1652  Freeze = 216,
1653 
1654  ///
1655  TradeAtClose = 217
1656  };
1657 
1658  static std::string toString(Enum value);
1659  };
1660 
1661  struct ONIXS_EUREX_EMDI_API MassMarketCondition // UInt8
1662  {
1663  enum Enum
1664  {
1665  NoValue = 0xFF,
1666 
1667  ///
1668  Normal = 0,
1669 
1670  ///
1671  Stressed = 1
1672  };
1673 
1674  static std::string toString(Enum value);
1675  };
1676 
1677  struct ONIXS_EUREX_EMDI_API SecurityMassTradingEvent // UInt8
1678  {
1679  enum Enum
1680  {
1681  NoValue = 0xFF,
1682 
1683  /// Price volatility, auction is extended
1684  PriceVolatilityAuctionIsExtended = 10,
1685 
1686  /// Price volatility, auction is extended again
1687  PriceVolatilityAuctionIsExtendedAgain = 11
1688  };
1689 
1690  static std::string toString(Enum value);
1691  };
1692 
1693  struct ONIXS_EUREX_EMDI_API MassSoldOutIndicator // UInt8
1694  {
1695  enum Enum
1696  {
1697  NoValue = 0xFF,
1698 
1699  ///
1700  SoldOut = 1,
1701  };
1702 
1703  static std::string toString(Enum value);
1704  };
1705 
1706 
1707  struct ONIXS_EUREX_EMDI_API LastFragment // UInt8
1708  {
1709  enum Enum
1710  {
1711  NoValue = 0xFF,
1712 
1713  ///
1714  N = 0,
1715 
1716  ///
1717  Y = 1,
1718  };
1719 
1720  static std::string toString(Enum value);
1721  };
1722 
1723  struct ONIXS_EUREX_EMDI_API PutOrCall // UInt8
1724  {
1725  enum Enum
1726  {
1727  NoValue = 0xFF,
1728 
1729  ///
1730  Put = 0,
1731 
1732  ///
1733  Call = 1,
1734  };
1735 
1736  static std::string toString(Enum value);
1737  };
1738 
1739  struct ONIXS_EUREX_EMDI_API ExerciseStyle // UInt8
1740  {
1741  enum Enum
1742  {
1743  NoValue = 0xFF,
1744 
1745  ///
1746  European = 0,
1747 
1748  ///
1749  American = 1,
1750  };
1751 
1752  static std::string toString(Enum value);
1753  };
1754 
1755  struct ONIXS_EUREX_EMDI_API SettlMethod // UInt8
1756  {
1757  enum Enum
1758  {
1759  NoValue = 0xFF,
1760 
1761  ///
1762  Cash = 0,
1763 
1764  ///
1765  Physical = 1,
1766  };
1767 
1768  static std::string toString(Enum value);
1769  };
1770 
1771 
1772  struct ONIXS_EUREX_EMDI_API TrdType // UInt16
1773  {
1774  enum Enum
1775  {
1776  NoValue = 0xFFFF,
1777 
1778  BlockTrade = 1,
1779  ExchangeForPhysical = 2,
1780  EFS = 12,
1781  PortfolioCompressionTrade = 50,
1782  OTC = 54,
1783  ExchangeBasisFacility = 55,
1784  VolaTrade = 1000,
1785  EFPFinTrade = 1001,
1786  EFPIndexFuturesTrade = 1002,
1787  BlockTradeAtMarket = 1004,
1788  XetraEurexEnlightTriggeredTrade = 1006,
1789  BlockQTPIPTrade = 1007,
1790  TradeAtMarket = 1017
1791  };
1792 
1793  static std::string toString(Enum value);
1794  };
1795 
1796  struct ONIXS_EUREX_EMDI_API MultiLegReportingType // UInt8
1797  {
1798  enum Enum
1799  {
1800  NoValue = 0xFF,
1801 
1802  ///
1803  SingleSecurity = 1,
1804 
1805  ///
1806  IndividualLeg = 2,
1807 
1808  ///
1809  MultiLegSecurity = 3,
1810  };
1811 
1812  static std::string toString(Enum value);
1813  };
1814 
1815  struct ONIXS_EUREX_EMDI_API MultiLegPriceModel // UInt8
1816  {
1817  enum Enum
1818  {
1819  NoValue = 0xFF,
1820 
1821  ///
1822  Standard = 0,
1823 
1824  ///
1825  UserDefined = 1,
1826  };
1827 
1828  static std::string toString(Enum value);
1829  };
1830 
1831  struct ONIXS_EUREX_EMDI_API MDOriginType // UInt8
1832  {
1833  enum Enum
1834  {
1835  NoValue = 0xFF,
1836 
1837  ///
1838  Book = 0,
1839 
1840  ///
1841  OffBook = 1,
1842  };
1843 
1844  static std::string toString(Enum value);
1845  };
1846 
1847  struct ONIXS_EUREX_EMDI_API TESTradSesStatus // UInt8
1848  {
1849  enum Enum
1850  {
1851  NoValue = 0xFF,
1852 
1853  ///
1854  Halted = 1,
1855 
1856  ///
1857  Open = 2,
1858 
1859  ///
1860  Closed = 3,
1861 
1862  ///
1863  PreClose = 4,
1864  };
1865 
1866  static std::string toString(Enum value);
1867  };
1868 
1869 
1870  struct ONIXS_EUREX_EMDI_API TESSecurityStatus // UInt8
1871  {
1872  enum Enum
1873  {
1874  NoValue = 0xFF,
1875 
1876  ///
1877  Active = 1,
1878 
1879  ///
1880  Inactive = 2,
1881 
1882  ///
1883  Expired = 4,
1884 
1885  ///
1886  Suspended = 9,
1887  };
1888 
1889  static std::string toString(Enum value);
1890  };
1891 
1892  struct ONIXS_EUREX_EMDI_API TESSecurityMassStatus // UInt8
1893  {
1894  enum Enum
1895  {
1896  NoValue = 0xFF,
1897 
1898  ///
1899  Active = 1,
1900 
1901  ///
1902  Inactive = 2,
1903 
1904  ///
1905  Expired = 4,
1906 
1907  ///
1908  Suspended = 9,
1909  };
1910 
1911  static std::string toString(Enum value);
1912  };
1913 
1914  }
1915  }
1916  }
1917 }
unsigned int SequenceNumber
Alias for sequence numbers.
Exposes list of available trade session statuses.
Definition: Defines.h:202
UInt32 PartitionId
Alias for Partition ID type.
Definition: Defines.h:48
Exposes list of available sold out indicators.
Definition: Defines.h:981
UInt32 MarketDepth
Alias for Market depth type.
Definition: Defines.h:43
UInt32 senderCompID
Unique id for a sender.
Definition: Defines.h:122
Timestamp packetReceptionTime
Time when the packet was received by Handler from UDP, in system ticks,.
Definition: Defines.h:96
Exposes list of available book types.
Definition: Defines.h:879
Indicator for stressed market conditions.
Definition: Defines.h:914
Exposes list of available security trading statuses.
Definition: Defines.h:458
Exposes list of available origin types.
Definition: Defines.h:748
Exposes list of available update actions.
Definition: Defines.h:764
Exposes list of available market segment statuses.
Definition: Defines.h:808
Exposes list of available trade types.
Definition: Defines.h:298
Exposes list of available security statuses.
Definition: Defines.h:164
Exposes list of available trade conditions.
Definition: Defines.h:550
UInt64 sendingTime
Time when market data feed handler writes packet on the wire.
Definition: Defines.h:112
unsigned int UInt32
Definition: Numeric.h:41
Exposes list of available trading session IDs.
Definition: Defines.h:374
Definition: Defines.h:30
SequenceNumber packetSeqNum
Packet sequence number.
Definition: Defines.h:103
const MarketSegmentId UndefinedMarketSegmentId
Definition: Defines.h:45
Int64 SecurityId
Alias for Security Id type.
Definition: Defines.h:51
std::string MarketSegment
Alias for Market Segment type (Product name).
Definition: Defines.h:37
Exposes list of available instrument types for tick rule.
Definition: Defines.h:827
Feed roles (primary, secondary).
Definition: Defines.h:74
NetFeedRole::Enum Origin
An origin of the packet.
Definition: Defines.h:140
char Base
Integral base type of enumeration.
Definition: Defines.h:77
Represents timestamp without time-zone information.
Definition: Timestamp.h:87
Exposes list of available sub book types.
Definition: Defines.h:898
Exchange for Physical Fin trade.
Definition: Defines.h:331
Feed types based on type of market data service.
Definition: Defines.h:57
bool contain(TradeCondition::Enum value) const
Definition: Defines.h:679
Exchange for Physical.
Definition: Defines.h:316
Exposes list of available trading session sub IDs.
Definition: Defines.h:399
bool isLastInPacket
Indicates whether a message is last in the packet.
Definition: Defines.h:109
char Base
Integral base type of enumeration.
Definition: Defines.h:60
Exposes list of available entry types.
Definition: Defines.h:240
UInt32 MarketSegmentId
Alias for Market Segment ID type.
Definition: Defines.h:40
Market recovery for MBP (Market By Price) books.
Definition: Defines.h:69
SequenceNumber packetMessageSeqNum
Packet message number.
Definition: Defines.h:106
Exposes list of available aggressor sides.
Definition: Defines.h:792
UInt64 Quantity
Alias for Quantity type.
Definition: Defines.h:54
Indicates whether a synthetic match is occurred.
Definition: Defines.h:1365
Exposes list of leg sides.
Definition: Defines.h:148
Enum
List of known feed roles.
Definition: Defines.h:80
Enum
Feed types based on type of market data service.
Definition: Defines.h:63