Browse Source

暂时屏蔽马丁,反方向的订单不要加任何基数

skyffire 1 year ago
parent
commit
caf61df4fe
2 changed files with 16 additions and 14 deletions
  1. 4 4
      strategy/src/avellaneda_stoikov.rs
  2. 12 10
      strategy/src/strategy.rs

+ 4 - 4
strategy/src/avellaneda_stoikov.rs

@@ -179,8 +179,8 @@ impl AvellanedaStoikov {
         }
 
         self.inventory = new_inventory;
-        self.level = (Decimal::NEGATIVE_ONE + (Decimal::ONE + dec!(8) * self.inventory.abs()).sqrt().unwrap()) / Decimal::TWO;
-        self.level = min(self.level, dec!(5));
+        // self.level = (Decimal::NEGATIVE_ONE + (Decimal::ONE + dec!(8) * self.inventory.abs()).sqrt().unwrap()) / Decimal::TWO;
+        // self.level = min(self.level, dec!(5));
 
         self.processor().await;
     }
@@ -243,7 +243,7 @@ impl AvellanedaStoikov {
                 if self.inventory > Decimal::ZERO {
                     a + b + pos_edge
                 } else {
-                    a + b + base_pos_edge * self.t_diff
+                    a + b * self.t_diff
                 }
             };
 
@@ -253,7 +253,7 @@ impl AvellanedaStoikov {
                 if self.inventory < Decimal::ZERO {
                     a + b + pos_edge
                 } else {
-                    a + b + base_pos_edge * self.t_diff
+                    a + b * self.t_diff
                 }
             };
         }

+ 12 - 10
strategy/src/strategy.rs

@@ -953,11 +953,12 @@ impl Strategy {
             let mut target_buy_price = predictor.optimal_bid_price;
             // 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 < Decimal::ZERO {
-                utils::fix_amount(self.step_size * predictor.inventory.abs(), self.step_size)
-            } else {
-                utils::fix_amount(self.step_size * (predictor.level + Decimal::ONE), self.step_size)
-            };
+            let amount = utils::fix_amount(self.step_size, self.step_size);
+            // let amount = if predictor.inventory < Decimal::ZERO {
+            //     utils::fix_amount(self.step_size * predictor.inventory.abs(), self.step_size)
+            // } else {
+            //     utils::fix_amount(self.step_size * (predictor.level + Decimal::ONE), self.step_size)
+            // };
             let amount_value = amount * predictor.mid_price;
 
             // 下单价值不能太大,也不能太小
@@ -980,11 +981,12 @@ impl Strategy {
             // target_sell_price = utils::clip(target_sell_price, self.bp * dec!(0.9995), self.ap * dec!(1.03));
             // 取消大小限制
             target_sell_price = utils::fix_price(target_sell_price, self.tick_size);
-            let amount = if predictor.inventory > Decimal::ZERO {
-                utils::fix_amount(self.step_size * predictor.inventory.abs(), self.step_size)
-            } else {
-                utils::fix_amount(self.step_size * (predictor.level + Decimal::ONE), self.step_size)
-            };
+            let amount = utils::fix_amount(self.step_size, self.step_size);
+            // let amount = if predictor.inventory > Decimal::ZERO {
+            //     utils::fix_amount(self.step_size * predictor.inventory.abs(), self.step_size)
+            // } else {
+            //     utils::fix_amount(self.step_size * (predictor.level + Decimal::ONE), self.step_size)
+            // };
             let amount_value = amount * self.mp;
 
             // 下单价值不能太大,也不能太小