|
|
@@ -1,7 +1,6 @@
|
|
|
|
|
|
use rust_decimal::prelude::*;
|
|
|
use rust_decimal_macros::dec;
|
|
|
-use tracing::{debug};
|
|
|
use global::public_params;
|
|
|
use crate::instant_volatility_indicator::InstantVolatilityIndicator;
|
|
|
|
|
|
@@ -86,11 +85,11 @@ impl PredictorNew {
|
|
|
let ref_bid_price = last_market_info[public_params::LENGTH*(1+ref_index)+public_params::BID_PRICE_INDEX];
|
|
|
let ref_ask_price = last_market_info[public_params::LENGTH*(1+ref_index)+public_params::ASK_PRICE_INDEX];
|
|
|
let ref_mid_price = (ref_bid_price + ref_ask_price) * dec!(0.5);
|
|
|
- debug!(?ref_bid_price, ?ref_ask_price, ?ref_mid_price);
|
|
|
+ // debug!(?ref_bid_price, ?ref_ask_price, ?ref_mid_price);
|
|
|
// 依照交易所次序添加到ref_mid_price_per_exchange中
|
|
|
ref_mid_price_per_exchange.push(ref_mid_price);
|
|
|
}
|
|
|
- debug!(?ref_mid_price_per_exchange);
|
|
|
+ // debug!(?ref_mid_price_per_exchange);
|
|
|
let first_price = ref_mid_price_per_exchange[0].clone();
|
|
|
self.ref_mid_price_per_exchange_per_frame.push(ref_mid_price_per_exchange);
|
|
|
|
|
|
@@ -249,7 +248,8 @@ impl PredictorNew {
|
|
|
// }
|
|
|
pub fn get_ref_price(&mut self) -> Vec<Vec<Decimal>>{
|
|
|
let mut ref_price_list = Vec::new();
|
|
|
- let std = self.vol.processing_calculation();
|
|
|
+ // let std = self.vol.processing_calculation();
|
|
|
+ let std = self.variance;
|
|
|
if std == Decimal::ZERO {
|
|
|
return Vec::new();
|
|
|
}
|
|
|
@@ -292,14 +292,14 @@ mod tests {
|
|
|
fn predictor_build_test() {
|
|
|
let mut stdout = io::stdout();
|
|
|
|
|
|
- let predictor1 = PredictorNew::new(2, Default::default(), Default::default(), Default::default(), Default::default())
|
|
|
+ let predictor1 = PredictorNew::new(2, Default::default(), Default::default(), Default::default(), Default::default(), Decimal::ONE)
|
|
|
.alpha(vec![dec!(0.99); 100])
|
|
|
.gamma(dec!(0.8));
|
|
|
writeln!(stdout, "predictor1:").unwrap();
|
|
|
writeln!(stdout, "{:?}", predictor1).unwrap();
|
|
|
writeln!(stdout, "").unwrap();
|
|
|
|
|
|
- let predictor2 = PredictorNew::new(2, Default::default(), Default::default(), Default::default(), Default::default());
|
|
|
+ let predictor2 = PredictorNew::new(2, Default::default(), Default::default(), Default::default(), Default::default(), Decimal::ONE);
|
|
|
writeln!(stdout, "predictor2:").unwrap();
|
|
|
writeln!(stdout, "{:?}", predictor2).unwrap();
|
|
|
writeln!(stdout, "").unwrap();
|
|
|
@@ -307,7 +307,7 @@ mod tests {
|
|
|
|
|
|
#[test]
|
|
|
fn market_info_handler_test() {
|
|
|
- let mut predictor = PredictorNew::new(1, Default::default(), Default::default(), Default::default(), Default::default());
|
|
|
+ let mut predictor = PredictorNew::new(1, Default::default(), Default::default(), Default::default(), Default::default(), Decimal::ONE);
|
|
|
let market_info_0 = vec![dec!(0.99), dec!(1.0), dec!(0.89), dec!(0.79), dec!(0.99), dec!(1.0), dec!(0.89), dec!(0.79), dec!(0.89), dec!(0.79), dec!(0.99), dec!(1.0), dec!(0.89), dec!(0.79)];
|
|
|
predictor.market_info_handler(&market_info_0);
|
|
|
let market_info_1 = vec![dec!(0.98), dec!(0.99), dec!(0.56), dec!(0.49), dec!(0.99), dec!(1.0), dec!(0.89), dec!(0.79), dec!(0.89), dec!(0.79), dec!(0.99), dec!(1.0), dec!(0.89), dec!(0.79)];
|
|
|
@@ -316,7 +316,7 @@ mod tests {
|
|
|
|
|
|
#[test]
|
|
|
fn get_ref_price_test() {
|
|
|
- let mut predictor = PredictorNew::new(1, Default::default(), Default::default(), Default::default(), Default::default())
|
|
|
+ let mut predictor = PredictorNew::new(1, Default::default(), Default::default(), Default::default(), Default::default(), Decimal::ONE)
|
|
|
.alpha(vec![dec!(0.99); 100])
|
|
|
.gamma(dec!(0.8));
|
|
|
predictor.balance_value = Decimal::from_str("0.5").unwrap();
|