|
|
@@ -52,6 +52,7 @@ pub struct Predictor {
|
|
|
pub bid_delta: Decimal, // δb
|
|
|
|
|
|
pub force_order_time_vec: FixedTimeRangeDeque<ForceOrder>, // 爆仓单队列
|
|
|
+ pub force_order_value: Decimal, // 爆仓单交易量
|
|
|
|
|
|
pub mid_price_time_vec: FixedTimeRangeDeque<Decimal>, // 中间价格队列,
|
|
|
pub mid_price_long_time_vec: FixedTimeRangeDeque<Decimal>, // 中间价格队列,
|
|
|
@@ -126,7 +127,7 @@ impl Predictor {
|
|
|
}
|
|
|
|
|
|
let now = Decimal::from(Utc::now().timestamp_millis());
|
|
|
- if now - prev_save_time < dec!(60000) {
|
|
|
+ if now - prev_save_time < dec!(30000) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
@@ -172,6 +173,7 @@ impl Predictor {
|
|
|
bid_delta: Default::default(),
|
|
|
|
|
|
force_order_time_vec: FixedTimeRangeDeque::new(60 * 1_000_000),
|
|
|
+ force_order_value: 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((params.second_observation_time.to_f64().unwrap() * 1_000_000f64).to_i64().unwrap() * 2),
|
|
|
@@ -292,6 +294,8 @@ impl Predictor {
|
|
|
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();
|
|
|
}
|
|
|
|
|
|
pub async fn update_level(&mut self) {
|
|
|
@@ -755,7 +759,7 @@ impl Predictor {
|
|
|
|
|
|
let inventory = self.inventory;
|
|
|
|
|
|
- let sigma_square: Decimal = self.force_order_time_vec.deque.iter().map(|item| item.value).sum();
|
|
|
+ let sigma_square: Decimal = self.force_order_value;
|
|
|
// let sigma_square = self.error_rate;
|
|
|
|
|
|
let gamma = self.trades_volume_short;
|