Browse Source

爆仓数据求和

skyffire 9 months ago
parent
commit
10621e4563
1 changed files with 6 additions and 2 deletions
  1. 6 2
      strategy/src/predictor.rs

+ 6 - 2
strategy/src/predictor.rs

@@ -52,6 +52,7 @@ pub struct Predictor {
     pub bid_delta: Decimal,                                                     // δb
 
     pub force_order_time_vec: FixedTimeRangeDeque<ForceOrder>,                  // 爆仓单队列
+    pub force_order_value: Decimal,                                             // 爆仓单交易量
 
     pub mid_price_time_vec: FixedTimeRangeDeque<Decimal>,                       // 中间价格队列,
     pub mid_price_long_time_vec: FixedTimeRangeDeque<Decimal>,                  // 中间价格队列,
@@ -126,7 +127,7 @@ impl Predictor {
                 }
 
                 let now = Decimal::from(Utc::now().timestamp_millis());
-                if now - prev_save_time < dec!(60000) {
+                if now - prev_save_time < dec!(30000) {
                     continue;
                 }
 
@@ -172,6 +173,7 @@ impl Predictor {
             bid_delta: Default::default(),
 
             force_order_time_vec: FixedTimeRangeDeque::new(60 * 1_000_000),
+            force_order_value: Default::default(),
 
             fair_price_time_vec: FixedTimeRangeDeque::new((params.second_observation_time.to_f64().unwrap() * 1_000_000f64).to_i64().unwrap()),
             fair_price_long_time_vec: FixedTimeRangeDeque::new((params.second_observation_time.to_f64().unwrap() * 1_000_000f64).to_i64().unwrap() * 2),
@@ -292,6 +294,8 @@ impl Predictor {
                 self.force_order_time_vec.push_back(force_order);
             }
         }
+
+        self.force_order_value = self.force_order_time_vec.deque.iter().map(|item| item.value).sum();
     }
 
     pub async fn update_level(&mut self) {
@@ -755,7 +759,7 @@ impl Predictor {
 
         let inventory = self.inventory;
 
-        let sigma_square: Decimal = self.force_order_time_vec.deque.iter().map(|item| item.value).sum();
+        let sigma_square: Decimal = self.force_order_value;
         // let sigma_square = self.error_rate;
 
         let gamma = self.trades_volume_short;