ソースを参照

100个以内的交易数据不计算money_flow

skyffire 10 ヶ月 前
コミット
8aa935d423
1 ファイル変更14 行追加12 行削除
  1. 14 12
      strategy/src/predictor.rs

+ 14 - 12
strategy/src/predictor.rs

@@ -231,18 +231,20 @@ impl Predictor {
         if !self.inventory.is_zero() {
             self.trade_fixed_vec.push(trade.clone());
 
-            let (bought_sum, sold_sum): (Decimal, Decimal) = self.trade_fixed_vec.iter()
-                .fold((Decimal::ZERO, Decimal::ZERO), |(buy_sum, sell_sum), item| {
-                    if item.size > Decimal::ZERO {
-                        (buy_sum + item.value.abs(), sell_sum)
-                    } else if item.size < Decimal::ZERO {
-                        (buy_sum, sell_sum + item.value.abs())
-                    } else {
-                        (buy_sum, sell_sum)
-                    }
-                });
-            self.error_rate = (bought_sum - sold_sum) / (bought_sum + sold_sum);
-            self.error_rate.rescale(4);
+            if self.trade_fixed_vec.len() > 100 {
+                let (bought_sum, sold_sum): (Decimal, Decimal) = self.trade_fixed_vec.iter()
+                    .fold((Decimal::ZERO, Decimal::ZERO), |(buy_sum, sell_sum), item| {
+                        if item.size > Decimal::ZERO {
+                            (buy_sum + item.value.abs(), sell_sum)
+                        } else if item.size < Decimal::ZERO {
+                            (buy_sum, sell_sum + item.value.abs())
+                        } else {
+                            (buy_sum, sell_sum)
+                        }
+                    });
+                self.error_rate = (bought_sum - sold_sum) / (bought_sum + sold_sum);
+                self.error_rate.rescale(4);
+            }
         }
 
         self.last_price = trade.price;