Explorar el Código

修复bybit深度丢失的问题。

skyffire hace 1 año
padre
commit
b641c7474f
Se han modificado 1 ficheros con 5 adiciones y 6 borrados
  1. 5 6
      strategy/src/bybit_usdt_swap.rs

+ 5 - 6
strategy/src/bybit_usdt_swap.rs

@@ -12,7 +12,6 @@ use global::trace_stack::TraceStack;
 use standard::exchange::ExchangeEnum::BybitSwap;
 use standard::exchange_struct_handler::ExchangeStructHandler;
 use standard::{Depth, OrderBook};
-use standard::exchange::ExchangeEnum;
 use crate::core::Core;
 use crate::exchange_disguise::{on_depth, on_trade};
 use crate::model::OrderInfo;
@@ -112,7 +111,7 @@ async fn on_public_data(core_arc: Arc<Mutex<Core>>, mul: &Decimal, response: &Re
             trace_stack.set_source("bybit_usdt_swap.bookTicker".to_string());
 
             let mut is_update = false;
-            if response.data_type.as_str() == "delta"  {
+            if response.data_type == "delta"  {
                 is_update = true;
             }
             let mut depth = ExchangeStructHandler::book_ticker_handle(BybitSwap, &response, mul);
@@ -138,19 +137,19 @@ async fn on_public_data(core_arc: Arc<Mutex<Core>>, mul: &Decimal, response: &Re
             }
             // 全量
             else {
+                trace_stack.on_after_format();
+                on_depth(core_arc, &response.label, &mut trace_stack, &depth).await;
+
                 depth_asks.clear();
                 depth_asks.append(&mut depth.asks);
                 depth_bids.clear();
                 depth_bids.append(&mut depth.bids);
-
-                trace_stack.on_after_format();
-                on_depth(core_arc, &response.label, &mut trace_stack, &depth).await;
             }
         }
         "trade" => {
             trace_stack.set_source("bybit_usdt_swap.trade".to_string());
 
-            let mut trades = ExchangeStructHandler::trades_handle(ExchangeEnum::BybitSwap, response, mul);
+            let mut trades = ExchangeStructHandler::trades_handle(BybitSwap, response, mul);
             trace_stack.on_after_format();
 
             for trade in trades.iter_mut() {