|
|
@@ -2,10 +2,12 @@ use std::cmp::Ordering;
|
|
|
use std::collections::BTreeMap;
|
|
|
use std::sync::Arc;
|
|
|
use std::sync::atomic::AtomicBool;
|
|
|
+use std::time::Duration;
|
|
|
use futures_util::StreamExt;
|
|
|
use rust_decimal::Decimal;
|
|
|
-use tokio::spawn;
|
|
|
+use tokio::{spawn, time};
|
|
|
use tokio::sync::Mutex;
|
|
|
+use tracing::{error, info};
|
|
|
use exchanges::bybit_swap_ws::{BybitSwapLogin, BybitSwapSubscribeType, BybitSwapWs, BybitSwapWsType};
|
|
|
use exchanges::response_base::ResponseData;
|
|
|
use global::trace_stack::TraceStack;
|
|
|
@@ -100,7 +102,7 @@ pub async fn bybit_swap_run(bool_v1: Arc<AtomicBool>,
|
|
|
let bot_arc_clone = _quant_arc.clone();
|
|
|
// 接收private信息
|
|
|
spawn(async move {
|
|
|
- let ct_val = _quant_arc.clone().lock().await.platform_rest.get_self_market().ct_val;
|
|
|
+ let ct_val = bot_arc_clone.clone().lock().await.platform_rest.get_self_market().ct_val;
|
|
|
let run_symbol = symbols.clone()[0].clone();
|
|
|
loop {
|
|
|
if let Some(private_data) = read_rx_private.next().await {
|
|
|
@@ -111,6 +113,20 @@ pub async fn bybit_swap_run(bool_v1: Arc<AtomicBool>,
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
+ // 定时获取仓位信息
|
|
|
+ let position_quant_clone = _quant_arc.clone();
|
|
|
+ spawn(async move {
|
|
|
+ let mut interval = time::interval(Duration::from_secs(30));
|
|
|
+ loop {
|
|
|
+ interval.tick().await;
|
|
|
+ {
|
|
|
+ let mut quant = position_quant_clone.lock().await;
|
|
|
+ quant.update_position_rest_swap().await;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
|