Browse Source

重置fair数据,用于重新计算幅度

skyfffire 10 tháng trước cách đây
mục cha
commit
d921a45bc6
1 tập tin đã thay đổi với 12 bổ sung3 xóa
  1. 12 3
      strategy/src/predictor.rs

+ 12 - 3
strategy/src/predictor.rs

@@ -266,6 +266,11 @@ impl Predictor {
             self.close_price = self.fair_price_when_ordering;
         }
 
+        // 重置fair数据,用于重新计算幅度
+        if prev_inventory != self.inventory {
+            self.fair_price_time_vec.deque.clear();
+        }
+
         // if prev_inventory != self.inventory && self.inventory.is_zero() {
         //     self.is_regressed = false;
         // }
@@ -571,10 +576,14 @@ impl Predictor {
 
         let inventory = self.inventory;
 
-        let last_fair_price = self.fair_price_time_vec.deque.iter().last().unwrap();
-        let first_fair_price = self.fair_price_time_vec.deque[0];
+        let sigma_square = if self.fair_price_time_vec.len() > 1 {
+            let last_fair_price = self.fair_price_time_vec.deque.iter().last().unwrap();
+            let first_fair_price = self.fair_price_time_vec.deque[0];
+            (last_fair_price - first_fair_price) / first_fair_price
+        } else {
+            Decimal::ZERO
+        };
 
-        let sigma_square = (last_fair_price - first_fair_price) / first_fair_price;
         let gamma = self.error_rate;
 
         let kappa = self.fair_rate_focus;