瀏覽代碼

使用处理之后的公平价下单平仓

skyffire 9 月之前
父節點
當前提交
98a8cf9876
共有 1 個文件被更改,包括 9 次插入8 次删除
  1. 9 8
      strategy/src/predictor.rs

+ 9 - 8
strategy/src/predictor.rs

@@ -250,14 +250,6 @@ impl Predictor {
         self.fair_price_vec[index] = a1.price * b1.value / total + b1.price * a1.value / total;
         self.fair_price_vec[index].rescale(self.mid_price.scale());
 
-        let fair_price_sum: Decimal = self.fair_price_vec.iter().sum();
-        let fair_price_count = self.fair_price_vec.iter()
-            .filter(|&&value| value != Decimal::new(0, 0)) // 过滤掉0
-            .count();
-        if fair_price_count != 0 {
-            self.fair_price = fair_price_sum / Decimal::from(fair_price_count);
-        }
-
         // 求价格倍率
         self.price_avg_times_vec[index] = if self.price_avg_times_vec[index].is_zero() {
             self.fair_price_vec[index] / self.mid_price
@@ -280,6 +272,15 @@ impl Predictor {
         }
         self.signal = self.signal / self.params.min_spread;
         self.signal.rescale(0);
+
+        // 生成最终用于挂单的公平价格
+        let fair_price_sum: Decimal = self.fair_price_std_vec.iter().sum();
+        let fair_price_count = self.fair_price_std_vec.iter()
+            .filter(|&&value| value != Decimal::new(0, 0)) // 过滤掉0
+            .count();
+        if fair_price_count != 0 {
+            self.fair_price = fair_price_sum / Decimal::from(fair_price_count);
+        }
     }
 
     pub async fn update_delta(&mut self) {