Bläddra i källkod

优化 警告

875428575@qq.com 2 år sedan
förälder
incheckning
caf86849d9

+ 15 - 0
exchanges/src/binance_swap_rest.rs

@@ -232,6 +232,21 @@ impl BinanceSwapRest {
         ).await;
         data
     }
+    //根据币对 撤销全部订单
+    pub async fn cancel_order_all(&mut self, symbol: String) -> ResponseData {
+        let params = serde_json::json!({
+            "symbol":symbol,
+            "recvWindow":"2000",
+         });
+        let data = self.request("DELETE".to_string(),
+                                "".to_string(),
+                                format!("/fapi/v1/allOpenOrders"),
+                                true,
+                                params.to_string(),
+        ).await;
+        data
+    }
+
 
     /*******************************************************************************************************/
     /*****************************************工具函数********************************************************/

+ 2 - 2
exchanges/src/bitget_spot_rest.rs

@@ -488,7 +488,7 @@ impl BitgetSwapRest {
                                         end_time: String,
                                         limit: String,
     ) -> ResponseData {
-        let mut params = serde_json::json!({
+        let  params = serde_json::json!({
             "symbol":symbol,
             "startTime":start_time,
             "endTime":end_time,
@@ -504,7 +504,7 @@ impl BitgetSwapRest {
     }
     //批量撤销计划委托
     pub async fn cancel_plan_orders(&mut self, symbol_list: Vec<String>) -> ResponseData {
-        let mut params = serde_json::json!({
+        let  params = serde_json::json!({
             "symbolList":symbol_list
          });
         let data = self.request("POST".to_string(),

+ 13 - 0
exchanges/src/gate_swap_rest.rs

@@ -287,6 +287,19 @@ impl GateSwapRest {
         ).await;
         data
     }
+    //撤销所有挂单
+    pub async fn cancel_order_all(&mut self) -> ResponseData {
+        let params = serde_json::json!({
+             });
+        let data = self.request("POST".to_string(),
+                                "/api/v5".to_string(),
+                                format!("/sprd/mass-cancel"),
+                                true,
+                                params.to_string(),
+        ).await;
+        data
+    }
+
     //弃用
     pub async fn swap_bazaar_order(&mut self, text: String, origin_side: String, settle: String, contract: String, size: i64) -> ResponseData {
         let mut reduce_only = false;

+ 3 - 0
exchanges/src/kucoin_swap_rest.rs

@@ -128,6 +128,9 @@ impl KucoinSwapRest {
         let mut params = serde_json::json!({
             // "symbol":symbol
          });
+        if symbol.len() > 0 {
+            params.as_object_mut().unwrap().insert("symbol".parse().unwrap(), serde_json::Value::from(symbol));
+        }
         if status.len() > 0 {
             params.as_object_mut().unwrap().insert("status".parse().unwrap(), serde_json::Value::from(status));
         }

+ 17 - 9
exchanges/tests/binance_swap_test.rs

@@ -6,11 +6,10 @@ use tokio::try_join;
 use tracing::trace;
 use exchanges::binance_swap_rest::BinanceSwapRest;
 use exchanges::binance_swap_ws::{BinanceSubscribeType, BinanceSwapWs, BinanceWsType};
-use exchanges::proxy;
 use exchanges::response_base::ResponseData;
 
-const ACCESS_KEY: &str = "";
-const SECRET_KEY: &str = "";
+const ACCESS_KEY: &str = "Z2KWEFuiTR26d0OrRh0UVnALiKwftEGKdaz6AHU7xAqZqkKwhb8OPWlG5uAGqGBI";
+const SECRET_KEY: &str = "w3HvCw17OHEDjpMwlfywtl3tLAfSOql81nXgLk4HTA2yQ4Qph0ilPkKiLgOOY7tQ";
 
 
 //ws-订阅公共频道信息
@@ -18,7 +17,7 @@ const SECRET_KEY: &str = "";
 async fn ws_custom_subscribe() {
     global::log_utils::init_log_with_trace();
 
-    let mut bool_v1 = Arc::new(AtomicBool::new(true));
+    let  bool_v1 = Arc::new(AtomicBool::new(true));
     let btree_map: BTreeMap<String, String> = BTreeMap::new();
     let (tx, mut rx) = channel(1024);
     let mut ws = get_ws(btree_map, tx);
@@ -71,17 +70,26 @@ async fn rest_get_account_test() {
     trace!(?rep_data)
 }
 
-//rest-查询订单
-#[tokio::test]
-async fn rest_get_order_test() {
+
+//rest-根据币对 撤销全部订单
+#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
+async fn rest_cancel_order_all_test() {
     global::log_utils::init_log_with_trace();
 
     let mut rest = get_rest();
+
+    let rep_data1 = rest.get_server_time().await;
+    trace!(?rep_data1);
+
+    trace!("开始时间:{:?}",chrono::Utc::now().timestamp_millis().to_string());
+    let rep_data = rest.cancel_order_all("BTCUSDT".to_string()).await;
+    trace!(?rep_data);
+    trace!("结束时间:{:?}",chrono::Utc::now().timestamp_millis().to_string());
 }
 
 
 fn get_ws(btree_map: BTreeMap<String, String>, tx: Sender<ResponseData>) -> BinanceSwapWs {
-    let mut binance_ws = BinanceSwapWs::new(false,
+    let  binance_ws = BinanceSwapWs::new(false,
                                             btree_map,
                                             BinanceWsType::PublicAndPrivate,
                                             tx);
@@ -93,6 +101,6 @@ fn get_rest() -> BinanceSwapRest {
     btree_map.insert("access_key".to_string(), ACCESS_KEY.to_string());
     btree_map.insert("secret_key".to_string(), SECRET_KEY.to_string());
 
-    let mut ba_exc = BinanceSwapRest::new(false, btree_map);
+    let  ba_exc = BinanceSwapRest::new(false, btree_map);
     ba_exc
 }

+ 15 - 2
exchanges/tests/gate_swap_test.rs

@@ -6,6 +6,7 @@ use tokio::try_join;
 use tracing::trace;
 use exchanges::binance_swap_rest::BinanceSwapRest;
 use exchanges::binance_swap_ws::{BinanceSubscribeType, BinanceSwapWs, BinanceWsType};
+use exchanges::gate_swap_rest::GateSwapRest;
 use exchanges::gate_swap_ws::{GateSubscribeType, GateSwapWs, GateWsType};
 use exchanges::proxy;
 use exchanges::response_base::ResponseData;
@@ -63,6 +64,18 @@ async fn ws_custom_subscribe() {
 }
 
 
+//rest-设置持仓模式
+#[tokio::test]
+async fn rest_cancel_order_all_test() {
+    global::log_utils::init_log_with_trace();
+
+    let mut ret = get_rest();
+    let req_data = ret.cancel_order_all().await;
+    println!("okx--设置持仓模式--{:?}", req_data);
+}
+
+
+
 fn get_ws(btree_map: BTreeMap<String, String>, tx: Sender<ResponseData>) -> GateSwapWs {
     let mut binance_ws = GateSwapWs::new(false,
                                          btree_map,
@@ -71,11 +84,11 @@ fn get_ws(btree_map: BTreeMap<String, String>, tx: Sender<ResponseData>) -> Gate
     binance_ws
 }
 
-fn get_rest() -> BinanceSwapRest {
+fn get_rest() -> GateSwapRest {
     let mut btree_map: BTreeMap<String, String> = BTreeMap::new();
     btree_map.insert("access_key".to_string(), ACCESS_KEY.to_string());
     btree_map.insert("secret_key".to_string(), SECRET_KEY.to_string());
 
-    let mut ba_exc = BinanceSwapRest::new(false, btree_map);
+    let mut ba_exc =  GateSwapRest::new(false, btree_map);
     ba_exc
 }

+ 13 - 6
exchanges/tests/kucoin_swap_test.rs

@@ -77,7 +77,7 @@ async fn ws_custom_subscribe_pr() {
 
 //rest-撤销全部订单
 #[tokio::test]
-async fn rest_get_server_time_test() {
+async fn rest_cancel_orders_test() {
     global::log_utils::init_log_with_trace();
 
     let mut rest = get_rest();
@@ -85,6 +85,16 @@ async fn rest_get_server_time_test() {
     trace!(?rep_data)
 }
 
+//rest-撤销全部订单
+#[tokio::test]
+async fn rest_cancel_order_all_test() {
+    global::log_utils::init_log_with_trace();
+
+    let mut rest = get_rest();
+    let rep_data = rest.cancel_order_all().await;
+    trace!(?rep_data)
+}
+
 
 //rest-杠杆测试
 #[tokio::test]
@@ -110,16 +120,13 @@ async fn rest_leverage_test() {
 async fn rest_auto_deposit_test() {
     global::log_utils::init_log_with_trace();
 
-     //设置是否自动补仓
+    //设置是否自动补仓
     let mut rest = get_rest();
-    let rep_data = rest.auto_deposit_status("BLZUSDTM".to_string(),false).await;
+    let rep_data = rest.auto_deposit_status("BLZUSDTM".to_string(), false).await;
     trace!("设置是否自动补仓{:?}",rep_data);
-
 }
 
 
-
-
 async fn get_ws(btree_map: BTreeMap<String, String>, type_v: KucoinWsType, tx: Sender<ResponseData>) -> KucoinSwapWs {
     let mut ku_ws = KucoinSwapWs::new(false, btree_map.clone(),
                                       type_v, tx).await;

+ 1 - 0
exchanges/tests/okx_swap_test.rs

@@ -207,6 +207,7 @@ async fn rest_set_position_mode_test() {
 
 
 
+
 async fn get_ws(btree_map: BTreeMap<String, String>, type_v: OkxWsType, tx: Sender<ResponseData>) -> OkxSwapWs {
     let mut ku_ws = OkxSwapWs::new(false, btree_map.clone(), type_v, tx);
     ku_ws