1pub const CMD_ACCOUNT_INFO: u16 = 3020;
15pub const CMD_FUND_BOND_DETAIL_ASSET: u16 = 20086;
17pub const CMD_QUERY_FUND: u16 = 4704;
21pub const CMD_QUERY_POSITION: u16 = 4705;
25pub const CMD_QUERY_ORDER_LIST: u16 = 4708;
27pub const CMD_QUERY_ORDER_INFO: u16 = 4707;
30pub const CMD_QUERY_ORDER_FILL_LIST: u16 = 4710;
32pub const CMD_QUERY_ORDER_FILL_INFO: u16 = 4715;
35pub const CMD_QUERY_HISTORY_ORDER_LIST: u16 = 4711;
37pub const CMD_QUERY_HISTORY_ORDER_FILL_LIST: u16 = 4712;
39pub const CMD_MAX_BUY_SELL: u16 = 4713;
41pub const CMD_PLACE_ORDER: u16 = 4701;
43pub const CMD_MODIFY_ORDER: u16 = 4702;
45pub const CMD_CANCEL_ORDER: u16 = 4703;
47pub const CMD_ENABLE_ORDER: u16 = 4719;
50pub const CMD_DISABLE_ORDER: u16 = 4720;
53pub const CMD_DELETE_ORDER: u16 = 4725;
56pub const CMD_ORDER_CONFIRM: u16 = 4728;
58
59pub const CMD_SIM_QUERY_FUND: u16 = 14704;
61pub const CMD_SIM_QUERY_POSITION: u16 = 14705;
64pub const CMD_SIM_QUERY_ORDER_LIST: u16 = 14708;
66pub const CMD_SIM_QUERY_ORDER_INFO: u16 = 14707;
68pub const CMD_SIM_QUERY_ORDER_FILL_LIST: u16 = 14710;
70pub const CMD_SIM_QUERY_ORDER_FILL_INFO: u16 = 14715;
72pub const CMD_SIM_QUERY_HISTORY_ORDER_LIST: u16 = 14711;
74pub const CMD_SIM_QUERY_HISTORY_ORDER_FILL_LIST: u16 = 14712;
76pub const CMD_SIM_PLACE_ORDER: u16 = 14701;
78pub const CMD_SIM_MODIFY_ORDER: u16 = 14702;
80pub const CMD_SIM_CANCEL_ORDER: u16 = 14703;
82pub const CMD_SIM_ENABLE_ORDER: u16 = 14719;
85pub const CMD_SIM_DISABLE_ORDER: u16 = 14720;
88pub const CMD_SIM_DELETE_ORDER: u16 = 14725;
91pub const CMD_SIM_ORDER_CONFIRM: u16 = 14728;
93pub const CMD_SIM_MAX_BUY_SELL: u16 = 14713;
95
96pub const CMD_CRYPTO_FETCH_TRADE_CONFIG: u16 = 20102;
99pub const CMD_CRYPTO_ACCOUNT_INFO: u16 = 20631;
102pub const CMD_CRYPTO_QUERY_ORDER_LIST: u16 = 20621;
105pub const CMD_CRYPTO_QUERY_HISTORY_ORDER_LIST: u16 = 20623;
108pub const CMD_CRYPTO_QUERY_ORDER_INFO: u16 = 20625;
111pub const CMD_CRYPTO_QUERY_ORDER_FILL_DETAIL: u16 = 20624;
114pub const CMD_CRYPTO_QUERY_DEAL_LIST: u16 = 21237;
117pub const CMD_CRYPTO_QUERY_HISTORY_DEAL_LIST: u16 = 21234;
120pub const CMD_CRYPTO_QUERY_BATCH_ORDER_FEE: u16 = 21235;
123pub const CMD_CRYPTO_MAX_BUY_SELL_QTY: u16 = 20622;
126pub const CMD_CRYPTO_QUERY_CASH_LOG: u16 = 20632;
129pub const CMD_CRYPTO_PLACE_ORDER: u16 = 20626;
132pub const CMD_CRYPTO_CANCEL_ORDER: u16 = 20628;
135pub const CMD_CRYPTO_NOTIFY_ASSET: u16 = 20635;
138pub const CMD_CRYPTO_NOTIFY_ORDER: u16 = 20648;
141
142#[derive(Debug, Clone, Copy, PartialEq, Eq)]
143pub enum TradeBackendChannel {
144 Broker,
145 Platform,
146}
147
148#[derive(Debug, Clone, Copy, PartialEq, Eq)]
149pub enum TradeQueryOperation {
150 Funds,
151 Positions,
152 Orders,
153 OrderInfo,
154 Fills,
155 FillInfo,
156 HistoryOrders,
157 HistoryFills,
158}
159
160#[derive(Debug, Clone, Copy, PartialEq, Eq)]
161pub enum TradeQueryBodyProto {
162 RealAccountInfo,
163 SimCashInfo,
164 SimPositionInfo,
165 RealOrderList,
166 SimOrderList,
167 RealOrderInfo,
168 SimOrderInfo,
169 RealOrderFillList,
170 RealOrderFillInfo,
171 RealHistoryOrderList,
172 SimHistoryOrderList,
173 RealHistoryOrderFillList,
174}
175
176#[derive(Debug, Clone, Copy, PartialEq, Eq)]
177pub struct TradeQueryCommandSpec {
178 pub operation: TradeQueryOperation,
179 pub real_cmd: u16,
180 pub sim_cmd: u16,
181 pub real_body: TradeQueryBodyProto,
182 pub sim_body: TradeQueryBodyProto,
183 pub real_channel: TradeBackendChannel,
184 pub sim_channel: TradeBackendChannel,
185 pub cpp_ref: &'static str,
186}
187
188pub const TRADE_QUERY_FUNDS: TradeQueryCommandSpec = TradeQueryCommandSpec {
192 operation: TradeQueryOperation::Funds,
193 real_cmd: CMD_ACCOUNT_INFO,
194 sim_cmd: CMD_SIM_QUERY_FUND,
195 real_body: TradeQueryBodyProto::RealAccountInfo,
196 sim_body: TradeQueryBodyProto::SimCashInfo,
197 real_channel: TradeBackendChannel::Broker,
198 sim_channel: TradeBackendChannel::Platform,
199 cpp_ref: "NNProto_Trd_Acc.cpp:882-922 QueryFundNoLimit",
200};
201
202pub const TRADE_QUERY_POSITIONS: TradeQueryCommandSpec = TradeQueryCommandSpec {
203 operation: TradeQueryOperation::Positions,
204 real_cmd: CMD_ACCOUNT_INFO,
205 sim_cmd: CMD_SIM_QUERY_POSITION,
206 real_body: TradeQueryBodyProto::RealAccountInfo,
207 sim_body: TradeQueryBodyProto::SimPositionInfo,
208 real_channel: TradeBackendChannel::Broker,
209 sim_channel: TradeBackendChannel::Platform,
210 cpp_ref: "NNProto_Trd_Acc.cpp:780-811 QueryPositionListNoLimit",
211};
212
213pub const TRADE_QUERY_ORDERS: TradeQueryCommandSpec = TradeQueryCommandSpec {
214 operation: TradeQueryOperation::Orders,
215 real_cmd: CMD_QUERY_ORDER_LIST,
216 sim_cmd: CMD_SIM_QUERY_ORDER_LIST,
217 real_body: TradeQueryBodyProto::RealOrderList,
218 sim_body: TradeQueryBodyProto::SimOrderList,
219 real_channel: TradeBackendChannel::Broker,
220 sim_channel: TradeBackendChannel::Platform,
221 cpp_ref: "NNProto_Trd_Order.cpp:202-218 QueryOrderList_Inner + NNProto_Trd_Base.cpp:68-70",
222};
223
224pub const TRADE_QUERY_ORDER_INFO: TradeQueryCommandSpec = TradeQueryCommandSpec {
225 operation: TradeQueryOperation::OrderInfo,
226 real_cmd: CMD_QUERY_ORDER_INFO,
227 sim_cmd: CMD_SIM_QUERY_ORDER_INFO,
228 real_body: TradeQueryBodyProto::RealOrderInfo,
229 sim_body: TradeQueryBodyProto::SimOrderInfo,
233 real_channel: TradeBackendChannel::Broker,
234 sim_channel: TradeBackendChannel::Platform,
235 cpp_ref: "NNProto_Trd_OnPush.cpp:111-123,177-211 + NNProto_Trd_OrderReal.cpp:211-243 + NNProto_Trd_OrderSimulate.cpp:205-235",
236};
237
238pub const TRADE_QUERY_FILLS: TradeQueryCommandSpec = TradeQueryCommandSpec {
239 operation: TradeQueryOperation::Fills,
240 real_cmd: CMD_QUERY_ORDER_FILL_LIST,
241 sim_cmd: CMD_SIM_QUERY_ORDER_FILL_LIST,
242 real_body: TradeQueryBodyProto::RealOrderFillList,
243 sim_body: TradeQueryBodyProto::RealOrderFillList,
244 real_channel: TradeBackendChannel::Broker,
245 sim_channel: TradeBackendChannel::Platform,
246 cpp_ref: "NNProto_Trd_Deal.cpp:135-159 QueryDealList_Inner + NNProto_Trd_Base.cpp:68-70",
247};
248
249pub const TRADE_QUERY_FILL_INFO: TradeQueryCommandSpec = TradeQueryCommandSpec {
250 operation: TradeQueryOperation::FillInfo,
251 real_cmd: CMD_QUERY_ORDER_FILL_INFO,
252 sim_cmd: CMD_SIM_QUERY_ORDER_FILL_INFO,
253 real_body: TradeQueryBodyProto::RealOrderFillInfo,
254 sim_body: TradeQueryBodyProto::RealOrderFillInfo,
255 real_channel: TradeBackendChannel::Broker,
256 sim_channel: TradeBackendChannel::Platform,
257 cpp_ref: "NNProto_Trd_OnPush.cpp:151-161 + NNProto_Trd_Deal.cpp:216-248 + NNProto_Trd_Base.cpp:68-70",
258};
259
260pub const TRADE_QUERY_HISTORY_ORDERS: TradeQueryCommandSpec = TradeQueryCommandSpec {
261 operation: TradeQueryOperation::HistoryOrders,
262 real_cmd: CMD_QUERY_HISTORY_ORDER_LIST,
263 sim_cmd: CMD_SIM_QUERY_HISTORY_ORDER_LIST,
264 real_body: TradeQueryBodyProto::RealHistoryOrderList,
265 sim_body: TradeQueryBodyProto::SimHistoryOrderList,
266 real_channel: TradeBackendChannel::Broker,
267 sim_channel: TradeBackendChannel::Platform,
268 cpp_ref: "NNProto_Trd_Order.cpp:248-263 QueryHistoryOrderList + NNProto_Trd_Base.cpp:68-70",
269};
270
271pub const TRADE_QUERY_HISTORY_FILLS: TradeQueryCommandSpec = TradeQueryCommandSpec {
272 operation: TradeQueryOperation::HistoryFills,
273 real_cmd: CMD_QUERY_HISTORY_ORDER_FILL_LIST,
274 sim_cmd: CMD_SIM_QUERY_HISTORY_ORDER_FILL_LIST,
275 real_body: TradeQueryBodyProto::RealHistoryOrderFillList,
276 sim_body: TradeQueryBodyProto::RealHistoryOrderFillList,
277 real_channel: TradeBackendChannel::Broker,
278 sim_channel: TradeBackendChannel::Platform,
279 cpp_ref: "NNProto_Trd_Deal.cpp:188-208 QueryHistoryDealList + NNProto_Trd_Base.cpp:68-70",
280};
281
282pub const TRADE_QUERY_COMMANDS: &[TradeQueryCommandSpec] = &[
283 TRADE_QUERY_FUNDS,
284 TRADE_QUERY_POSITIONS,
285 TRADE_QUERY_ORDERS,
286 TRADE_QUERY_ORDER_INFO,
287 TRADE_QUERY_FILLS,
288 TRADE_QUERY_FILL_INFO,
289 TRADE_QUERY_HISTORY_ORDERS,
290 TRADE_QUERY_HISTORY_FILLS,
291];
292
293pub fn trade_query_command(operation: TradeQueryOperation) -> &'static TradeQueryCommandSpec {
294 match operation {
295 TradeQueryOperation::Funds => &TRADE_QUERY_FUNDS,
296 TradeQueryOperation::Positions => &TRADE_QUERY_POSITIONS,
297 TradeQueryOperation::Orders => &TRADE_QUERY_ORDERS,
298 TradeQueryOperation::OrderInfo => &TRADE_QUERY_ORDER_INFO,
299 TradeQueryOperation::Fills => &TRADE_QUERY_FILLS,
300 TradeQueryOperation::FillInfo => &TRADE_QUERY_FILL_INFO,
301 TradeQueryOperation::HistoryOrders => &TRADE_QUERY_HISTORY_ORDERS,
302 TradeQueryOperation::HistoryFills => &TRADE_QUERY_HISTORY_FILLS,
303 }
304}
305
306#[derive(Debug, Clone, Copy, PartialEq, Eq)]
307pub enum TradeWriteOperation {
308 PlaceOrder,
309 ModifyOrder,
310 CancelOrder,
311 DisableOrder,
312 EnableOrder,
313 DeleteOrder,
314 ReconfirmOrder,
315 MaxTrdQtys,
316}
317
318#[derive(Debug, Clone, Copy, PartialEq, Eq)]
319pub enum TradeWriteBodyProto {
320 OrderNew,
321 SimOrderNew,
322 OrderReplace,
323 SimOrderReplace,
324 OrderCancel,
325 SimOrderCancel,
326 OrderDisable,
327 OrderEnable,
328 OrderDelete,
329 OrderConfirm,
330 SimOrderConfirm,
331 MaxBuySell,
332 SimMaxBuySell,
333}
334
335#[derive(Debug, Clone, Copy, PartialEq, Eq)]
336pub struct TradeWriteCommandSpec {
337 pub operation: TradeWriteOperation,
338 pub real_cmd: u16,
339 pub sim_cmd: Option<u16>,
340 pub real_body: TradeWriteBodyProto,
341 pub sim_body: Option<TradeWriteBodyProto>,
342 pub real_channel: TradeBackendChannel,
343 pub sim_channel: Option<TradeBackendChannel>,
344 pub cpp_ref: &'static str,
345}
346
347pub const TRADE_WRITE_PLACE_ORDER: TradeWriteCommandSpec = TradeWriteCommandSpec {
351 operation: TradeWriteOperation::PlaceOrder,
352 real_cmd: CMD_PLACE_ORDER,
353 sim_cmd: Some(CMD_SIM_PLACE_ORDER),
354 real_body: TradeWriteBodyProto::OrderNew,
355 sim_body: Some(TradeWriteBodyProto::SimOrderNew),
356 real_channel: TradeBackendChannel::Broker,
357 sim_channel: Some(TradeBackendChannel::Platform),
358 cpp_ref: "NNProto_Trd_OrderOp.cpp:41-71 + NNProto_Trd_Base.cpp:68-70",
359};
360
361pub const TRADE_WRITE_MODIFY_ORDER: TradeWriteCommandSpec = TradeWriteCommandSpec {
362 operation: TradeWriteOperation::ModifyOrder,
363 real_cmd: CMD_MODIFY_ORDER,
364 sim_cmd: Some(CMD_SIM_MODIFY_ORDER),
365 real_body: TradeWriteBodyProto::OrderReplace,
366 sim_body: Some(TradeWriteBodyProto::SimOrderReplace),
367 real_channel: TradeBackendChannel::Broker,
368 sim_channel: Some(TradeBackendChannel::Platform),
369 cpp_ref: "NNProto_Trd_OrderOp.cpp:113-137 + NNProto_Trd_Base.cpp:68-70",
370};
371
372pub const TRADE_WRITE_CANCEL_ORDER: TradeWriteCommandSpec = TradeWriteCommandSpec {
373 operation: TradeWriteOperation::CancelOrder,
374 real_cmd: CMD_CANCEL_ORDER,
375 sim_cmd: Some(CMD_SIM_CANCEL_ORDER),
376 real_body: TradeWriteBodyProto::OrderCancel,
377 sim_body: Some(TradeWriteBodyProto::SimOrderCancel),
378 real_channel: TradeBackendChannel::Broker,
379 sim_channel: Some(TradeBackendChannel::Platform),
380 cpp_ref: "NNProto_Trd_OrderOp.cpp:141-167 + NNProto_Trd_Base.cpp:68-70",
381};
382
383pub const TRADE_WRITE_DISABLE_ORDER: TradeWriteCommandSpec = TradeWriteCommandSpec {
384 operation: TradeWriteOperation::DisableOrder,
385 real_cmd: CMD_DISABLE_ORDER,
386 sim_cmd: Some(CMD_SIM_DISABLE_ORDER),
387 real_body: TradeWriteBodyProto::OrderDisable,
388 sim_body: Some(TradeWriteBodyProto::OrderDisable),
389 real_channel: TradeBackendChannel::Broker,
390 sim_channel: Some(TradeBackendChannel::Platform),
391 cpp_ref: "NNProto_Trd_OrderOpReal.cpp:122-141 + NNBase_Define_ProtoCmd.h:40",
392};
393
394pub const TRADE_WRITE_ENABLE_ORDER: TradeWriteCommandSpec = TradeWriteCommandSpec {
395 operation: TradeWriteOperation::EnableOrder,
396 real_cmd: CMD_ENABLE_ORDER,
397 sim_cmd: Some(CMD_SIM_ENABLE_ORDER),
398 real_body: TradeWriteBodyProto::OrderEnable,
399 sim_body: Some(TradeWriteBodyProto::OrderEnable),
400 real_channel: TradeBackendChannel::Broker,
401 sim_channel: Some(TradeBackendChannel::Platform),
402 cpp_ref: "NNProto_Trd_OrderOpReal.cpp:144-163 + NNBase_Define_ProtoCmd.h:39",
403};
404
405pub const TRADE_WRITE_DELETE_ORDER: TradeWriteCommandSpec = TradeWriteCommandSpec {
406 operation: TradeWriteOperation::DeleteOrder,
407 real_cmd: CMD_DELETE_ORDER,
408 sim_cmd: Some(CMD_SIM_DELETE_ORDER),
409 real_body: TradeWriteBodyProto::OrderDelete,
410 sim_body: Some(TradeWriteBodyProto::OrderDelete),
411 real_channel: TradeBackendChannel::Broker,
412 sim_channel: Some(TradeBackendChannel::Platform),
413 cpp_ref: "NNProto_Trd_OrderOpReal.cpp:166-181 + NNBase_Define_ProtoCmd.h:41",
414};
415
416pub const TRADE_WRITE_RECONFIRM_ORDER: TradeWriteCommandSpec = TradeWriteCommandSpec {
417 operation: TradeWriteOperation::ReconfirmOrder,
418 real_cmd: CMD_ORDER_CONFIRM,
419 sim_cmd: Some(CMD_SIM_ORDER_CONFIRM),
420 real_body: TradeWriteBodyProto::OrderConfirm,
421 sim_body: Some(TradeWriteBodyProto::SimOrderConfirm),
422 real_channel: TradeBackendChannel::Broker,
423 sim_channel: Some(TradeBackendChannel::Platform),
424 cpp_ref: "TradeCmdDefine.h CS_CMDID_TRADE_ORDER_CONFIRM_ORDER = 4728 + NNProto_Trd_Base.cpp:68-70",
425};
426
427pub const TRADE_WRITE_MAX_TRD_QTYS: TradeWriteCommandSpec = TradeWriteCommandSpec {
428 operation: TradeWriteOperation::MaxTrdQtys,
429 real_cmd: CMD_MAX_BUY_SELL,
430 sim_cmd: Some(CMD_SIM_MAX_BUY_SELL),
431 real_body: TradeWriteBodyProto::MaxBuySell,
432 sim_body: Some(TradeWriteBodyProto::SimMaxBuySell),
433 real_channel: TradeBackendChannel::Broker,
434 sim_channel: Some(TradeBackendChannel::Platform),
435 cpp_ref: "NNProto_Trd_MaxQty.cpp:95-105 + NNProto_Trd_Base.cpp:68-70",
436};
437
438pub const TRADE_WRITE_COMMANDS: &[TradeWriteCommandSpec] = &[
439 TRADE_WRITE_PLACE_ORDER,
440 TRADE_WRITE_MODIFY_ORDER,
441 TRADE_WRITE_CANCEL_ORDER,
442 TRADE_WRITE_DISABLE_ORDER,
443 TRADE_WRITE_ENABLE_ORDER,
444 TRADE_WRITE_DELETE_ORDER,
445 TRADE_WRITE_RECONFIRM_ORDER,
446 TRADE_WRITE_MAX_TRD_QTYS,
447];
448
449pub fn trade_write_command(operation: TradeWriteOperation) -> &'static TradeWriteCommandSpec {
450 match operation {
451 TradeWriteOperation::PlaceOrder => &TRADE_WRITE_PLACE_ORDER,
452 TradeWriteOperation::ModifyOrder => &TRADE_WRITE_MODIFY_ORDER,
453 TradeWriteOperation::CancelOrder => &TRADE_WRITE_CANCEL_ORDER,
454 TradeWriteOperation::DisableOrder => &TRADE_WRITE_DISABLE_ORDER,
455 TradeWriteOperation::EnableOrder => &TRADE_WRITE_ENABLE_ORDER,
456 TradeWriteOperation::DeleteOrder => &TRADE_WRITE_DELETE_ORDER,
457 TradeWriteOperation::ReconfirmOrder => &TRADE_WRITE_RECONFIRM_ORDER,
458 TradeWriteOperation::MaxTrdQtys => &TRADE_WRITE_MAX_TRD_QTYS,
459 }
460}
461
462#[derive(Debug, Clone, Copy, PartialEq, Eq)]
463pub enum CryptoTradeOperation {
464 FetchTradeConfig,
465 AccountInfo,
466 Orders,
467 HistoryOrders,
468 OrderInfo,
469 OrderFillDetail,
470 Deals,
471 HistoryDeals,
472 BatchOrderFee,
473 MaxBuySellQty,
474 CashLog,
475 PlaceOrder,
476 CancelOrder,
477 NotifyAsset,
478 NotifyOrder,
479}
480
481#[derive(Debug, Clone, Copy, PartialEq, Eq)]
482pub enum CryptoTradeBodyProto {
483 InboundOeFetchTradeConfig,
484 AssetPlAccountInfo,
485 InboundReadOrderList,
486 InboundReadHistoryOrderList,
487 InboundReadOrderDetail,
488 InboundReadOrderFillDetail,
489 InboundOeFillList,
490 InboundOeHistoryFillList,
491 InboundOeBatchOrderFee,
492 CryptoRiskMaxBuySell,
493 CashChangeDetailCashLog,
494 InboundOeOrderNew,
495 InboundOeOrderCancel,
496 CryptoNotifyOrder,
497 CryptoNotifyAsset,
498}
499
500#[derive(Debug, Clone, Copy, PartialEq, Eq)]
501pub struct CryptoTradeCommandSpec {
502 pub operation: CryptoTradeOperation,
503 pub cmd: u16,
504 pub body: CryptoTradeBodyProto,
505 pub channel: TradeBackendChannel,
506 pub cpp_ref: &'static str,
507}
508
509pub const CRYPTO_TRADE_FETCH_TRADE_CONFIG: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
515 operation: CryptoTradeOperation::FetchTradeConfig,
516 cmd: CMD_CRYPTO_FETCH_TRADE_CONFIG,
517 body: CryptoTradeBodyProto::InboundOeFetchTradeConfig,
518 channel: TradeBackendChannel::Broker,
519 cpp_ref: "NNProto_Trd_CryptoTradeConfig.cpp:14-23",
520};
521
522pub const CRYPTO_TRADE_ACCOUNT_INFO: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
523 operation: CryptoTradeOperation::AccountInfo,
524 cmd: CMD_CRYPTO_ACCOUNT_INFO,
525 body: CryptoTradeBodyProto::AssetPlAccountInfo,
526 channel: TradeBackendChannel::Broker,
527 cpp_ref: "NNProto_Trd_AccCrypto.cpp:197-215",
528};
529
530pub const CRYPTO_TRADE_ORDERS: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
531 operation: CryptoTradeOperation::Orders,
532 cmd: CMD_CRYPTO_QUERY_ORDER_LIST,
533 body: CryptoTradeBodyProto::InboundReadOrderList,
534 channel: TradeBackendChannel::Broker,
535 cpp_ref: "NNProto_Trd_OrderCrypto.cpp:346-368",
536};
537
538pub const CRYPTO_TRADE_HISTORY_ORDERS: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
539 operation: CryptoTradeOperation::HistoryOrders,
540 cmd: CMD_CRYPTO_QUERY_HISTORY_ORDER_LIST,
541 body: CryptoTradeBodyProto::InboundReadHistoryOrderList,
542 channel: TradeBackendChannel::Broker,
543 cpp_ref: "NNProto_Trd_OrderCrypto.cpp:373-398",
544};
545
546pub const CRYPTO_TRADE_ORDER_INFO: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
547 operation: CryptoTradeOperation::OrderInfo,
548 cmd: CMD_CRYPTO_QUERY_ORDER_INFO,
549 body: CryptoTradeBodyProto::InboundReadOrderDetail,
550 channel: TradeBackendChannel::Broker,
551 cpp_ref: "NNProto_Trd_OrderCrypto.cpp:153-177",
552};
553
554pub const CRYPTO_TRADE_ORDER_FILL_DETAIL: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
555 operation: CryptoTradeOperation::OrderFillDetail,
556 cmd: CMD_CRYPTO_QUERY_ORDER_FILL_DETAIL,
557 body: CryptoTradeBodyProto::InboundReadOrderFillDetail,
558 channel: TradeBackendChannel::Broker,
559 cpp_ref: "NNProto_Trd_DealCrypto.cpp:500-525",
560};
561
562pub const CRYPTO_TRADE_DEALS: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
563 operation: CryptoTradeOperation::Deals,
564 cmd: CMD_CRYPTO_QUERY_DEAL_LIST,
565 body: CryptoTradeBodyProto::InboundOeFillList,
566 channel: TradeBackendChannel::Broker,
567 cpp_ref: "NNProto_Trd_DealCrypto.cpp:452-464",
568};
569
570pub const CRYPTO_TRADE_HISTORY_DEALS: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
571 operation: CryptoTradeOperation::HistoryDeals,
572 cmd: CMD_CRYPTO_QUERY_HISTORY_DEAL_LIST,
573 body: CryptoTradeBodyProto::InboundOeHistoryFillList,
574 channel: TradeBackendChannel::Broker,
575 cpp_ref: "NNProto_Trd_DealCrypto.cpp:472-485",
576};
577
578pub const CRYPTO_TRADE_BATCH_ORDER_FEE: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
579 operation: CryptoTradeOperation::BatchOrderFee,
580 cmd: CMD_CRYPTO_QUERY_BATCH_ORDER_FEE,
581 body: CryptoTradeBodyProto::InboundOeBatchOrderFee,
582 channel: TradeBackendChannel::Broker,
583 cpp_ref: "NNProto_Trd_OrderFeeCrypto.cpp:133-149",
584};
585
586pub const CRYPTO_TRADE_MAX_BUY_SELL_QTY: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
587 operation: CryptoTradeOperation::MaxBuySellQty,
588 cmd: CMD_CRYPTO_MAX_BUY_SELL_QTY,
589 body: CryptoTradeBodyProto::CryptoRiskMaxBuySell,
590 channel: TradeBackendChannel::Broker,
591 cpp_ref: "NNProto_Trd_MaxQtyCrypto.cpp:14-38",
592};
593
594pub const CRYPTO_TRADE_CASH_LOG: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
595 operation: CryptoTradeOperation::CashLog,
596 cmd: CMD_CRYPTO_QUERY_CASH_LOG,
597 body: CryptoTradeBodyProto::CashChangeDetailCashLog,
598 channel: TradeBackendChannel::Broker,
599 cpp_ref: "NNProto_Trd_FlowSummaryCrypto.cpp:191-212",
600};
601
602pub const CRYPTO_TRADE_PLACE_ORDER: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
603 operation: CryptoTradeOperation::PlaceOrder,
604 cmd: CMD_CRYPTO_PLACE_ORDER,
605 body: CryptoTradeBodyProto::InboundOeOrderNew,
606 channel: TradeBackendChannel::Broker,
607 cpp_ref: "NNProto_Trd_OrderOpCrypto.cpp:21-53",
608};
609
610pub const CRYPTO_TRADE_CANCEL_ORDER: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
611 operation: CryptoTradeOperation::CancelOrder,
612 cmd: CMD_CRYPTO_CANCEL_ORDER,
613 body: CryptoTradeBodyProto::InboundOeOrderCancel,
614 channel: TradeBackendChannel::Broker,
615 cpp_ref: "NNProto_Trd_OrderOpCrypto.cpp:65-112",
616};
617
618pub const CRYPTO_TRADE_NOTIFY_ASSET: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
619 operation: CryptoTradeOperation::NotifyAsset,
620 cmd: CMD_CRYPTO_NOTIFY_ASSET,
621 body: CryptoTradeBodyProto::CryptoNotifyAsset,
622 channel: TradeBackendChannel::Broker,
623 cpp_ref: "NNProto_Trd_OnPush.cpp:284-307",
624};
625
626pub const CRYPTO_TRADE_NOTIFY_ORDER: CryptoTradeCommandSpec = CryptoTradeCommandSpec {
627 operation: CryptoTradeOperation::NotifyOrder,
628 cmd: CMD_CRYPTO_NOTIFY_ORDER,
629 body: CryptoTradeBodyProto::CryptoNotifyOrder,
630 channel: TradeBackendChannel::Broker,
631 cpp_ref: "NNProto_Trd_OnPush.cpp:246-272",
632};
633
634pub const CRYPTO_TRADE_COMMANDS: &[CryptoTradeCommandSpec] = &[
635 CRYPTO_TRADE_FETCH_TRADE_CONFIG,
636 CRYPTO_TRADE_ACCOUNT_INFO,
637 CRYPTO_TRADE_ORDERS,
638 CRYPTO_TRADE_HISTORY_ORDERS,
639 CRYPTO_TRADE_ORDER_INFO,
640 CRYPTO_TRADE_ORDER_FILL_DETAIL,
641 CRYPTO_TRADE_DEALS,
642 CRYPTO_TRADE_HISTORY_DEALS,
643 CRYPTO_TRADE_BATCH_ORDER_FEE,
644 CRYPTO_TRADE_MAX_BUY_SELL_QTY,
645 CRYPTO_TRADE_CASH_LOG,
646 CRYPTO_TRADE_PLACE_ORDER,
647 CRYPTO_TRADE_CANCEL_ORDER,
648 CRYPTO_TRADE_NOTIFY_ASSET,
649 CRYPTO_TRADE_NOTIFY_ORDER,
650];
651
652pub fn crypto_trade_command(operation: CryptoTradeOperation) -> &'static CryptoTradeCommandSpec {
653 match operation {
654 CryptoTradeOperation::FetchTradeConfig => &CRYPTO_TRADE_FETCH_TRADE_CONFIG,
655 CryptoTradeOperation::AccountInfo => &CRYPTO_TRADE_ACCOUNT_INFO,
656 CryptoTradeOperation::Orders => &CRYPTO_TRADE_ORDERS,
657 CryptoTradeOperation::HistoryOrders => &CRYPTO_TRADE_HISTORY_ORDERS,
658 CryptoTradeOperation::OrderInfo => &CRYPTO_TRADE_ORDER_INFO,
659 CryptoTradeOperation::OrderFillDetail => &CRYPTO_TRADE_ORDER_FILL_DETAIL,
660 CryptoTradeOperation::Deals => &CRYPTO_TRADE_DEALS,
661 CryptoTradeOperation::HistoryDeals => &CRYPTO_TRADE_HISTORY_DEALS,
662 CryptoTradeOperation::BatchOrderFee => &CRYPTO_TRADE_BATCH_ORDER_FEE,
663 CryptoTradeOperation::MaxBuySellQty => &CRYPTO_TRADE_MAX_BUY_SELL_QTY,
664 CryptoTradeOperation::CashLog => &CRYPTO_TRADE_CASH_LOG,
665 CryptoTradeOperation::PlaceOrder => &CRYPTO_TRADE_PLACE_ORDER,
666 CryptoTradeOperation::CancelOrder => &CRYPTO_TRADE_CANCEL_ORDER,
667 CryptoTradeOperation::NotifyAsset => &CRYPTO_TRADE_NOTIFY_ASSET,
668 CryptoTradeOperation::NotifyOrder => &CRYPTO_TRADE_NOTIFY_ORDER,
669 }
670}
671
672#[cfg(test)]
673mod tests;