Parcourir la source

仅仅测试通道速度。

skyfffire il y a 1 an
Parent
commit
c652ab5c21
2 fichiers modifiés avec 117 ajouts et 112 suppressions
  1. 45 42
      strategy/src/binance_usdt_swap.rs
  2. 72 70
      strategy/src/gate_swap.rs

+ 45 - 42
strategy/src/binance_usdt_swap.rs

@@ -10,6 +10,7 @@ use crate::model::{OriginalTradeBa};
 use crate::quant::Quant;
 use exchanges::binance_swap_ws::{BinanceSwapSubscribeType, BinanceSwapWs, BinanceSwapWsType};
 use futures_util::StreamExt;
+use tracing::info;
 use crate::exchange_disguise::{on_special_depth};
 
 // 参考 币安 合约 启动
@@ -62,47 +63,49 @@ async fn on_data(bot_arc_clone: Arc<Mutex<Quant>>,
     trace_stack.on_after_network(data.time);
     trace_stack.on_before_unlock_quant();
 
-    if data.code != "200".to_string() {
-        return;
-    }
+    info!("{}", trace_stack.to_string());
 
-    if data.channel == "aggTrade" {
-        let trade: OriginalTradeBa = serde_json::from_str(data.data.as_str()).unwrap();
-        // let name = data.label.clone();
-
-        // 订单流逻辑
-        // on_trade(trade.clone(), bot_arc_clone.clone()).await;
-
-        // 原本的逻辑
-        let mut quant = bot_arc_clone.lock().await;
-        let str = data.label.clone();
-        if quant.is_update.contains_key(&data.label) && *quant.is_update.get(str.as_str()).unwrap() {
-            *_max_buy = Decimal::ZERO;
-            *_min_sell = Decimal::ZERO;
-            quant.is_update.remove(str.as_str());
-        }
-        if trade.p > *_max_buy || *_max_buy == Decimal::ZERO {
-            *_max_buy = trade.p
-        }
-        if trade.p < *_min_sell || *_min_sell == Decimal::ZERO {
-            *_min_sell = trade.p
-        }
-        quant.max_buy_min_sell_cache.insert(data.label, vec![*_max_buy, *_min_sell]);
-    } else if data.channel == "bookTicker" {
-        trace_stack.on_before_format();
-        // 将ticker数据转换为模拟深度
-        let special_depth = standard::handle_info::HandleSwapInfo::handle_special_ticker(BinanceSwap, data.clone());
-        trace_stack.on_before_network(special_depth.create_at.clone());
-        trace_stack.on_after_format();
-
-        on_special_depth(bot_arc_clone, update_flag_u, data.label.clone(), trace_stack, special_depth).await;
-    } else if data.channel == "depth" {
-        trace_stack.on_before_format();
-        // 将depth数据转换为模拟深度
-        let special_depth = standard::handle_info::HandleSwapInfo::handle_special_depth(BinanceSwap, data.clone());
-        trace_stack.on_before_network(special_depth.create_at.clone());
-        trace_stack.on_after_format();
-
-        on_special_depth(bot_arc_clone, update_flag_u, data.label.clone(), trace_stack, special_depth).await;
-    }
+    // if data.code != "200".to_string() {
+    //     return;
+    // }
+    //
+    // if data.channel == "aggTrade" {
+    //     let trade: OriginalTradeBa = serde_json::from_str(data.data.as_str()).unwrap();
+    //     // let name = data.label.clone();
+    //
+    //     // 订单流逻辑
+    //     // on_trade(trade.clone(), bot_arc_clone.clone()).await;
+    //
+    //     // 原本的逻辑
+    //     let mut quant = bot_arc_clone.lock().await;
+    //     let str = data.label.clone();
+    //     if quant.is_update.contains_key(&data.label) && *quant.is_update.get(str.as_str()).unwrap() {
+    //         *_max_buy = Decimal::ZERO;
+    //         *_min_sell = Decimal::ZERO;
+    //         quant.is_update.remove(str.as_str());
+    //     }
+    //     if trade.p > *_max_buy || *_max_buy == Decimal::ZERO {
+    //         *_max_buy = trade.p
+    //     }
+    //     if trade.p < *_min_sell || *_min_sell == Decimal::ZERO {
+    //         *_min_sell = trade.p
+    //     }
+    //     quant.max_buy_min_sell_cache.insert(data.label, vec![*_max_buy, *_min_sell]);
+    // } else if data.channel == "bookTicker" {
+    //     trace_stack.on_before_format();
+    //     // 将ticker数据转换为模拟深度
+    //     let special_depth = standard::handle_info::HandleSwapInfo::handle_special_ticker(BinanceSwap, data.clone());
+    //     trace_stack.on_before_network(special_depth.create_at.clone());
+    //     trace_stack.on_after_format();
+    //
+    //     on_special_depth(bot_arc_clone, update_flag_u, data.label.clone(), trace_stack, special_depth).await;
+    // } else if data.channel == "depth" {
+    //     trace_stack.on_before_format();
+    //     // 将depth数据转换为模拟深度
+    //     let special_depth = standard::handle_info::HandleSwapInfo::handle_special_depth(BinanceSwap, data.clone());
+    //     trace_stack.on_before_network(special_depth.create_at.clone());
+    //     trace_stack.on_after_format();
+    //
+    //     on_special_depth(bot_arc_clone, update_flag_u, data.label.clone(), trace_stack, special_depth).await;
+    // }
 }

+ 72 - 70
strategy/src/gate_swap.rs

@@ -104,77 +104,79 @@ async fn on_data(bot_arc_clone: Arc<Mutex<Quant>>,
     trace_stack.on_after_network(data.time);
     trace_stack.on_before_unlock_quant();
 
-    if data.code != "200".to_string() {
-        return;
-    }
-
-    if data.channel == "futures.order_book" {
-        trace_stack.on_before_format();
-        let depth = standard::handle_info::HandleSwapInfo::handle_special_depth(GateSwap, data.clone());
-        trace_stack.on_before_network(depth.create_at.clone());
-        trace_stack.on_after_format();
-
-        on_special_depth(bot_arc_clone, update_flag_u, data.label, trace_stack, depth).await;
-    } else if data.channel == "futures.balances" {
-        let account = standard::handle_info::HandleSwapInfo::handle_account_info(GateSwap, data, run_symbol.clone());
-        {
-            let mut quant = bot_arc_clone.lock().await;
-            quant.update_equity(account).await;
-        }
-    } else if data.channel == "futures.orders" {
-        trace_stack.on_before_format();
-        let orders = standard::handle_info::HandleSwapInfo::handle_order(GateSwap, data.clone(), multiplier.clone());
-        trace_stack.on_after_format();
+    info!("{}", trace_stack.to_string());
 
-        let mut order_infos:Vec<OrderInfo> = Vec::new();
-        for order in orders.order {
-            let order_info = OrderInfo {
-                symbol: "".to_string(),
-                amount: order.amount.abs(),
-                side: "".to_string(),
-                price: order.price,
-                client_id: order.custom_id,
-                filled_price: order.avg_price,
-                filled: order.deal_amount.abs(),
-                order_id: order.id,
-                local_time: 0,
-                create_time: 0,
-                status: order.status,
-                fee: Default::default(),
-                trace_stack: Default::default(),
-            };
-            order_infos.push(order_info);
-        }
-
-        {
-            let mut quant = bot_arc_clone.lock().await;
-            quant.update_order(order_infos, trace_stack);
-        }
-    } else if data.channel == "futures.positions" {
-        let positions = standard::handle_info::HandleSwapInfo::handle_position(GateSwap,data, multiplier.clone());
-        {
-            let mut quant = bot_arc_clone.lock().await;
-            quant.update_position(positions).await;
-        }
-    } else if data.channel == "futures.trades" {
-        let mut quant = bot_arc_clone.lock().await;
-        let str = data.label.clone();
-        if quant.is_update.contains_key(&data.label) && *quant.is_update.get(str.as_str()).unwrap(){
-            *max_buy = Decimal::ZERO;
-            *min_sell = Decimal::ZERO;
-            quant.is_update.remove(str.as_str());
-        }
-        let trades: Vec<OriginalTradeGa> = serde_json::from_str(data.data.as_str()).unwrap();
-        for trade in trades {
-            if trade.price > *max_buy || *max_buy == Decimal::ZERO{
-                *max_buy = trade.price
-            }
-            if trade.price < *min_sell || *min_sell == Decimal::ZERO{
-                *min_sell = trade.price
-            }
-        }
-        quant.max_buy_min_sell_cache.insert(data.label, vec![*max_buy, *min_sell]);
-    }
+    // if data.code != "200".to_string() {
+    //     return;
+    // }
+    //
+    // if data.channel == "futures.order_book" {
+    //     trace_stack.on_before_format();
+    //     let depth = standard::handle_info::HandleSwapInfo::handle_special_depth(GateSwap, data.clone());
+    //     trace_stack.on_before_network(depth.create_at.clone());
+    //     trace_stack.on_after_format();
+    //
+    //     on_special_depth(bot_arc_clone, update_flag_u, data.label, trace_stack, depth).await;
+    // } else if data.channel == "futures.balances" {
+    //     let account = standard::handle_info::HandleSwapInfo::handle_account_info(GateSwap, data, run_symbol.clone());
+    //     {
+    //         let mut quant = bot_arc_clone.lock().await;
+    //         quant.update_equity(account).await;
+    //     }
+    // } else if data.channel == "futures.orders" {
+    //     trace_stack.on_before_format();
+    //     let orders = standard::handle_info::HandleSwapInfo::handle_order(GateSwap, data.clone(), multiplier.clone());
+    //     trace_stack.on_after_format();
+    //
+    //     let mut order_infos:Vec<OrderInfo> = Vec::new();
+    //     for order in orders.order {
+    //         let order_info = OrderInfo {
+    //             symbol: "".to_string(),
+    //             amount: order.amount.abs(),
+    //             side: "".to_string(),
+    //             price: order.price,
+    //             client_id: order.custom_id,
+    //             filled_price: order.avg_price,
+    //             filled: order.deal_amount.abs(),
+    //             order_id: order.id,
+    //             local_time: 0,
+    //             create_time: 0,
+    //             status: order.status,
+    //             fee: Default::default(),
+    //             trace_stack: Default::default(),
+    //         };
+    //         order_infos.push(order_info);
+    //     }
+    //
+    //     {
+    //         let mut quant = bot_arc_clone.lock().await;
+    //         quant.update_order(order_infos, trace_stack);
+    //     }
+    // } else if data.channel == "futures.positions" {
+    //     let positions = standard::handle_info::HandleSwapInfo::handle_position(GateSwap,data, multiplier.clone());
+    //     {
+    //         let mut quant = bot_arc_clone.lock().await;
+    //         quant.update_position(positions).await;
+    //     }
+    // } else if data.channel == "futures.trades" {
+    //     let mut quant = bot_arc_clone.lock().await;
+    //     let str = data.label.clone();
+    //     if quant.is_update.contains_key(&data.label) && *quant.is_update.get(str.as_str()).unwrap(){
+    //         *max_buy = Decimal::ZERO;
+    //         *min_sell = Decimal::ZERO;
+    //         quant.is_update.remove(str.as_str());
+    //     }
+    //     let trades: Vec<OriginalTradeGa> = serde_json::from_str(data.data.as_str()).unwrap();
+    //     for trade in trades {
+    //         if trade.price > *max_buy || *max_buy == Decimal::ZERO{
+    //             *max_buy = trade.price
+    //         }
+    //         if trade.price < *min_sell || *min_sell == Decimal::ZERO{
+    //             *min_sell = trade.price
+    //         }
+    //     }
+    //     quant.max_buy_min_sell_cache.insert(data.label, vec![*max_buy, *min_sell]);
+    // }
 }
 
 fn parse_btree_map_to_gate_swap_login(exchange_params: BTreeMap<String, String>) -> GateSwapLogin {