|
|
@@ -7,7 +7,7 @@ use tokio::sync::Mutex;
|
|
|
use exchanges::response_base::ResponseData;
|
|
|
use global::trace_stack::TraceStack;
|
|
|
use standard::exchange::ExchangeEnum::BinanceSwap;
|
|
|
-use crate::model::{OriginalTradeBa};
|
|
|
+// use crate::model::{OriginalTradeBa};
|
|
|
use crate::core::Core;
|
|
|
use exchanges::binance_swap_ws::{BinanceSwapSubscribeType, BinanceSwapWs, BinanceSwapWsType};
|
|
|
use crate::exchange_disguise::{on_special_depth};
|
|
|
@@ -32,20 +32,15 @@ pub(crate) async fn reference_binance_swap_run(bool_v1 :Arc<AtomicBool>,
|
|
|
]);
|
|
|
|
|
|
//读取数据
|
|
|
- let bot_arc_clone = Arc::clone(&core_arc);
|
|
|
+ let core_arc_clone = Arc::clone(&core_arc);
|
|
|
tokio::spawn(async move {
|
|
|
// ticker
|
|
|
let mut update_flag_u = Decimal::ZERO;
|
|
|
- // trade
|
|
|
- let mut max_buy = Decimal::ZERO;
|
|
|
- let mut min_sell = Decimal::ZERO;
|
|
|
|
|
|
loop {
|
|
|
while let Some(data) = read_rx.next().await {
|
|
|
- on_data(bot_arc_clone.clone(),
|
|
|
+ on_data(core_arc_clone.clone(),
|
|
|
&mut update_flag_u,
|
|
|
- &mut max_buy,
|
|
|
- &mut min_sell,
|
|
|
data).await;
|
|
|
}
|
|
|
}
|
|
|
@@ -57,10 +52,8 @@ pub(crate) async fn reference_binance_swap_run(bool_v1 :Arc<AtomicBool>,
|
|
|
});
|
|
|
}
|
|
|
|
|
|
-async fn on_data(bot_arc_clone: Arc<Mutex<Core>>,
|
|
|
+async fn on_data(core_arc_clone: Arc<Mutex<Core>>,
|
|
|
update_flag_u: &mut Decimal,
|
|
|
- _max_buy: &mut Decimal,
|
|
|
- _min_sell: &mut Decimal,
|
|
|
data: ResponseData) {
|
|
|
let mut trace_stack = TraceStack::default();
|
|
|
trace_stack.on_after_network(data.time);
|
|
|
@@ -71,27 +64,27 @@ async fn on_data(bot_arc_clone: Arc<Mutex<Core>>,
|
|
|
}
|
|
|
|
|
|
if data.channel == "aggTrade" {
|
|
|
- let trade: OriginalTradeBa = serde_json::from_str(data.data.as_str()).unwrap();
|
|
|
+ // 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;
|
|
|
+ // on_trade(trade.clone(), core_arc_clone.clone()).await;
|
|
|
|
|
|
// 原本的逻辑
|
|
|
- let mut core = bot_arc_clone.lock().await;
|
|
|
- let str = data.label.clone();
|
|
|
- if core.is_update.contains_key(&data.label) && *core.is_update.get(str.as_str()).unwrap() {
|
|
|
- *_max_buy = Decimal::ZERO;
|
|
|
- *_min_sell = Decimal::ZERO;
|
|
|
- core.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
|
|
|
- }
|
|
|
- core.max_buy_min_sell_cache.insert(data.label, vec![*_max_buy, *_min_sell]);
|
|
|
+ // let mut core = core_arc_clone.lock().await;
|
|
|
+ // let str = data.label.clone();
|
|
|
+ // if core.is_update.contains_key(&data.label) && *core.is_update.get(str.as_str()).unwrap() {
|
|
|
+ // *_max_buy = Decimal::ZERO;
|
|
|
+ // *_min_sell = Decimal::ZERO;
|
|
|
+ // core.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
|
|
|
+ // }
|
|
|
+ // core.max_buy_min_sell_cache.insert(data.label, vec![*_max_buy, *_min_sell]);
|
|
|
} else if data.channel == "bookTicker" {
|
|
|
trace_stack.on_before_format();
|
|
|
// 将ticker数据转换为模拟深度
|
|
|
@@ -99,7 +92,7 @@ async fn on_data(bot_arc_clone: Arc<Mutex<Core>>,
|
|
|
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;
|
|
|
+ on_special_depth(core_arc_clone, update_flag_u, data.label.clone(), trace_stack, special_depth).await;
|
|
|
} else if data.channel == "depth" {
|
|
|
trace_stack.on_before_format();
|
|
|
// 将depth数据转换为模拟深度
|
|
|
@@ -107,6 +100,6 @@ async fn on_data(bot_arc_clone: Arc<Mutex<Core>>,
|
|
|
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;
|
|
|
+ on_special_depth(core_arc_clone, update_flag_u, data.label.clone(), trace_stack, special_depth).await;
|
|
|
}
|
|
|
}
|