Skip to main content

nautilus_interactive_brokers/common/enums/
events.rs

1// -------------------------------------------------------------------------------------------------
2//  Copyright (C) 2015-2026 Nautech Systems Pty Ltd. All rights reserved.
3//  https://nautechsystems.io
4//
5//  Licensed under the GNU Lesser General Public License Version 3.0 (the "License");
6//  You may not use this file except in compliance with the License.
7//  You may obtain a copy of the License at https://www.gnu.org/licenses/lgpl-3.0.en.html
8//
9//  Unless required by applicable law or agreed to in writing, software
10//  distributed under the License is distributed on an "AS IS" BASIS,
11//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12//  See the License for the specific language governing permissions and
13//  limitations under the License.
14// -------------------------------------------------------------------------------------------------
15
16/// Event kind for the rust-ibapi place-order response enum.
17#[derive(Debug, Clone, Copy, PartialEq, Eq)]
18#[cfg_attr(
19    feature = "python",
20    pyo3::pyclass(
21        module = "nautilus_trader.core.nautilus_pyo3.interactive_brokers",
22        from_py_object
23    )
24)]
25pub enum IbPlaceOrderEvent {
26    OrderStatus,
27    OpenOrder,
28    ExecutionData,
29    CommissionReport,
30    Message,
31}
32
33/// Event kind for the rust-ibapi order-update enum.
34#[derive(Debug, Clone, Copy, PartialEq, Eq)]
35#[cfg_attr(
36    feature = "python",
37    pyo3::pyclass(
38        module = "nautilus_trader.core.nautilus_pyo3.interactive_brokers",
39        from_py_object
40    )
41)]
42pub enum IbOrderUpdateEvent {
43    OrderStatus,
44    OpenOrder,
45    ExecutionData,
46    CommissionReport,
47    Message,
48}
49
50/// Event kind for the rust-ibapi cancel-order response enum.
51#[derive(Debug, Clone, Copy, PartialEq, Eq)]
52#[cfg_attr(
53    feature = "python",
54    pyo3::pyclass(
55        module = "nautilus_trader.core.nautilus_pyo3.interactive_brokers",
56        from_py_object
57    )
58)]
59pub enum IbCancelOrderEvent {
60    OrderStatus,
61    Notice,
62}
63
64/// Event kind for the rust-ibapi order query response enum.
65#[derive(Debug, Clone, Copy, PartialEq, Eq)]
66#[cfg_attr(
67    feature = "python",
68    pyo3::pyclass(
69        module = "nautilus_trader.core.nautilus_pyo3.interactive_brokers",
70        from_py_object
71    )
72)]
73pub enum IbOrdersEvent {
74    OrderData,
75    OrderStatus,
76    Notice,
77}
78
79/// Event kind for the rust-ibapi executions response enum.
80#[derive(Debug, Clone, Copy, PartialEq, Eq)]
81#[cfg_attr(
82    feature = "python",
83    pyo3::pyclass(
84        module = "nautilus_trader.core.nautilus_pyo3.interactive_brokers",
85        from_py_object
86    )
87)]
88pub enum IbExecutionsEvent {
89    ExecutionData,
90    CommissionReport,
91    Notice,
92}
93
94/// Event kind for the rust-ibapi exercise-options response enum.
95#[derive(Debug, Clone, Copy, PartialEq, Eq)]
96#[cfg_attr(
97    feature = "python",
98    pyo3::pyclass(
99        module = "nautilus_trader.core.nautilus_pyo3.interactive_brokers",
100        from_py_object
101    )
102)]
103pub enum IbExerciseOptionsEvent {
104    OpenOrder,
105    OrderStatus,
106    Notice,
107}
108
109/// Event kind for rust-ibapi historical bar update streams.
110#[derive(Debug, Clone, Copy, PartialEq, Eq)]
111#[cfg_attr(
112    feature = "python",
113    pyo3::pyclass(
114        module = "nautilus_trader.core.nautilus_pyo3.interactive_brokers",
115        from_py_object
116    )
117)]
118pub enum IbHistoricalBarUpdateEvent {
119    Historical,
120    Update,
121    End,
122}
123
124/// Event kind for rust-ibapi realtime market-depth streams.
125#[derive(Debug, Clone, Copy, PartialEq, Eq)]
126#[cfg_attr(
127    feature = "python",
128    pyo3::pyclass(
129        module = "nautilus_trader.core.nautilus_pyo3.interactive_brokers",
130        from_py_object
131    )
132)]
133pub enum IbMarketDepthEvent {
134    MarketDepth,
135    MarketDepthL2,
136    Notice,
137}
138
139/// Event kind for rust-ibapi realtime tick streams.
140#[derive(Debug, Clone, Copy, PartialEq, Eq)]
141#[cfg_attr(
142    feature = "python",
143    pyo3::pyclass(
144        module = "nautilus_trader.core.nautilus_pyo3.interactive_brokers",
145        from_py_object
146    )
147)]
148pub enum IbTickEvent {
149    Price,
150    Size,
151    String,
152    Efp,
153    Generic,
154    OptionComputation,
155    SnapshotEnd,
156    Notice,
157    RequestParameters,
158    PriceSize,
159}
160
161/// Event kind for rust-ibapi account summary streams.
162#[derive(Debug, Clone, Copy, PartialEq, Eq)]
163#[cfg_attr(
164    feature = "python",
165    pyo3::pyclass(
166        module = "nautilus_trader.core.nautilus_pyo3.interactive_brokers",
167        from_py_object
168    )
169)]
170pub enum IbAccountSummaryEvent {
171    Summary,
172    End,
173}
174
175/// Event kind for rust-ibapi position update streams.
176#[derive(Debug, Clone, Copy, PartialEq, Eq)]
177#[cfg_attr(
178    feature = "python",
179    pyo3::pyclass(
180        module = "nautilus_trader.core.nautilus_pyo3.interactive_brokers",
181        from_py_object
182    )
183)]
184pub enum IbPositionUpdateEvent {
185    Position,
186    PositionEnd,
187}
188
189/// Event kind for rust-ibapi model-code scoped position update streams.
190#[derive(Debug, Clone, Copy, PartialEq, Eq)]
191#[cfg_attr(
192    feature = "python",
193    pyo3::pyclass(
194        module = "nautilus_trader.core.nautilus_pyo3.interactive_brokers",
195        from_py_object
196    )
197)]
198pub enum IbPositionUpdateMultiEvent {
199    Position,
200    PositionEnd,
201}
202
203/// Event kind for rust-ibapi account update streams.
204#[derive(Debug, Clone, Copy, PartialEq, Eq)]
205#[cfg_attr(
206    feature = "python",
207    pyo3::pyclass(
208        module = "nautilus_trader.core.nautilus_pyo3.interactive_brokers",
209        from_py_object
210    )
211)]
212pub enum IbAccountUpdateEvent {
213    AccountValue,
214    PortfolioValue,
215    UpdateTime,
216    End,
217}
218
219/// Event kind for rust-ibapi model-code scoped account update streams.
220#[derive(Debug, Clone, Copy, PartialEq, Eq)]
221#[cfg_attr(
222    feature = "python",
223    pyo3::pyclass(
224        module = "nautilus_trader.core.nautilus_pyo3.interactive_brokers",
225        from_py_object
226    )
227)]
228pub enum IbAccountUpdateMultiEvent {
229    AccountMultiValue,
230    End,
231}