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