OnixS C++ CBOE CFE Binary Order Entry (BOE) Handler  1.11.0
API documentation
OrderExecution.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 <vector>
23 
28 
29 
30 namespace OnixS {
31 namespace CboeCFE {
32 namespace Trading {
33 namespace BOE {
34 
35  /// An Order Execution is sent for each fill on an order.
36  struct ONIXS_CBOE_CFE_BOE_API OrderExecution : public BinaryMessage
37  {
38  /// The time the event occurred in the CFE Matching Engine (not the time the message was sent).
40  {
41  return ordinary<DateTime>(0);
42  }
43 
44  /// The order which was executed
45  StrRef clOrdId() const
46  {
47  return fixedStr<20>(8);
48  }
49 
50  /// Sent to the OCC in the Trade Id field.
51  Binary8 execId() const
52  {
53  return ordinary<Binary8>(28);
54  }
55 
56  /// Executed contracts quantity.
58  {
59  return ordinary<Binary4>(36);
60  }
61 
62  /// Price of this fill.
64  {
65  return ordinary<BinaryPrice>(40);
66  }
67 
68  /// Quantity still open for further execution. If zero, the order is complete.
70  {
71  return ordinary<Binary4>(48);
72  }
73 
74  /// Indicates whether the trade added or removed liquidity.
76  {
77  return enumeration<BaseLiquidityIndicator>(52);
78  }
79 
80  /// Additional information about the liquidity of an order.
82  {
83  return enumeration<SubLiquidityIndicator>(53);
84  }
85 
86  /// Echoed back from the TPH message
87  Side::Enum side() const
88  {
89  return enumeration<Side>(54);
90  }
91 
92  /// Echoed back from the TPH message
93  StrRef symbol() const
94  {
95  return fixedStr<8>(55);
96  }
97 
98  /// Echoed back from the TPH message
100  {
101  return fixedStr<4>(63);
102  }
103 
104  /// Maturity date of the instrument
106  {
107  return ordinary<Date>(67);
108  }
109 
110  /// Indicates fee associated with an execution.
111  StrRef feeCode() const
112  {
113  return fixedStr<2>(71);
114  }
115 
116  /// Business date of the execution.
117  Date tradeDate() const
118  {
119  return ordinary<Date>(73);
120  }
121 
122  /// Size to clear with OCC.
124  {
125  return ordinary<Binary4>(77);
126  }
127 
128  /// Field is provided as a convenience to determine whether an Order Execution message is a preliminary notification representing a pending trade.
130  {
131  return enumeration<PendingStatus>(81);
132  }
133 
134  /// Present on Order Execution, TAS Restatement and Variance Restatement messages representing either Spread orders or Simple orders that are part Spread execution.
136  {
137  return enumeration<MultilegReportingType>(82);
138  }
139 
140  /// Field indicates whether an execution is a spread or a simple instrument execution that is part of a spread trade.
142  {
143  return ordinary<Binary8>(83);
144  }
145 
146  /// Initializes instance over given memory block.
147  OrderExecution(const void* data, MessageSize size)
148  : BinaryMessage(data, size)
149  {
150  }
151  };
152 
153  /// Serializes object into string.
154  ONIXS_CBOE_CFE_BOE_API void toStr(std::string&, const OrderExecution&);
155 
156  /// Serializes object into string.
157  inline std::string toStr(const OrderExecution& msg)
158  {
159  std::string str;
160  toStr(str, msg);
161  return str;
162  }
163 
164 }
165 }
166 }
167 }
DateTime transactionTime() const
The time the event occurred in the CFE Matching Engine (not the time the message was sent)...
Binary4 clearingSize() const
Size to clear with OCC.
SubLiquidityIndicator::Enum subLiquidityIndicator() const
Additional information about the liquidity of an order.
StrRef clearingFirm() const
Echoed back from the TPH message.
Side::Enum side() const
Echoed back from the TPH message.
Provides efficient way of accessing text-based field values.
Definition: String.h:45
OrderExecution(const void *data, MessageSize size)
Initializes instance over given memory block.
Binary8 execId() const
Sent to the OCC in the Trade Id field.
Date maturityDate() const
Maturity date of the instrument.
Encapsulates services for manipulating little endian encoded messages.
Binary4 lastShares() const
Executed contracts quantity.
BaseLiquidityIndicator::Enum baseLiquidityIndicator() const
Indicates whether the trade added or removed liquidity.
void toStr(std::string &str, const FixedPointDecimal< Mantissa, Exponent > &number)
Serializes fixed-point decimal into a string.
Definition: Decimal.h:156
StrRef feeCode() const
Indicates fee associated with an execution.
Date tradeDate() const
Business date of the execution.
Binary2 MessageSize
Aliases message length type.
Binary4 leavesQty() const
Quantity still open for further execution. If zero, the order is complete.
BinaryPrice lastPx() const
Price of this fill.
MultilegReportingType::Enum multilegReportingType() const
Present on Order Execution, TAS Restatement and Variance Restatement messages representing either Spr...
StrRef clOrdId() const
The order which was executed.
PendingStatus::Enum pendingStatus() const
Field is provided as a convenience to determine whether an Order Execution message is a preliminary n...
StrRef symbol() const
Echoed back from the TPH message.
Binary8 secondaryExecId() const
Field indicates whether an execution is a spread or a simple instrument execution that is part of a s...
An Order Execution is sent for each fill on an order.