gate_swap_test.rs 4.4 KB

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