소스 검색

这个分支恢复正常逻辑,有bitget,而且要和MFI分支一样。

skyffire 1 년 전
부모
커밋
113a995cc8
2개의 변경된 파일17개의 추가작업 그리고 30개의 파일을 삭제
  1. 9 22
      strategy/src/avellaneda_stoikov.rs
  2. 8 8
      strategy/src/strategy.rs

+ 9 - 22
strategy/src/avellaneda_stoikov.rs

@@ -289,28 +289,15 @@ impl AvellanedaStoikov {
                 self.ask_delta += pos_edge;
             }
 
-            if self.flow_ratio_trades.abs() > dec!(0.273) {
-                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.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.sigma_square.abs() * dec!(5);
-                }
+            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 {
+                self.ask_delta += self.sigma_square.abs() * dec!(5);
+                self.bid_delta += self.sigma_square.abs() * dec!(5);
             }
         }
     }

+ 8 - 8
strategy/src/strategy.rs

@@ -826,10 +826,10 @@ impl Strategy {
     pub fn _cancel_open(&self, command: &mut OrderCommand, local_orders: &HashMap<String, OrderInfo>) {
         // debug!(?command);
         // 挂单范围
-        let long_upper = self.open_dist[0];
-        let long_lower = self.open_dist[1];
-        let short_lower = self.open_dist[2];
-        let short_upper = self.open_dist[3];
+        // let long_upper = self.open_dist[0];
+        // let long_lower = self.open_dist[1];
+        // let short_lower = self.open_dist[2];
+        // let short_upper = self.open_dist[3];
 
         for order_client_id in local_orders.keys() {
             let order = local_orders.get(order_client_id).unwrap();
@@ -839,16 +839,16 @@ impl Strategy {
             // 开多订单处理
             if order.side == "kd".to_string() {
                 // 在价格范围内时不处理
-                if order.price <= long_upper && order.price >= long_lower {
-                // if self.local_time - order.local_time <= 200 {
+                // if (order.price <= long_upper && order.price >= long_lower) || self.local_time - order.local_time <= 200 {
+                if self.local_time - order.local_time <= 200 {
                     continue
                 }
                 // debug!(?key, ?order.price, ?long_upper, ?long_lower);
                 command.cancel.insert(key, value);
             } else if order.side == "kk".to_string() { // 开空订单处理
                 // 在价格范围内时不处理
-                if order.price >= short_lower && order.price <= short_upper {
-                // if self.local_time - order.local_time <= 200 {
+                // if (order.price >= short_lower && order.price <= short_upper) || self.local_time - order.local_time <= 200 {
+                if self.local_time - order.local_time <= 200 {
                     continue
                 }
                 // debug!(?key, ?order.price, ?short_lower, ?short_upper);