浏览代码

取消分阶段平仓的逻辑,单独测试撤单逻辑。

skyffire 1 年之前
父节点
当前提交
220577c234
共有 2 个文件被更改,包括 6 次插入16 次删除
  1. 4 14
      strategy/src/avellaneda_stoikov.rs
  2. 2 2
      strategy/src/strategy.rs

+ 4 - 14
strategy/src/avellaneda_stoikov.rs

@@ -290,21 +290,11 @@ impl AvellanedaStoikov {
             }
 
             if self.ratio_edge > Decimal::ZERO {
-                if self.inventory.abs() >= dec!(3) {
-                    self.ask_delta -= self.ratio_edge.abs() * Decimal::TWO;
-                    self.bid_delta += self.sigma_square.abs() * dec!(5);
-                } 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.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.inventory.abs() <= dec!(-3) {
-                    self.ask_delta += self.sigma_square.abs() * dec!(5);
-                    self.bid_delta -= self.ratio_edge.abs() * Decimal::TWO;
-                } else {
-                    self.ask_delta += self.sigma_square.abs() * dec!(5);
-                    self.bid_delta -= self.ratio_edge.abs() * (Decimal::TWO - self.t_diff);
-                }
+                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);

+ 2 - 2
strategy/src/strategy.rs

@@ -956,7 +956,7 @@ impl Strategy {
             // target_buy_price = utils::clip(target_buy_price, self.bp * dec!(0.97), self.ap * dec!(1.0005));
             target_buy_price = utils::fix_price(target_buy_price, self.tick_size);
             let amount = if predictor.inventory <= dec!(-3) {
-                utils::get_amount_by_min_amount_value(self.min_amount_value * (predictor.inventory.abs() - dec!(2)), target_buy_price, self.step_size)
+                utils::get_amount_by_min_amount_value(self.min_amount_value * predictor.inventory.abs(), target_buy_price, self.step_size)
             } else {
                 utils::get_amount_by_min_amount_value(self.min_amount_value, target_buy_price, self.step_size)
             };
@@ -997,7 +997,7 @@ impl Strategy {
             // 取消大小限制
             target_sell_price = utils::fix_price(target_sell_price, self.tick_size);
             let amount = if predictor.inventory >= dec!(3) {
-                utils::get_amount_by_min_amount_value(self.min_amount_value * (predictor.inventory.abs() - dec!(2)), target_sell_price, self.step_size)
+                utils::get_amount_by_min_amount_value(self.min_amount_value * predictor.inventory.abs(), target_sell_price, self.step_size)
             } else {
                 utils::get_amount_by_min_amount_value(self.min_amount_value, target_sell_price, self.step_size)
             };