Ver Fonte

※※※bitget_spot、kucoin_spot、okx_swap SpecialTicker、SpecialDepth新增创建时间

gepangpang há 1 ano atrás
pai
commit
c24d255eb5

+ 3 - 2
standard/src/bitget_spot_handle.rs

@@ -121,14 +121,15 @@ pub fn format_special_ticker(data: serde_json::Value, label: String) -> SpecialD
     let aq = Decimal::from_str(data["askSz"].as_str().unwrap()).unwrap();
     let mp = (bp + ap) * dec!(0.5);
     let t = Decimal::from_str(data["ts"].as_str().unwrap()).unwrap();
+    let create_at = data["ts"].as_str().unwrap().parse::<i64>().unwrap() * 1000;
 
-    let ticker_info = SpecialTicker { sell: ap, buy: bp, mid_price: mp, t, create_at: Default::default() };
+    let ticker_info = SpecialTicker { sell: ap, buy: bp, mid_price: mp, t, create_at };
     let depth_info = vec![bp, bq, ap, aq];
     SpecialDepth {
         name: label,
         depth: depth_info,
         ticker: ticker_info,
         t,
-        create_at: Default::default(),
+        create_at,
     }
 }

+ 3 - 3
standard/src/handle_info.rs

@@ -165,19 +165,19 @@ impl HandleSwapInfo {
                 depth_asks = kucoin_spot_handle::format_depth_items(res_data_json["asks"].clone());
                 depth_bids = kucoin_spot_handle::format_depth_items(res_data_json["bids"].clone());
                 t = Decimal::from_str(&res_data_json["timestamp"].to_string()).unwrap();
-                create_at = 0;
+                create_at = res_data_json["timestamp"].as_i64().unwrap() * 1000;
             }
             ExchangeEnum::OkxSwap => {
                 depth_asks = okx_handle::format_depth_items(res_data_json[0]["asks"].clone());
                 depth_bids = okx_handle::format_depth_items(res_data_json[0]["bids"].clone());
                 t = Decimal::from_str(&res_data_json[0]["seqId"].to_string()).unwrap();
-                create_at = 0;
+                create_at = res_data_json[0]["ts"].as_str().unwrap().parse::<i64>().unwrap() * 1000;
             }
             ExchangeEnum::BitgetSpot => {
                 depth_asks = bitget_spot_handle::format_depth_items(res_data_json[0]["asks"].clone());
                 depth_bids = bitget_spot_handle::format_depth_items(res_data_json[0]["bids"].clone());
                 t = Decimal::from_str(res_data_json[0]["ts"].as_str().unwrap()).unwrap();
-                create_at = 0;
+                create_at = res_data_json[0]["ts"].as_str().unwrap().parse::<i64>().unwrap() * 1000;
             }
             _ => {
                 error!("未找到该交易所!handle_special_depth: {:?}",exchange);

+ 3 - 2
standard/src/kucoin_spot_handle.rs

@@ -121,14 +121,15 @@ pub fn format_special_ticker(data: serde_json::Value, label: String) -> SpecialD
     let aq = Decimal::from_str(data["bestAskSize"].as_str().unwrap()).unwrap();
     let mp = (bp + ap) * dec!(0.5);
     let t = Decimal::from_str(data["sequence"].as_str().unwrap()).unwrap();
+    let create_at = data["time"].as_i64().unwrap() * 1000;
 
-    let ticker_info = SpecialTicker { sell: ap, buy: bp, mid_price: mp, t, create_at: Default::default() };
+    let ticker_info = SpecialTicker { sell: ap, buy: bp, mid_price: mp, t, create_at };
     let depth_info = vec![bp, bq, ap, aq];
     SpecialDepth {
         name: label,
         depth: depth_info,
         ticker: ticker_info,
         t,
-        create_at: Default::default(),
+        create_at,
     }
 }

+ 4 - 3
standard/src/okx_handle.rs

@@ -127,16 +127,17 @@ pub fn format_special_ticker(data: serde_json::Value, label: String) -> SpecialD
     let ap = Decimal::from_str(asks[0].as_str().unwrap()).unwrap();
     let aq = Decimal::from_str(asks[1].as_str().unwrap()).unwrap();
     let mp = (bp + ap) * dec!(0.5);
-    let t = Decimal::from_str(data["ts"].as_str().unwrap()).unwrap();
+    let t = Decimal::from_str(&data["seqId"].to_string()).unwrap();
+    let create_at = data["ts"].as_str().unwrap().parse::<i64>().unwrap() * 1000;
 
-    let ticker_info = SpecialTicker { sell: ap, buy: bp, mid_price: mp, t, create_at: Default::default() };
+    let ticker_info = SpecialTicker { sell: ap, buy: bp, mid_price: mp, t, create_at };
     let depth_info = vec![bp, bq, ap, aq];
     SpecialDepth {
         name: label,
         depth: depth_info,
         ticker: ticker_info,
         t,
-        create_at: Default::default(),
+        create_at,
     }
 }
 

+ 2 - 2
standard/tests/exchange_test.rs

@@ -20,6 +20,7 @@ use standard::exchange::{Exchange, ExchangeEnum};
 // use standard::{binance_spot_handle, Order, Platform, utils};
 // use standard::{binance_handle, Order, Platform, utils};
 // use standard::{kucoin_handle, Order, Platform, utils};
+// use standard::{kucoin_spot_handle, Order, Platform, utils};
 // use standard::{gate_handle, Order, Platform, utils};
 // use standard::{bitget_spot_handle, Order, Platform, utils};
 use standard::{okx_handle, Order, Platform, utils};
@@ -177,8 +178,6 @@ pub async fn test_new_exchange_wss<T>(exchange: ExchangeEnum, symbol: &str, subs
             // let write_tx_am = Arc::new(Mutex::new(write_tx));
             // let bool_v1 = Arc::new(AtomicBool::new(true));
             //
-            // let api_key = env::var("binance_access_key").unwrap_or("".to_string());
-            // let api_secret = env::var("binance_secret_key").unwrap_or("".to_string());
             // let params = BinanceSwapLogin {
             //     api_key: account_info.binance_access_key,
             //     api_secret: account_info.binance_secret_key,
@@ -526,6 +525,7 @@ pub async fn test_new_exchange_wss<T>(exchange: ExchangeEnum, symbol: &str, subs
                 let mold_clone = Arc::clone(&mold_arc);
                 loop {
                     if let Some(data) = read_rx.next().await {
+                        trace!("原始数据 data:{:?}",data);
                         match mold_clone.as_str() {
                             "depth" => {
                                 if data.data != "" {

+ 1 - 1
standard/tests/kucoin_spot_handle_test.rs

@@ -5,7 +5,7 @@ use exchanges::kucoin_spot_ws::{KucoinSpotSubscribeType};
 use standard::exchange::ExchangeEnum;
 use crate::exchange_test::test_new_exchange_wss;
 
-const SYMBOL: &str = "BLZ_USDT";
+const SYMBOL: &str = "BTC_USDT";
 
 // 测试订阅深度订阅
 #[tokio::test(flavor = "multi_thread", worker_threads = 4)]