|
@@ -51,8 +51,6 @@ pub struct Predictor {
|
|
|
pub bid_delta: Decimal, // δb
|
|
pub bid_delta: Decimal, // δb
|
|
|
|
|
|
|
|
pub mid_price_time_vec: FixedTimeRangeDeque<Decimal>, // 中间价格队列,
|
|
pub mid_price_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表示参考所
|
|
pub fair_price_vec: Vec<Decimal>, // 公平价格列表,0表示做市所,1表示参考所
|
|
|
pub fair_price: Decimal, // 公平价格
|
|
pub fair_price: Decimal, // 公平价格
|
|
|
pub fair_price_ema_short: Decimal, // 公平价格_ema
|
|
pub fair_price_ema_short: Decimal, // 公平价格_ema
|
|
@@ -121,7 +119,7 @@ impl Predictor {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
let now = Decimal::from(Utc::now().timestamp_millis());
|
|
let now = Decimal::from(Utc::now().timestamp_millis());
|
|
|
- if now - prev_save_time < dec!(60000) {
|
|
|
|
|
|
|
+ if now - prev_save_time < dec!(30000) {
|
|
|
continue;
|
|
continue;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -165,8 +163,6 @@ impl Predictor {
|
|
|
ask_delta: Default::default(),
|
|
ask_delta: Default::default(),
|
|
|
bid_delta: Default::default(),
|
|
bid_delta: Default::default(),
|
|
|
|
|
|
|
|
- fair_price_time_vec: FixedTimeRangeDeque::new((params.second_observation_time.to_f64().unwrap() * 1_000_000f64).to_i64().unwrap()),
|
|
|
|
|
- fair_price_long_time_vec: FixedTimeRangeDeque::new(5 * 60_000_000),
|
|
|
|
|
mid_price_time_vec: FixedTimeRangeDeque::new(100_000),
|
|
mid_price_time_vec: FixedTimeRangeDeque::new(100_000),
|
|
|
fair_price: Default::default(),
|
|
fair_price: Default::default(),
|
|
|
fair_price_ema_short: Default::default(),
|
|
fair_price_ema_short: Default::default(),
|
|
@@ -301,11 +297,6 @@ impl Predictor {
|
|
|
self.prev_trade_time = Utc::now().timestamp_micros();
|
|
self.prev_trade_time = Utc::now().timestamp_micros();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 重置fair数据,用于重新计算幅度
|
|
|
|
|
- if prev_inventory != self.inventory {
|
|
|
|
|
- self.fair_price_time_vec.deque.clear();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
// 重置资金流计算
|
|
// 重置资金流计算
|
|
|
if prev_inventory != self.inventory && self.inventory.is_zero() {
|
|
if prev_inventory != self.inventory && self.inventory.is_zero() {
|
|
|
self.trade_fixed_vec.clear();
|
|
self.trade_fixed_vec.clear();
|
|
@@ -513,12 +504,7 @@ impl Predictor {
|
|
|
|
|
|
|
|
let inventory = self.inventory;
|
|
let inventory = self.inventory;
|
|
|
|
|
|
|
|
- let sigma_square = if self.fair_price_time_vec.len() > 1 {
|
|
|
|
|
- Self::get_real_rate(&self.fair_price_time_vec)
|
|
|
|
|
- } else {
|
|
|
|
|
- Decimal::ZERO
|
|
|
|
|
- };
|
|
|
|
|
- // let sigma_square = self.error_rate;
|
|
|
|
|
|
|
+ let sigma_square = self.fair_price - self.mid_price;
|
|
|
|
|
|
|
|
let gamma = self.fair_rate_focus_open;
|
|
let gamma = self.fair_rate_focus_open;
|
|
|
let kappa = self.fair_rate_focus_close;
|
|
let kappa = self.fair_rate_focus_close;
|