瀏覽代碼

接针*新版

skyfffire 10 月之前
父節點
當前提交
24bfd92d15
共有 2 個文件被更改,包括 7 次插入6 次删除
  1. 6 5
      strategy/src/predictor.rs
  2. 1 1
      strategy/src/strategy.rs

+ 6 - 5
strategy/src/predictor.rs

@@ -326,12 +326,13 @@ impl Predictor {
 
                 // 只有有强度的rate才有资格被称为针
                 if rate.abs() > self.params.open {
-                    if self.fair_rate_focus > Decimal::ZERO && self.mid_price > self.fair_price {
+                    // 向上涨,并且fair下穿mid,视为观测阶段开始
+                    if rate > Decimal::ZERO && self.mid_price > self.fair_price {
                         self.fair_rate_focus = rate;
                     }
 
-                    // 向下跌,并且mid上穿fair,视为观测阶段结束
-                    if self.fair_rate_focus < Decimal::ZERO && self.mid_price < self.fair_price {
+                    // 向下跌,并且fair上穿mid,视为观测阶段开始
+                    if rate < Decimal::ZERO && self.mid_price < self.fair_price {
                         self.fair_rate_focus = rate;
                     }
                 }
@@ -394,8 +395,8 @@ impl Predictor {
         // let is_open_long = self.spread_sma_1000 - self.spread_sma > self.params.open && self.fair_price > self.mid_price;
         // let is_open_short = self.spread_sma_1000 - self.spread_sma < self.params.open * Decimal::NEGATIVE_ONE && self.fair_price < self.mid_price;
         // 可能是接针
-        let is_open_long = self.spread_sma_1000 - self.spread_sma < self.params.open * Decimal::NEGATIVE_ONE && self.fair_price > self.mid_price;
-        let is_open_short = self.spread_sma_1000 - self.spread_sma > self.params.open && self.fair_price < self.mid_price;
+        let is_open_long = self.fair_rate_focus < Decimal::ZERO;
+        let is_open_short = self.fair_rate_focus > Decimal::ZERO;
         let is_close_long = self.inventory > Decimal::ZERO;
         let is_close_short = self.inventory < Decimal::ZERO;
 

+ 1 - 1
strategy/src/strategy.rs

@@ -1236,7 +1236,7 @@ impl Strategy {
 
         self._cancel_open(&mut command, local_orders, predictor);   // 撤单命令处理
         self._post_close(&mut command, local_orders, predictor);    // 平仓单命令处理
-        // self._post_open(&mut command, local_orders, predictor);     // 限价单命令处理
+        self._post_open(&mut command, local_orders, predictor);     // 限价单命令处理
         self._check_local_orders(&mut command, local_orders);       // 固定时间检查超时订单
         self._update_in_cancel(&mut command, local_orders);         // 更新撤单队列,是一个filter
         self._check_request_limit(&mut command);                    // 限制频率,移除不合规则之订单,是一个filter