Browse Source

对fair生成条件进行限制,防止阻塞。

skyffire 9 months ago
parent
commit
ba1121db5d
1 changed files with 11 additions and 17 deletions
  1. 11 17
      strategy/src/predictor.rs

+ 11 - 17
strategy/src/predictor.rs

@@ -190,7 +190,7 @@ impl Predictor {
                 self.prices[mid_index][1].push_back(mp.clone());
 
                 // 长度限制
-                if self.prices[mid_index][0].len() > 10000 {
+                if self.prices[mid_index][0].len() > 2000 {
                     self.prices[mid_index][0].pop_front();
                     self.prices[mid_index][1].pop_front();
                 }
@@ -230,19 +230,20 @@ impl Predictor {
 
         self.last_price = trade.price;
 
-        self.trade_price_long_vec.push_back(trade.price);
+        // self.trade_price_long_vec.push_back(trade.price);
 
         if index == 233 {
             self.trade_233_vec.push_back(trade.clone());
         } else {
-            self.update_fair_price(trade, index).await;
-
-            if index == 0 {
-                self.trade_0_vec.push_back(trade.clone());
+            if trade.value > Decimal::ONE_HUNDRED {
+                self.update_fair_price(trade, index).await;
+                self.processor(trade.time, false).await;
             }
-        }
 
-        self.processor(trade.time, false).await;
+            // if index == 0 {
+            //     self.trade_0_vec.push_back(trade.clone());
+            // }
+        }
     }
 
     pub async fn on_ticker(&mut self, _ticker: &Ticker) {}
@@ -472,9 +473,6 @@ impl Predictor {
         let last_price = Self::DONT_VIEW;
         let fair_price = self.fair_price;
 
-        let total_amount_0: Decimal = self.trade_233_vec.deque.iter().map(|trade| trade.value).sum();
-        let total_amount_1: Decimal = self.trade_0_vec.deque.iter().map(|trade| trade.value).sum();
-
         let spread = Self::DONT_VIEW;
         let spread_max = self.bs[0];
         let spread_min = self.ks[0];
@@ -484,18 +482,14 @@ impl Predictor {
 
         let inventory = self.inventory;
 
-        let sigma_square = if total_amount_0 + total_amount_1 == Decimal::ZERO {
-            Decimal::ZERO
-        } else {
-            total_amount_0 / (total_amount_0 + total_amount_1)
-        };
+        let sigma_square = now - data_time;
 
         let gamma = self.balance;
         let kappa = self.fitting_delay;
 
         let flow_ratio = Decimal::ZERO;
 
-        let need_append = now - self.prev_insert_time > dec!(500);
+        let need_append = now - self.prev_insert_time > dec!(100);
         if !need_append && !is_hard_update {
             return;
         }