瀏覽代碼

這個版本多試試。

skyfffire 1 年之前
父節點
當前提交
823faefb7c
共有 1 個文件被更改,包括 6 次插入5 次删除
  1. 6 5
      strategy/src/avellaneda_stoikov.rs

+ 6 - 5
strategy/src/avellaneda_stoikov.rs

@@ -57,7 +57,7 @@ impl AvellanedaStoikov {
     // 时间窗口大小(微秒)
     const MAX_TIME_RANGE_MICROS: i64 = 5 * 60_000_000;
     const TRADE_LONG_RANGE_MICROS: i64 = 3 * 60_000_000;
-    const TRADE_SHORT_RANGE_MICROS: i64 = 30_000_000;
+    const TRADE_SHORT_RANGE_MICROS: i64 = 10_000_000;
     // const ONE_MILLION: Decimal = dec!(1_000_000);
     // const TWENTY_THOUSAND: Decimal = dec!(20_000);
     const IRA: Decimal = dec!(1);
@@ -290,7 +290,7 @@ impl AvellanedaStoikov {
 
     fn calc_flow_ratio(prev_flow_ratio: &Decimal, min_volume: &Decimal, trades: &mut FixedTimeRangeDeque<Trade>) -> Decimal {
         // 使用EMA來更新資金流,確保平滑性
-        let a = Decimal::TWO / dec!(50);
+        // let a = Decimal::TWO / dec!(50);
 
         let mut flow_in_value = Decimal::ZERO;
         let mut flow_out_value = Decimal::ZERO;
@@ -321,8 +321,9 @@ impl AvellanedaStoikov {
         }
 
         if flow_out_value + flow_in_value > *min_volume {
-            let now = (flow_in_value - flow_out_value) / (flow_out_value + flow_in_value);
-            a * now + (Decimal::ONE - a) * prev_flow_ratio
+            // let now = (flow_in_value - flow_out_value) / (flow_out_value + flow_in_value);
+            // a * now + (Decimal::ONE - a) * prev_flow_ratio
+            (flow_in_value - flow_out_value) / (flow_out_value + flow_in_value)
         } else {
             Decimal::ZERO
         }
@@ -372,7 +373,7 @@ impl AvellanedaStoikov {
     }
 
     pub fn update_flow_ratio(&mut self) {
-        self.flow_ratio_long = Self::calc_flow_ratio(&self.flow_ratio_long, &dec!(30_000), &mut self.trade_long_vec);
+        self.flow_ratio_long = Self::calc_flow_ratio(&self.flow_ratio_long, &dec!(0), &mut self.trade_long_vec);
         self.flow_ratio_short = Self::calc_flow_ratio(&self.flow_ratio_short, &dec!(0), &mut self.trade_short_vec);
     }