Quellcode durchsuchen

修复ref_price的bug

skyffire vor 1 Jahr
Ursprung
Commit
4772e2a211
1 geänderte Dateien mit 8 neuen und 9 gelöschten Zeilen
  1. 8 9
      strategy/src/avellaneda_stoikov.rs

+ 8 - 9
strategy/src/avellaneda_stoikov.rs

@@ -157,10 +157,6 @@ impl AvellanedaStoikov {
             self.mid_price = (self.ask_price + self.bid_price) / Decimal::TWO;
         }
 
-        if !self.fair_price_vec[0].is_zero() && !self.fair_price_vec[1].is_zero() {
-            self.ref_price = (self.fair_price_vec[0] + self.fair_price_vec[1]) / Decimal::TWO;
-        }
-
         self.processor().await;
     }
 
@@ -231,7 +227,7 @@ impl AvellanedaStoikov {
     }
 
     pub fn update_sigma_square(&mut self) {
-        self.sigma_square = self.spread_max * dec!(0.3);
+        self.sigma_square = self.spread_max * dec!(0.5);
         self.sigma_square.rescale(10);
     }
 
@@ -248,7 +244,9 @@ impl AvellanedaStoikov {
     }
 
     pub fn update_ref_price(&mut self) {
-        self.ref_price = self.mid_price;
+        if !self.fair_price_vec[0].is_zero() && !self.fair_price_vec[1].is_zero() {
+            self.ref_price = (self.fair_price_vec[0] + self.fair_price_vec[1]) / Decimal::TWO;
+        }
     }
 
     pub fn update_delta(&mut self) {
@@ -261,11 +259,11 @@ impl AvellanedaStoikov {
             self.ask_delta = self.base_delta;
 
             if self.inventory > Decimal::ZERO {
-                self.bid_delta += pos_edge * Decimal::TEN;
+                self.bid_delta += pos_edge * Decimal::TWO;
                 self.ask_delta = Decimal::NEGATIVE_ONE;
             } else if self.inventory < Decimal::ZERO {
                 self.bid_delta = Decimal::NEGATIVE_ONE;
-                self.ask_delta += pos_edge * Decimal::TEN;
+                self.ask_delta += pos_edge * Decimal::TWO;
             }
         }
     }
@@ -365,10 +363,11 @@ impl AvellanedaStoikov {
         }
 
         let mut cci = self.cci_arc.lock().await;
+
         cci.predictor_state_vec.push_back(PredictorState {
             update_time: Decimal::from_i64(Utc::now().timestamp_millis()).unwrap(),
 
-            mid_price: self.last_price,
+            mid_price: self.mid_price,
             ask_price: self.ask_price,
             bid_price: self.bid_price,
             last_price: self.last_price,