Browse Source

仓位推送过滤,只保留运行币对的仓位

JiahengHe 1 year ago
parent
commit
b972f5320f
1 changed files with 5 additions and 2 deletions
  1. 5 2
      strategy/src/phemex_usdt_swap.rs

+ 5 - 2
strategy/src/phemex_usdt_swap.rs

@@ -105,6 +105,7 @@ async fn on_private_data(core_arc_clone: Arc<Mutex<Core>>,
                          run_symbol: &String) {
     let mut trace_stack = TraceStack::new(response.time, response.ins);
     trace_stack.on_after_span_line();
+    let target_symbol = run_symbol.replace("_", "").to_uppercase();
 
     if response.channel == "accounts_orders_positions" { // 订单频道
         info!("3合一推送 {}", response.data);
@@ -140,9 +141,11 @@ async fn on_private_data(core_arc_clone: Arc<Mutex<Core>>,
             let mut position_res = response.clone();
             position_res.data = position_res.data["positions_p"].clone();
             let positions = standard::handle_info::HandleSwapInfo::handle_position(PhemexSwap, &position_res, &ct_val);
-            if positions.len() > 0 {
+            // 只要正在运行中币对的仓位信息
+            let run_position = positions.into_iter().filter(|position| position.symbol.contains(&target_symbol)).collect();
+            if run_position.len() > 0 {
                 let mut core = core_arc_clone.lock().await;
-                core.update_position(positions).await;
+                core.update_position(run_position).await;
             }
         }