소스 검색

合并挂单距离逻辑修改

JiahengHe 1 년 전
부모
커밋
8b74ce2eab
1개의 변경된 파일18개의 추가작업 그리고 25개의 파일을 삭제
  1. 18 25
      strategy/src/avellaneda_stoikov.rs

+ 18 - 25
strategy/src/avellaneda_stoikov.rs

@@ -361,35 +361,28 @@ impl AvellanedaStoikov {
             } else if self.inventory < Decimal::ZERO {
                 self.ask_delta += pos_edge;
             }
-
-            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);
-                    }
+            // 知情者概率大于平均值,拉开开单距离
+            if self.vwpin_avg > Decimal::ZERO && self.vwpin > self.vwpin_avg {
+                if self.inventory > Decimal::ZERO && self.ratio_edge > Decimal::ZERO {
+                    self.ask_delta -= self.sigma_square.abs() * (Decimal::TWO - self.t_diff);
+                    self.bid_delta += self.sigma_square.abs() * dec!(10);
+                } else if self.inventory < Decimal::ZERO && self.ratio_edge < Decimal::ZERO {
+                    self.ask_delta += self.sigma_square.abs() * dec!(10);
+                    self.bid_delta -= self.sigma_square.abs() * (Decimal::TWO - self.t_diff);
                 } else {
-                    self.ask_delta -= self.ratio_edge.abs() * (Decimal::TWO - self.t_diff);
-                    self.bid_delta += self.sigma_square.abs() * dec!(5);
+                    self.ask_delta += self.sigma_square.abs() * dec!(10);
+                    self.bid_delta += self.sigma_square.abs() * dec!(10);
                 }
-            } 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 {
+                if self.ratio_edge > Decimal::ZERO {
+                    self.ask_delta -= self.sigma_square.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.sigma_square.abs() * (Decimal::TWO - self.t_diff);
                 } else {
                     self.ask_delta += self.sigma_square.abs() * dec!(5);
-                    self.bid_delta -= self.ratio_edge.abs() * (Decimal::TWO - self.t_diff);
+                    self.bid_delta += self.sigma_square.abs() * dec!(5);
                 }
             }
         }