gate_swap_test.rs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. // mod exchange_test;
  2. //
  3. // use std::collections::BTreeMap;
  4. // use std::env;
  5. // use std::io::Error;
  6. // use rust_decimal_macros::dec;
  7. // use tokio::sync::mpsc;
  8. // use tracing::{instrument, trace};
  9. // use standard::exchange::{Exchange, ExchangeEnum};
  10. // use standard::{Order, OrderCommand, Platform, utils};
  11. // use crate::exchange_test::{test_new_exchange};
  12. //
  13. // const SYMBOL: &str = "BLZ_USDT";
  14. //
  15. // // 测试获取Exchange实体
  16. // #[tokio::test]
  17. // #[instrument(level = "TRACE")]
  18. // async fn test_get_self_exchange() {
  19. // global::log_utils::init_log_with_trace();
  20. //
  21. // let gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  22. // let gate_get_self_exchange = gate_swap_exchange.get_self_exchange();
  23. // trace!(?gate_get_self_exchange);
  24. // }
  25. //
  26. // // 测试获取交易对信息
  27. // #[tokio::test]
  28. // #[instrument(level = "TRACE")]
  29. // async fn test_get_self_symbol() {
  30. // global::log_utils::init_log_with_trace();
  31. //
  32. // let gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  33. // let gate_get_self_symbol = gate_swap_exchange.get_self_symbol();
  34. // trace!(?gate_get_self_symbol);
  35. // }
  36. //
  37. // // 测试获取是否使用高速通道
  38. // #[tokio::test]
  39. // #[instrument(level = "TRACE")]
  40. // async fn test_get_self_is_colo() {
  41. // global::log_utils::init_log_with_trace();
  42. //
  43. // let gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  44. // let gate_get_self_is_colo = gate_swap_exchange.get_self_is_colo();
  45. // trace!(?gate_get_self_is_colo);
  46. // }
  47. //
  48. // // 测试获取登录params信息
  49. // #[tokio::test]
  50. // #[instrument(level = "TRACE")]
  51. // async fn test_get_self_params() {
  52. // global::log_utils::init_log_with_trace();
  53. //
  54. // let gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  55. // let gate_get_self_params = gate_swap_exchange.get_self_params();
  56. // trace!("gate_get_self_params={:?}",gate_get_self_params);
  57. // }
  58. //
  59. // // 测试获取Market信息
  60. // #[tokio::test]
  61. // #[instrument(level = "TRACE")]
  62. // async fn test_get_self_market() {
  63. // global::log_utils::init_log_with_trace();
  64. //
  65. // let gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  66. // let gate_get_self_market = gate_swap_exchange.get_self_market();
  67. // trace!(?gate_get_self_market);
  68. // }
  69. //
  70. // // 测试获取请求时间信息
  71. // #[tokio::test]
  72. // #[instrument(level = "TRACE")]
  73. // async fn test_get_request_delays() {
  74. // global::log_utils::init_log_with_trace();
  75. //
  76. // let gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  77. // let gate_get_request_delays = gate_swap_exchange.get_request_delays();
  78. // trace!(?gate_get_request_delays);
  79. // }
  80. //
  81. // // 测试获取请求平均时间信息
  82. // #[tokio::test]
  83. // #[instrument(level = "TRACE")]
  84. // async fn test_get_request_avg_delay() {
  85. // global::log_utils::init_log_with_trace();
  86. //
  87. // let gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  88. // let gate_get_request_avg_delay = gate_swap_exchange.get_request_avg_delay();
  89. // trace!(?gate_get_request_avg_delay);
  90. // }
  91. //
  92. // // 测试获取最大请求时间信息
  93. // #[tokio::test]
  94. // #[instrument(level = "TRACE")]
  95. // async fn test_get_request_max_delay() {
  96. // global::log_utils::init_log_with_trace();
  97. //
  98. // let gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  99. // let gate_get_request_max_delay = gate_swap_exchange.get_request_max_delay();
  100. // trace!(?gate_get_request_max_delay);
  101. // }
  102. //
  103. // // 测试获取服务器时间
  104. // #[tokio::test]
  105. // #[instrument(level = "TRACE")]
  106. // async fn test_get_server_time() {
  107. // global::log_utils::init_log_with_trace();
  108. //
  109. // let mut gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  110. // let gate_get_server_time = gate_swap_exchange.get_server_time().await;
  111. // trace!(?gate_get_server_time);
  112. // }
  113. //
  114. // // 测试获取账号信息
  115. // #[tokio::test]
  116. // #[instrument(level = "TRACE")]
  117. // async fn test_get_account() {
  118. // global::log_utils::init_log_with_trace();
  119. //
  120. // let mut gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  121. // let gate_get_account = gate_swap_exchange.get_account().await;
  122. // trace!(?gate_get_account);
  123. // }
  124. //
  125. // // 测试获取持仓信息
  126. // #[tokio::test]
  127. // #[instrument(level = "TRACE")]
  128. // async fn test_get_position() {
  129. // global::log_utils::init_log_with_trace();
  130. //
  131. // let mut gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  132. // let gate_get_position = gate_swap_exchange.get_position().await;
  133. // trace!(?gate_get_position);
  134. // }
  135. //
  136. // // 测试获取所有持仓信息
  137. // #[tokio::test]
  138. // #[instrument(level = "TRACE")]
  139. // async fn test_get_positions() {
  140. // global::log_utils::init_log_with_trace();
  141. //
  142. // let mut gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  143. // let gate_get_positions = gate_swap_exchange.get_positions().await;
  144. // trace!(?gate_get_positions);
  145. // }
  146. //
  147. // // 测试获取Ticker信息
  148. // #[tokio::test]
  149. // #[instrument(level = "TRACE")]
  150. // async fn test_get_ticker() {
  151. // global::log_utils::init_log_with_trace();
  152. //
  153. // let mut gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  154. // let gate_get_ticker = gate_swap_exchange.get_ticker().await;
  155. // trace!(?gate_get_ticker);
  156. // }
  157. //
  158. // // 测试获取Market信息
  159. // #[tokio::test]
  160. // #[instrument(level = "TRACE")]
  161. // async fn test_get_market() {
  162. // global::log_utils::init_log_with_trace();
  163. //
  164. // let mut gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  165. // let gate_get_market = gate_swap_exchange.get_market().await;
  166. // trace!(?gate_get_market);
  167. // }
  168. //
  169. // // 测试获取Order详情信息
  170. // #[tokio::test]
  171. // #[instrument(level = "TRACE")]
  172. // async fn test_get_order_detail() {
  173. // global::log_utils::init_log_with_trace();
  174. //
  175. // let mut gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  176. // let gate_get_order_detail = gate_swap_exchange.get_order_detail("", "999999").await;
  177. // trace!(?gate_get_order_detail);
  178. // }
  179. //
  180. // // 测试获取Order列表信息
  181. // #[tokio::test]
  182. // #[instrument(level = "TRACE")]
  183. // async fn test_get_orders_list() {
  184. // global::log_utils::init_log_with_trace();
  185. //
  186. // let mut gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  187. // let gate_get_orders_list = gate_swap_exchange.get_orders_list("finished").await;
  188. // trace!(?gate_get_orders_list);
  189. // }
  190. //
  191. // // 测试下单
  192. // #[tokio::test]
  193. // #[instrument(level = "TRACE")]
  194. // async fn test_take_order() {
  195. // global::log_utils::init_log_with_trace();
  196. //
  197. // let mut gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  198. // let gate_take_order = gate_swap_exchange.take_order("999999", "kk", dec!(0.27), dec!(100)).await;
  199. // trace!(?gate_take_order);
  200. // }
  201. //
  202. // // 测试撤销订单
  203. // #[tokio::test]
  204. // #[instrument(level = "TRACE")]
  205. // async fn test_cancel_order() {
  206. // global::log_utils::init_log_with_trace();
  207. //
  208. // let mut gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  209. // let gate_cancel_order = gate_swap_exchange.cancel_order("", "999999").await;
  210. // trace!(?gate_cancel_order);
  211. // }
  212. //
  213. // // 测试批量撤销订单
  214. // #[tokio::test]
  215. // #[instrument(level = "TRACE")]
  216. // async fn test_cancel_orders() {
  217. // global::log_utils::init_log_with_trace();
  218. //
  219. // let mut gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  220. // let gate_cancel_orders = gate_swap_exchange.cancel_orders().await;
  221. // trace!(?gate_cancel_orders);
  222. // }
  223. //
  224. // // 测试设置持仓模式
  225. // #[tokio::test]
  226. // #[instrument(level = "TRACE")]
  227. // async fn test_set_dual_mode() {
  228. // global::log_utils::init_log_with_trace();
  229. //
  230. // let mut gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  231. // let gate_set_dual_mode = gate_swap_exchange.set_dual_mode("usdt", true).await;
  232. // trace!(?gate_set_dual_mode);
  233. // }
  234. //
  235. // // 测试设置杠杆
  236. // #[tokio::test]
  237. // #[instrument(level = "TRACE")]
  238. // async fn test_set_dual_leverage() {
  239. // global::log_utils::init_log_with_trace();
  240. //
  241. // let mut gate_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::GateSwap, SYMBOL).await;
  242. // let gate_set_dual_leverage = gate_swap_exchange.set_dual_leverage("10").await;
  243. // trace!(?gate_set_dual_leverage);
  244. // }
  245. //
  246. // // 测试指令下单
  247. // #[tokio::test]
  248. // #[instrument(level = "TRACE")]
  249. // async fn test_command_order() {
  250. // global::log_utils::init_log_with_trace();
  251. // utils::proxy_handle();
  252. //
  253. // let (order_sender, mut order_receiver): (mpsc::Sender<Order>, mpsc::Receiver<Order>) = mpsc::channel(1024);
  254. // let (error_sender, mut error_receiver): (mpsc::Sender<Error>, mpsc::Receiver<Error>) = mpsc::channel(1024);
  255. //
  256. // let mut params: BTreeMap<String, String> = BTreeMap::new();
  257. // let access_key = env::var("gate_access_key").unwrap_or("".to_string());
  258. // let secret_key = env::var("gate_secret_key").unwrap_or("".to_string());
  259. // params.insert("access_key".to_string(), access_key);
  260. // params.insert("secret_key".to_string(), secret_key);
  261. //
  262. // let mut gate_swap_exchange: Box<dyn Platform> = Exchange::new(ExchangeEnum::GateSwap, SYMBOL.to_string(), false, params, order_sender, error_sender).await;
  263. //
  264. // let mut command = OrderCommand::new();
  265. // command.cancel.insert("888888".to_string(), vec!["888888".to_string(), "".to_string()]);
  266. // command.limits_open.insert("888888".to_string(), vec!["100".to_string(), "kd".to_string(), "0.18".to_string(), "888888".to_string()]);
  267. // command.limits_close.insert("999999".to_string(), vec!["100".to_string(), "kk".to_string(), "0.25".to_string(), "999999".to_string()]);
  268. // command.check.insert("888888".to_string(), vec!["999999".to_string(), "".to_string()]);
  269. // gate_swap_exchange.command_order(command, Default::default()).await;
  270. //
  271. // loop {
  272. // if let Ok(order) = order_receiver.try_recv() {
  273. // trace!(?order);
  274. // }
  275. // if let Ok(error) = error_receiver.try_recv() {
  276. // trace!(?error);
  277. // }
  278. // }
  279. // }