Ver Fonte

開平倉時間係數邏輯的調整

skyfffire há 1 ano atrás
pai
commit
b0b0f9a09e
1 ficheiros alterados com 10 adições e 2 exclusões
  1. 10 2
      strategy/src/avellaneda_stoikov.rs

+ 10 - 2
strategy/src/avellaneda_stoikov.rs

@@ -261,11 +261,19 @@ impl AvellanedaStoikov {
             }
 
             if self.ratio_edge > Decimal::ZERO {
-                self.ask_delta = self.ask_delta - self.ratio_edge.abs() * (dec!(1.618) - self.t_diff);
+                self.ask_delta = if self.inventory.is_sign_negative() {
+                    self.ask_delta - self.ratio_edge.abs() * (dec!(1.618) - dec!(3.72) * self.t_diff)
+                } else {
+                    self.ask_delta - self.ratio_edge.abs() * (dec!(1.618) - self.t_diff)
+                };
                 self.bid_delta = self.bid_delta + self.ratio_edge.abs() * dec!(25);
             } else if self.ratio_edge < Decimal::ZERO {
                 self.ask_delta = self.ask_delta + self.ratio_edge.abs() * dec!(25);
-                self.bid_delta = self.bid_delta - self.ratio_edge.abs() * (dec!(1.618) - self.t_diff);
+                self.ask_delta = if !self.inventory.is_sign_negative() {
+                    self.bid_delta - self.ratio_edge.abs() * (dec!(1.618) - dec!(3.72) * self.t_diff)
+                } else {
+                    self.bid_delta - self.ratio_edge.abs() * (dec!(1.618) - self.t_diff)
+                };
             }
 
             if self.init_delta_plus.is_zero() {