Explorar el Código

距离逻辑调整。

skyffire hace 1 año
padre
commit
ecade554a1
Se han modificado 1 ficheros con 13 adiciones y 23 borrados
  1. 13 23
      strategy/src/avellaneda_stoikov.rs

+ 13 - 23
strategy/src/avellaneda_stoikov.rs

@@ -289,32 +289,22 @@ impl AvellanedaStoikov {
                 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.flow_ratio_trades.abs() > dec!(0.3) {
-                    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.flow_ratio_trades.abs() > dec!(0.273) {
+                if self.inventory > Decimal::ZERO && 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!(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.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.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.flow_ratio_trades.abs() > dec!(0.3) {
-                    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 {
+                } 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);
                 }