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