Explorar el Código

尝试解决吊灯回撤问题

skyfffire hace 2 años
padre
commit
bdba79de60
Se han modificado 2 ficheros con 22 adiciones y 10 borrados
  1. 22 7
      strategy/src/kucoin_swap.rs
  2. 0 3
      strategy/src/quant.rs

+ 22 - 7
strategy/src/kucoin_swap.rs

@@ -46,9 +46,24 @@ pub async fn kucoin_swap_run(bool_v1 :Arc<AtomicBool>, type_num: i8, quant_arc:
         }
         kucoin_exc.custom_subscribe(bool_v1, symbol_arr).await;
     });
+
+    // 新增获取余额的协程
+    let account_quant_arc = quant_arc.clone();
+    spawn(async move {
+        loop {
+            // 每30秒重新获取一次
+            sleep(Duration::from_secs(30)).await;
+
+            {
+                let mut quant = account_quant_arc.lock().await;
+                quant.update_equity_rest_swap().await;
+            }
+        }
+    });
+
     spawn(async move {
         let bot_arc_clone = Arc::clone(&quant_arc);
-        let run_symbol = symbols.clone()[0].clone();
+        // let run_symbol = symbols.clone()[0].clone();
         // trade
         let mut max_buy = Decimal::ZERO;
         let mut min_sell = Decimal::ZERO;
@@ -83,12 +98,12 @@ pub async fn kucoin_swap_run(bool_v1 :Arc<AtomicBool>, type_num: i8, quant_arc:
                             quant._update_ticker(ticker.ticker, ticker.name);
                         }
                     } else if data.channel == "availableBalance.change" {
-
-                        let account = standard::handle_info::HandleSwapInfo::handle_account_info(KucoinSwap, data, run_symbol.clone());
-                        {
-                            let mut quant = bot_arc_clone.lock().await;
-                            quant.update_equity(account);
-                        }
+                        // 取消原有推送解析,因为推送的信息不准确
+                        // let account = standard::handle_info::HandleSwapInfo::handle_account_info(KucoinSwap, data, run_symbol.clone());
+                        // {
+                        //     let mut quant = bot_arc_clone.lock().await;
+                        //     quant.update_equity(account);
+                        // }
                     } else if data.channel == "symbolOrderChange" {
                         trace_stack.on_before_format();
                         let orders = standard::handle_info::HandleSwapInfo::handle_order(KucoinSwap, data.clone(), multiplier);

+ 0 - 3
strategy/src/quant.rs

@@ -829,9 +829,6 @@ impl Quant {
                    合约一直更新
                    现货只有当出现异常时更新
                */
-                if self.exchange.contains("spot") {
-                    return;
-                }
                 self.local_cash = val.balance * self.used_pct
             },
             Err(e) => {