OnixS C++ Eurex T7 Market and Reference Data Interface (EMDI, RDI, EOBI) Handlers  8.1.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  TradingOnTermsOfIssue = 2048,
531 
532  ///
533  SpecialAuction = 4096
534  };
535  };
536 
537  struct ONIXS_EUREX_EMDI_API TradeConditionSet
538  {
539  explicit
540  TradeConditionSet (UInt64 value)
541  : value_ (value)
542  {}
543 
544  bool contain (TradeCondition::Enum value) const
545  {
546  return (value_ & value) != 0;
547  }
548 
549  bool containExchangeLast() const
550  {
551  return contain (TradeCondition::ExchangeLast);
552  }
553  bool containOpeningPrice() const
554  {
555  return contain (TradeCondition::OpeningPrice);
556  }
557  bool containHighPrice() const
558  {
559  return contain (TradeCondition::HighPrice);
560  }
561  bool containLowPrice() const
562  {
563  return contain (TradeCondition::LowPrice);
564  }
566  {
567  return contain (TradeCondition::OfficialClosingPrice);
568  }
570  {
571  return contain (TradeCondition::LastAuctionPrice);
572  }
574  {
575  return contain (TradeCondition::OutOfSequenceETH);
576  }
578  {
580  }
582  {
583  return contain (TradeCondition::PreviousClosingPrice);
584  }
585  bool containVolumeOnly() const
586  {
587  return contain (TradeCondition::VolumeOnly);
588  }
589  bool containMidpointPrice() const
590  {
591  return contain (TradeCondition::MidpointPrice);
592  }
594  {
596  }
598  {
599  return contain (TradeCondition::SpecialAuction);
600  }
601 
602  std::string toString() const;
603 
604  private:
605  UInt64 value_;
606  };
607 
608  /// Exposes list of available origin types
609  struct ONIXS_EUREX_EMDI_API MDOriginType
610  {
611  enum Enum
612  {
613  /// Used to identify absence of value.
614  Undefined = -1,
615 
616  ///
617  Book = 0,
618 
619  ///
620  OffBook = 1,
621  };
622  };
623 
624  /// Exposes list of available update actions
625  struct ONIXS_EUREX_EMDI_API MDUpdateAction
626  {
627  enum Enum
628  {
629  /// Used to identify absence of value.
630  Undefined = -1,
631 
632  /// New
633  New = 0,
634 
635  /// Change
636  Change = 1,
637 
638  /// Delete
639  Delete = 2,
640 
641  /// DeleteThru
642  DeleteThru = 3,
643 
644  /// DeleteFrom
645  DeleteFrom = 4,
646 
647  /// Overlay
648  Overlay = 5
649  };
650  };
651 
652  /// Exposes list of available aggressor sides
653  struct ONIXS_EUREX_EMDI_API Side
654  {
655  enum Enum
656  {
657  /// Used to identify absence of value.
658  Undefined = -1,
659 
660  /// Buy
661  Buy = 1,
662 
663  /// Sell
664  Sell = 2,
665  };
666  };
667 
668  /// Exposes list of available trade types
669  struct ONIXS_EUREX_EMDI_API OffBookTrdType
670  {
671  enum Enum
672  {
673  /// Used to identify absence of value.
674  Undefined = -1,
675 
676  /// Block trade
677  BlockTrade = 0,
678 
679  /// Exchange for Physical
681 
682  /// Exchange for swap
684 
685  /// Exchange basis facility
687 
688  /// VolaTrade
690 
691  /// Exchange for Physical fin trade
693 
694  /// EFPIndexFuturesTrade
696 
697  /// Opening auction trade
699 
700  /// Intraday auction trade
702 
703  /// Volatility auction trade
705 
706  /// Closing auction trade
708 
709  /// Cross auction trade
710  CrossAuctionTrade
711  };
712  };
713 
714 
715  /// Exposes list of available market segment statuses.
716  struct ONIXS_EUREX_EMDI_API MarketSegmentStatus
717  {
718  enum Enum
719  {
720  /// Used to identify absence of value.
721  Undefined = -1,
722 
723  /// Defines if product is traded on on NTA.
724  Active = 0,
725 
726  /// Inactive
727  Inactive = 1,
728 
729  /// Defines if product is still traded on "Eurex classic"
730  Published = 2,
731  };
732  };
733 
734  /// Exposes list of available instrument types for tick rule.
735  struct ONIXS_EUREX_EMDI_API InstrumentType
736  {
737  enum Enum
738  {
739  /// Used to identify absence of value.
740  Undefined = -1,
741 
742  /// Simple instrument
743  SimpleInstrument = 1,
744 
745  /// Standard option strategy
746  StandardOptionStrategy = 2,
747 
748  /// Non standard option strategy
749  NonStandardOptionStrategy = 3,
750 
751  /// Volatility strategy
752  VolatilityStrategy = 4,
753 
754  /// Futures spread
755  FuturesSpread = 5,
756 
757  /// Inter Product Spread
758  InterProductSpread = 6,
759 
760  /// Standard Futures Strategy
761  StandardFuturesStrategy = 7,
762 
763  /// Pack And Bundle
764  PackAndBundle = 8,
765 
766  /// Strip
767  Strip = 9,
768 
769  /// Flexible
770  Flexible = 10,
771  };
772  };
773 
774  /// Exposes list of available book types.
775  struct ONIXS_EUREX_EMDI_API BookType
776  {
777  enum Enum
778  {
779  /// Used to identify absence of value.
780  Undefined = -1,
781 
782  /// Top Of Book
783  TopOfBook = 0,
784 
785  /// Price Depth
786  PriceDepth = 1,
787 
788  /// Order Depth
789  OrderDepth = 2,
790  };
791  };
792 
793  /// Exposes list of available sub book types.
794  struct ONIXS_EUREX_EMDI_API SubBookType
795  {
796  enum Enum
797  {
798  /// Used to identify absence of value.
799  Undefined = -1,
800 
801  /// Price Depth
802  IPSImpliedVolumeWithoutQuantityRestriction = 0,
803 
804  /// Order Depth
805  IPSImpliedVolumeWithQuantityRestriction = 1,
806  };
807  };
808 
809  /// Indicator for stressed market conditions.
810  struct ONIXS_EUREX_EMDI_API MarketCondition
811  {
812  enum Enum
813  {
814  /// Used to identify absence of value.
815  Undefined = -1,
816 
817  /// Normal
818  Normal = 0,
819 
820  /// Stressed
821  Stressed = 1
822  };
823  };
824 
825  /// A trade has to be flagged as "algorithmic", if at least one of the
826  /// matched orders was submitted by a trading algorithm.Applicable
827  /// for cash market products only.
828  struct ONIXS_EUREX_EMDI_API AlgorithmicTradeIndicator
829  {
830  enum Enum
831  {
832  /// Used to identify absence of value.
833  Undefined = -1,
834 
835  /// Algorithmic Trade
836  AlgorithmicTrade = 1
837  };
838  };
839 
840  /// MultiLegReportingType
841  struct ONIXS_EUREX_EMDI_API MultiLegReportingType
842  {
843  enum Enum
844  {
845  /// Used to identify absence of value.
846  Undefined = -1,
847 
848  /// Single Security
849  SingleSecurity = 1,
850 
851  /// Individual Leg Of A MultiLeg Security
852  IndividualLegOfMultiLegSecurity = 2,
853 
854  /// Multi Leg Security
855  MultiLegSecurity = 3
856  };
857  };
858 
859  /// MultiLegPriceModel
860  struct ONIXS_EUREX_EMDI_API MultiLegPriceModel
861  {
862  enum Enum
863  {
864  /// Used to identify absence of value.
865  Undefined = -1,
866 
867  /// Standard
868  Standard = 0,
869 
870  /// User Defined
871  UserDefined = 2
872  };
873  };
874 
875 
876  /// Exposes list of available sold out indicators.
877  struct ONIXS_EUREX_EMDI_API SoldOutIndicator
878  {
879  enum Enum
880  {
881  /// Used to identify absence of value.
882  Undefined = -1,
883 
884  ///
885  SoldOut = 1,
886  };
887  };
888 
889  namespace EOBI
890  {
891  /// Alias for Quantity Type
892  /// Quantity in integer format including 4 decimals.
893  typedef Int64 QuantityType;
894 
895  struct ONIXS_EUREX_EMDI_API AggressorSide // UInt8
896  {
897  enum Enum
898  {
899  /// Used to identify absence of value
900  NoValue = 0xFF,
901 
902  /// Triggered by the buy side
903  Buy = 1,
904 
905  /// Triggered by the sell side
906  Sell = 2,
907  };
908 
909  static std::string toString (Enum value);
910  };
911 
912  struct ONIXS_EUREX_EMDI_API ApplSeqResetIndicator // UInt8
913  {
914  enum Enum
915  {
916  NoValue = 0xFF,
917  NoReset = 0,
918  Reset = 1,
919  };
920 
921  static std::string toString (Enum value);
922  };
923 
924  struct ONIXS_EUREX_EMDI_API CompletionIndicator // UInt8
925  {
926  enum Enum
927  {
928  NoValue = 0xFF,
929  Incomplete = 0,
930  Complete = 1,
931  };
932 
933  static std::string toString (Enum value);
934  };
935 
936  struct ONIXS_EUREX_EMDI_API FastMarketIndicator // UInt8
937  {
938  enum Enum
939  {
940  NoValue = 0xFF,
941  No = 0,
942  Yes = 1,
943  };
944 
945  static std::string toString (Enum value);
946  };
947 
948  struct ONIXS_EUREX_EMDI_API ImpliedMarketIndicator // UInt8
949  {
950  enum Enum
951  {
952  NoValue = 0xFF,
953  NotImplied = 0,
954  ImpliedInOut = 3,
955  };
956 
957  static std::string toString (Enum value);
958  };
959 
960  struct ONIXS_EUREX_EMDI_API LegSecurityIDSource // String(1)
961  {
962  enum Enum
963  {
964  NoValue = 0,
965  Marketplace = 'M',
966  };
967 
968  static std::string toString (Enum value);
969  };
970 
971  struct ONIXS_EUREX_EMDI_API LegSide // UInt8
972  {
973  enum Enum
974  {
975  NoValue = 0xFF,
976  Buy = 1,
977  Sell = 2,
978  };
979 
980  static std::string toString (Enum value);
981  };
982 
983  struct ONIXS_EUREX_EMDI_API MDEntryType // UInt8
984  {
985  enum Enum
986  {
987  NoValue = 0xFF,
988  Trade = 2,
989  OpeningPrice = 4,
990  ClosingPrice = 5,
991  HighPrice = 7,
992  LowPrice = 8,
993  TradeVolume = 66,
994  PreviousClosingPrice = 101,
995  OpeningAuction = 200,
996  IntradayAuction = 201,
997  CircuitBreakerAuction = 202,
998  ClosingAuction = 203,
999  IPOAuction = 204,
1000  };
1001 
1002  static std::string toString (Enum value);
1003  };
1004 
1005  struct ONIXS_EUREX_EMDI_API MDReportEvent // UInt8
1006  {
1007  enum Enum
1008  {
1009  NoValue = 0xFF,
1010  ScopeDefinition = 0,
1011  };
1012  };
1013 
1014  struct ONIXS_EUREX_EMDI_API MDUpdateAction // UInt8
1015  {
1016  enum Enum
1017  {
1018  NoValue = 0xFF,
1019  New = 0,
1020  Change = 1,
1021  Delete = 2,
1022  Overlay = 5,
1023  };
1024  };
1025 
1026  struct ONIXS_EUREX_EMDI_API MarketDataType // UInt8
1027  {
1028  enum Enum
1029  {
1030  NoValue = 0xFF,
1031  OrderBookMaintenance = 1,
1032  OrderBookExecution = 2,
1035  AuctionBBO = 5,
1037  CrossTradeAnnouncement = 7,
1039  MarketSegmentSnapshot = 9,
1040  SingleInstrumentSnapshot = 10,
1042  MatchEvent = 12,
1044  };
1045  };
1046 
1047  struct ONIXS_EUREX_EMDI_API MatchSubType // UInt8
1048  {
1049  enum Enum
1050  {
1051  NoValue = 0xFF,
1052  OpeningAuction = 1,
1053  ClosingAuction = 2,
1054  IntradayAuction = 3,
1055  CircuitBreakerAuction = 4,
1056  IPOAuction = 5,
1057  };
1058 
1059  static std::string toString (Enum value);
1060  };
1061 
1062  struct ONIXS_EUREX_EMDI_API MatchType // UInt8
1063  {
1064  enum Enum
1065  {
1066  NoValue = 0xFF,
1067  ConfirmedTradeReport = 3,
1068  CrossAuction = 5,
1069  CallAuction = 7,
1070  };
1071 
1072  static std::string toString (Enum value);
1073  };
1074 
1075  struct ONIXS_EUREX_EMDI_API NoMarketSegments // UInt8
1076  {
1077  enum Enum
1078  {
1079  NoValue = 0xFF,
1080  One = 1,
1081  };
1082 
1083  static std::string toString (Enum value);
1084  };
1085 
1086  struct ONIXS_EUREX_EMDI_API ProductComplex // UInt8
1087  {
1088  enum Enum
1089  {
1090  NoValue = 0xFF,
1091 
1092  StandardOptionStrategy = 2,
1093  NonStandardOptionStrategy = 3,
1094  VolatilityStrategy = 4,
1095  FuturesSpread = 5,
1096  InterProductSpread = 6,
1097  StandardFuturesStrategy = 7,
1098  PackAndBundle = 8,
1099  Strip = 9,
1100  };
1101 
1102  static std::string toString (Enum value);
1103  };
1104 
1105  struct ONIXS_EUREX_EMDI_API SecurityIDSource // String(1)
1106  {
1107  enum Enum
1108  {
1109  NoValue = 0,
1110  Marketplace = 'M',
1111  };
1112 
1113  static std::string toString (Enum value);
1114  };
1115 
1116  struct ONIXS_EUREX_EMDI_API SecurityStatus // UInt8
1117  {
1118  enum Enum
1119  {
1120  NoValue = 0xFF,
1121  Active = 1,
1122  Inactive = 2,
1123  Expired = 4,
1124  Suspended = 9,
1125  PendingDeletion = 11,
1126  };
1127 
1128  static std::string toString (Enum value);
1129  };
1130 
1131  struct ONIXS_EUREX_EMDI_API SecurityTradingStatus // UInt8
1132  {
1133  enum Enum
1134  {
1135  NoValue = 0xFF,
1136 
1137  TradingHalt = 2,
1138  MarketImbalanceBuy = 7,
1139  MarketImbalanceSell = 8,
1140  Closed = 200,
1141  Restricted = 201,
1142  Book = 202,
1143  Continuous = 203,
1144  OpeningAuction = 204,
1145  OpeningAuctionFreeze = 205,
1146  IntradayAuction = 206,
1147  IntradayAuctionFreeze = 207,
1148  CircuitBreakerAuction = 208,
1149  CircuitBreakerAuctionFreeze = 209,
1150  ClosingAuction = 210,
1151  ClosingAuctionFreeze = 211,
1152  IPOAuction = 212,
1153  IPOAuctionFreeze = 213,
1154  PreCall = 214,
1155  Call = 215,
1156  Freeze = 216
1157  };
1158 
1159  static std::string toString (Enum value);
1160  };
1161 
1162  struct ONIXS_EUREX_EMDI_API SecurityType // String(4)
1163  {
1164  enum Enum
1165  {
1166  NoValue = 0,
1167  Option = 'O', // OPT,
1168  Future = 'F', // FUT,
1169  MultiLeg = 'M' // MLEG,
1170  };
1171 
1172  static std::string toString (Enum value);
1173  };
1174 
1175  struct ONIXS_EUREX_EMDI_API SecurityUpdateAction // String(1)
1176  {
1177  enum Enum
1178  {
1179  NoValue = 0,
1180  Add = 'A',
1181  Delete = 'D',
1182  };
1183 
1184  static std::string toString (Enum value);
1185  };
1186 
1187  struct ONIXS_EUREX_EMDI_API Side // UInt8
1188  {
1189  enum Enum
1190  {
1191  NoValue = 0xFF,
1192  Buy = 1,
1193  Sell = 2,
1194  };
1195 
1196  static std::string toString (Enum value);
1197  };
1198 
1199  /// Indicates whether a synthetic match is occurred.
1200  struct ONIXS_EUREX_EMDI_API TradeCondition // UInt16
1201  {
1202  enum Enum
1203  {
1204  NoValue = 0xFF,
1205  ImpliedTrade = 1,
1206  OutOfSequence = 107,
1207  SystematicInternalizer = 153,
1208  MidpointPrice = 155,
1209  TradingOnTermsOfIssue = 156,
1210  SpetialAuction = 596
1211  };
1212 
1213  static std::string toString (Enum value);
1214  };
1215 
1216  struct ONIXS_EUREX_EMDI_API TradSesEvent // UInt8
1217  {
1218  enum Enum
1219  {
1220  NoValue = 0xFF,
1221  TBD = 0,
1222  StatusChange = 3,
1223  };
1224 
1225  static std::string toString (Enum value);
1226  };
1227 
1228  struct ONIXS_EUREX_EMDI_API TradSesStatus // UInt8
1229  {
1230  enum Enum
1231  {
1232  NoValue = 0xFF,
1233  Halted = 1,
1234  Open = 2,
1235  Closed = 3,
1236  };
1237 
1238  static std::string toString (Enum value);
1239  };
1240 
1241  struct ONIXS_EUREX_EMDI_API TradingSessionID // UInt8
1242  {
1243  enum Enum
1244  {
1245  NoValue = 0xFF,
1246  Day = 1,
1247  Morning = 3,
1248  Evening = 5,
1249  AfterHours = 6,
1250  Holiday = 7,
1251  };
1252 
1253  static std::string toString (Enum value);
1254  };
1255 
1256  struct ONIXS_EUREX_EMDI_API TradingSessionSubID // UInt8
1257  {
1258  enum Enum
1259  {
1260  NoValue = 0xFF,
1261  PreTrading = 1,
1262  Continuous = 3,
1263  Closing = 4,
1264  PostTrading = 5,
1265  Quiescent = 7,
1266  };
1267 
1268  static std::string toString (Enum value);
1269  };
1270 
1271 
1272  struct ONIXS_EUREX_EMDI_API PotentialSecurityTradingEvent // UInt8
1273  {
1274  enum Enum
1275  {
1276  NoValue = 0xFF,
1277 
1278  /// None
1279  None = 0,
1280 
1281  /// Price volatility, auction is extended
1282  PriceVolatilityAuctionIsExtended = 10,
1283  };
1284 
1285  static std::string toString (Enum value);
1286  };
1287 
1288  struct ONIXS_EUREX_EMDI_API OrdType // UInt8
1289  {
1290  enum Enum
1291  {
1292  NoValue = 0xFF,
1293 
1294  /// Market Order
1295  MarketOrder = 1,
1296  };
1297 
1298  static std::string toString(Enum value);
1299  };
1300 
1301  struct ONIXS_EUREX_EMDI_API SecurityTradingEvent // UInt8
1302  {
1303  enum Enum
1304  {
1305  NoValue = 0xFF,
1306 
1307  /// Price volatility, auction is extended
1308  PriceVolatilityAuctionIsExtended = 10,
1309 
1310  /// Price volatility, auction is extended again
1311  PriceVolatilityAuctionIsExtendedAgain = 11,
1312  };
1313 
1314  static std::string toString (Enum value);
1315  };
1316 
1317  struct ONIXS_EUREX_EMDI_API OrderType // UInt8
1318  {
1319  enum Enum
1320  {
1321  NoValue = 0xFF,
1322 
1323  ///
1324  MarketOrder = 1,
1325  };
1326 
1327  static std::string toString (Enum value);
1328  };
1329 
1330  struct ONIXS_EUREX_EMDI_API AlgorithmicTradeIndicator // UInt8
1331  {
1332  enum Enum
1333  {
1334  NoValue = 0xFF,
1335 
1336  ///
1337  AlgorithmicTrade = 1,
1338  };
1339 
1340  static std::string toString(Enum value);
1341  };
1342 
1343  struct ONIXS_EUREX_EMDI_API MarketCondition // UInt8
1344  {
1345  enum Enum
1346  {
1347  NoValue = 0xFF,
1348 
1349  ///
1350  Normal = 0,
1351 
1352  ///
1353  Stressed = 1
1354  };
1355 
1356  static std::string toString(Enum value);
1357  };
1358 
1359  struct ONIXS_EUREX_EMDI_API LegSecurityType // UInt8
1360  {
1361  enum Enum
1362  {
1363  NoValue = 0xFF,
1364 
1365  ///
1366  LegSecurityMultiLeg = 0,
1367 
1368  ///
1369  LegSecurityUnderlyingLeg = 1
1370  };
1371 
1372  static std::string toString(Enum value);
1373  };
1374 
1375  struct ONIXS_EUREX_EMDI_API SoldOutIndicator // UInt8
1376  {
1377  enum Enum
1378  {
1379  NoValue = 0xFF,
1380 
1381  ///
1382  SoldOut = 1,
1383  };
1384 
1385  static std::string toString(Enum value);
1386  };
1387 
1388  struct ONIXS_EUREX_EMDI_API InstrumentScopeProductComplex // UInt8
1389  {
1390  enum Enum
1391  {
1392  NoValue = 0xFF,
1393 
1394  ///
1395  SimpleInstrument = 1,
1396 
1397  ///
1398  StandardOptionStrategy = 2,
1399 
1400  ///
1401  NonStandardOptionStrategy = 3,
1402 
1403  ///
1404  VolatilityStrategy = 4,
1405 
1406  ///
1407  FuturesSpread = 5,
1408 
1409  ///
1410  InterProductSpread = 6,
1411 
1412  ///
1413  StandardFuturesStrategy = 7,
1414 
1415  ///
1416  PackAndBundle = 8,
1417 
1418  ///
1419  Strip = 9
1420  };
1421 
1422  static std::string toString(Enum value);
1423  };
1424 
1425  struct ONIXS_EUREX_EMDI_API SecurityMassStatus // UInt8
1426  {
1427  enum Enum
1428  {
1429  NoValue = 0xFF,
1430 
1431  ///
1432  Active = 1,
1433 
1434  ///
1435  Inactive = 2,
1436 
1437  ///
1438  Expired = 4,
1439 
1440  ///
1441  KnockedOut = 6,
1442 
1443  ///
1444  KnockOutRevoked = 7,
1445 
1446  ///
1447  Suspended = 9,
1448 
1449  ///
1450  PendingDeletion = 11,
1451 
1452  ///
1453  KnockedOutAndSuspended = 12
1454  };
1455 
1456  static std::string toString(Enum value);
1457  };
1458 
1459  struct ONIXS_EUREX_EMDI_API SecurityMassTradingStatus // UInt8
1460  {
1461  enum Enum
1462  {
1463  NoValue = 0xFF,
1464 
1465  ///
1466  TradingHalt = 2,
1467 
1468  ///
1469  MarketImbalanceBuy = 7,
1470 
1471  ///
1472  MarketImbalanceSell = 8,
1473 
1474  ///
1475  Closed = 200,
1476 
1477  ///
1478  Restricted = 201,
1479 
1480  ///
1481  Book = 202,
1482 
1483  ///
1484  Continuous = 203,
1485 
1486  ///
1487  OpeningAuction = 204,
1488 
1489  ///
1490  OpeningAuctionFreeze = 205,
1491 
1492  ///
1493  IntradayAuction = 206,
1494 
1495  ///
1496  IntradayAuctionFreeze = 207,
1497 
1498  ///
1499  CircuitBreakerAuction = 208,
1500 
1501  ///
1502  CircuitBreakerAuctionFreeze = 209,
1503 
1504  ///
1505  ClosingAuction = 210,
1506 
1507  ///
1508  ClosingAuctionFreeze = 211,
1509 
1510  ///
1511  IPOAuction = 212,
1512 
1513  ///
1514  IPOAuctionFreeze = 213,
1515 
1516  ///
1517  PreCall = 214,
1518 
1519  ///
1520  Call = 215,
1521 
1522  ///
1523  Freeze = 216
1524  };
1525 
1526  static std::string toString(Enum value);
1527  };
1528 
1529  struct ONIXS_EUREX_EMDI_API MassMarketCondition // UInt8
1530  {
1531  enum Enum
1532  {
1533  NoValue = 0xFF,
1534 
1535  ///
1536  Normal = 0,
1537 
1538  ///
1539  Stressed = 1
1540  };
1541 
1542  static std::string toString(Enum value);
1543  };
1544 
1545  struct ONIXS_EUREX_EMDI_API SecurityMassTradingEvent // UInt8
1546  {
1547  enum Enum
1548  {
1549  NoValue = 0xFF,
1550 
1551  /// Price volatility, auction is extended
1552  PriceVolatilityAuctionIsExtended = 10,
1553 
1554  /// Price volatility, auction is extended again
1555  PriceVolatilityAuctionIsExtendedAgain = 11
1556  };
1557 
1558  static std::string toString(Enum value);
1559  };
1560 
1561  struct ONIXS_EUREX_EMDI_API MassSoldOutIndicator // UInt8
1562  {
1563  enum Enum
1564  {
1565  NoValue = 0xFF,
1566 
1567  ///
1568  SoldOut = 1,
1569  };
1570 
1571  static std::string toString(Enum value);
1572  };
1573 
1574 
1575  struct ONIXS_EUREX_EMDI_API LastFragment // UInt8
1576  {
1577  enum Enum
1578  {
1579  NoValue = 0xFF,
1580 
1581  ///
1582  N = 0,
1583 
1584  ///
1585  Y = 1,
1586  };
1587 
1588  static std::string toString(Enum value);
1589  };
1590 
1591 
1592  }
1593  }
1594  }
1595 }
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:877
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:775
Exposes list of available trade types.
Definition: Defines.h:669
Indicator for stressed market conditions.
Definition: Defines.h:810
Exposes list of available security trading statuses.
Definition: Defines.h:406
Exposes list of available origin types.
Definition: Defines.h:609
Exposes list of available update actions.
Definition: Defines.h:625
Exposes list of available market segment statuses.
Definition: Defines.h:716
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:735
Exchange for Physical fin trade.
Definition: Defines.h:692
Represents timestamp without time-zone information.
Definition: Timestamp.h:80
Exposes list of available sub book types.
Definition: Defines.h:794
Exchange for Physical Fin trade.
Definition: Defines.h:310
bool contain(TradeCondition::Enum value) const
Definition: Defines.h:544
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:653
UInt64 Quantity
Alias for Quantity type.
Definition: Defines.h:54
Indicates whether a synthetic match is occurred.
Definition: Defines.h:1200
Exposes list of leg sides.
Definition: Defines.h:127