Sfoglia il codice sorgente

使用self.spread_sma_1000开仓测试

skyfffire 10 mesi fa
parent
commit
92d1456123
1 ha cambiato i file con 7 aggiunte e 3 eliminazioni
  1. 7 3
      strategy/src/predictor.rs

+ 7 - 3
strategy/src/predictor.rs

@@ -314,7 +314,8 @@ impl Predictor {
             return;
         }
 
-        self.spread = self.fair_price - self.mid_price;
+        self.spread = (self.fair_price - self.mid_price) / self.mid_price;
+        self.spread.rescale(8);
         self.spread_vec.push(self.spread);
 
         self.spread_sma = if self.spread_sma.is_zero() {
@@ -322,18 +323,21 @@ impl Predictor {
         } else {
             self.spread_sma * dec!(0.9998) + self.spread * dec!(0.0002)
         };
+        self.spread_sma.rescale(8);
 
         self.spread_sma_2000 = if self.spread_sma_2000.is_zero() {
             self.spread
         } else {
             self.spread_sma_2000 * dec!(0.9995) + self.spread * dec!(0.0005)
         };
+        self.spread_sma_2000.rescale(8);
 
         self.spread_sma_1000 = if self.spread_sma_1000.is_zero() {
             self.spread
         } else {
             self.spread_sma_1000 * dec!(0.999) + self.spread * dec!(0.001)
         };
+        self.spread_sma_1000.rescale(8);
 
         while self.spread_vec.len() > 1_000 {
             self.spread_vec.remove(0);
@@ -349,8 +353,8 @@ impl Predictor {
             return;
         }
 
-        let is_open_long = (self.fair_price - self.mid_price) / self.mid_price > self.params.open;
-        let is_open_short = (self.mid_price - self.fair_price) / self.mid_price > self.params.open;
+        let is_open_long = self.spread_sma_1000 > self.params.open;
+        let is_open_short = self.spread_sma_1000 < self.params.open * Decimal::NEGATIVE_ONE;
         let is_close_long = self.inventory > Decimal::ZERO;
         let is_close_short = self.inventory < Decimal::ZERO;