Explorar o código

修改成交记录接口

gepangpang hai 1 ano
pai
achega
a4fe250cc0

+ 5 - 2
exchanges/src/binance_swap_rest.rs

@@ -247,10 +247,10 @@ impl BinanceSwapRest {
         data
     }
     //账户成交历史
-    pub async fn get_user_trades(&mut self, symbol: String, start_time: i32, end_time: i32, limit: i64) -> ResponseData {
+    pub async fn get_user_trades(&mut self, symbol: String, start_time: i64, end_time: i64, limit: i64) -> ResponseData {
         let mut params = serde_json::json!({
             "symbol":symbol,
-            "limit":limit,
+            "limit":1000,
             "recvWindow":"1000",
          });
         if start_time > 0 {
@@ -259,6 +259,9 @@ impl BinanceSwapRest {
         if end_time > 0 {
             params["endTime"] = json!(end_time);
         }
+        if limit > 0 {
+            params["limit"] = json!(limit);
+        }
         let data = self.request("GET".to_string(),
                                 "".to_string(),
                                 format!("/fapi/v1/userTrades"),

+ 11 - 4
exchanges/src/bitget_spot_rest.rs

@@ -224,12 +224,19 @@ impl BitgetSpotRest {
     }
     //获取历史成交数据
     pub async fn get_market_fills_history(&mut self, symbol: String, start_time: String, end_time: String, limit: String) -> ResponseData {
-        let params = serde_json::json!({
+        let mut params = serde_json::json!({
             "symbol":symbol,
-            "startTime":start_time,
-            "endTime":end_time,
-            "limit":limit,
+            "limit": "1000"
          });
+        if start_time.len() > 0 {
+            params["startTime"] = serde_json::json!(start_time);
+        }
+        if end_time.len() > 0 {
+            params["endTime"] = serde_json::json!(end_time);
+        }
+        if limit.len() > 0 {
+            params["limit"] = serde_json::json!(limit);
+        }
         let data = self.request("GET".to_string(),
                                 "/api/v2".to_string(),
                                 "/spot/market/fills-history".to_string(),

+ 8 - 3
exchanges/src/gate_swap_rest.rs

@@ -352,9 +352,14 @@ impl GateSwapRest {
         data
     }
     //查询个人成交记录
-    pub async fn my_trades(&mut self, settle: String) -> ResponseData {
-        let params = serde_json::json!({
-             });
+    pub async fn my_trades(&mut self, settle: String, contract: String, limit: i64) -> ResponseData {
+        let mut params = serde_json::json!({
+            "contract":contract,
+            "limit":1000
+        });
+        if limit > 0 {
+            params["limit"] = serde_json::json!(limit);
+        }
 
         let data = self.request("GET".to_string(),
                                 "/api/v4".to_string(),

+ 2 - 1
exchanges/src/kucoin_spot_rest.rs

@@ -85,7 +85,8 @@ impl KucoinSpotRest {
                            page_size: i64,
     ) -> ResponseData {
         let mut params = serde_json::json!({
-             "symbol":symbol,
+            "symbol":symbol,
+            "pageSize": 1000
          });
         if order_id.len() > 0 {
             params["orderId"] = serde_json::json!(order_id);

+ 2 - 1
exchanges/src/kucoin_swap_rest.rs

@@ -82,7 +82,8 @@ impl KucoinSwapRest {
                            page_size: i64,
     ) -> ResponseData {
         let mut params = serde_json::json!({
-             "symbol":symbol,
+            "symbol":symbol,
+            "pageSize":1000
          });
         if order_id.len() > 0 {
             params["orderId"] = serde_json::json!(order_id);

+ 37 - 13
exchanges/src/okx_swap_rest.rs

@@ -8,7 +8,6 @@ use tracing::{info, trace};
 use crate::http_tool::RestTool;
 use crate::response_base::ResponseData;
 use ring::hmac;
-use serde_json::json;
 
 #[derive(Clone, Debug)]
 pub struct OkxSwapRest {
@@ -177,6 +176,31 @@ impl OkxSwapRest {
         data
     }
 
+    //获取成交明细(近三个月)
+    pub async fn get_trade_fills_history(&mut self, inst_id: String, begin: String, end: String, limit: String) -> ResponseData {
+        let mut params = serde_json::json!({
+            "instType": "SWAP",
+            "instId":inst_id,
+            "limit":100,
+         });
+
+        if begin.len() > 0 {
+            params["begin"] = serde_json::json!(begin);
+        }
+        if end.len() > 0 {
+            params["end"] = serde_json::json!(end);
+        }
+        if limit.len() > 0 {
+            params["limit"] = serde_json::json!(limit);
+        }
+        let data = self.request("GET".to_string(),
+                                "/api/v5".to_string(),
+                                "/trade/fills-history".to_string(),
+                                true,
+                                params.to_string(),
+        ).await;
+        data
+    }
 
     //合约-下单
     pub async fn swap_order(&mut self, params: serde_json::Value) -> ResponseData {
@@ -248,22 +272,22 @@ impl OkxSwapRest {
         let mut params = serde_json::json!({
          });
         if sprd_id.len() > 0 {
-            params["sprdId"] = json!(sprd_id);
+            params["sprdId"] = serde_json::json!(sprd_id);
         }
         if ord_type.len() > 0 {
-            params["ordType"] = json!(ord_type);
+            params["ordType"] = serde_json::json!(ord_type);
         }
         if state.len() > 0 {
-            params["state"] = json!(state);
+            params["state"] = serde_json::json!(state);
         }
         if begin.len() > 0 {
-            params["begin"] = json!(begin);
+            params["begin"] = serde_json::json!(begin);
         }
         if end.len() > 0 {
-            params["end"] = json!(end);
+            params["end"] = serde_json::json!(end);
         }
         if limit.len() > 0 {
-            params["limit"] = json!(limit);
+            params["limit"] = serde_json::json!(limit);
         }
         let data = self.request("GET".to_string(),
                                 "/api/v5".to_string(),
@@ -286,22 +310,22 @@ impl OkxSwapRest {
         let mut params = serde_json::json!({
          });
         if sprd_id.len() > 0 {
-            params["sprdId"] = json!(sprd_id);
+            params["sprdId"] = serde_json::json!(sprd_id);
         }
         if trade_id.len() > 0 {
-            params["tradeId"] = json!(trade_id);
+            params["tradeId"] = serde_json::json!(trade_id);
         }
         if ord_id.len() > 0 {
-            params["ordId"] = json!(ord_id);
+            params["ordId"] = serde_json::json!(ord_id);
         }
         if begin.len() > 0 {
-            params["begin"] = json!(begin);
+            params["begin"] = serde_json::json!(begin);
         }
         if end.len() > 0 {
-            params["end"] = json!(end);
+            params["end"] = serde_json::json!(end);
         }
         if limit.len() > 0 {
-            params["limit"] = json!(limit);
+            params["limit"] = serde_json::json!(limit);
         }
         let data = self.request("GET".to_string(),
                                 "/api/v5".to_string(),