瀏覽代碼

开仓条件写错了。

skyffire 8 月之前
父節點
當前提交
852f95ac59
共有 1 個文件被更改,包括 14 次插入16 次删除
  1. 14 16
      strategy/src/predictor.rs

+ 14 - 16
strategy/src/predictor.rs

@@ -400,8 +400,8 @@ impl Predictor {
             // 达到最大持仓时间还未盈利就平仓
             || (now - self.prev_open_time > is_holding_time_over && self.mid_price > self.pos_avg_price)
         );
-        let is_open_long = self.fair_price > self.mid_price * (Decimal::ONE + self.params.open) && self.trend_rate < dec!(-0.01);
-        let is_open_short = self.fair_price < self.mid_price * (Decimal::ONE - self.params.open) && self.trend_rate > dec!(0.01);
+        let is_open_long = self.inventory.is_zero() && self.fair_price > self.mid_price * (Decimal::ONE + self.params.open) && self.trend_rate < dec!(-0.01);
+        let is_open_short = self.inventory.is_zero() && self.fair_price < self.mid_price * (Decimal::ONE - self.params.open) && self.trend_rate > dec!(0.01);
 
         // 使信号有一定持续性
         if is_close_long {
@@ -443,20 +443,18 @@ 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.trade_condition == dec!(3) {
-                self.bid_delta = dec!(0);
-                self.ask_delta = dec!(-2);
-
-                self.optimal_bid_price = self.fair_price * dec!(1.001);
-                self.optimal_ask_price = Self::DONT_VIEW;
-            } else if self.trade_condition == dec!(4) {
-                self.ask_delta = dec!(0);
-                self.bid_delta = dec!(-2);
-
-                self.optimal_ask_price = self.fair_price * dec!(0.999);
-                self.optimal_bid_price = Self::DONT_VIEW;
-            }
+        } else if self.trade_condition == dec!(3) {
+            self.bid_delta = dec!(0);
+            self.ask_delta = dec!(-2);
+
+            self.optimal_bid_price = self.fair_price * dec!(1.001);
+            self.optimal_ask_price = Self::DONT_VIEW;
+        } else if self.trade_condition == dec!(4) {
+            self.ask_delta = dec!(0);
+            self.bid_delta = dec!(-2);
+
+            self.optimal_ask_price = self.fair_price * dec!(0.999);
+            self.optimal_bid_price = Self::DONT_VIEW;
         }
 
         // 价格处理