OnixS C++ Eurex T7 Market and Reference Data Interface (EMDI, RDI, EOBI) Handlers  8.0.0
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  struct DataSource
57  {
58  /// Time when the packet was received by Handler from UDP, in system ticks, @see Time.h
60 
61  /// Time when the packet was originally received by Handler from UDP
62  /// Valid only for backtesting
64 
65  /// Packet sequence number
67 
68  /// Packet message number
70 
71  /// Indicates whether a message is last in the packet
73 
74  /// Time when market data feed handler writes packet on the wire.
75  UInt64 sendingTime;
76 
77  /// Current load of system.
78  ///
79  /// @note Time difference between the incoming ETS-order/quote
80  /// and the time the market data is written to the socket. This
81  /// information is provided for the incremental feed of Eurex EMDI only.
83 
84  /// Unique id for a sender.
86 
87  /// Sending partition.
88  ///
89  /// @note For EMDI feed messages only.
90  PartitionId partitionId;
91 
92  /// Product identifier
93  ///
94  /// @note For EOBI feed messages only.
95  MarketSegmentId marketSegmentId;
96 
97  /// An indicator whether the atomic unit of work fits into one datagram
98  ///
99  /// @note For EOBI feed messages only.
101 
102  enum Origin
103  {
104  /// Origin is unknown or lost
106 
107  /// FeedA
109 
110  /// FeedB
112  };
113 
115 
116  bool cached;
117  };
118 
119  /// Exposes list of available security update actions
121  {
122  /// Add
123  const std::string Add = "A";
124  };
125 
126  /// Exposes list of leg sides
127  struct ONIXS_EUREX_EMDI_API LegSide
128  {
129  enum Enum
130  {
131  /// Used to identify absence of value.
132  Undefined = -1,
133 
134  /// Buy
135  Buy = 1,
136 
137  /// Sell
138  Sell = 2,
139  };
140  };
141 
142  /// Exposes list of available security statuses
143  struct ONIXS_EUREX_EMDI_API SecurityStatus
144  {
145  enum Enum
146  {
147  /// Used to identify absence of value.
148  Undefined = -1,
149 
150  /// Defines if product is traded on on NTA.
151  Active = 0,
152 
153  /// Inactive
154  Inactive = 1,
155 
156  /// Expired
157  Expired = 2,
158 
159  ///
160  KnockedOut = 3,
161 
162  ///
163  KnockOutRevoked = 4,
164 
165  /// Suspended
166  Suspended = 5,
167 
168  /// Defines if product is still traded on "Eurex classic"
169  Published = 6,
170 
171  ///
172  PendingDeletion = 7,
173 
174  ///
175  KnockedOutAndSuspended = 8,
176 
177  };
178  };
179 
180  /// Exposes list of available trade session statuses.
181  struct ONIXS_EUREX_EMDI_API TradSesStatus
182  {
183  enum Enum
184  {
185  /// Used to identify absence of value.
186  Undefined = -1,
187 
188  ///
189  Halted = 0,
190 
191  ///
192  Open = 1,
193 
194  ///
195  Closed = 2,
196 
197  ///
198  PreClose = 3,
199  };
200  };
201 
202 
203  struct ONIXS_EUREX_EMDI_API ImpliedMarketIndicator
204  {
205  enum Enum
206  {
207  /// Used to identify absence of value.
208  Undefined = -1,
209 
210  /// Not implied
211  NotImplied = 0,
212 
213  /// Both implied in and implied out
214  BothImpliedInAndImpliedOut = 1,
215  };
216  };
217 
218  /// Exposes list of available entry types
219  struct ONIXS_EUREX_EMDI_API MDEntryType
220  {
221  enum Enum
222  {
223  /// Used to identify absence of value.
224  Undefined = -1,
225 
226  /// Bid
227  Bid = 0,
228 
229  /// Offer
230  Offer = 1,
231 
232  /// Trade
233  Trade = 2,
234 
235  /// Empty book
236  EmptyBook = 3,
237 
238  /// Auction clearing price
239  AuctionClearingPrice = 4,
240 
241  /// Settlement Price
242  SettlementPrice = 5,
243 
244  /// Open Interest
246 
247  ///Trade Volume
248  TradeVolume = 7,
249 
250  ///Market Bid
251  MarketBid = 8,
252 
253  ///Market Offer
254  MarketOffer = 9,
255 
256  ///Imbalance
257  Imbalance = 10,
258  };
259  };
260 
261  struct ONIXS_EUREX_EMDI_API QuoteCondition
262  {
263  enum Enum
264  {
265  /// Used to identify absence of value.
266  Undefined = -1,
267 
268  // Crossed,
269  Crossed = 0,
270 
271  // OrderImbalance,
272  OrderImbalance = 1,
273  };
274  };
275 
276  /// Exposes list of available trade types
277  struct ONIXS_EUREX_EMDI_API TrdType
278  {
279  // The trade type enum entries do not use numeric values
280  // mentioned in documentation. Instead they are identified by
281  // ordinal (starting from zero) preserving the order in the doc.
282 
283  enum Enum
284  {
285  /// Used to identify absence of value.
286  Undefined = -1,
287 
288  /// Regular Trade
289  RegularTrade = 0,
290 
291  /// Block trade
293 
294  /// Exchange for Physical
296 
297  /// Exchange for swap
299 
300  ///
302 
303  /// Exchange basis facility
305 
306  /// Vola trade
308 
309  /// Exchange for Physical Fin trade
311 
312  /// EFPIndexFutures trade
314 
315  ///
317 
318  ///
320 
321  /// Opening auction trade
323 
324  /// Intraday auction trade
326 
327  /// Volatility auction trade
329 
330  /// Closing auction trade
332 
333  /// Cross auction trade
335 
336  ///
338 
339  ///
340  LiquidityImprovementCross
341  };
342 
343  static std::string toString (Enum value);
344  };
345 
346  /// Exposes list of available trading session IDs
347  struct ONIXS_EUREX_EMDI_API TradingSessionId
348  {
349  enum Enum
350  {
351  /// Used to identify absence of value.
352  Undefined = -1,
353 
354  /// Day
355  Day = 0,
356 
357  /// Morning
358  Morning = 1,
359 
360  /// Evening
361  Evening = 2,
362 
363  /// Holiday
364  Holiday = 3,
365  };
366  };
367 
368  /// Exposes list of available trading session sub IDs
369  struct ONIXS_EUREX_EMDI_API TradingSessionSubID
370  {
371  enum Enum
372  {
373  /// Used to identify absence of value.
374  Undefined = -1,
375 
376  /// PreTrading
377  PreTrading = 0,
378 
379  /// Continuous
380  Continuous = 1,
381 
382  /// Closing
383  Closing = 2,
384 
385  /// PostTrading
386  PostTrading = 3,
387 
388  /// ScheduledIntradayAuction
389  ScheduledIntradayAuction = 4,
390 
391  /// Quiescent
392  Quiescent = 5,
393 
394  /// AnyAuction
395  AnyAuction = 6,
396 
397  /// ContinuousAuctionIssuer
398  ContinuousAuctionIssuer = 7,
399 
400  /// ContinuousAuctionSpecialist
401  ContinuousAuctionSpecialist
402  };
403  };
404 
405  /// Exposes list of available security trading statuses
406  struct ONIXS_EUREX_EMDI_API SecurityTradingStatus
407  {
408  enum Enum
409  {
410  /// Used to identify absence of value.
411  Undefined = -1,
412 
413  /// Trading Halt
414  TradingHalt = 0,
415 
416  /// Closed
417  Closed = 1,
418 
419  /// Restricted
420  Restricted = 2,
421 
422  /// Book
423  Book = 3,
424 
425  /// Continuous
426  Continuous = 4,
427 
428  /// Opening auction
429  OpeningAuction = 5,
430 
431  /// Opening auction freeze
432  OpeningAuctionFreeze = 6,
433 
434  /// Intraday auction
435  IntradayAuction = 7,
436 
437  /// Intraday auction freeze
438  IntradayAuctionFreeze = 8,
439 
440  /// Circuit breaker auction
441  CircuitBreakerAuction = 9,
442 
443  /// Circuit breaker auction freeze
444  CircuitBreakerAuctionFreeze = 10,
445 
446  /// Closing auction
447  ClosingAuction = 11,
448 
449  /// Closing auction freeze
450  ClosingAuctionFreeze = 12,
451 
452  /// CIPO Auction
453  IPOAuction = 13,
454 
455  /// IPO Auction Freeze
456  IPOAuctionFreeze = 14,
457 
458  ///
460 
461  ///
463 
464  ///
465  Freeze
466  };
467  };
468 
469 
470  struct ONIXS_EUREX_EMDI_API SecurityTradingEvent
471  {
472  enum Enum
473  {
474  /// Used to identify absence of value.
475  Undefined = -1,
476 
477  ///
478  None = 0,
479 
480  ///
481  PriceVolatilityAuctionIsExtended = 1,
482 
483  ///
484  PriceVolatilityAuctionIsExtendedAgain = 2,
485  };
486  };
487 
488  /// Exposes list of available trade conditions
489  struct ONIXS_EUREX_EMDI_API TradeCondition
490  {
491  enum Enum
492  {
493  /// Used to identify absence of value.
495 
496  /// Exchange last
497  ExchangeLast = 1,
498 
499  /// Opening price
500  OpeningPrice = 2,
501 
502  /// High price
503  HighPrice = 4,
504 
505  /// Low price
506  LowPrice = 8,
507 
508  /// Official closing price
509  OfficialClosingPrice = 16,
510 
511  /// Last auction price
512  LastAuctionPrice = 32,
513 
514  /// Out of sequence ETH
515  OutOfSequenceETH = 64,
516 
517  /// Previous Closing Price
518  PreviousClosingPrice = 128,
519 
520  /// Volume Only
521  VolumeOnly = 256,
522 
523  /// Systematic Internalizer
524  SystematicInternalizer = 512,
525 
526  /// Midpoint Price
527  MidpointPrice = 1024,
528 
529  ///
530  TradedBeforeIssueDate = 2048,
531 
532  ///
533  FinalPriceOfSession = 4096
534  };
535  };
536 
537  struct ONIXS_EUREX_EMDI_API TradeConditionSet
538  {
539  TradeConditionSet (UInt64 value)
540  : value_ (value)
541  {}
542 
543  bool contain (TradeCondition::Enum value) const
544  {
545  return (value_ & value) != 0;
546  }
547 
548  bool containExchangeLast() const
549  {
550  return contain (TradeCondition::ExchangeLast);
551  }
552  bool containOpeningPrice() const
553  {
554  return contain (TradeCondition::OpeningPrice);
555  }
556  bool containHighPrice() const
557  {
558  return contain (TradeCondition::HighPrice);
559  }
560  bool containLowPrice() const
561  {
562  return contain (TradeCondition::LowPrice);
563  }
565  {
566  return contain (TradeCondition::OfficialClosingPrice);
567  }
569  {
570  return contain (TradeCondition::LastAuctionPrice);
571  }
573  {
574  return contain (TradeCondition::OutOfSequenceETH);
575  }
577  {
578  return contain (TradeCondition::PreviousClosingPrice);
579  }
580  bool containVolumeOnly() const
581  {
582  return contain (TradeCondition::VolumeOnly);
583  }
585  {
586  return contain (TradeCondition::FinalPriceOfSession);
587  }
588 
589  std::string toString() const;
590 
591  private:
592  UInt64 value_;
593  };
594 
595  /// Exposes list of available origin types
596  struct ONIXS_EUREX_EMDI_API MDOriginType
597  {
598  enum Enum
599  {
600  /// Used to identify absence of value.
601  Undefined = -1,
602 
603  ///
604  Book = 0,
605 
606  ///
607  OffBook = 1,
608  };
609  };
610 
611  /// Exposes list of available update actions
612  struct ONIXS_EUREX_EMDI_API MDUpdateAction
613  {
614  enum Enum
615  {
616  /// Used to identify absence of value.
617  Undefined = -1,
618 
619  /// New
620  New = 0,
621 
622  /// Change
623  Change = 1,
624 
625  /// Delete
626  Delete = 2,
627 
628  /// DeleteThru
629  DeleteThru = 3,
630 
631  /// DeleteFrom
632  DeleteFrom = 4,
633 
634  /// Overlay
635  Overlay = 5
636  };
637  };
638 
639  /// Exposes list of available aggressor sides
640  struct ONIXS_EUREX_EMDI_API Side
641  {
642  enum Enum
643  {
644  /// Used to identify absence of value.
645  Undefined = -1,
646 
647  /// Buy
648  Buy = 1,
649 
650  /// Sell
651  Sell = 2,
652  };
653  };
654 
655  /// Exposes list of available trade types
656  struct ONIXS_EUREX_EMDI_API OffBookTrdType
657  {
658  enum Enum
659  {
660  /// Used to identify absence of value.
661  Undefined = -1,
662 
663  /// Block trade
664  BlockTrade = 0,
665 
666  /// Exchange for Physical
668 
669  /// Exchange for swap
671 
672  /// Exchange basis facility
674 
675  /// VolaTrade
677 
678  /// Exchange for Physical fin trade
680 
681  /// EFPIndexFuturesTrade
683 
684  /// Opening auction trade
686 
687  /// Intraday auction trade
689 
690  /// Volatility auction trade
692 
693  /// Closing auction trade
695 
696  /// Cross auction trade
697  CrossAuctionTrade
698  };
699  };
700 
701 
702  /// Exposes list of available market segment statuses.
703  struct ONIXS_EUREX_EMDI_API MarketSegmentStatus
704  {
705  enum Enum
706  {
707  /// Used to identify absence of value.
708  Undefined = -1,
709 
710  /// Defines if product is traded on on NTA.
711  Active = 0,
712 
713  /// Inactive
714  Inactive = 1,
715 
716  /// Defines if product is still traded on "Eurex classic"
717  Published = 2,
718  };
719  };
720 
721  /// Exposes list of available instrument types for tick rule.
722  struct ONIXS_EUREX_EMDI_API InstrumentType
723  {
724  enum Enum
725  {
726  /// Used to identify absence of value.
727  Undefined = -1,
728 
729  /// Simple instrument
730  SimpleInstrument = 1,
731 
732  /// Standard option strategy
733  StandardOptionStrategy = 2,
734 
735  /// Non standard option strategy
736  NonStandardOptionStrategy = 3,
737 
738  /// Volatility strategy
739  VolatilityStrategy = 4,
740 
741  /// Futures spread
742  FuturesSpread = 5,
743 
744  /// Inter Product Spread
745  InterProductSpread = 6,
746 
747  /// Standard Futures Strategy
748  StandardFuturesStrategy = 7,
749 
750  /// Pack And Bundle
751  PackAndBundle = 8,
752 
753  /// Strip
754  Strip = 9,
755 
756  /// Flexible
757  Flexible = 10,
758  };
759  };
760 
761  /// Exposes list of available book types.
762  struct ONIXS_EUREX_EMDI_API BookType
763  {
764  enum Enum
765  {
766  /// Used to identify absence of value.
767  Undefined = -1,
768 
769  /// Top Of Book
770  TopOfBook = 0,
771 
772  /// Price Depth
773  PriceDepth = 1,
774 
775  /// Order Depth
776  OrderDepth = 2,
777  };
778  };
779 
780  /// Exposes list of available sub book types.
781  struct ONIXS_EUREX_EMDI_API SubBookType
782  {
783  enum Enum
784  {
785  /// Used to identify absence of value.
786  Undefined = -1,
787 
788  /// Price Depth
789  IPSImpliedVolumeWithoutQuantityRestriction = 0,
790 
791  /// Order Depth
792  IPSImpliedVolumeWithQuantityRestriction = 1,
793  };
794  };
795 
796  /// Indicator for stressed market conditions.
797  struct ONIXS_EUREX_EMDI_API MarketCondition
798  {
799  enum Enum
800  {
801  /// Used to identify absence of value.
802  Undefined = -1,
803 
804  /// Normal
805  Normal = 0,
806 
807  /// Stressed
808  Stressed = 1
809  };
810  };
811 
812  /// A trade has to be flagged as "algorithmic", if at least one of the
813  /// matched orders was submitted by a trading algorithm.Applicable
814  /// for cash market products only.
815  struct ONIXS_EUREX_EMDI_API AlgorithmicTradeIndicator
816  {
817  enum Enum
818  {
819  /// Used to identify absence of value.
820  Undefined = -1,
821 
822  /// Algorithmic Trade
823  AlgorithmicTrade = 1
824  };
825  };
826 
827  /// MultiLegReportingType
828  struct ONIXS_EUREX_EMDI_API MultiLegReportingType
829  {
830  enum Enum
831  {
832  /// Used to identify absence of value.
833  Undefined = -1,
834 
835  /// Single Security
836  SingleSecurity = 1,
837 
838  /// Individual Leg Of A MultiLeg Security
839  IndividualLegOfMultiLegSecurity = 2,
840 
841  /// Multi Leg Security
842  MultiLegSecurity = 3
843  };
844  };
845 
846  /// MultiLegPriceModel
847  struct ONIXS_EUREX_EMDI_API MultiLegPriceModel
848  {
849  enum Enum
850  {
851  /// Used to identify absence of value.
852  Undefined = -1,
853 
854  /// Standard
855  Standard = 0,
856 
857  /// User Defined
858  UserDefined = 2
859  };
860  };
861 
862 
863  /// Exposes list of available sold out indicators.
864  struct ONIXS_EUREX_EMDI_API SoldOutIndicator
865  {
866  enum Enum
867  {
868  /// Used to identify absence of value.
869  Undefined = -1,
870 
871  ///
872  SoldOut = 1,
873  };
874  };
875 
876  namespace EOBI
877  {
878  /// Alias for Quantity Type
879  /// Quantity in integer format including 4 decimals.
880  typedef Int64 QuantityType;
881 
882  struct ONIXS_EUREX_EMDI_API AggressorSide // UInt8
883  {
884  enum Enum
885  {
886  /// Used to identify absence of value
887  NoValue = 0xFF,
888 
889  /// Triggered by the buy side
890  Buy = 1,
891 
892  /// Triggered by the sell side
893  Sell = 2,
894  };
895 
896  static std::string toString (Enum value);
897  };
898 
899  struct ONIXS_EUREX_EMDI_API ApplSeqResetIndicator // UInt8
900  {
901  enum Enum
902  {
903  NoValue = 0xFF,
904  NoReset = 0,
905  Reset = 1,
906  };
907 
908  static std::string toString (Enum value);
909  };
910 
911  struct ONIXS_EUREX_EMDI_API CompletionIndicator // UInt8
912  {
913  enum Enum
914  {
915  NoValue = 0xFF,
916  Incomplete = 0,
917  Complete = 1,
918  };
919 
920  static std::string toString (Enum value);
921  };
922 
923  struct ONIXS_EUREX_EMDI_API FastMarketIndicator // UInt8
924  {
925  enum Enum
926  {
927  NoValue = 0xFF,
928  No = 0,
929  Yes = 1,
930  };
931 
932  static std::string toString (Enum value);
933  };
934 
935  struct ONIXS_EUREX_EMDI_API ImpliedMarketIndicator // UInt8
936  {
937  enum Enum
938  {
939  NoValue = 0xFF,
940  NotImplied = 0,
941  ImpliedInOut = 3,
942  };
943 
944  static std::string toString (Enum value);
945  };
946 
947  struct ONIXS_EUREX_EMDI_API LegSecurityIDSource // String(1)
948  {
949  enum Enum
950  {
951  NoValue = 0,
952  Marketplace = 'M',
953  };
954 
955  static std::string toString (Enum value);
956  };
957 
958  struct ONIXS_EUREX_EMDI_API LegSide // UInt8
959  {
960  enum Enum
961  {
962  NoValue = 0xFF,
963  Buy = 1,
964  Sell = 2,
965  };
966 
967  static std::string toString (Enum value);
968  };
969 
970  struct ONIXS_EUREX_EMDI_API MDEntryType // UInt8
971  {
972  enum Enum
973  {
974  NoValue = 0xFF,
975  Trade = 2,
976  OpeningPrice = 4,
977  ClosingPrice = 5,
978  HighPrice = 7,
979  LowPrice = 8,
980  TradeVolume = 66,
981  PreviousClosingPrice = 101,
982  OpeningAuction = 200,
983  IntradayAuction = 201,
984  CircuitBreakerAuction = 202,
985  ClosingAuction = 203,
986  IPOAuction = 204,
987  };
988 
989  static std::string toString (Enum value);
990  };
991 
992  struct ONIXS_EUREX_EMDI_API MDReportEvent // UInt8
993  {
994  enum Enum
995  {
996  NoValue = 0xFF,
997  ScopeDefinition = 0,
998  };
999  };
1000 
1001  struct ONIXS_EUREX_EMDI_API MDUpdateAction // UInt8
1002  {
1003  enum Enum
1004  {
1005  NoValue = 0xFF,
1006  New = 0,
1007  Change = 1,
1008  Delete = 2,
1009  Overlay = 5,
1010  };
1011  };
1012 
1013  struct ONIXS_EUREX_EMDI_API MarketDataType // UInt8
1014  {
1015  enum Enum
1016  {
1017  NoValue = 0xFF,
1018  OrderBookMaintenance = 1,
1019  OrderBookExecution = 2,
1022  AuctionBBO = 5,
1024  CrossTradeAnnouncement = 7,
1026  MarketSegmentSnapshot = 9,
1027  SingleInstrumentSnapshot = 10,
1029  MatchEvent = 12,
1031  };
1032  };
1033 
1034  struct ONIXS_EUREX_EMDI_API MatchSubType // UInt8
1035  {
1036  enum Enum
1037  {
1038  NoValue = 0xFF,
1039  OpeningAuction = 1,
1040  ClosingAuction = 2,
1041  IntradayAuction = 3,
1042  CircuitBreakerAuction = 4,
1043  IPOAuction = 5,
1044  };
1045 
1046  static std::string toString (Enum value);
1047  };
1048 
1049  struct ONIXS_EUREX_EMDI_API MatchType // UInt8
1050  {
1051  enum Enum
1052  {
1053  NoValue = 0xFF,
1054  ConfirmedTradeReport = 3,
1055  CrossAuction = 5,
1056  CallAuction = 7,
1057  };
1058 
1059  static std::string toString (Enum value);
1060  };
1061 
1062  struct ONIXS_EUREX_EMDI_API NoMarketSegments // UInt8
1063  {
1064  enum Enum
1065  {
1066  NoValue = 0xFF,
1067  One = 1,
1068  };
1069 
1070  static std::string toString (Enum value);
1071  };
1072 
1073  struct ONIXS_EUREX_EMDI_API ProductComplex // UInt8
1074  {
1075  enum Enum
1076  {
1077  NoValue = 0xFF,
1078 
1079  StandardOptionStrategy = 2,
1080  NonStandardOptionStrategy = 3,
1081  VolatilityStrategy = 4,
1082  FuturesSpread = 5,
1083  InterProductSpread = 6,
1084  StandardFuturesStrategy = 7,
1085  PackAndBundle = 8,
1086  Strip = 9,
1087  };
1088 
1089  static std::string toString (Enum value);
1090  };
1091 
1092  struct ONIXS_EUREX_EMDI_API SecurityIDSource // String(1)
1093  {
1094  enum Enum
1095  {
1096  NoValue = 0,
1097  Marketplace = 'M',
1098  };
1099 
1100  static std::string toString (Enum value);
1101  };
1102 
1103  struct ONIXS_EUREX_EMDI_API SecurityStatus // UInt8
1104  {
1105  enum Enum
1106  {
1107  NoValue = 0xFF,
1108  Active = 1,
1109  Inactive = 2,
1110  Expired = 4,
1111  Suspended = 9,
1112  PendingDeletion = 11,
1113  };
1114 
1115  static std::string toString (Enum value);
1116  };
1117 
1118  struct ONIXS_EUREX_EMDI_API SecurityTradingStatus // UInt8
1119  {
1120  enum Enum
1121  {
1122  NoValue = 0xFF,
1123 
1124  TradingHalt = 2,
1125  MarketImbalanceBuy = 7,
1126  MarketImbalanceSell = 8,
1127  Closed = 200,
1128  Restricted = 201,
1129  Book = 202,
1130  Continuous = 203,
1131  OpeningAuction = 204,
1132  OpeningAuctionFreeze = 205,
1133  IntradayAuction = 206,
1134  IntradayAuctionFreeze = 207,
1135  CircuitBreakerAuction = 208,
1136  CircuitBreakerAuctionFreeze = 209,
1137  ClosingAuction = 210,
1138  ClosingAuctionFreeze = 211,
1139  IPOAuction = 212,
1140  IPOAuctionFreeze = 213,
1141  PreCall = 214,
1142  Call = 215,
1143  Freeze = 216
1144  };
1145 
1146  static std::string toString (Enum value);
1147  };
1148 
1149  struct ONIXS_EUREX_EMDI_API SecurityType // String(4)
1150  {
1151  enum Enum
1152  {
1153  NoValue = 0,
1154  Option = 'O', // OPT,
1155  Future = 'F', // FUT,
1156  MultiLeg = 'M' // MLEG,
1157  };
1158 
1159  static std::string toString (Enum value);
1160  };
1161 
1162  struct ONIXS_EUREX_EMDI_API SecurityUpdateAction // String(1)
1163  {
1164  enum Enum
1165  {
1166  NoValue = 0,
1167  Add = 'A',
1168  Delete = 'D',
1169  };
1170 
1171  static std::string toString (Enum value);
1172  };
1173 
1174  struct ONIXS_EUREX_EMDI_API Side // UInt8
1175  {
1176  enum Enum
1177  {
1178  NoValue = 0xFF,
1179  Buy = 1,
1180  Sell = 2,
1181  };
1182 
1183  static std::string toString (Enum value);
1184  };
1185 
1186  /// Indicates whether a synthetic match is occurred.
1187  struct ONIXS_EUREX_EMDI_API TradeCondition // UInt8
1188  {
1189  enum Enum
1190  {
1191  NoValue = 0xFF,
1192  ImpliedTrade = 1,
1193  SpecialAuctionPrice = 86,
1194  OutOfSequence = 107,
1195  SystematicInternalizer = 153,
1196  MidpointPrice = 155,
1197  TradedBeforeIssueDate = 156
1198  };
1199 
1200  static std::string toString (Enum value);
1201  };
1202 
1203  struct ONIXS_EUREX_EMDI_API TradSesEvent // UInt8
1204  {
1205  enum Enum
1206  {
1207  NoValue = 0xFF,
1208  TBD = 0,
1209  StatusChange = 3,
1210  };
1211 
1212  static std::string toString (Enum value);
1213  };
1214 
1215  struct ONIXS_EUREX_EMDI_API TradSesStatus // UInt8
1216  {
1217  enum Enum
1218  {
1219  NoValue = 0xFF,
1220  Halted = 1,
1221  Open = 2,
1222  Closed = 3,
1223  };
1224 
1225  static std::string toString (Enum value);
1226  };
1227 
1228  struct ONIXS_EUREX_EMDI_API TradingSessionID // UInt8
1229  {
1230  enum Enum
1231  {
1232  NoValue = 0xFF,
1233  Day = 1,
1234  Morning = 3,
1235  Evening = 5,
1236  AfterHours = 6,
1237  Holiday = 7,
1238  };
1239 
1240  static std::string toString (Enum value);
1241  };
1242 
1243  struct ONIXS_EUREX_EMDI_API TradingSessionSubID // UInt8
1244  {
1245  enum Enum
1246  {
1247  NoValue = 0xFF,
1248  PreTrading = 1,
1249  Continuous = 3,
1250  Closing = 4,
1251  PostTrading = 5,
1252  Quiescent = 7,
1253  };
1254 
1255  static std::string toString (Enum value);
1256  };
1257 
1258 
1259  struct ONIXS_EUREX_EMDI_API PotentialSecurityTradingEvent // UInt8
1260  {
1261  enum Enum
1262  {
1263  NoValue = 0xFF,
1264 
1265  /// None
1266  None = 0,
1267 
1268  /// Price volatility, auction is extended
1269  PriceVolatilityAuctionIsExtended = 10,
1270  };
1271 
1272  static std::string toString (Enum value);
1273  };
1274 
1275  struct ONIXS_EUREX_EMDI_API OrdType // UInt8
1276  {
1277  enum Enum
1278  {
1279  NoValue = 0xFF,
1280 
1281  /// Market Order
1282  MarketOrder = 1,
1283  };
1284 
1285  static std::string toString(Enum value);
1286  };
1287 
1288  struct ONIXS_EUREX_EMDI_API SecurityTradingEvent // UInt8
1289  {
1290  enum Enum
1291  {
1292  NoValue = 0xFF,
1293 
1294  /// Price volatility, auction is extended
1295  PriceVolatilityAuctionIsExtended = 10,
1296 
1297  /// Price volatility, auction is extended again
1298  PriceVolatilityAuctionIsExtendedAgain = 11,
1299  };
1300 
1301  static std::string toString (Enum value);
1302  };
1303 
1304  struct ONIXS_EUREX_EMDI_API OrderType // UInt8
1305  {
1306  enum Enum
1307  {
1308  NoValue = 0xFF,
1309 
1310  ///
1311  MarketOrder = 1,
1312  };
1313 
1314  static std::string toString (Enum value);
1315  };
1316 
1317  struct ONIXS_EUREX_EMDI_API AlgorithmicTradeIndicator // UInt8
1318  {
1319  enum Enum
1320  {
1321  NoValue = 0xFF,
1322 
1323  ///
1324  AlgorithmicTrade = 1,
1325  };
1326 
1327  static std::string toString(Enum value);
1328  };
1329 
1330  struct ONIXS_EUREX_EMDI_API MarketCondition // UInt8
1331  {
1332  enum Enum
1333  {
1334  NoValue = 0xFF,
1335 
1336  ///
1337  Normal = 0,
1338 
1339  ///
1340  Stressed = 1
1341  };
1342 
1343  static std::string toString(Enum value);
1344  };
1345 
1346  struct ONIXS_EUREX_EMDI_API LegSecurityType // UInt8
1347  {
1348  enum Enum
1349  {
1350  NoValue = 0xFF,
1351 
1352  ///
1353  LegSecurityMultiLeg = 0,
1354 
1355  ///
1356  LegSecurityUnderlyingLeg = 1
1357  };
1358 
1359  static std::string toString(Enum value);
1360  };
1361 
1362  struct ONIXS_EUREX_EMDI_API SoldOutIndicator // UInt8
1363  {
1364  enum Enum
1365  {
1366  NoValue = 0xFF,
1367 
1368  ///
1369  SoldOut = 1,
1370  };
1371 
1372  static std::string toString(Enum value);
1373  };
1374 
1375  struct ONIXS_EUREX_EMDI_API InstrumentScopeProductComplex // UInt8
1376  {
1377  enum Enum
1378  {
1379  NoValue = 0xFF,
1380 
1381  ///
1382  SimpleInstrument = 1,
1383 
1384  ///
1385  StandardOptionStrategy = 2,
1386 
1387  ///
1388  NonStandardOptionStrategy = 3,
1389 
1390  ///
1391  VolatilityStrategy = 4,
1392 
1393  ///
1394  FuturesSpread = 5,
1395 
1396  ///
1397  InterProductSpread = 6,
1398 
1399  ///
1400  StandardFuturesStrategy = 7,
1401 
1402  ///
1403  PackAndBundle = 8,
1404 
1405  ///
1406  Strip = 9
1407  };
1408 
1409  static std::string toString(Enum value);
1410  };
1411 
1412  struct ONIXS_EUREX_EMDI_API SecurityMassStatus // UInt8
1413  {
1414  enum Enum
1415  {
1416  NoValue = 0xFF,
1417 
1418  ///
1419  Active = 1,
1420 
1421  ///
1422  Inactive = 2,
1423 
1424  ///
1425  Expired = 4,
1426 
1427  ///
1428  KnockedOut = 6,
1429 
1430  ///
1431  KnockOutRevoked = 7,
1432 
1433  ///
1434  Suspended = 9,
1435 
1436  ///
1437  PendingDeletion = 11,
1438 
1439  ///
1440  KnockedOutAndSuspended = 12
1441  };
1442 
1443  static std::string toString(Enum value);
1444  };
1445 
1446  struct ONIXS_EUREX_EMDI_API SecurityMassTradingStatus // UInt8
1447  {
1448  enum Enum
1449  {
1450  NoValue = 0xFF,
1451 
1452  ///
1453  TradingHalt = 2,
1454 
1455  ///
1456  MarketImbalanceBuy = 7,
1457 
1458  ///
1459  MarketImbalanceSell = 8,
1460 
1461  ///
1462  Closed = 200,
1463 
1464  ///
1465  Restricted = 201,
1466 
1467  ///
1468  Book = 202,
1469 
1470  ///
1471  Continuous = 203,
1472 
1473  ///
1474  OpeningAuction = 204,
1475 
1476  ///
1477  OpeningAuctionFreeze = 205,
1478 
1479  ///
1480  IntradayAuction = 206,
1481 
1482  ///
1483  IntradayAuctionFreeze = 207,
1484 
1485  ///
1486  CircuitBreakerAuction = 208,
1487 
1488  ///
1489  CircuitBreakerAuctionFreeze = 209,
1490 
1491  ///
1492  ClosingAuction = 210,
1493 
1494  ///
1495  ClosingAuctionFreeze = 211,
1496 
1497  ///
1498  IPOAuction = 212,
1499 
1500  ///
1501  IPOAuctionFreeze = 213,
1502 
1503  ///
1504  PreCall = 214,
1505 
1506  ///
1507  Call = 215,
1508 
1509  ///
1510  Freeze = 216
1511  };
1512 
1513  static std::string toString(Enum value);
1514  };
1515 
1516  struct ONIXS_EUREX_EMDI_API MassMarketCondition // UInt8
1517  {
1518  enum Enum
1519  {
1520  NoValue = 0xFF,
1521 
1522  ///
1523  Normal = 0,
1524 
1525  ///
1526  Stressed = 1
1527  };
1528 
1529  static std::string toString(Enum value);
1530  };
1531 
1532  struct ONIXS_EUREX_EMDI_API SecurityMassTradingEvent // UInt8
1533  {
1534  enum Enum
1535  {
1536  NoValue = 0xFF,
1537 
1538  /// Price volatility, auction is extended
1539  PriceVolatilityAuctionIsExtended = 10,
1540 
1541  /// Price volatility, auction is extended again
1542  PriceVolatilityAuctionIsExtendedAgain = 11
1543  };
1544 
1545  static std::string toString(Enum value);
1546  };
1547 
1548  struct ONIXS_EUREX_EMDI_API MassSoldOutIndicator // UInt8
1549  {
1550  enum Enum
1551  {
1552  NoValue = 0xFF,
1553 
1554  ///
1555  SoldOut = 1,
1556  };
1557 
1558  static std::string toString(Enum value);
1559  };
1560 
1561 
1562  struct ONIXS_EUREX_EMDI_API LastFragment // UInt8
1563  {
1564  enum Enum
1565  {
1566  NoValue = 0xFF,
1567 
1568  ///
1569  N = 0,
1570 
1571  ///
1572  Y = 1,
1573  };
1574 
1575  static std::string toString(Enum value);
1576  };
1577 
1578 
1579  }
1580  }
1581  }
1582 }
unsigned int SequenceNumber
Alias for sequence numbers.
Exposes list of available trade session statuses.
Definition: Defines.h:181
UInt32 PartitionId
Alias for Partition ID type.
Definition: Defines.h:48
Exposes list of available sold out indicators.
Definition: Defines.h:864
UInt32 MarketDepth
Alias for Market depth type.
Definition: Defines.h:43
UInt32 senderCompID
Unique id for a sender.
Definition: Defines.h:85
const Tag SecurityUpdateAction
Definition: Tags.h:90
Timestamp packetReceptionTime
Time when the packet was received by Handler from UDP, in system ticks,.
Definition: Defines.h:59
Exposes list of available book types.
Definition: Defines.h:762
Exposes list of available trade types.
Definition: Defines.h:656
Indicator for stressed market conditions.
Definition: Defines.h:797
Exposes list of available security trading statuses.
Definition: Defines.h:406
Exposes list of available origin types.
Definition: Defines.h:596
Exposes list of available update actions.
Definition: Defines.h:612
Exposes list of available market segment statuses.
Definition: Defines.h:703
Exposes list of available trade types.
Definition: Defines.h:277
Exposes list of available security statuses.
Definition: Defines.h:143
Exposes list of available trade conditions.
Definition: Defines.h:489
UInt64 sendingTime
Time when market data feed handler writes packet on the wire.
Definition: Defines.h:75
unsigned int UInt32
Definition: Numeric.h:41
Exposes list of available trading session IDs.
Definition: Defines.h:347
Definition: Defines.h:30
SequenceNumber packetSeqNum
Packet sequence number.
Definition: Defines.h:66
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:722
Exchange for Physical fin trade.
Definition: Defines.h:679
Represents timestamp without time-zone information.
Definition: Timestamp.h:80
Exposes list of available sub book types.
Definition: Defines.h:781
Exchange for Physical Fin trade.
Definition: Defines.h:310
bool contain(TradeCondition::Enum value) const
Definition: Defines.h:543
Exchange for Physical.
Definition: Defines.h:295
Exposes list of available trading session sub IDs.
Definition: Defines.h:369
bool isLastInPacket
Indicates whether a message is last in the packet.
Definition: Defines.h:72
Exposes list of available entry types.
Definition: Defines.h:219
UInt32 MarketSegmentId
Alias for Market Segment ID type.
Definition: Defines.h:40
SequenceNumber packetMessageSeqNum
Packet message number.
Definition: Defines.h:69
Exposes list of available aggressor sides.
Definition: Defines.h:640
UInt64 Quantity
Alias for Quantity type.
Definition: Defines.h:54
Indicates whether a synthetic match is occurred.
Definition: Defines.h:1187
Exposes list of leg sides.
Definition: Defines.h:127