OnixS C++ Eurex T7 Market and Reference Data (EMDI, MDI, RDI, EOBI) Handlers  15.0.2
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  ///
326 
327  /// Exchange basis facility
329 
330  /// Vola trade
332 
333  /// Exchange for Physical Fin trade
335 
336  /// EFPIndexFutures trade
338 
339  ///
341 
342  ///
344 
345  ///
347 
348  ///
350 
351  /// Opening auction trade
353 
354  /// Intraday auction trade
356 
357  /// Volatility auction trade
359 
360  /// Closing auction trade
362 
363  /// Cross auction trade
365 
366  ///
368 
369  ///
370  LiquidityImprovementCross
371  };
372 
373  static std::string toString (Enum value);
374  };
375 
376  /// Exposes list of available trading session IDs
377  struct ONIXS_EUREX_EMDI_API TradingSessionId
378  {
379  enum Enum
380  {
381  /// Used to identify absence of value.
382  Undefined = -1,
383 
384  /// Day
385  Day = 0,
386 
387  /// Morning
388  Morning = 1,
389 
390  /// Evening
391  Evening = 2,
392 
393  /// After-Hours
394  AfterHours = 3,
395 
396  /// Holiday
397  Holiday = 4,
398  };
399  };
400 
401  /// Exposes list of available trading session sub IDs
402  struct ONIXS_EUREX_EMDI_API TradingSessionSubID
403  {
404  enum Enum
405  {
406  /// Used to identify absence of value.
407  Undefined = -1,
408 
409  /// PreTrading
410  PreTrading = 0,
411 
412  /// Continuous
413  Continuous = 1,
414 
415  /// Closing
416  Closing = 2,
417 
418  /// PostTrading
419  PostTrading = 3,
420 
421  /// ScheduledIntradayAuction
422  ScheduledIntradayAuction = 4,
423 
424  /// Quiescent
425  Quiescent = 5,
426 
427  /// AnyAuction
428  AnyAuction = 6,
429 
430  /// ContinuousAuctionIssuer
431  ContinuousAuctionIssuer = 7,
432 
433  /// ContinuousAuctionSpecialist
434  ContinuousAuctionSpecialist
435  };
436  };
437 
438  /// Exposes list of available security trading statuses
439  struct ONIXS_EUREX_EMDI_API SecurityTradingStatus
440  {
441  enum Enum
442  {
443  /// Used to identify absence of value.
444  Undefined = -1,
445 
446  /// Trading Halt
447  TradingHalt = 0,
448 
449  /// Closed
450  Closed = 1,
451 
452  /// Restricted
453  Restricted = 2,
454 
455  /// Book
456  Book = 3,
457 
458  /// Continuous
459  Continuous = 4,
460 
461  /// Opening auction
462  OpeningAuction = 5,
463 
464  /// Opening auction freeze
465  OpeningAuctionFreeze = 6,
466 
467  /// Intraday auction
468  IntradayAuction = 7,
469 
470  /// Intraday auction freeze
471  IntradayAuctionFreeze = 8,
472 
473  /// Circuit breaker auction
474  CircuitBreakerAuction = 9,
475 
476  /// Circuit breaker auction freeze
477  CircuitBreakerAuctionFreeze = 10,
478 
479  /// Closing auction
480  ClosingAuction = 11,
481 
482  /// Closing auction freeze
483  ClosingAuctionFreeze = 12,
484 
485  /// CIPO Auction
486  IPOAuction = 13,
487 
488  /// IPO Auction Freeze
489  IPOAuctionFreeze = 14,
490 
491  ///
493 
494  ///
496 
497  ///
499 
500  ///
501  TradeAtClose
502  };
503  };
504 
505 
506  struct ONIXS_EUREX_EMDI_API SecurityTradingEvent
507  {
508  enum Enum
509  {
510  /// Used to identify absence of value.
511  Undefined = -1,
512 
513  ///
514  None = 0,
515 
516  ///
517  PriceVolatilityAuctionIsExtended = 1,
518 
519  ///
520  PriceVolatilityAuctionIsExtendedAgain = 2,
521  };
522  };
523 
524  /// Exposes list of available trade conditions
525  struct ONIXS_EUREX_EMDI_API TradeCondition
526  {
527  enum Enum
528  {
529  /// Used to identify absence of value.
530  Undefined = 0,
531 
532  /// Exchange last
533  ExchangeLast = 1,
534 
535  /// Opening price
536  OpeningPrice = 2,
537 
538  /// High price
539  HighPrice = 4,
540 
541  /// Low price
542  LowPrice = 8,
543 
544  /// Official closing price
545  OfficialClosingPrice = 16,
546 
547  /// Last auction price
548  LastAuctionPrice = 32,
549 
550  /// Out of sequence ETH
551  OutOfSequenceETH = 64,
552 
553  /// Previous Closing Price
554  PreviousClosingPrice = 128,
555 
556  /// Volume Only
557  VolumeOnly = 256,
558 
559  ///
560  TradingOnTermsOfIssue = 512,
561 
562  ///
563  SpecialAuction = 1024,
564 
565  ///
566  TradeAtClose = 2048,
567 
568  ///
569  Retail = 4096
570  };
571  };
572 
573  struct ONIXS_EUREX_EMDI_API TradeConditionSet
574  {
575  explicit
576  TradeConditionSet (UInt64 value)
577  : value_ (value)
578  {}
579 
580  bool contain (TradeCondition::Enum value) const
581  {
582  return (value_ & value) != 0;
583  }
584 
585  bool containExchangeLast() const
586  {
587  return contain (TradeCondition::ExchangeLast);
588  }
589  bool containOpeningPrice() const
590  {
591  return contain (TradeCondition::OpeningPrice);
592  }
593  bool containHighPrice() const
594  {
595  return contain (TradeCondition::HighPrice);
596  }
597  bool containLowPrice() const
598  {
599  return contain (TradeCondition::LowPrice);
600  }
602  {
603  return contain (TradeCondition::OfficialClosingPrice);
604  }
606  {
607  return contain (TradeCondition::LastAuctionPrice);
608  }
610  {
611  return contain (TradeCondition::OutOfSequenceETH);
612  }
614  {
615  return contain (TradeCondition::PreviousClosingPrice);
616  }
617  bool containVolumeOnly() const
618  {
619  return contain (TradeCondition::VolumeOnly);
620  }
621  bool containRetail() const
622  {
623  return contain (TradeCondition::Retail);
624  }
626  {
628  }
630  {
631  return contain (TradeCondition::SpecialAuction);
632  }
633  bool containTradeAtClose() const
634  {
635  return contain(TradeCondition::TradeAtClose);
636  }
637 
638  std::string toString() const;
639 
640  private:
641  UInt64 value_;
642  };
643 
644  /// Exposes list of available origin types
645  struct ONIXS_EUREX_EMDI_API MDOriginType
646  {
647  enum Enum
648  {
649  /// Used to identify absence of value.
650  Undefined = -1,
651 
652  ///
653  Book = 0,
654 
655  ///
656  OffBook = 1,
657  };
658  };
659 
660  /// Exposes list of available update actions
661  struct ONIXS_EUREX_EMDI_API MDUpdateAction
662  {
663  enum Enum
664  {
665  /// Used to identify absence of value.
666  Undefined = -1,
667 
668  /// New
669  New = 0,
670 
671  /// Change
672  Change = 1,
673 
674  /// Delete
675  Delete = 2,
676 
677  /// DeleteThru
678  DeleteThru = 3,
679 
680  /// DeleteFrom
681  DeleteFrom = 4,
682 
683  /// Overlay
684  Overlay = 5
685  };
686  };
687 
688  /// Exposes list of available aggressor sides
689  struct ONIXS_EUREX_EMDI_API Side
690  {
691  enum Enum
692  {
693  /// Used to identify absence of value.
694  Undefined = -1,
695 
696  /// Buy
697  Buy = 1,
698 
699  /// Sell
700  Sell = 2,
701  };
702  };
703 
704  /// Exposes list of available market segment statuses.
705  struct ONIXS_EUREX_EMDI_API MarketSegmentStatus
706  {
707  enum Enum
708  {
709  /// Used to identify absence of value.
710  Undefined = -1,
711 
712  /// Defines if product is traded on on NTA.
713  Active = 0,
714 
715  /// Inactive
716  Inactive = 1,
717 
718  /// Defines if product is still traded on "Eurex classic"
719  Published = 2,
720  };
721  };
722 
723  /// Exposes list of available instrument types for tick rule.
724  struct ONIXS_EUREX_EMDI_API InstrumentType
725  {
726  enum Enum
727  {
728  /// Used to identify absence of value.
729  Undefined = -1,
730 
731  /// Simple instrument
732  SimpleInstrument = 1,
733 
734  /// Standard option strategy
735  StandardOptionStrategy = 2,
736 
737  /// Non standard option strategy
738  NonStandardOptionStrategy = 3,
739 
740  /// Volatility strategy
741  VolatilityStrategy = 4,
742 
743  /// Futures spread
744  FuturesSpread = 5,
745 
746  /// Inter Product Spread
747  InterProductSpread = 6,
748 
749  /// Standard Futures Strategy
750  StandardFuturesStrategy = 7,
751 
752  /// Pack And Bundle
753  PackAndBundle = 8,
754 
755  /// Strip
756  Strip = 9,
757 
758  /// Flexible
759  Flexible = 10,
760 
761  /// Commodity Strips
762  CommodityStrips = 11,
763  };
764  };
765 
766  /// Exposes list of available book types.
767  struct ONIXS_EUREX_EMDI_API BookType
768  {
769  enum Enum
770  {
771  /// Used to identify absence of value.
772  Undefined = -1,
773 
774  /// Top Of Book
775  TopOfBook = 0,
776 
777  /// Price Depth
778  PriceDepth = 1,
779 
780  /// Order Depth
781  OrderDepth = 2,
782  };
783  };
784 
785  /// Exposes list of available sub book types.
786  struct ONIXS_EUREX_EMDI_API SubBookType
787  {
788  enum Enum
789  {
790  /// Used to identify absence of value.
791  Undefined = -1,
792 
793  /// Price Depth
794  IPSImpliedVolumeWithoutQuantityRestriction = 0,
795 
796  /// Order Depth
797  IPSImpliedVolumeWithQuantityRestriction = 1,
798  };
799  };
800 
801  /// Indicator for stressed market conditions.
802  struct ONIXS_EUREX_EMDI_API MarketCondition
803  {
804  enum Enum
805  {
806  /// Used to identify absence of value.
807  Undefined = -1,
808 
809  /// Normal
810  Normal = 0,
811 
812  /// Stressed
813  Stressed = 1
814  };
815  };
816 
817  /// A trade has to be flagged as "algorithmic", if at least one of the
818  /// matched orders was submitted by a trading algorithm.Applicable
819  /// for cash market products only.
820  struct ONIXS_EUREX_EMDI_API AlgorithmicTradeIndicator
821  {
822  enum Enum
823  {
824  /// Used to identify absence of value.
825  Undefined = -1,
826 
827  /// Algorithmic Trade
828  AlgorithmicTrade = 1
829  };
830  };
831 
832  /// MultiLegReportingType
833  struct ONIXS_EUREX_EMDI_API MultiLegReportingType
834  {
835  enum Enum
836  {
837  /// Used to identify absence of value.
838  Undefined = -1,
839 
840  /// Single Security
841  SingleSecurity = 1,
842 
843  /// Individual Leg Of A MultiLeg Security
844  IndividualLegOfMultiLegSecurity = 2,
845 
846  /// Multi Leg Security
847  MultiLegSecurity = 3
848  };
849  };
850 
851  /// MultiLegPriceModel
852  struct ONIXS_EUREX_EMDI_API MultiLegPriceModel
853  {
854  enum Enum
855  {
856  /// Used to identify absence of value.
857  Undefined = -1,
858 
859  /// Standard
860  Standard = 0,
861 
862  /// User Defined
863  UserDefined = 2
864  };
865  };
866 
867 
868  /// Exposes list of available sold out indicators.
869  struct ONIXS_EUREX_EMDI_API SoldOutIndicator
870  {
871  enum Enum
872  {
873  /// Used to identify absence of value.
874  Undefined = -1,
875 
876  ///
877  SoldOut = 1,
878  };
879  };
880 
881  ///
882  struct ONIXS_EUREX_EMDI_API LastFragment
883  {
884  enum Enum
885  {
886  /// Used to identify absence of value.
887  Undefined = -1,
888 
889  /// NotLastMessage
890  NotLastMessage = 0,
891 
892  /// LastMessage
894  };
895  };
896 
897  namespace EOBI
898  {
899  /// Alias for Quantity Type
900  /// Quantity in integer format including 4 decimals.
901  typedef Int64 QuantityType;
902 
903  struct ONIXS_EUREX_EMDI_API AggressorSide // UInt8
904  {
905  enum Enum
906  {
907  /// Used to identify absence of value
908  NoValue = 0xFF,
909 
910  /// Triggered by the buy side
911  Buy = 1,
912 
913  /// Triggered by the sell side
914  Sell = 2,
915  };
916 
917  static std::string toString (Enum value);
918  };
919 
920  struct ONIXS_EUREX_EMDI_API ApplSeqResetIndicator // UInt8
921  {
922  enum Enum
923  {
924  NoValue = 0xFF,
925  NoReset = 0,
926  Reset = 1,
927  };
928 
929  static std::string toString (Enum value);
930  };
931 
932  struct ONIXS_EUREX_EMDI_API CompletionIndicator // UInt8
933  {
934  enum Enum
935  {
936  NoValue = 0xFF,
937  Incomplete = 0,
938  Complete = 1,
939  };
940 
941  static std::string toString (Enum value);
942  };
943 
944  struct ONIXS_EUREX_EMDI_API FastMarketIndicator // UInt8
945  {
946  enum Enum
947  {
948  NoValue = 0xFF,
949  No = 0,
950  Yes = 1,
951  };
952 
953  static std::string toString (Enum value);
954  };
955 
956  struct ONIXS_EUREX_EMDI_API ImpliedMarketIndicator // UInt8
957  {
958  enum Enum
959  {
960  NoValue = 0xFF,
961  NotImplied = 0,
962  ImpliedInOut = 3,
963  };
964 
965  static std::string toString (Enum value);
966  };
967 
968  struct ONIXS_EUREX_EMDI_API LegSecurityIDSource // String(1)
969  {
970  enum Enum
971  {
972  NoValue = 0,
973  Marketplace = 'M',
974  };
975 
976  static std::string toString (Enum value);
977  };
978 
979  struct ONIXS_EUREX_EMDI_API LegSide // UInt8
980  {
981  enum Enum
982  {
983  NoValue = 0xFF,
984  Buy = 1,
985  Sell = 2,
986  };
987 
988  static std::string toString (Enum value);
989  };
990 
991  struct ONIXS_EUREX_EMDI_API MDEntryType // UInt8
992  {
993  enum Enum
994  {
995  NoValue = 0xFF,
996  Trade = 2,
997  OpeningPrice = 4,
998  ClosingPrice = 5,
999  HighPrice = 7,
1000  LowPrice = 8,
1001  TradeVolume = 66,
1002  PreviousClosingPrice = 101,
1003  OpeningAuction = 200,
1004  IntradayAuction = 201,
1005  CircuitBreakerAuction = 202,
1006  ClosingAuction = 203,
1007  IPOAuction = 204,
1008  };
1009 
1010  static std::string toString (Enum value);
1011  };
1012 
1013  struct ONIXS_EUREX_EMDI_API MDReportEvent // UInt8
1014  {
1015  enum Enum
1016  {
1017  NoValue = 0xFF,
1018  ScopeDefinition = 0,
1019  };
1020  };
1021 
1022  struct ONIXS_EUREX_EMDI_API MDUpdateAction // UInt8
1023  {
1024  enum Enum
1025  {
1026  NoValue = 0xFF,
1027  New = 0,
1028  Change = 1,
1029  Delete = 2,
1030  Overlay = 5,
1031  };
1032  };
1033 
1034  struct ONIXS_EUREX_EMDI_API MarketDataType // UInt8
1035  {
1036  enum Enum
1037  {
1038  NoValue = 0xFF,
1039  OrderBookMaintenance = 1,
1040  OrderBookExecution = 2,
1043  AuctionBBO = 5,
1045  CrossTradeAnnouncement = 7,
1047  MarketSegmentSnapshot = 9,
1048  SingleInstrumentSnapshot = 10,
1049  OrderBookSnapshot = 11,
1050  MatchEvent = 12,
1052 
1053  ComplexInstrument = 14,
1054  TesTradeReport = 15,
1055  HhIndex = 16,
1056  FlexibleInstrument = 17,
1057  };
1058  };
1059 
1060  struct ONIXS_EUREX_EMDI_API MatchSubType // UInt8
1061  {
1062  enum Enum
1063  {
1064  NoValue = 0xFF,
1065  OpeningAuction = 1,
1066  ClosingAuction = 2,
1067  IntradayAuction = 3,
1068  CircuitBreakerAuction = 4,
1069  IPOAuction = 5,
1070  };
1071 
1072  static std::string toString (Enum value);
1073  };
1074 
1075  struct ONIXS_EUREX_EMDI_API MatchType // UInt8
1076  {
1077  enum Enum
1078  {
1079  NoValue = 0xFF,
1080  Manual = 3,
1081  Uncrossing = 5,
1082  Auction = 7,
1083  LiquidityImprovementCross = 13,
1084  ContinuousAuction = 14
1085  };
1086 
1087  static std::string toString (Enum value);
1088  };
1089 
1090  struct ONIXS_EUREX_EMDI_API NoMarketSegments // UInt8
1091  {
1092  enum Enum
1093  {
1094  NoValue = 0xFF,
1095  One = 1,
1096  };
1097 
1098  static std::string toString (Enum value);
1099  };
1100 
1101  struct ONIXS_EUREX_EMDI_API ProductComplex // UInt8
1102  {
1103  enum Enum
1104  {
1105  NoValue = 0xFF,
1106 
1107  SimpleInstrument = 1,
1108  StandardOptionStrategy = 2,
1109  NonStandardOptionStrategy = 3,
1110  VolatilityStrategy = 4,
1111  FuturesSpread = 5,
1112  InterProductSpread = 6,
1113  StandardFuturesStrategy = 7,
1114  PackAndBundle = 8,
1115  Strip = 9,
1116  FlexibleInstrument = 10,
1117  CommodityStrip = 11,
1118  ScaledSimpleInstrument = 12
1119  };
1120 
1121  static std::string toString (Enum value);
1122  };
1123 
1124  struct ONIXS_EUREX_EMDI_API SecurityIDSource // String(1)
1125  {
1126  enum Enum
1127  {
1128  NoValue = 0,
1129  Marketplace = 'M',
1130  };
1131 
1132  static std::string toString (Enum value);
1133  };
1134 
1135  struct ONIXS_EUREX_EMDI_API SecurityStatus // UInt8
1136  {
1137  enum Enum
1138  {
1139  NoValue = 0xFF,
1140  Active = 1,
1141  Inactive = 2,
1142  Expired = 4,
1143  KnockedOut = 6,
1144  KnockOutRevoked = 7,
1145  Suspended = 9,
1146  PendingDeletion = 11,
1147  KnockedOutAndSuspended = 12,
1148  };
1149 
1150  static std::string toString (Enum value);
1151  };
1152 
1153  struct ONIXS_EUREX_EMDI_API SecurityTradingStatus // UInt8
1154  {
1155  enum Enum
1156  {
1157  NoValue = 0xFF,
1158 
1159  TradingHalt = 2,
1160  MarketImbalanceBuy = 7,
1161  MarketImbalanceSell = 8,
1162  Closed = 200,
1163  Restricted = 201,
1164  Book = 202,
1165  Continuous = 203,
1166  OpeningAuction = 204,
1167  OpeningAuctionFreeze = 205,
1168  IntradayAuction = 206,
1169  IntradayAuctionFreeze = 207,
1170  CircuitBreakerAuction = 208,
1171  CircuitBreakerAuctionFreeze = 209,
1172  ClosingAuction = 210,
1173  ClosingAuctionFreeze = 211,
1174  IPOAuction = 212,
1175  IPOAuctionFreeze = 213,
1176  PreCall = 214,
1177  Call = 215,
1178  Freeze = 216,
1179  TradeAtClose = 217
1180  };
1181 
1182  static std::string toString (Enum value);
1183  };
1184 
1185  struct ONIXS_EUREX_EMDI_API SecurityType // String(4)
1186  {
1187  enum Enum
1188  {
1189  NoValue = 0,
1190  Option = 1, // OPT,
1191  Future = 2, // FUT,
1192  MultiLeg = 3 // MLEG,
1193  };
1194 
1195  static std::string toString (Enum value);
1196  };
1197 
1198  struct ONIXS_EUREX_EMDI_API SecurityUpdateAction // String(1)
1199  {
1200  enum Enum
1201  {
1202  NoValue = 0,
1203  Add = 'A',
1204  Delete = 'D',
1205  };
1206 
1207  static std::string toString (Enum value);
1208  };
1209 
1210  struct ONIXS_EUREX_EMDI_API Side // UInt8
1211  {
1212  enum Enum
1213  {
1214  NoValue = 0xFF,
1215  Buy = 1,
1216  Sell = 2,
1217  };
1218 
1219  static std::string toString (Enum value);
1220  };
1221 
1222  /// Indicates whether a synthetic match is occurred.
1223  struct ONIXS_EUREX_EMDI_API TradeCondition // UInt16
1224  {
1225  enum Enum
1226  {
1227  NoValue = 0xFFFF,
1228  ImpliedTrade = 1,
1229  OutOfSequence = 107,
1230  MidpointPrice = 155,
1231  TradingOnTermsOfIssue = 156,
1232  SpetialAuction = 596,
1233  TradeAtClose = 624,
1234  Retail = 743
1235  };
1236 
1237  static std::string toString (Enum value);
1238  };
1239 
1240  struct ONIXS_EUREX_EMDI_API TradSesEvent // UInt8
1241  {
1242  enum Enum
1243  {
1244  NoValue = 0xFF,
1245  TBD = 0,
1246  StatusChange = 3,
1247  };
1248 
1249  static std::string toString (Enum value);
1250  };
1251 
1252  struct ONIXS_EUREX_EMDI_API TradSesStatus // UInt8
1253  {
1254  enum Enum
1255  {
1256  NoValue = 0xFF,
1257  Halted = 1,
1258  Open = 2,
1259  Closed = 3,
1260  };
1261 
1262  static std::string toString (Enum value);
1263  };
1264 
1265  struct ONIXS_EUREX_EMDI_API TradingSessionID // UInt8
1266  {
1267  enum Enum
1268  {
1269  NoValue = 0xFF,
1270  Day = 1,
1271  Morning = 3,
1272  Evening = 5,
1273  AfterHours = 6,
1274  Holiday = 7,
1275  };
1276 
1277  static std::string toString (Enum value);
1278  };
1279 
1280  struct ONIXS_EUREX_EMDI_API TradingSessionSubID // UInt8
1281  {
1282  enum Enum
1283  {
1284  NoValue = 0xFF,
1285  PreTrading = 1,
1286  Continuous = 3,
1287  Closing = 4,
1288  PostTrading = 5,
1289  Quiescent = 7,
1290  };
1291 
1292  static std::string toString (Enum value);
1293  };
1294 
1295 
1296  struct ONIXS_EUREX_EMDI_API PotentialSecurityTradingEvent // UInt8
1297  {
1298  enum Enum
1299  {
1300  NoValue = 0xFF,
1301 
1302  /// None
1303  None = 0,
1304 
1305  /// Price volatility, auction is extended
1306  PriceVolatilityAuctionIsExtended = 10,
1307  };
1308 
1309  static std::string toString (Enum value);
1310  };
1311 
1312  struct ONIXS_EUREX_EMDI_API OrdType // UInt8
1313  {
1314  enum Enum
1315  {
1316  NoValue = 0xFF,
1317 
1318  /// Market Order
1319  MarketOrder = 1,
1320  };
1321 
1322  static std::string toString(Enum value);
1323  };
1324 
1325  struct ONIXS_EUREX_EMDI_API SecurityTradingEvent // UInt8
1326  {
1327  enum Enum
1328  {
1329  NoValue = 0xFF,
1330 
1331  /// Price volatility, auction is extended
1332  PriceVolatilityAuctionIsExtended = 10,
1333 
1334  /// Price volatility, auction is extended again
1335  PriceVolatilityAuctionIsExtendedAgain = 11,
1336  };
1337 
1338  static std::string toString (Enum value);
1339  };
1340 
1341  struct ONIXS_EUREX_EMDI_API OrderType // UInt8
1342  {
1343  enum Enum
1344  {
1345  NoValue = 0xFF,
1346 
1347  ///
1348  MarketOrder = 1,
1349  };
1350 
1351  static std::string toString (Enum value);
1352  };
1353 
1354  struct ONIXS_EUREX_EMDI_API AlgorithmicTradeIndicator // UInt8
1355  {
1356  enum Enum
1357  {
1358  NoValue = 0xFF,
1359 
1360  ///
1361  AlgorithmicTrade = 1,
1362  };
1363 
1364  static std::string toString(Enum value);
1365  };
1366 
1367  struct ONIXS_EUREX_EMDI_API MarketCondition // UInt8
1368  {
1369  enum Enum
1370  {
1371  NoValue = 0xFF,
1372 
1373  ///
1374  Normal = 0,
1375 
1376  ///
1377  Stressed = 1
1378  };
1379 
1380  static std::string toString(Enum value);
1381  };
1382 
1383  struct ONIXS_EUREX_EMDI_API LegSecurityType // UInt8
1384  {
1385  enum Enum
1386  {
1387  NoValue = 0xFF,
1388 
1389  ///
1390  LegSecurityMultiLeg = 0,
1391 
1392  ///
1393  LegSecurityUnderlyingLeg = 1
1394  };
1395 
1396  static std::string toString(Enum value);
1397  };
1398 
1399  struct ONIXS_EUREX_EMDI_API SoldOutIndicator // UInt8
1400  {
1401  enum Enum
1402  {
1403  NoValue = 0xFF,
1404 
1405  ///
1406  SoldOut = 1,
1407  };
1408 
1409  static std::string toString(Enum value);
1410  };
1411 
1412  struct ONIXS_EUREX_EMDI_API InstrumentScopeProductComplex // UInt8
1413  {
1414  enum Enum
1415  {
1416  NoValue = 0xFF,
1417 
1418  ///
1419  SimpleInstrument = 1,
1420 
1421  ///
1422  StandardOptionStrategy = 2,
1423 
1424  ///
1425  NonStandardOptionStrategy = 3,
1426 
1427  ///
1428  VolatilityStrategy = 4,
1429 
1430  ///
1431  FuturesSpread = 5,
1432 
1433  ///
1434  InterProductSpread = 6,
1435 
1436  ///
1437  StandardFuturesStrategy = 7,
1438 
1439  ///
1440  PackAndBundle = 8,
1441 
1442  ///
1443  Strip = 9,
1444 
1445  ///
1446  FlexibleInstrument = 10,
1447 
1448  ///
1449  CommodityStrip = 11,
1450  };
1451 
1452  static std::string toString(Enum value);
1453  };
1454 
1455  struct ONIXS_EUREX_EMDI_API SecurityMassStatus // UInt8
1456  {
1457  enum Enum
1458  {
1459  NoValue = 0xFF,
1460 
1461  ///
1462  Active = 1,
1463 
1464  ///
1465  Inactive = 2,
1466 
1467  ///
1468  Expired = 4,
1469 
1470  ///
1471  KnockedOut = 6,
1472 
1473  ///
1474  KnockOutRevoked = 7,
1475 
1476  ///
1477  Suspended = 9,
1478 
1479  ///
1480  PendingDeletion = 11,
1481 
1482  ///
1483  KnockedOutAndSuspended = 12
1484  };
1485 
1486  static std::string toString(Enum value);
1487  };
1488 
1489  struct ONIXS_EUREX_EMDI_API SecurityMassTradingStatus // UInt8
1490  {
1491  enum Enum
1492  {
1493  NoValue = 0xFF,
1494 
1495  ///
1496  TradingHalt = 2,
1497 
1498  ///
1499  MarketImbalanceBuy = 7,
1500 
1501  ///
1502  MarketImbalanceSell = 8,
1503 
1504  ///
1505  Closed = 200,
1506 
1507  ///
1508  Restricted = 201,
1509 
1510  ///
1511  Book = 202,
1512 
1513  ///
1514  Continuous = 203,
1515 
1516  ///
1517  OpeningAuction = 204,
1518 
1519  ///
1520  OpeningAuctionFreeze = 205,
1521 
1522  ///
1523  IntradayAuction = 206,
1524 
1525  ///
1526  IntradayAuctionFreeze = 207,
1527 
1528  ///
1529  CircuitBreakerAuction = 208,
1530 
1531  ///
1532  CircuitBreakerAuctionFreeze = 209,
1533 
1534  ///
1535  ClosingAuction = 210,
1536 
1537  ///
1538  ClosingAuctionFreeze = 211,
1539 
1540  ///
1541  IPOAuction = 212,
1542 
1543  ///
1544  IPOAuctionFreeze = 213,
1545 
1546  ///
1547  PreCall = 214,
1548 
1549  ///
1550  Call = 215,
1551 
1552  ///
1553  Freeze = 216,
1554 
1555  ///
1556  TradeAtClose = 217
1557  };
1558 
1559  static std::string toString(Enum value);
1560  };
1561 
1562  struct ONIXS_EUREX_EMDI_API MassMarketCondition // UInt8
1563  {
1564  enum Enum
1565  {
1566  NoValue = 0xFF,
1567 
1568  ///
1569  Normal = 0,
1570 
1571  ///
1572  Stressed = 1
1573  };
1574 
1575  static std::string toString(Enum value);
1576  };
1577 
1578  struct ONIXS_EUREX_EMDI_API SecurityMassTradingEvent // UInt8
1579  {
1580  enum Enum
1581  {
1582  NoValue = 0xFF,
1583 
1584  /// Price volatility, auction is extended
1585  PriceVolatilityAuctionIsExtended = 10,
1586 
1587  /// Price volatility, auction is extended again
1588  PriceVolatilityAuctionIsExtendedAgain = 11
1589  };
1590 
1591  static std::string toString(Enum value);
1592  };
1593 
1594  struct ONIXS_EUREX_EMDI_API MassSoldOutIndicator // UInt8
1595  {
1596  enum Enum
1597  {
1598  NoValue = 0xFF,
1599 
1600  ///
1601  SoldOut = 1,
1602  };
1603 
1604  static std::string toString(Enum value);
1605  };
1606 
1607 
1608  struct ONIXS_EUREX_EMDI_API LastFragment // UInt8
1609  {
1610  enum Enum
1611  {
1612  NoValue = 0xFF,
1613 
1614  ///
1615  N = 0,
1616 
1617  ///
1618  Y = 1,
1619  };
1620 
1621  static std::string toString(Enum value);
1622  };
1623 
1624  struct ONIXS_EUREX_EMDI_API PutOrCall // UInt8
1625  {
1626  enum Enum
1627  {
1628  NoValue = 0xFF,
1629 
1630  ///
1631  Put = 0,
1632 
1633  ///
1634  Call = 1,
1635  };
1636 
1637  static std::string toString(Enum value);
1638  };
1639 
1640  struct ONIXS_EUREX_EMDI_API ExerciseStyle // UInt8
1641  {
1642  enum Enum
1643  {
1644  NoValue = 0xFF,
1645 
1646  ///
1647  European = 0,
1648 
1649  ///
1650  American = 1,
1651  };
1652 
1653  static std::string toString(Enum value);
1654  };
1655 
1656  struct ONIXS_EUREX_EMDI_API SettlMethod // UInt8
1657  {
1658  enum Enum
1659  {
1660  NoValue = 0xFF,
1661 
1662  ///
1663  Cash = 0,
1664 
1665  ///
1666  Physical = 1,
1667  };
1668 
1669  static std::string toString(Enum value);
1670  };
1671 
1672 
1673  struct ONIXS_EUREX_EMDI_API TrdType // UInt16
1674  {
1675  enum Enum
1676  {
1677  NoValue = 0xFFFF,
1678 
1679  BlockTrade = 1,
1680  ExchangeForPhysical = 2,
1681  EFS = 12,
1682  PortfolioCompressionTrade = 50,
1683  OTC = 54,
1684  ExchangeBasisFacility = 55,
1685  VolaTrade = 1000,
1686  EFPFinTrade = 1001,
1687  EFPIndexFuturesTrade = 1002,
1688  BlockTradeAtMarket = 1004,
1689  XetraEurexEnlightTriggeredTrade = 1006,
1690  BlockQTPIPTrade = 1007,
1691  TradeAtMarket = 1017
1692  };
1693 
1694  static std::string toString(Enum value);
1695  };
1696 
1697  struct ONIXS_EUREX_EMDI_API MultiLegReportingType // UInt8
1698  {
1699  enum Enum
1700  {
1701  NoValue = 0xFF,
1702 
1703  ///
1704  SingleSecurity = 1,
1705 
1706  ///
1707  IndividualLeg = 2,
1708 
1709  ///
1710  MultiLegSecurity = 3,
1711  };
1712 
1713  static std::string toString(Enum value);
1714  };
1715 
1716  struct ONIXS_EUREX_EMDI_API MultiLegPriceModel // UInt8
1717  {
1718  enum Enum
1719  {
1720  NoValue = 0xFF,
1721 
1722  ///
1723  Standard = 0,
1724 
1725  ///
1726  UserDefined = 1,
1727  };
1728 
1729  static std::string toString(Enum value);
1730  };
1731 
1732  struct ONIXS_EUREX_EMDI_API MDOriginType // UInt8
1733  {
1734  enum Enum
1735  {
1736  NoValue = 0xFF,
1737 
1738  ///
1739  Book = 0,
1740 
1741  ///
1742  OffBook = 1,
1743  };
1744 
1745  static std::string toString(Enum value);
1746  };
1747 
1748  struct ONIXS_EUREX_EMDI_API TESTradSesStatus // UInt8
1749  {
1750  enum Enum
1751  {
1752  NoValue = 0xFF,
1753 
1754  ///
1755  Halted = 1,
1756 
1757  ///
1758  Open = 2,
1759 
1760  ///
1761  Closed = 3,
1762 
1763  ///
1764  PreClose = 4,
1765  };
1766 
1767  static std::string toString(Enum value);
1768  };
1769 
1770 
1771  struct ONIXS_EUREX_EMDI_API TESSecurityStatus // UInt8
1772  {
1773  enum Enum
1774  {
1775  NoValue = 0xFF,
1776 
1777  ///
1778  Active = 1,
1779 
1780  ///
1781  Inactive = 2,
1782 
1783  ///
1784  Expired = 4,
1785 
1786  ///
1787  Suspended = 9,
1788  };
1789 
1790  static std::string toString(Enum value);
1791  };
1792 
1793  struct ONIXS_EUREX_EMDI_API TESSecurityMassStatus // UInt8
1794  {
1795  enum Enum
1796  {
1797  NoValue = 0xFF,
1798 
1799  ///
1800  Active = 1,
1801 
1802  ///
1803  Inactive = 2,
1804 
1805  ///
1806  Expired = 4,
1807 
1808  ///
1809  Suspended = 9,
1810  };
1811 
1812  static std::string toString(Enum value);
1813  };
1814 
1815  }
1816  }
1817  }
1818 }
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:869
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:767
Indicator for stressed market conditions.
Definition: Defines.h:802
Exposes list of available security trading statuses.
Definition: Defines.h:439
Exposes list of available origin types.
Definition: Defines.h:645
Exposes list of available update actions.
Definition: Defines.h:661
Exposes list of available market segment statuses.
Definition: Defines.h:705
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:525
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:377
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:724
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:786
Exchange for Physical Fin trade.
Definition: Defines.h:334
Feed types based on type of market data service.
Definition: Defines.h:57
bool contain(TradeCondition::Enum value) const
Definition: Defines.h:580
Exchange for Physical.
Definition: Defines.h:316
Exposes list of available trading session sub IDs.
Definition: Defines.h:402
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:689
UInt64 Quantity
Alias for Quantity type.
Definition: Defines.h:54
Indicates whether a synthetic match is occurred.
Definition: Defines.h:1223
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