Parcourir la source

修复下单bug

skyffire il y a 9 mois
Parent
commit
b9bef0fc92
2 fichiers modifiés avec 7 ajouts et 2 suppressions
  1. 5 0
      strategy/src/predictor.rs
  2. 2 2
      strategy/src/strategy.rs

+ 5 - 0
strategy/src/predictor.rs

@@ -426,10 +426,15 @@ impl Predictor {
         if is_close_long {
             self.optimal_ask_price = self.mid_price + self.mid_price * self.params.close;
             self.bid_delta = dec!(-2);
+            self.optimal_bid_price = Self::DONT_VIEW
         } else if is_close_short {
             self.optimal_bid_price = self.mid_price - self.mid_price * self.params.close;
             self.ask_delta = dec!(-2);
+            self.optimal_ask_price = Self::DONT_VIEW
         } else {
+            self.bid_delta = dec!(0);
+            self.ask_delta = dec!(0);
+
             self.optimal_bid_price = self.mid_price - self.mid_price * self.params.open;
             self.optimal_ask_price = self.mid_price + self.mid_price * self.params.open;
         }

+ 2 - 2
strategy/src/strategy.rs

@@ -985,7 +985,7 @@ impl Strategy {
         let one_hand_long_value = dec!(0.97) * (self.max_long_value / self.grid);
         let one_hand_short_value = dec!(0.97) * (self.max_short_value / self.grid);
         // 挂多单
-        if self.post_side >= 0 && buy_value == Decimal::ZERO && predictor.inventory.is_zero() && predictor.bid_delta != dec!(-2) {
+        if buy_value == Decimal::ZERO && predictor.inventory.is_zero() && predictor.bid_delta != dec!(-2) {
             let mut target_buy_price = predictor.optimal_bid_price;
             // target_buy_price = utils::clip(target_buy_price, self.bp * dec!(0.97), self.ap * dec!(1.0005));
             target_buy_price = utils::fix_price(target_buy_price, self.tick_size);
@@ -1017,7 +1017,7 @@ impl Strategy {
             }
         }
         // 挂空单
-        if self.post_side <= 0 && sell_value == Decimal::ZERO && predictor.inventory.is_zero() && predictor.ask_delta != dec!(-2) {
+        if sell_value == Decimal::ZERO && predictor.inventory.is_zero() && predictor.ask_delta != dec!(-2) {
             let mut target_sell_price = predictor.optimal_ask_price;
             // target_sell_price = utils::clip(target_sell_price, self.bp * dec!(0.9995), self.ap * dec!(1.03));
             // 取消大小限制