|
|
@@ -47,6 +47,7 @@ pub struct Predictor {
|
|
|
|
|
|
pub mid_price_time_vec: FixedTimeRangeDeque<Decimal>, // 中间价格队列,100ms以内的所有中间价格
|
|
|
pub fair_price_time_vec: FixedTimeRangeDeque<Decimal>, // 公平价格队列,10ms以内的所有公平价格
|
|
|
+ pub fair_price_long_time_vec: FixedTimeRangeDeque<Decimal>, // 公平价格队列,10ms以内的所有公平价格
|
|
|
pub spread_sma_1000_time_vec: FixedTimeRangeDeque<Decimal>, // spread队列,10ms以内的所有spread_sma_1000
|
|
|
pub fair_price_vec: Vec<Decimal>, // 公平价格列表,0表示做市所,1表示参考所
|
|
|
pub fair_price: Decimal, // 预定价格
|
|
|
@@ -163,6 +164,7 @@ impl Predictor {
|
|
|
|
|
|
spread_sma_1000_time_vec: FixedTimeRangeDeque::new(10_000),
|
|
|
fair_price_time_vec: FixedTimeRangeDeque::new(10_000_000),
|
|
|
+ fair_price_long_time_vec: FixedTimeRangeDeque::new(2 * 60_000_000),
|
|
|
mid_price_time_vec: FixedTimeRangeDeque::new(100_000),
|
|
|
fair_price: Default::default(),
|
|
|
fair_rate_focus_open: Default::default(),
|
|
|
@@ -381,11 +383,11 @@ impl Predictor {
|
|
|
if !self.fair_rate_focus_close.is_zero() {
|
|
|
let focus_rate = (self.fair_price - self.fair_price_focus_close) / self.fair_price_focus_close;
|
|
|
|
|
|
- if self.fair_price_focus_close > Decimal::ZERO && focus_rate < Decimal::NEGATIVE_ONE * self.params.close_activate / Decimal::TWO {
|
|
|
+ if self.fair_rate_focus_close > Decimal::ZERO && focus_rate < Decimal::NEGATIVE_ONE * self.params.close_activate / Decimal::TWO {
|
|
|
self.fair_rate_focus_close = Decimal::ZERO;
|
|
|
}
|
|
|
|
|
|
- if self.fair_price_focus_close < Decimal::ZERO && focus_rate > self.params.close_activate / Decimal::TWO {
|
|
|
+ if self.fair_rate_focus_close < Decimal::ZERO && focus_rate > self.params.close_activate / Decimal::TWO {
|
|
|
self.fair_rate_focus_close = Decimal::ZERO;
|
|
|
}
|
|
|
}
|