|
|
@@ -21,10 +21,9 @@ use global::trace_stack::TraceStack;
|
|
|
use standard::{Account, Market, Order, OrderCommand, Platform, Position, PositionModeEnum, SpecialTicker, Ticker};
|
|
|
use standard::exchange::{Exchange};
|
|
|
use standard::exchange::ExchangeEnum::{BinanceSpot, BinanceSwap, BitgetSpot, BybitSwap, GateSpot, GateSwap, KucoinSwap, OkxSwap};
|
|
|
-use crate::instant_volatility_indicator::InstantVolatilityIndicator;
|
|
|
|
|
|
use crate::model::{LocalPosition, OrderInfo, TokenParam, TraderMsg};
|
|
|
-use crate::predictor_new::PredictorNew;
|
|
|
+use crate::predictor::Predictor;
|
|
|
use crate::strategy::Strategy;
|
|
|
use crate::utils;
|
|
|
use crate::utils::clip;
|
|
|
@@ -93,7 +92,7 @@ pub struct Quant {
|
|
|
pub ref_name: Vec<String>,
|
|
|
pub trade_name: String,
|
|
|
pub ready: i8,
|
|
|
- pub predictor: PredictorNew,
|
|
|
+ pub predictor: Predictor,
|
|
|
pub market: Market,
|
|
|
pub platform_rest: Box<dyn Platform + Send + Sync>,
|
|
|
// 市场最优买卖价
|
|
|
@@ -164,7 +163,7 @@ impl Quant {
|
|
|
ref_name: Default::default(),
|
|
|
trade_name: "".to_string(),
|
|
|
ready: 0,
|
|
|
- predictor: PredictorNew{
|
|
|
+ predictor: Predictor{
|
|
|
loop_count: 0,
|
|
|
market_info_list: vec![],
|
|
|
mid_price_list: vec![],
|
|
|
@@ -174,15 +173,6 @@ impl Quant {
|
|
|
alpha: vec![],
|
|
|
gamma: Default::default(),
|
|
|
avg_spread_list: vec![],
|
|
|
- transaction_prices: vec![],
|
|
|
- variance: Default::default(),
|
|
|
- balance_value: Default::default(),
|
|
|
- max_spread: Default::default(),
|
|
|
- min_spread: Default::default(),
|
|
|
- rl_num: Default::default(),
|
|
|
- ira: Default::default(),
|
|
|
- max_position_value: Default::default(),
|
|
|
- vol: InstantVolatilityIndicator::new(1, 1),
|
|
|
},
|
|
|
market: Market {
|
|
|
symbol: symbol.clone(),
|
|
|
@@ -275,12 +265,9 @@ impl Quant {
|
|
|
}
|
|
|
}
|
|
|
info!("价格系数:{:?}", price_alpha);
|
|
|
- quant_obj.predictor = PredictorNew::new(quant_obj.ref_name.len(), params.max_spread, params.min_spread, params.rl_num, params.max_position_value, params.ira)
|
|
|
+ quant_obj.predictor = Predictor::new(quant_obj.ref_name.len())
|
|
|
.alpha(price_alpha)
|
|
|
.gamma(params.gamma);
|
|
|
- // quant_obj.predictor = Predictor::new(quant_obj.ref_name.len())
|
|
|
- // .alpha(price_alpha)
|
|
|
- // .gamma(params.gamma);
|
|
|
|
|
|
return quant_obj;
|
|
|
}
|
|
|
@@ -709,12 +696,12 @@ impl Quant {
|
|
|
// if spread < self.predictor.min_spread || self.predictor.min_spread == Decimal::ZERO{
|
|
|
// self.predictor.min_spread = spread;
|
|
|
// }
|
|
|
- // 只用第一参考交易所最佳买卖价的中间价
|
|
|
- if name == self.ref_name[0] {
|
|
|
- self.predictor.market_update(data.mid_price.clone());
|
|
|
- // 查看进度
|
|
|
- self.predictor.vol.get_process();
|
|
|
- }
|
|
|
+ // // 只用第一参考交易所最佳买卖价的中间价
|
|
|
+ // if name == self.ref_name[0] {
|
|
|
+ // self.predictor.market_update(data.mid_price.clone());
|
|
|
+ // // 查看进度
|
|
|
+ // self.predictor.vol.get_process();
|
|
|
+ // }
|
|
|
self.tickers.insert(name, data);
|
|
|
|
|
|
|
|
|
@@ -764,8 +751,8 @@ impl Quant {
|
|
|
let ap = self.trade_msg.market[ASK_PRICE_INDEX];
|
|
|
let mp = (bp + ap) * dec!(0.5);
|
|
|
// 更新持仓价值
|
|
|
- self.predictor.balance_value = self.trade_msg.cash * mp;
|
|
|
- let ref_price: Vec<Vec<Decimal>> = self.predictor.get_ref_price();
|
|
|
+ // self.predictor.balance_value = self.trade_msg.cash * mp;
|
|
|
+ let ref_price: Vec<Vec<Decimal>> = self.predictor.get_ref_price(&ref_tickers);
|
|
|
if ref_price.len() == 0{
|
|
|
return;
|
|
|
}
|