|
|
@@ -135,9 +135,9 @@ impl Predictor {
|
|
|
depth_vec: vec![Depth::new(); params.ref_exchange.len()],
|
|
|
fair_price_std_vec: vec![Decimal::ZERO; params.ref_exchange.len()],
|
|
|
fair_price_vec: vec![Decimal::ZERO; params.ref_exchange.len()],
|
|
|
+ price_avg_times_vec: vec![Decimal::ZERO; params.ref_exchange.len()],
|
|
|
+ spread_vec: vec![Decimal::ZERO; params.ref_exchange.len()],
|
|
|
|
|
|
- // 老的队列
|
|
|
- spread_vec: vec![],
|
|
|
trade_long_vec: FixedTimeRangeDeque::new(Self::TRADE_LONG_RANGE_MICROS),
|
|
|
trade_short_vec: FixedTimeRangeDeque::new(Self::TRADE_SHORT_RANGE_MICROS),
|
|
|
profit_point_vec: vec![],
|
|
|
@@ -164,8 +164,6 @@ impl Predictor {
|
|
|
fair_rate_focus_close: Default::default(),
|
|
|
mid_price_focus_close: Default::default(),
|
|
|
|
|
|
- price_avg_times_vec: Default::default(),
|
|
|
-
|
|
|
is_ready: false,
|
|
|
prev_trade_time: Utc::now().timestamp_micros(),
|
|
|
t_diff: Default::default(),
|
|
|
@@ -320,7 +318,7 @@ impl Predictor {
|
|
|
self.price_avg_times_vec[index] = if self.price_avg_times_vec[index].is_zero() {
|
|
|
self.fair_price_vec[index] / self.mid_price
|
|
|
} else {
|
|
|
- self.price_avg_times_vec[index] * dec!(0.9995) + dec!(0.0005) * self.fair_price_std_vec[1] / self.fair_price_std_vec[0]
|
|
|
+ self.price_avg_times_vec[index] * dec!(0.9995) + dec!(0.0005) * self.fair_price_vec[index] / self.mid_price
|
|
|
};
|
|
|
|
|
|
// 合成公平价格
|
|
|
@@ -566,9 +564,11 @@ impl Predictor {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- // if self.fair_price == Decimal::ZERO {
|
|
|
- // return;
|
|
|
- // }
|
|
|
+ for fair_price in &self.fair_price_vec {
|
|
|
+ if fair_price.is_zero() {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
if self.ask_price == Decimal::ZERO {
|
|
|
return;
|