gate_swap_test.rs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. use std::collections::BTreeMap;
  2. use serde_json::json;
  3. use tracing::{info};
  4. use exchanges::gate_swap_rest::GateSwapRest;
  5. const ACCESS_KEY: &str = "";
  6. const SECRET_KEY: &str = "";
  7. //rest-设置持仓模式
  8. #[tokio::test]
  9. async fn rest_cancel_order_all_test() {
  10. let _guard = global::log_utils::init_log_with_trace();
  11. let mut ret = get_rest();
  12. let req_data = ret.cancel_order_all().await;
  13. println!("okx--设置持仓模式--{:?}", req_data);
  14. }
  15. //rest-下一个自动单
  16. #[tokio::test]
  17. async fn price_order_test() {
  18. let _guard = global::log_utils::init_log_with_info();
  19. let mut rest = get_rest();
  20. let mut params = json!({});
  21. params["initial"] = json!({
  22. "contract": "XRP_USDT",
  23. "price": "0",
  24. "tif": "ioc",
  25. "reduce_only": true,
  26. // [平多:close_long, 平空:close_short]
  27. "auto_size": "close_long"
  28. });
  29. params["trigger"] = json!({
  30. // [平多:close-long-position, 平空:close-short-position]
  31. "order_type": "close-long-position",
  32. // 一般都默认用0
  33. "strategy_type": 0,
  34. // [0 - 最新成交价,1 - 标记价格,2 - 指数价格]
  35. "price_type": 0,
  36. // [1: 引用价格大于等于我们传的价格,2:引用价格小于等于我们传的价格]
  37. // 在止损的情况下:
  38. // 1 可以理解为向上突破触发价(一般是给空单用)
  39. // 2 可以理解为向下突破触发价(一般是给多单用)
  40. "rule": 2,
  41. // 订单触发价格
  42. "price": "0.5600",
  43. });
  44. let response_data = rest.place_price_order("usdt".to_string(), params).await;
  45. info!("resp={:?}", response_data.data.to_string());
  46. }
  47. #[tokio::test]
  48. async fn price_order_cancel_test() {
  49. let _guard = global::log_utils::init_log_with_info();
  50. let mut rest = get_rest();
  51. // 这边取消订单只能使用系统返回的
  52. let rst = rest.cancel_price_order("usdt".to_string(), "58002898".to_string()).await;
  53. info!(?rst);
  54. }
  55. //rest-查询合约账户变更历史
  56. #[tokio::test]
  57. async fn rest_account_book_test() {
  58. let _guard = global::log_utils::init_log_with_trace();
  59. let mut ret = get_rest();
  60. let req_data = ret.wallet_fee().await;
  61. // let req_data = ret.account_book("usdt".to_string()).await;
  62. info!("okx--查询合约账户变更历史--{:?}", req_data);
  63. }
  64. //rest-查询子账户列表
  65. #[tokio::test]
  66. async fn rest_sub_accounnt() {
  67. let _guard = global::log_utils::init_log_with_info();
  68. let mut ret = get_rest();
  69. let response = ret.sub_account().await;
  70. let accounts = response.data;
  71. let accounts_array = accounts.as_array().unwrap();
  72. // g2024002~g2024101获取方法
  73. // for i in 0..accounts_array.len() {
  74. // let account = &accounts_array[i];
  75. // let remark = account.get("remark").unwrap().as_str().unwrap();
  76. // // let login_name = account.get("login_name").unwrap().as_str().unwrap();
  77. // let user_id = account.get("user_id").unwrap().as_i64().unwrap();
  78. //
  79. // info!("{},{},{}", i, remark, user_id);
  80. //
  81. // // let create_rst = ret.create_keys(user_id).await;
  82. // // let key = create_rst.data.get("key").unwrap().as_str().unwrap();
  83. // // let secret = create_rst.data.get("secret").unwrap().as_str().unwrap();
  84. // //
  85. // // info!("{},{},{}", remark, key, secret)
  86. // }
  87. // gate111-gate290获取方法
  88. for i in 110..290 {
  89. let account = &accounts_array[i];
  90. let remark = account.get("remark").unwrap().as_str().unwrap();
  91. // let login_name = account.get("login_name").unwrap().as_str().unwrap();
  92. let user_id = account.get("user_id").unwrap().as_i64().unwrap();
  93. info!("{},{},{}", i, remark, user_id);
  94. // let create_rst = ret.create_keys(user_id).await;
  95. // let key = create_rst.data.get("key").unwrap().as_str().unwrap();
  96. // let secret = create_rst.data.get("secret").unwrap().as_str().unwrap();
  97. //
  98. // info!("{},{},{}", format!("gate{}",i+1), key, secret)
  99. }
  100. // let create_rst = ret.create_keys(12574400).await;
  101. // let key = create_rst.data.get("key").unwrap().as_str().unwrap();
  102. // let secret = create_rst.data.get("secret").unwrap().as_str().unwrap();
  103. //
  104. // info!("{},{},{}", "gate111", key, secret)
  105. }
  106. // fn get_ws(btree_map: Option<GateSwapLogin>) -> GateSwapWs {
  107. // let binance_ws = GateSwapWs::new(false,
  108. // btree_map,
  109. // GateSwapWsType::PublicAndPrivate("usdt".to_string()));
  110. // binance_ws
  111. // }
  112. fn get_rest() -> GateSwapRest {
  113. let mut btree_map: BTreeMap<String, String> = BTreeMap::new();
  114. btree_map.insert("access_key".to_string(), ACCESS_KEY.to_string());
  115. btree_map.insert("secret_key".to_string(), SECRET_KEY.to_string());
  116. let ba_exc = GateSwapRest::new(false, btree_map);
  117. ba_exc
  118. }