OnixS C++ Eurex T7 Market and Reference Data Interface (EMDI, RDI, EOBI) Handlers  7.2.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  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
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  /// Block trade
289  BlockTrade = 0,
290 
291  /// Exchange for Physical
293 
294  /// Exchange for swap
296 
297  ///
299 
300  /// Exchange basis facility
302 
303  /// Vola trade
305 
306  /// Exchange for Physical Fin trade
308 
309  /// EFPIndexFutures trade
311 
312  ///
314 
315  ///
317 
318  /// Opening auction trade
320 
321  /// Intraday auction trade
323 
324  /// Volatility auction trade
326 
327  /// Closing auction trade
329 
330  /// Cross auction trade
332 
333  ///
335 
336  ///
337  LiquidityImprovementCross
338  };
339 
340  static std::string toString (Enum value);
341  };
342 
343  /// Exposes list of available trading session IDs
344  struct ONIXS_EUREX_EMDI_API TradingSessionId
345  {
346  enum Enum
347  {
348  /// Used to identify absence of value.
349  Undefined = -1,
350 
351  /// Day
352  Day = 0,
353 
354  /// Morning
355  Morning = 1,
356 
357  /// Evening
358  Evening = 2,
359 
360  /// Holiday
361  Holiday = 3,
362  };
363  };
364 
365  /// Exposes list of available trading session sub IDs
366  struct ONIXS_EUREX_EMDI_API TradingSessionSubID
367  {
368  enum Enum
369  {
370  /// Used to identify absence of value.
371  Undefined = -1,
372 
373  /// PreTrading
374  PreTrading = 0,
375 
376  /// Continuous
377  Continuous = 1,
378 
379  /// Closing
380  Closing = 2,
381 
382  /// PostTrading
383  PostTrading = 3,
384 
385  /// ScheduledIntradayAuction
386  ScheduledIntradayAuction = 4,
387 
388  /// Quiescent
389  Quiescent = 5,
390 
391  /// AnyAuction
392  AnyAuction = 6,
393 
394  /// ContinuousAuctionIssuer
395  ContinuousAuctionIssuer = 7,
396  };
397  };
398 
399  ///
400  struct ONIXS_EUREX_EMDI_API RdiTrdType
401  {
402  enum Enum
403  {
404  /// Used to identify absence of value.
405  Undefined = -1,
406 
407  ///
408  Block = 0,
409 
410  ///
412 
413  ///
415 
416  ///
418 
419  ///
421 
422  ///
424 
425  ///
427 
428  ///
430 
431  ///
432  XetraEurexEnlightTriggeredTrade
433  };
434  };
435 
436 
437  /// Exposes list of available security trading statuses
438  struct ONIXS_EUREX_EMDI_API SecurityTradingStatus
439  {
440  enum Enum
441  {
442  /// Used to identify absence of value.
443  Undefined = -1,
444 
445  /// Trading Halt
446  TradingHalt = 0,
447 
448  /// Closed
449  Closed = 1,
450 
451  /// Restricted
452  Restricted = 2,
453 
454  /// Book
455  Book = 3,
456 
457  /// Continuous
458  Continuous = 4,
459 
460  /// Opening auction
461  OpeningAuction = 5,
462 
463  /// Opening auction freeze
464  OpeningAuctionFreeze = 6,
465 
466  /// Intraday auction
467  IntradayAuction = 7,
468 
469  /// Intraday auction freeze
470  IntradayAuctionFreeze = 8,
471 
472  /// Circuit breaker auction
473  CircuitBreakerAuction = 9,
474 
475  /// Circuit breaker auction freeze
476  CircuitBreakerAuctionFreeze = 10,
477 
478  /// Closing auction
479  ClosingAuction = 11,
480 
481  /// Closing auction freeze
482  ClosingAuctionFreeze = 12,
483 
484  /// CIPO Auction
485  IPOAuction = 13,
486 
487  /// IPO Auction Freeze
488  IPOAuctionFreeze = 14,
489 
490  ///
492 
493  ///
495  };
496  };
497 
498 
499  struct ONIXS_EUREX_EMDI_API SecurityTradingEvent
500  {
501  enum Enum
502  {
503  /// Used to identify absence of value.
504  Undefined = -1,
505 
506  ///
507  None = 0,
508 
509  ///
510  PriceVolatilityAuctionIsExtended = 1,
511 
512  ///
513  PriceVolatilityAuctionIsExtendedAgain = 2,
514  };
515  };
516 
517  /// Exposes list of available trade conditions
518  struct ONIXS_EUREX_EMDI_API TradeCondition
519  {
520  enum Enum
521  {
522  /// Used to identify absence of value.
524 
525  /// Exchange last
526  ExchangeLast = 1,
527 
528  /// Opening price
529  OpeningPrice = 2,
530 
531  /// High price
532  HighPrice = 4,
533 
534  /// Low price
535  LowPrice = 8,
536 
537  /// Official closing price
538  OfficialClosingPrice = 16,
539 
540  /// Last auction price
541  LastAuctionPrice = 32,
542 
543  /// Out of sequence ETH
544  OutOfSequenceETH = 64,
545 
546  /// Previous Closing Price
547  PreviousClosingPrice = 128,
548 
549  /// Volume Only
550  VolumeOnly = 256,
551 
552  /// Systematic Internalizer
553  SystematicInternalizer = 512,
554 
555  /// Midpoint Price
556  MidpointPrice = 1024,
557 
558  ///
559  TradedBeforeIssueDate = 2048,
560  };
561  };
562 
563  struct ONIXS_EUREX_EMDI_API TradeConditionSet
564  {
565  TradeConditionSet (UInt64 value)
566  : value_ (value)
567  {}
568 
569  bool contain (TradeCondition::Enum value) const
570  {
571  return (value_ & value) != 0;
572  }
573 
574  bool containExchangeLast() const
575  {
576  return contain (TradeCondition::ExchangeLast);
577  }
578  bool containOpeningPrice() const
579  {
580  return contain (TradeCondition::OpeningPrice);
581  }
582  bool containHighPrice() const
583  {
584  return contain (TradeCondition::HighPrice);
585  }
586  bool containLowPrice() const
587  {
588  return contain (TradeCondition::LowPrice);
589  }
591  {
592  return contain (TradeCondition::OfficialClosingPrice);
593  }
595  {
596  return contain (TradeCondition::LastAuctionPrice);
597  }
599  {
600  return contain (TradeCondition::OutOfSequenceETH);
601  }
603  {
604  return contain (TradeCondition::PreviousClosingPrice);
605  }
606  bool containVolumeOnly() const
607  {
608  return contain (TradeCondition::VolumeOnly);
609  }
610 
611  std::string toString() const;
612 
613  private:
614  UInt64 value_;
615  };
616 
617  /// Exposes list of available origin types
618  struct ONIXS_EUREX_EMDI_API MDOriginType
619  {
620  enum Enum
621  {
622  /// Used to identify absence of value.
623  Undefined = -1,
624 
625  ///
626  Book = 0,
627 
628  ///
629  OffBook = 1,
630  };
631  };
632 
633  /// Exposes list of available update actions
634  struct ONIXS_EUREX_EMDI_API MDUpdateAction
635  {
636  enum Enum
637  {
638  /// Used to identify absence of value.
639  Undefined = -1,
640 
641  /// New
642  New = 0,
643 
644  /// Change
645  Change = 1,
646 
647  /// Delete
648  Delete = 2,
649 
650  /// DeleteThru
651  DeleteThru = 3,
652 
653  /// DeleteFrom
654  DeleteFrom = 4,
655 
656  /// Overlay
657  Overlay = 5
658  };
659  };
660 
661  /// Exposes list of available aggressor sides
662  struct ONIXS_EUREX_EMDI_API Side
663  {
664  enum Enum
665  {
666  /// Used to identify absence of value.
667  Undefined = -1,
668 
669  /// Buy
670  Buy = 1,
671 
672  /// Sell
673  Sell = 2,
674  };
675  };
676 
677  /// Exposes list of available trade types
678  struct ONIXS_EUREX_EMDI_API OffBookTrdType
679  {
680  enum Enum
681  {
682  /// Used to identify absence of value.
683  Undefined = -1,
684 
685  /// Block trade
686  BlockTrade = 0,
687 
688  /// Exchange for Physical
690 
691  /// Exchange for swap
693 
694  /// Exchange basis facility
696 
697  /// VolaTrade
699 
700  /// Exchange for Physical fin trade
702 
703  /// EFPIndexFuturesTrade
705 
706  /// Opening auction trade
708 
709  /// Intraday auction trade
711 
712  /// Volatility auction trade
714 
715  /// Closing auction trade
717 
718  /// Cross auction trade
719  CrossAuctionTrade
720  };
721  };
722 
723 
724  /// Exposes list of available market segment statuses.
725  struct ONIXS_EUREX_EMDI_API MarketSegmentStatus
726  {
727  enum Enum
728  {
729  /// Used to identify absence of value.
730  Undefined = -1,
731 
732  /// Defines if product is traded on on NTA.
733  Active = 0,
734 
735  /// Inactive
736  Inactive = 1,
737 
738  /// Defines if product is still traded on "Eurex classic"
739  Published = 2,
740  };
741  };
742 
743  /// Exposes list of available instrument types for tick rule.
744  struct ONIXS_EUREX_EMDI_API InstrumentType
745  {
746  enum Enum
747  {
748  /// Used to identify absence of value.
749  Undefined = -1,
750 
751  /// Simple instrument
752  SimpleInstrument = 1,
753 
754  /// Standard option strategy
755  StandardOptionStrategy = 2,
756 
757  /// Non standard option strategy
758  NonStandardOptionStrategy = 3,
759 
760  /// Volatility strategy
761  VolatilityStrategy = 4,
762 
763  /// Futures spread
764  FuturesSpread = 5,
765 
766  /// Inter Product Spread
767  InterProductSpread = 6,
768 
769  /// Standard Futures Strategy
770  StandardFuturesStrategy = 7,
771 
772  /// Pack And Bundle
773  PackAndBundle = 8,
774 
775  /// Strip
776  Strip = 9,
777 
778  /// Flexible
779  Flexible = 10,
780  };
781  };
782 
783  /// Exposes list of available book types.
784  struct ONIXS_EUREX_EMDI_API BookType
785  {
786  enum Enum
787  {
788  /// Used to identify absence of value.
789  Undefined = -1,
790 
791  /// Top Of Book
792  TopOfBook = 0,
793 
794  /// Price Depth
795  PriceDepth = 1,
796 
797  /// Order Depth
798  OrderDepth = 2,
799  };
800  };
801 
802  /// Exposes list of available sub book types.
803  struct ONIXS_EUREX_EMDI_API SubBookType
804  {
805  enum Enum
806  {
807  /// Used to identify absence of value.
808  Undefined = -1,
809 
810  /// Price Depth
811  IPSImpliedVolumeWithoutQuantityRestriction = 0,
812 
813  /// Order Depth
814  IPSImpliedVolumeWithQuantityRestriction = 1,
815  };
816  };
817 
818  /// Indicator for stressed market conditions.
819  struct ONIXS_EUREX_EMDI_API MarketCondition
820  {
821  enum Enum
822  {
823  /// Used to identify absence of value.
824  Undefined = -1,
825 
826  /// Normal
827  Normal = 0,
828 
829  /// Stressed
830  Stressed = 1
831  };
832  };
833 
834  /// A trade has to be flagged as "algorithmic", if at least one of the
835  /// matched orders was submitted by a trading algorithm.Applicable
836  /// for cash market products only.
837  struct ONIXS_EUREX_EMDI_API AlgorithmicTradeIndicator
838  {
839  enum Enum
840  {
841  /// Used to identify absence of value.
842  Undefined = -1,
843 
844  /// Algorithmic Trade
845  AlgorithmicTrade = 1
846  };
847  };
848 
849  /// MultiLegReportingType
850  struct ONIXS_EUREX_EMDI_API MultiLegReportingType
851  {
852  enum Enum
853  {
854  /// Used to identify absence of value.
855  Undefined = -1,
856 
857  /// Single Security
858  SingleSecurity = 1,
859 
860  /// Individual Leg Of A MultiLeg Security
861  IndividualLegOfMultiLegSecurity = 2,
862 
863  /// Multi Leg Security
864  MultiLegSecurity = 3
865  };
866  };
867 
868  /// MultiLegPriceModel
869  struct ONIXS_EUREX_EMDI_API MultiLegPriceModel
870  {
871  enum Enum
872  {
873  /// Used to identify absence of value.
874  Undefined = -1,
875 
876  /// Standard
877  Standard = 0,
878 
879  /// User Defined
880  UserDefined = 2
881  };
882  };
883 
884 
885  /// Exposes list of available sold out indicators.
886  struct ONIXS_EUREX_EMDI_API SoldOutIndicator
887  {
888  enum Enum
889  {
890  /// Used to identify absence of value.
891  Undefined = -1,
892 
893  ///
894  NotSoldOut = 0,
895 
896  ///
897  SoldOut = 1,
898  };
899  };
900 
901  namespace EOBI
902  {
903  /// Alias for Quantity Type
904  /// Quantity in integer format including 4 decimals.
905  typedef Int64 QuantityType;
906 
907  struct ONIXS_EUREX_EMDI_API AggressorSide // UInt8
908  {
909  enum Enum
910  {
911  /// Used to identify absence of value
912  NoValue = 0xFF,
913 
914  /// Triggered by the buy side
915  Buy = 1,
916 
917  /// Triggered by the sell side
918  Sell = 2,
919  };
920 
921  static std::string toString (Enum value);
922  };
923 
924  struct ONIXS_EUREX_EMDI_API ApplSeqResetIndicator // UInt8
925  {
926  enum Enum
927  {
928  NoValue = 0xFF,
929  NoReset = 0,
930  Reset = 1,
931  };
932 
933  static std::string toString (Enum value);
934  };
935 
936  struct ONIXS_EUREX_EMDI_API CompletionIndicator // UInt8
937  {
938  enum Enum
939  {
940  NoValue = 0xFF,
941  Incomplete = 0,
942  Complete = 1,
943  };
944 
945  static std::string toString (Enum value);
946  };
947 
948  struct ONIXS_EUREX_EMDI_API FastMarketIndicator // UInt8
949  {
950  enum Enum
951  {
952  NoValue = 0xFF,
953  No = 0,
954  Yes = 1,
955  };
956 
957  static std::string toString (Enum value);
958  };
959 
960  struct ONIXS_EUREX_EMDI_API ImpliedMarketIndicator // UInt8
961  {
962  enum Enum
963  {
964  NoValue = 0xFF,
965  NotImplied = 0,
966  ImpliedInOut = 3,
967  };
968 
969  static std::string toString (Enum value);
970  };
971 
972  struct ONIXS_EUREX_EMDI_API LegSecurityIDSource // String(1)
973  {
974  enum Enum
975  {
976  NoValue = 0,
977  Marketplace = 'M',
978  };
979 
980  static std::string toString (Enum value);
981  };
982 
983  struct ONIXS_EUREX_EMDI_API LegSide // UInt8
984  {
985  enum Enum
986  {
987  NoValue = 0xFF,
988  Buy = 1,
989  Sell = 2,
990  };
991 
992  static std::string toString (Enum value);
993  };
994 
995  struct ONIXS_EUREX_EMDI_API MDEntryType // UInt8
996  {
997  enum Enum
998  {
999  NoValue = 0xFF,
1000  Trade = 2,
1001  OpeningPrice = 4,
1002  ClosingPrice = 5,
1003  HighPrice = 7,
1004  LowPrice = 8,
1006  PreviousClosingPrice = 101,
1007  OpeningAuction = 200,
1008  IntradayAuction = 201,
1009  CircuitBreakerAuction = 202,
1010  ClosingAuction = 203,
1011  IPOAuction = 204,
1012  };
1013 
1014  static std::string toString (Enum value);
1015  };
1016 
1017  struct ONIXS_EUREX_EMDI_API MDReportEvent // UInt8
1018  {
1019  enum Enum
1020  {
1021  NoValue = 0xFF,
1022  ScopeDefinition = 0,
1023  };
1024  };
1025 
1026  struct ONIXS_EUREX_EMDI_API MDUpdateAction // UInt8
1027  {
1028  enum Enum
1029  {
1030  NoValue = 0xFF,
1031  New = 0,
1032  Change = 1,
1033  Delete = 2,
1034  Overlay = 5,
1035  };
1036  };
1037 
1038  struct ONIXS_EUREX_EMDI_API MarketDataType // UInt8
1039  {
1040  enum Enum
1041  {
1042  NoValue = 0xFF,
1043  OrderBookMaintenance = 1,
1044  OrderBookExecution = 2,
1047  AuctionBBO = 5,
1049  CrossTradeAnnouncement = 7,
1051  MarketSegmentSnapshot = 9,
1052  SingleInstrumentSnapshot = 10,
1054  MatchEvent = 12,
1056  };
1057  };
1058 
1059  struct ONIXS_EUREX_EMDI_API MatchSubType // UInt8
1060  {
1061  enum Enum
1062  {
1063  NoValue = 0xFF,
1064  OpeningAuction = 1,
1065  ClosingAuction = 2,
1066  IntradayAuction = 3,
1067  CircuitBreakerAuction = 4,
1068  IPOAuction = 5,
1069  };
1070 
1071  static std::string toString (Enum value);
1072  };
1073 
1074  struct ONIXS_EUREX_EMDI_API MatchType // UInt8
1075  {
1076  enum Enum
1077  {
1078  NoValue = 0xFF,
1079  ConfirmedTradeReport = 3,
1080  CrossAuction = 5,
1081  CallAuction = 7,
1082  };
1083 
1084  static std::string toString (Enum value);
1085  };
1086 
1087  struct ONIXS_EUREX_EMDI_API NoMarketSegments // UInt8
1088  {
1089  enum Enum
1090  {
1091  NoValue = 0xFF,
1092  One = 1,
1093  };
1094 
1095  static std::string toString (Enum value);
1096  };
1097 
1098  struct ONIXS_EUREX_EMDI_API ProductComplex // UInt8
1099  {
1100  enum Enum
1101  {
1102  NoValue = 0xFF,
1103 
1104  StandardOptionStrategy = 2,
1105  NonStandardOptionStrategy = 3,
1106  VolatilityStrategy = 4,
1107  FuturesSpread = 5,
1108  InterProductSpread = 6,
1109  StandardFuturesStrategy = 7,
1110  PackAndBundle = 8,
1111  Strip = 9,
1112  };
1113 
1114  static std::string toString (Enum value);
1115  };
1116 
1117  struct ONIXS_EUREX_EMDI_API SecurityIDSource // String(1)
1118  {
1119  enum Enum
1120  {
1121  NoValue = 0,
1122  Marketplace = 'M',
1123  };
1124 
1125  static std::string toString (Enum value);
1126  };
1127 
1128  struct ONIXS_EUREX_EMDI_API SecurityStatus // UInt8
1129  {
1130  enum Enum
1131  {
1132  NoValue = 0xFF,
1133  Active = 1,
1134  Inactive = 2,
1135  Expired = 4,
1136  Suspended = 9,
1137  PendingDeletion = 11,
1138  };
1139 
1140  static std::string toString (Enum value);
1141  };
1142 
1143  struct ONIXS_EUREX_EMDI_API SecurityTradingStatus // UInt8
1144  {
1145  enum Enum
1146  {
1147  NoValue = 0xFF,
1148 
1149  TradingHalt = 2,
1150  MarketImbalanceBuy = 7,
1151  MarketImbalanceSell = 8,
1152  Closed = 200,
1153  Restricted = 201,
1154  Book = 202,
1155  Continuous = 203,
1156  OpeningAuction = 204,
1157  OpeningAuctionFreeze = 205,
1158  IntradayAuction = 206,
1159  IntradayAuctionFreeze = 207,
1160  CircuitBreakerAuction = 208,
1161  CircuitBreakerAuctionFreeze = 209,
1162  ClosingAuction = 210,
1163  ClosingAuctionFreeze = 211,
1164  IPOAuction = 212,
1165  IPOAuctionFreeze = 213,
1166  PreCall = 214,
1167  Call = 215
1168  };
1169 
1170  static std::string toString (Enum value);
1171  };
1172 
1173  struct ONIXS_EUREX_EMDI_API SecurityType // String(4)
1174  {
1175  enum Enum
1176  {
1177  NoValue = 0,
1178  Option = 'O', // OPT,
1179  Future = 'F', // FUT,
1180  MultiLeg = 'M' // MLEG,
1181  };
1182 
1183  static std::string toString (Enum value);
1184  };
1185 
1186  struct ONIXS_EUREX_EMDI_API SecurityUpdateAction // String(1)
1187  {
1188  enum Enum
1189  {
1190  NoValue = 0,
1191  Add = 'A',
1192  Delete = 'D',
1193  };
1194 
1195  static std::string toString (Enum value);
1196  };
1197 
1198  struct ONIXS_EUREX_EMDI_API Side // UInt8
1199  {
1200  enum Enum
1201  {
1202  NoValue = 0xFF,
1203  Buy = 1,
1204  Sell = 2,
1205  };
1206 
1207  static std::string toString (Enum value);
1208  };
1209 
1210  /// Indicates whether a synthetic match is occurred.
1211  struct ONIXS_EUREX_EMDI_API TradeCondition // UInt8
1212  {
1213  enum Enum
1214  {
1215  NoValue = 0xFF,
1216  ImpliedTrade = 1,
1217 
1218  OutOfSequence = 107,
1219  SystematicInternalizer = 153,
1220  MidpointPrice = 155,
1221  TradedBeforeIssueDate = 156
1222  };
1223 
1224  static std::string toString (Enum value);
1225  };
1226 
1227  struct ONIXS_EUREX_EMDI_API TradSesEvent // UInt8
1228  {
1229  enum Enum
1230  {
1231  NoValue = 0xFF,
1232  TBD = 0,
1233  StatusChange = 3,
1234  };
1235 
1236  static std::string toString (Enum value);
1237  };
1238 
1239  struct ONIXS_EUREX_EMDI_API TradSesStatus // UInt8
1240  {
1241  enum Enum
1242  {
1243  NoValue = 0xFF,
1244  Halted = 1,
1245  Open = 2,
1246  Closed = 3,
1247  };
1248 
1249  static std::string toString (Enum value);
1250  };
1251 
1252  struct ONIXS_EUREX_EMDI_API TradingSessionID // UInt8
1253  {
1254  enum Enum
1255  {
1256  NoValue = 0xFF,
1257  Day = 1,
1258  Morning = 3,
1259  Evening = 5,
1260  AfterHours = 6,
1261  Holiday = 7,
1262  };
1263 
1264  static std::string toString (Enum value);
1265  };
1266 
1267  struct ONIXS_EUREX_EMDI_API TradingSessionSubID // UInt8
1268  {
1269  enum Enum
1270  {
1271  NoValue = 0xFF,
1272  PreTrading = 1,
1273  Continuous = 3,
1274  Closing = 4,
1275  PostTrading = 5,
1276  Quiescent = 7,
1277  };
1278 
1279  static std::string toString (Enum value);
1280  };
1281 
1282 
1283  struct ONIXS_EUREX_EMDI_API PotentialSecurityTradingEvent // UInt8
1284  {
1285  enum Enum
1286  {
1287  NoValue = 0xFF,
1288 
1289  /// None
1290  None = 0,
1291 
1292  /// Price volatility, auction is extended
1293  PriceVolatilityAuctionIsExtended = 10,
1294  };
1295 
1296  static std::string toString (Enum value);
1297  };
1298 
1299  struct ONIXS_EUREX_EMDI_API OrdType // UInt8
1300  {
1301  enum Enum
1302  {
1303  NoValue = 0xFF,
1304 
1305  /// Market Order
1306  MarketOrder = 1,
1307  };
1308 
1309  static std::string toString(Enum value);
1310  };
1311 
1312  struct ONIXS_EUREX_EMDI_API SecurityTradingEvent // UInt8
1313  {
1314  enum Enum
1315  {
1316  NoValue = 0xFF,
1317 
1318  /// Price volatility, auction is extended
1319  PriceVolatilityAuctionIsExtended = 10,
1320 
1321  /// Price volatility, auction is extended again
1322  PriceVolatilityAuctionIsExtendedAgain = 11,
1323  };
1324 
1325  static std::string toString (Enum value);
1326  };
1327 
1328  struct ONIXS_EUREX_EMDI_API OrderType // UInt8
1329  {
1330  enum Enum
1331  {
1332  NoValue = 0xFF,
1333 
1334  ///
1335  MarketOrder = 1,
1336  };
1337 
1338  static std::string toString (Enum value);
1339  };
1340 
1341  struct ONIXS_EUREX_EMDI_API AlgorithmicTradeIndicator // UInt8
1342  {
1343  enum Enum
1344  {
1345  NoValue = 0xFF,
1346 
1347  ///
1348  AlgorithmicTrade = 1,
1349  };
1350 
1351  static std::string toString(Enum value);
1352  };
1353 
1354  struct ONIXS_EUREX_EMDI_API MarketCondition // UInt8
1355  {
1356  enum Enum
1357  {
1358  NoValue = 0xFF,
1359 
1360  ///
1361  Normal = 0,
1362 
1363  ///
1364  Stressed = 1
1365  };
1366 
1367  static std::string toString(Enum value);
1368  };
1369 
1370  struct ONIXS_EUREX_EMDI_API LegSecurityType // UInt8
1371  {
1372  enum Enum
1373  {
1374  NoValue = 0xFF,
1375 
1376  ///
1377  LegSecurityMultiLeg = 0,
1378 
1379  ///
1380  LegSecurityUnderlyingLeg = 1
1381  };
1382 
1383  static std::string toString(Enum value);
1384  };
1385 
1386  }
1387  }
1388  }
1389 }
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:886
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:93
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:784
Exposes list of available trade types.
Definition: Defines.h:678
Indicator for stressed market conditions.
Definition: Defines.h:819
Exposes list of available security trading statuses.
Definition: Defines.h:438
Exposes list of available origin types.
Definition: Defines.h:618
Exposes list of available update actions.
Definition: Defines.h:634
Exposes list of available market segment statuses.
Definition: Defines.h:725
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:518
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:344
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:744
Exchange for Physical fin trade.
Definition: Defines.h:701
Represents timestamp without time-zone information.
Definition: Timestamp.h:80
Exposes list of available sub book types.
Definition: Defines.h:803
Exchange for Physical Fin trade.
Definition: Defines.h:307
bool contain(TradeCondition::Enum value) const
Definition: Defines.h:569
Exchange for Physical.
Definition: Defines.h:292
Exposes list of available trading session sub IDs.
Definition: Defines.h:366
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:662
UInt64 Quantity
Alias for Quantity type.
Definition: Defines.h:54
Indicates whether a synthetic match is occurred.
Definition: Defines.h:1211
Exposes list of leg sides.
Definition: Defines.h:127