Browse Source

试试这种情况的开单点

skyffire 8 months ago
parent
commit
0df3bcee3d
1 changed files with 6 additions and 7 deletions
  1. 6 7
      strategy/src/predictor.rs

+ 6 - 7
strategy/src/predictor.rs

@@ -155,8 +155,8 @@ impl Predictor {
             mid_price: Default::default(),
             fair_price: Default::default(),
             last_price: Default::default(),
-            optimal_ask_price: Default::default(),
-            optimal_bid_price: Default::default(),
+            optimal_ask_price: Self::DONT_VIEW,
+            optimal_bid_price: Self::DONT_VIEW,
 
             ask_delta: Default::default(),
             bid_delta: Default::default(),
@@ -326,7 +326,6 @@ impl Predictor {
         self.fair_price_std_vec[index] = mp * self.ks[index] + self.bs[index];
         self.fair_price_std_vec[index].rescale(self.mid_price.scale());
 
-
         // 生成最终用于挂单的公平价格
         let fair_price_sum: Decimal = self.fair_price_std_vec.iter().sum();
         let fair_price_count = self.fair_price_std_vec.iter()
@@ -376,17 +375,17 @@ impl Predictor {
             self.optimal_bid_price = max(self.mid_price, self.fair_price);
             self.optimal_ask_price = Self::DONT_VIEW;
         } else if self.inventory.is_zero() {
-            if self.fair_price > self.mid_price {
+            if self.fair_price > self.mid_price * (Decimal::ONE + self.params.open) {
                 self.bid_delta = dec!(0);
                 self.ask_delta = dec!(-2);
 
-                self.optimal_bid_price = self.fair_price - self.fair_price * self.params.open;
+                self.optimal_bid_price = self.mid_price;
                 self.optimal_ask_price = Self::DONT_VIEW;
-            } else if self.fair_price < self.mid_price {
+            } else if self.fair_price < self.mid_price * (Decimal::ONE - self.params.open) {
                 self.ask_delta = dec!(0);
                 self.bid_delta = dec!(-2);
 
-                self.optimal_ask_price = self.fair_price + self.fair_price * self.params.open;
+                self.optimal_ask_price = self.mid_price;
                 self.optimal_bid_price = Self::DONT_VIEW;
             }
         }