skyfffire 10 сар өмнө
parent
commit
f6b60d4f0b

+ 5 - 5
strategy/src/predictor.rs

@@ -273,7 +273,7 @@ impl Predictor {
         self.fair_price_vec[index] = if self.fair_price_vec[index].is_zero() {
             fair_price
         } else {
-            self.fair_price_vec[index] * dec!(0.95) + fair_price * dec!(0.05)
+            self.fair_price_vec[index] * dec!(0.9) + fair_price * dec!(0.1)
         };
         self.fair_price_vec[index].rescale(self.mid_price.scale());
         self.volume_vec[index] = a1.size + b1.size;
@@ -344,8 +344,8 @@ impl Predictor {
             return;
         }
 
-        let is_open_long = self.spread > self.params.open;
-        let is_open_short = self.spread < self.params.open * Decimal::NEGATIVE_ONE;
+        let is_open_long = self.spread_sma_1000 - self.spread_sma > self.params.open;
+        let is_open_short = self.spread_sma_1000 - self.spread_sma < self.params.open * Decimal::NEGATIVE_ONE;
         let is_close_long = self.inventory > Decimal::ZERO;
         let is_close_short = self.inventory < Decimal::ZERO;
 
@@ -375,14 +375,14 @@ impl Predictor {
                 self.bid_delta = self.mid_price * self.params.close;
             }
         } else if is_open_long {
-            let is_open_long_market = (self.fair_price - self.mid_price) / self.mid_price > self.params.open_market;
+            let is_open_long_market = self.spread_sma_1000 - self.spread_sma > self.params.open_market;
             self.bid_delta = if is_open_long_market {
                 dec!(-1)
             } else {
                 dec!(0)
             };
         } else if is_open_short {
-            let is_open_short_market = (self.mid_price - self.fair_price) / self.mid_price > self.params.open_market;
+            let is_open_short_market = self.spread_sma_1000 - self.spread_sma < self.params.open_market * Decimal::NEGATIVE_ONE;
             self.ask_delta = if is_open_short_market {
                 dec!(-1)
             } else {