|
|
@@ -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) {
|