1use nautilus_core::{UnixNanos, UUID4};
17use rust_decimal_macros::dec;
18
19use super::{
20 limit::LimitOrder, limit_if_touched::LimitIfTouchedOrder, market::MarketOrder,
21 market_if_touched::MarketIfTouchedOrder, market_to_limit::MarketToLimitOrder,
22 stop_limit::StopLimitOrder, stop_market::StopMarketOrder,
23 trailing_stop_limit::TrailingStopLimitOrder, trailing_stop_market::TrailingStopMarketOrder,
24};
25use crate::{
26 enums::{OrderSide, TimeInForce, TrailingOffsetType, TriggerType},
27 identifiers::{ClientOrderId, InstrumentId, StrategyId, TraderId},
28 types::{Price, Quantity},
29};
30
31impl Default for LimitOrder {
32 fn default() -> Self {
34 Self::new(
35 TraderId::default(),
36 StrategyId::default(),
37 InstrumentId::default(),
38 ClientOrderId::default(),
39 OrderSide::Buy,
40 Quantity::from(100_000),
41 Price::from("1.00000"),
42 TimeInForce::Gtc,
43 None,
44 false,
45 false,
46 false,
47 None,
48 None,
49 None,
50 None,
51 None,
52 None,
53 None,
54 None,
55 None,
56 None,
57 None,
58 UUID4::default(),
59 UnixNanos::default(),
60 )
61 .unwrap() }
63}
64
65impl Default for LimitIfTouchedOrder {
66 fn default() -> Self {
68 Self::new(
69 TraderId::default(),
70 StrategyId::default(),
71 InstrumentId::default(),
72 ClientOrderId::default(),
73 OrderSide::Buy,
74 Quantity::from(100_000),
75 Price::from("1.00000"),
76 Price::from("1.00000"),
77 TriggerType::BidAsk,
78 TimeInForce::Gtc,
79 None,
80 false,
81 false,
82 false,
83 None,
84 None,
85 None,
86 None,
87 None,
88 None,
89 None,
90 None,
91 None,
92 None,
93 None,
94 UUID4::default(),
95 UnixNanos::default(),
96 )
97 }
98}
99
100impl Default for MarketOrder {
101 fn default() -> Self {
103 Self::new(
104 TraderId::default(),
105 StrategyId::default(),
106 InstrumentId::default(),
107 ClientOrderId::default(),
108 OrderSide::Buy,
109 Quantity::from(100_000),
110 TimeInForce::Day,
111 UUID4::default(),
112 UnixNanos::default(),
113 false,
114 false,
115 None,
116 None,
117 None,
118 None,
119 None,
120 None,
121 None,
122 None,
123 )
124 }
125}
126
127impl Default for MarketIfTouchedOrder {
128 fn default() -> Self {
130 Self::new(
131 TraderId::default(),
132 StrategyId::default(),
133 InstrumentId::default(),
134 ClientOrderId::default(),
135 OrderSide::Buy,
136 Quantity::from(100_000),
137 Price::from("1.00000"),
138 TriggerType::BidAsk,
139 TimeInForce::Gtc,
140 None,
141 false,
142 false,
143 None,
144 None,
145 None,
146 None,
147 None,
148 None,
149 None,
150 None,
151 None,
152 None,
153 None,
154 UUID4::default(),
155 UnixNanos::default(),
156 )
157 }
158}
159
160impl Default for MarketToLimitOrder {
161 fn default() -> Self {
163 Self::new(
164 TraderId::default(),
165 StrategyId::default(),
166 InstrumentId::default(),
167 ClientOrderId::default(),
168 OrderSide::Buy,
169 Quantity::from(100_000),
170 TimeInForce::Gtc,
171 None,
172 false,
173 false,
174 false,
175 None,
176 None,
177 None,
178 None,
179 None,
180 None,
181 None,
182 None,
183 None,
184 UUID4::default(),
185 UnixNanos::default(),
186 )
187 }
188}
189
190impl Default for StopLimitOrder {
191 fn default() -> Self {
193 Self::new(
194 TraderId::default(),
195 StrategyId::default(),
196 InstrumentId::default(),
197 ClientOrderId::default(),
198 OrderSide::Buy,
199 Quantity::from(100_000),
200 Price::from("1.00000"),
201 Price::from("1.00000"),
202 TriggerType::BidAsk,
203 TimeInForce::Gtc,
204 None,
205 false,
206 false,
207 false,
208 None,
209 None,
210 None,
211 None,
212 None,
213 None,
214 None,
215 None,
216 None,
217 None,
218 None,
219 UUID4::default(),
220 UnixNanos::default(),
221 )
222 }
223}
224
225impl Default for StopMarketOrder {
226 fn default() -> Self {
228 Self::new(
229 TraderId::default(),
230 StrategyId::default(),
231 InstrumentId::default(),
232 ClientOrderId::default(),
233 OrderSide::Buy,
234 Quantity::from(100_000),
235 Price::from("1.00000"),
236 TriggerType::BidAsk,
237 TimeInForce::Gtc,
238 None,
239 false,
240 false,
241 None,
242 None,
243 None,
244 None,
245 None,
246 None,
247 None,
248 None,
249 None,
250 None,
251 None,
252 UUID4::default(),
253 UnixNanos::default(),
254 )
255 }
256}
257
258impl Default for TrailingStopLimitOrder {
259 fn default() -> Self {
261 Self::new(
262 TraderId::default(),
263 StrategyId::default(),
264 InstrumentId::default(),
265 ClientOrderId::default(),
266 OrderSide::Buy,
267 Quantity::from(100_000),
268 Price::from("1.00000"),
269 Price::from("1.00000"),
270 TriggerType::BidAsk,
271 dec!(0.001),
272 dec!(0.001),
273 TrailingOffsetType::Price,
274 TimeInForce::Gtc,
275 None,
276 false,
277 false,
278 false,
279 None,
280 None,
281 None,
282 None,
283 None,
284 None,
285 None,
286 None,
287 None,
288 None,
289 None,
290 UUID4::default(),
291 UnixNanos::default(),
292 )
293 }
294}
295
296impl Default for TrailingStopMarketOrder {
297 fn default() -> Self {
299 Self::new(
300 TraderId::default(),
301 StrategyId::default(),
302 InstrumentId::default(),
303 ClientOrderId::default(),
304 OrderSide::Buy,
305 Quantity::from(100_000),
306 Price::from("1.00000"),
307 TriggerType::BidAsk,
308 dec!(0.001),
309 TrailingOffsetType::Price,
310 TimeInForce::Gtc,
311 None,
312 false,
313 false,
314 None,
315 None,
316 None,
317 None,
318 None,
319 None,
320 None,
321 None,
322 None,
323 None,
324 None,
325 UUID4::default(),
326 UnixNanos::default(),
327 )
328 }
329}