|
|
@@ -95,31 +95,32 @@ impl AvellanedaStoikov {
|
|
|
let mut prev_save_time = Decimal::from(Utc::now().timestamp_millis());
|
|
|
let mut debugs: Vec<VecDeque<Decimal>> = vec![VecDeque::new(); len];
|
|
|
|
|
|
- loop {
|
|
|
- while let Some(value) = rx.next().await {
|
|
|
- // 数据填充到对应位置
|
|
|
- for i in 0..len {
|
|
|
- debugs[i].push_back(value[i]);
|
|
|
- }
|
|
|
+ while let Some(value) = rx.next().await {
|
|
|
+ // 数据填充到对应位置
|
|
|
+ for i in 0..len {
|
|
|
+ debugs[i].push_back(value[i]);
|
|
|
+ }
|
|
|
|
|
|
- // 长度限制
|
|
|
- if debugs[0].len() > 1_000_000 {
|
|
|
- for i in 0..len {
|
|
|
- debugs[i].pop_front(); // 从前面移除元素
|
|
|
- }
|
|
|
+ // 长度限制
|
|
|
+ if debugs[0].len() > 1_000_000 {
|
|
|
+ for i in 0..len {
|
|
|
+ debugs[i].pop_front(); // 从前面移除元素
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- let now = Decimal::from(Utc::now().timestamp_millis());
|
|
|
- if now - prev_save_time < dec!(60000) {
|
|
|
- continue;
|
|
|
- }
|
|
|
+ let now = Decimal::from(Utc::now().timestamp_millis());
|
|
|
+ if now - prev_save_time < dec!(10000) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
|
|
|
- let temp_html_str = utils::build_html_file(&debugs).await;
|
|
|
- utils::write_to_file(&temp_html_str, "./db/db.html".to_string()).await;
|
|
|
+ let debugs_clone = debugs.clone();
|
|
|
+ let temp_html_str = tokio::task::spawn_blocking(move || {
|
|
|
+ utils::build_html_file(&debugs_clone)
|
|
|
+ }).await.unwrap();
|
|
|
|
|
|
- prev_save_time = Decimal::from(Utc::now().timestamp_millis());
|
|
|
- info!("存放完毕, {}, {}", prev_save_time - now, debugs[0].len());
|
|
|
- }
|
|
|
+ utils::write_to_file(&temp_html_str, "./db/db.html".to_string()).await;
|
|
|
+ prev_save_time = Decimal::from(Utc::now().timestamp_millis());
|
|
|
+ info!("存放完毕, {}, {}", prev_save_time - now, debugs[0].len());
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -588,29 +589,31 @@ impl AvellanedaStoikov {
|
|
|
let flow_ratio = Decimal::ZERO;
|
|
|
let ref_price = self.ref_price;
|
|
|
|
|
|
- let need_append = now - self.prev_insert_time > dec!(50);
|
|
|
- if !need_append {
|
|
|
- return;
|
|
|
- }
|
|
|
+ // let need_append = now - self.prev_insert_time > dec!(50);
|
|
|
+ // if !need_append {
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
|
|
|
- self.debug_sender.unbounded_send(vec![
|
|
|
- now,
|
|
|
- mid_price,
|
|
|
- ask_price,
|
|
|
- bid_price,
|
|
|
- last_price,
|
|
|
- spread,
|
|
|
- spread_max,
|
|
|
- spread_min,
|
|
|
- optimal_ask_price,
|
|
|
- optimal_bid_price,
|
|
|
- inventory,
|
|
|
- sigma_square,
|
|
|
- gamma,
|
|
|
- kappa,
|
|
|
- flow_ratio,
|
|
|
- ref_price
|
|
|
- ]).unwrap()
|
|
|
+ for _ in 0..100 {
|
|
|
+ self.debug_sender.unbounded_send(vec![
|
|
|
+ now,
|
|
|
+ mid_price,
|
|
|
+ ask_price,
|
|
|
+ bid_price,
|
|
|
+ last_price,
|
|
|
+ spread,
|
|
|
+ spread_max,
|
|
|
+ spread_min,
|
|
|
+ optimal_ask_price,
|
|
|
+ optimal_bid_price,
|
|
|
+ inventory,
|
|
|
+ sigma_square,
|
|
|
+ gamma,
|
|
|
+ kappa,
|
|
|
+ flow_ratio,
|
|
|
+ ref_price
|
|
|
+ ]).unwrap()
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// #[instrument(skip(self, ref_ticker_map), level="TRACE")]
|