Sfoglia il codice sorgente

v1.0.17: 使用对称逻辑平仓

skyffire 9 mesi fa
parent
commit
1c53015eae
1 ha cambiato i file con 7 aggiunte e 3 eliminazioni
  1. 7 3
      strategy/src/predictor.rs

+ 7 - 3
strategy/src/predictor.rs

@@ -326,12 +326,12 @@ impl Predictor {
 
         if prev_inventory != self.inventory && prev_inventory.is_zero() {
             self.prev_trade_time = Utc::now().timestamp_micros();
+            self.force_order_value = Decimal::ZERO;
         }
 
         // 重置fair数据,用于重新计算幅度
         if prev_inventory != self.inventory {
             self.fair_price_time_vec.deque.clear();
-            self.force_order_value = Decimal::ZERO;
         }
 
         // 重置资金流计算
@@ -456,8 +456,12 @@ impl Predictor {
         // 可能是接针
         let is_open_long = self.mid_price_trend_rate < Decimal::ZERO && self.force_order_value < -self.params.open && self.inventory.is_zero();
         let is_open_short = self.mid_price_trend_rate > Decimal::ZERO && self.force_order_value > self.params.open && self.inventory.is_zero();
-        let is_close_long = self.inventory > Decimal::ZERO && self.mid_price_trend_rate > Decimal::ZERO;
-        let is_close_short = self.inventory < Decimal::ZERO && self.mid_price_trend_rate < Decimal::ZERO;
+        // 对称平仓,方差会非常大
+        let is_close_long = self.inventory > Decimal::ZERO && self.mid_price_trend_rate > Decimal::ZERO && self.force_order_value > self.params.open;
+        let is_close_short = self.inventory < Decimal::ZERO && self.mid_price_trend_rate < Decimal::ZERO && self.force_order_value < -self.params.open;
+        // // 穿越平仓
+        // let is_close_long = self.inventory > Decimal::ZERO && self.mid_price_trend_rate > Decimal::ZERO;
+        // let is_close_short = self.inventory < Decimal::ZERO && self.mid_price_trend_rate < Decimal::ZERO;
 
         self.bid_delta = dec!(-2);
         self.ask_delta = dec!(-2);