order_command_test.rs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. // use std::collections::{BTreeMap};
  2. // use std::{env};
  3. // use tokio::sync::{mpsc, Mutex};
  4. // use std::io::Error;
  5. // use std::sync::Arc;
  6. // use std::time::Duration;
  7. // use tracing::{error, info};
  8. // use exchanges::proxy;
  9. // use standard::exchange::{Exchange, ExchangeEnum};
  10. // use standard::{Order, OrderCommand};
  11. //
  12. // #[tokio::test]
  13. // async fn main() {
  14. // if proxy::ParsingDetail::http_enable_proxy() {
  15. // println!("检测有代理配置,配置走代理")
  16. // }
  17. // let mut params: BTreeMap<String, String> = BTreeMap::new();
  18. // let access_key = env::var("gate_access_key").unwrap_or("".to_string());
  19. // let secret_key = env::var("gate_secret_key").unwrap_or("".to_string());
  20. // params.insert("access_key".to_string(), access_key);
  21. // params.insert("secret_key".to_string(), secret_key);
  22. //
  23. // let (order_sender, mut order_receiver) = mpsc::channel::<Order>(100);
  24. // let (error_sender, mut error_receiver) = mpsc::channel::<Error>(100);
  25. //
  26. // global::log_utils::init_log_with_info();
  27. //
  28. // let mut exchange = Exchange::new(ExchangeEnum::GateSwap, "BTC_USDT".to_string(), false,
  29. // params, order_sender.clone(), error_sender.clone()).await;
  30. // let exchange_arc = Arc::new(Mutex::new(exchange));
  31. // let main_thread = tokio::spawn(async move {
  32. // let client_id_0 = "123425678".to_string();
  33. // let client_id_1 = "123452679".to_string();
  34. // let client_id_2 = "123452677".to_string();
  35. // let client_id_3 = "123452676".to_string();
  36. //
  37. // loop {
  38. // // 下单
  39. // info!("下单");
  40. // let mut command = OrderCommand::new();
  41. // command.limits_open.insert("BTC_USDT1".to_string(), vec!["0.0001".to_string(), "kd".to_string(), "24000".to_string(), client_id_0.clone()]);
  42. // command.limits_open.insert("BTC_USDT2".to_string(), vec!["0.0001".to_string(), "kk".to_string(), "28000".to_string(), client_id_1.clone()]);
  43. // command.limits_open.insert("BTC_USDT3".to_string(), vec!["0.0001".to_string(), "kd".to_string(), "23000".to_string(), client_id_2.clone()]);
  44. // command.limits_open.insert("BTC_USDT4".to_string(), vec!["0.0001".to_string(), "kk".to_string(), "29000".to_string(), client_id_3.clone()]);
  45. // info!(?command);
  46. // let e0 = exchange_arc.clone();
  47. // tokio::spawn(async move {
  48. // e0.lock().await.command_order(command.clone()).await;
  49. // });
  50. // info!("下单委托完毕");
  51. // tokio::time::sleep(Duration::from_millis(500)).await;
  52. //
  53. // // 查单
  54. // // info!("查单");
  55. // // let mut command = OrderCommand::new();
  56. // // command.check.insert("BTC_USDT1".to_string(), vec![client_id_0.clone(), "".to_string()]);
  57. // // command.check.insert("BTC_USDT2".to_string(), vec![client_id_1.clone(), "".to_string()]);
  58. // // exchange.command_order(command.clone()).await;
  59. // // tokio::time::sleep(Duration::from_secs(5)).await;
  60. //
  61. // // 撤单
  62. // info!("撤单");
  63. // let mut command = OrderCommand::new();
  64. // command.cancel.insert("BTC_USDT1".to_string(), vec![client_id_0.clone(), "".to_string()]);
  65. // command.cancel.insert("BTC_USDT2".to_string(), vec![client_id_1.clone(), "".to_string()]);
  66. // command.cancel.insert("BTC_USDT3".to_string(), vec![client_id_2.clone(), "".to_string()]);
  67. // command.cancel.insert("BTC_USDT4".to_string(), vec![client_id_3.clone(), "".to_string()]);
  68. // info!(?command);
  69. // let e1 = exchange_arc.clone();
  70. // tokio::spawn(async move {
  71. // e1.lock().await.command_order(command.clone()).await;
  72. // });
  73. // info!("撤单委托完毕");
  74. // tokio::time::sleep(Duration::from_secs(30)).await;
  75. // }
  76. // });
  77. //
  78. // let handler_thread = tokio::spawn(async move {
  79. // loop {
  80. // match order_receiver.recv().await {
  81. // Some(order) => {
  82. // info!(?order)
  83. // },
  84. // None => {
  85. // error!("Channel has been closed!");
  86. // break;
  87. // }
  88. // }
  89. // }
  90. // });
  91. //
  92. // let error_handler_thread = tokio::spawn(async move {
  93. // loop {
  94. // match error_receiver.recv().await {
  95. // Some(error) => error!(?error),
  96. // None => {
  97. // error!("Channel has been closed!");
  98. // break;
  99. // }
  100. // }
  101. // }
  102. // });
  103. //
  104. // tokio::try_join!(main_thread, handler_thread, error_handler_thread).unwrap();
  105. // }