okx_swap_test.rs 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. use rust_decimal_macros::dec;
  2. use tracing::{instrument, trace};
  3. use standard::exchange::ExchangeEnum;
  4. use standard::Platform;
  5. use crate::exchange_test::test_new_exchange;
  6. mod exchange_test;
  7. const SYMBOL: &str = "CRO_USDT";
  8. // 测试获取Exchange实体
  9. #[tokio::test]
  10. #[instrument(level = "TRACE")]
  11. async fn test_get_self_exchange() {
  12. global::log_utils::init_log_with_trace();
  13. let okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  14. let okx_get_self_exchange = okx_swap_exchange.get_self_exchange();
  15. trace!(?okx_get_self_exchange);
  16. }
  17. // 测试获取交易对信息
  18. #[tokio::test]
  19. #[instrument(level = "TRACE")]
  20. async fn test_get_self_symbol() {
  21. global::log_utils::init_log_with_trace();
  22. let okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  23. let okx_get_self_symbol = okx_swap_exchange.get_self_symbol();
  24. trace!(?okx_get_self_symbol);
  25. }
  26. // 测试获取是否使用高速通道
  27. #[tokio::test]
  28. #[instrument(level = "TRACE")]
  29. async fn test_get_self_is_colo() {
  30. global::log_utils::init_log_with_trace();
  31. let okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  32. let okx_get_self_is_colo = okx_swap_exchange.get_self_is_colo();
  33. trace!(?okx_get_self_is_colo);
  34. }
  35. // 测试获取登录params信息
  36. #[tokio::test]
  37. #[instrument(level = "TRACE")]
  38. async fn test_get_self_params() {
  39. global::log_utils::init_log_with_trace();
  40. let okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  41. let okx_get_self_params = okx_swap_exchange.get_self_params();
  42. trace!("okx_get_self_params={:?}",okx_get_self_params);
  43. }
  44. // 测试获取Market信息
  45. #[tokio::test]
  46. #[instrument(level = "TRACE")]
  47. async fn test_get_self_market() {
  48. global::log_utils::init_log_with_trace();
  49. let okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  50. let okx_get_self_market = okx_swap_exchange.get_self_market();
  51. trace!(?okx_get_self_market);
  52. }
  53. // 测试获取请求时间信息
  54. #[tokio::test]
  55. #[instrument(level = "TRACE")]
  56. async fn test_get_request_delays() {
  57. global::log_utils::init_log_with_trace();
  58. let okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  59. let okx_get_request_delays = okx_swap_exchange.get_request_delays();
  60. trace!(?okx_get_request_delays);
  61. }
  62. // 测试获取请求平均时间信息
  63. #[tokio::test]
  64. #[instrument(level = "TRACE")]
  65. async fn test_get_request_avg_delay() {
  66. global::log_utils::init_log_with_trace();
  67. let okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  68. let okx_get_request_avg_delay = okx_swap_exchange.get_request_avg_delay();
  69. trace!(?okx_get_request_avg_delay);
  70. }
  71. // 测试获取最大请求时间信息
  72. #[tokio::test]
  73. #[instrument(level = "TRACE")]
  74. async fn test_get_request_max_delay() {
  75. global::log_utils::init_log_with_trace();
  76. let okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  77. let okx_get_request_max_delay = okx_swap_exchange.get_request_max_delay();
  78. trace!(?okx_get_request_max_delay);
  79. }
  80. // 测试获取服务器时间
  81. #[tokio::test]
  82. #[instrument(level = "TRACE")]
  83. async fn test_get_server_time() {
  84. global::log_utils::init_log_with_trace();
  85. let mut okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  86. let okx_get_server_time = okx_swap_exchange.get_server_time().await;
  87. trace!(?okx_get_server_time);
  88. }
  89. // 测试获取账号信息
  90. #[tokio::test]
  91. #[instrument(level = "TRACE")]
  92. async fn test_get_account() {
  93. global::log_utils::init_log_with_trace();
  94. let mut okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  95. let okx_get_account = okx_swap_exchange.get_account().await;
  96. trace!(?okx_get_account);
  97. }
  98. // 测试获取仓位信息
  99. #[tokio::test]
  100. #[instrument(level = "TRACE")]
  101. async fn test_get_position() {
  102. global::log_utils::init_log_with_trace();
  103. let mut okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  104. let okx_get_position = okx_swap_exchange.get_position().await;
  105. trace!(?okx_get_position);
  106. }
  107. // 测试获取Ticker信息
  108. #[tokio::test]
  109. #[instrument(level = "TRACE")]
  110. async fn test_get_ticker() {
  111. global::log_utils::init_log_with_trace();
  112. let mut okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  113. let okx_get_ticker = okx_swap_exchange.get_ticker().await;
  114. trace!(?okx_get_ticker);
  115. }
  116. // 测试获取Market信息
  117. #[tokio::test]
  118. #[instrument(level = "TRACE")]
  119. async fn test_get_market() {
  120. global::log_utils::init_log_with_trace();
  121. let mut okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  122. let okx_get_market = okx_swap_exchange.get_market().await;
  123. trace!(?okx_get_market);
  124. }
  125. // 测试获取Order详情信息
  126. #[tokio::test]
  127. #[instrument(level = "TRACE")]
  128. async fn test_get_order_detail() {
  129. global::log_utils::init_log_with_trace();
  130. let mut okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  131. let okx_get_order_detail = okx_swap_exchange.get_order_detail("", "999997").await;
  132. trace!(?okx_get_order_detail);
  133. }
  134. // 测试获取Order列表信息
  135. #[tokio::test]
  136. #[instrument(level = "TRACE")]
  137. async fn test_get_orders_list() {
  138. global::log_utils::init_log_with_trace();
  139. let mut okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  140. let okx_get_orders_list = okx_swap_exchange.get_orders_list("active").await;
  141. trace!(?okx_get_orders_list);
  142. }
  143. // 测试下单
  144. #[tokio::test]
  145. #[instrument(level = "TRACE")]
  146. async fn test_take_order() {
  147. global::log_utils::init_log_with_trace();
  148. let mut okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  149. let okx_take_order = okx_swap_exchange.take_order("999997", "kk", dec!(0.0901), dec!(100)).await;
  150. trace!(?okx_take_order);
  151. }
  152. // 测试撤销订单
  153. #[tokio::test]
  154. #[instrument(level = "TRACE")]
  155. async fn test_cancel_order() {
  156. global::log_utils::init_log_with_trace();
  157. let mut okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  158. let okx_cancel_order = okx_swap_exchange.cancel_order("", "999998").await;
  159. trace!(?okx_cancel_order);
  160. }
  161. // 测试撤销订单
  162. #[tokio::test]
  163. #[instrument(level = "TRACE")]
  164. async fn test_cancel_orders() {
  165. global::log_utils::init_log_with_trace();
  166. let mut kucoin_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::KucoinSwap, SYMBOL).await;
  167. let kucoin_cancel_orders = kucoin_swap_exchange.cancel_orders().await;
  168. trace!(?kucoin_cancel_orders);
  169. }
  170. // 测试设置持仓模式
  171. #[tokio::test]
  172. #[instrument(level = "TRACE")]
  173. async fn test_set_dual_mode() {
  174. global::log_utils::init_log_with_trace();
  175. let mut okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  176. let okx_set_dual_mode = okx_swap_exchange.set_dual_mode("usdt", true).await;
  177. trace!(?okx_set_dual_mode);
  178. }
  179. // 测试设置杠杆
  180. #[tokio::test]
  181. #[instrument(level = "TRACE")]
  182. async fn test_set_dual_leverage() {
  183. global::log_utils::init_log_with_trace();
  184. let mut okx_swap_exchange: Box<dyn Platform> = test_new_exchange(ExchangeEnum::OkxSwap, SYMBOL).await;
  185. let okx_set_dual_leverage = okx_swap_exchange.set_dual_leverage("10").await;
  186. trace!(?okx_set_dual_leverage);
  187. }