|
|
@@ -56,7 +56,7 @@ pub struct Predictor {
|
|
|
|
|
|
pub mid_price_time_vec: FixedTimeRangeDeque<Decimal>, // 中间价格队列,
|
|
|
pub mid_price_long_time_vec: FixedTimeRangeDeque<Decimal>, // 中间价格队列,
|
|
|
- pub mid_price_trend_time_vec: FixedTimeRangeDeque<Decimal>, // 中间价格队列,
|
|
|
+ pub mid_price_trend_time_vec: FixedTimeRangeDeque<Decimal>, // 中间价格队列,
|
|
|
pub fair_price_time_vec: FixedTimeRangeDeque<Decimal>, // 公平价格队列,
|
|
|
pub fair_price_long_time_vec: FixedTimeRangeDeque<Decimal>, // 公平价格队列,
|
|
|
pub fair_price_vec: Vec<Decimal>, // 公平价格列表,0表示做市所,1表示参考所
|
|
|
@@ -255,8 +255,6 @@ impl Predictor {
|
|
|
return;
|
|
|
}
|
|
|
self.processor().await;
|
|
|
-
|
|
|
- self.force_order_value = self.force_order_time_vec.deque.iter().map(|item| item.value).sum();
|
|
|
}
|
|
|
|
|
|
pub async fn on_trade(&mut self, trade: &Trade, _index: usize) {
|
|
|
@@ -285,19 +283,19 @@ impl Predictor {
|
|
|
}
|
|
|
|
|
|
pub async fn on_force_order(&mut self, force_order: ForceOrder) {
|
|
|
- match self.force_order_time_vec.deque.iter().last() {
|
|
|
- Some(last) => {
|
|
|
- // 有的交易所会重复推,这样做个容错处理
|
|
|
- if force_order.time != last.time && force_order.value != last.value {
|
|
|
- self.force_order_time_vec.push_back(force_order);
|
|
|
- }
|
|
|
- }
|
|
|
- None => {
|
|
|
- self.force_order_time_vec.push_back(force_order);
|
|
|
- }
|
|
|
- }
|
|
|
+ // match self.force_order_time_vec.deque.iter().last() {
|
|
|
+ // Some(last) => {
|
|
|
+ // // 有的交易所会重复推,这样做个容错处理
|
|
|
+ // if force_order.time != last.time && force_order.value != last.value {
|
|
|
+ // self.force_order_time_vec.push_back(force_order);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // None => {
|
|
|
+ // self.force_order_time_vec.push_back(force_order);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
|
|
|
- self.force_order_value = self.force_order_time_vec.deque.iter().map(|item| item.value).sum();
|
|
|
+ self.force_order_value = force_order.value.clone();
|
|
|
}
|
|
|
|
|
|
pub async fn update_level(&mut self) {
|
|
|
@@ -746,9 +744,9 @@ impl Predictor {
|
|
|
let fair_price = Self::DONT_VIEW;
|
|
|
|
|
|
let (spread, spread_max, spread_min) = if self.mid_price_trend_time_vec.len() > 1 {
|
|
|
- let (_, max, min) = Self::get_real_rate(&self.mid_price_trend_time_vec);
|
|
|
+ let (rate, _, _) = Self::get_real_rate(&self.mid_price_trend_time_vec);
|
|
|
|
|
|
- (self.mid_price, max, min)
|
|
|
+ (rate, Self::DONT_VIEW, Self::DONT_VIEW)
|
|
|
} else {
|
|
|
(self.mid_price, Self::DONT_VIEW, Self::DONT_VIEW)
|
|
|
};
|