فهرست منبع

不开单换成挂单距离拉大

JiahengHe 1 سال پیش
والد
کامیت
e41f314286
2فایلهای تغییر یافته به همراه34 افزوده شده و 14 حذف شده
  1. 27 7
      strategy/src/avellaneda_stoikov.rs
  2. 7 7
      strategy/src/strategy.rs

+ 27 - 7
strategy/src/avellaneda_stoikov.rs

@@ -362,15 +362,35 @@ impl AvellanedaStoikov {
                 self.ask_delta += pos_edge;
             }
 
-            if self.ratio_edge > Decimal::ZERO {
-                self.ask_delta -= self.ratio_edge.abs() * (Decimal::TWO - self.t_diff);
-                self.bid_delta += self.sigma_square.abs() * dec!(5);
-            } else if self.ratio_edge < Decimal::ZERO {
-                self.ask_delta += self.sigma_square.abs() * dec!(5);
-                self.bid_delta -= self.ratio_edge.abs() * (Decimal::TWO - self.t_diff);
-            } else if self.ratio_edge == Decimal::ZERO {
+            if self.ratio_edge == Decimal::ZERO {
                 self.ask_delta += self.sigma_square.abs() * dec!(5);
                 self.bid_delta += self.sigma_square.abs() * dec!(5);
+            } else if self.ratio_edge > Decimal::ZERO {
+                if self.vwpin_avg!=Decimal::ZERO && self.vwpin > self.vwpin_avg {
+                    if self.inventory > Decimal::ZERO {
+                        self.ask_delta -= self.ratio_edge.abs() * (Decimal::TWO - self.t_diff);
+                        self.bid_delta += self.sigma_square.abs() * dec!(10);
+                    } else  {
+                        self.ask_delta += self.sigma_square.abs() * dec!(10);
+                        self.bid_delta += self.sigma_square.abs() * dec!(10);
+                    }
+                } else {
+                    self.ask_delta -= self.ratio_edge.abs() * (Decimal::TWO - self.t_diff);
+                    self.bid_delta += self.sigma_square.abs() * dec!(5);
+                }
+            } else if self.ratio_edge < Decimal::ZERO {
+                if self.vwpin_avg!=Decimal::ZERO && self.vwpin > self.vwpin_avg {
+                    if self.inventory < Decimal::ZERO {
+                        self.ask_delta += self.sigma_square.abs() * dec!(10);
+                        self.bid_delta -= self.ratio_edge.abs() * (Decimal::TWO - self.t_diff);
+                    } else {
+                        self.ask_delta += self.sigma_square.abs() * dec!(10);
+                        self.bid_delta += self.sigma_square.abs() * dec!(10);
+                    }
+                } else {
+                    self.ask_delta += self.sigma_square.abs() * dec!(5);
+                    self.bid_delta -= self.ratio_edge.abs() * (Decimal::TWO - self.t_diff);
+                }
             }
         }
     }

+ 7 - 7
strategy/src/strategy.rs

@@ -1115,14 +1115,14 @@ impl Strategy {
         }
 
         self._cancel_open(&mut command, local_orders);              // 撤单命令处理
-        if predictor.vwpin_avg!=Decimal::ZERO && predictor.vwpin > predictor.vwpin_avg {
-           // self.no_open_num += 1;
-        } else {
-           // self.open_num += 1;
-            self._post_open(&mut command, local_orders, predictor);     // 限价单命令处理
-        }
+        // if predictor.vwpin_avg!=Decimal::ZERO && predictor.vwpin > predictor.vwpin_avg {
+        //    self.no_open_num += 1;
+        // } else {
+        //    self.open_num += 1;
+        //     self._post_open(&mut command, local_orders, predictor);     // 限价单命令处理
+        // }
         // info!("允许开仓信号数: {}, 不允许开仓信号数: :{}", self.open_num, self.no_open_num);
-        // 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