|
|
@@ -310,9 +310,9 @@ impl Predictor {
|
|
|
// 重置fair数据,用于重新计算幅度
|
|
|
if prev_inventory != self.inventory {
|
|
|
self.fair_price_time_vec.deque.clear();
|
|
|
- self.mid_price_time_vec.deque.clear();
|
|
|
- self.mid_price_long_time_vec.deque.clear();
|
|
|
- self.mid_price_trend_time_vec.deque.clear();
|
|
|
+ // self.mid_price_time_vec.deque.clear();
|
|
|
+ // self.mid_price_long_time_vec.deque.clear();
|
|
|
+ // self.mid_price_trend_time_vec.deque.clear();
|
|
|
}
|
|
|
|
|
|
// 重置资金流计算
|
|
|
@@ -476,20 +476,12 @@ impl Predictor {
|
|
|
if self.mid_rate_signal_close.is_zero() && !self.inventory.is_zero() && mid_rate.abs() > close_activate {
|
|
|
// 多单平仓逻辑
|
|
|
if self.inventory > Decimal::ZERO && mid_rate < Decimal::ZERO {
|
|
|
- if self.profit_point > Decimal::ZERO {
|
|
|
- self.mid_rate_signal_close = mid_rate;
|
|
|
- } else if self.t_diff.is_zero() {
|
|
|
- self.mid_rate_signal_close = mid_rate;
|
|
|
- }
|
|
|
+ self.mid_rate_signal_close = mid_rate;
|
|
|
}
|
|
|
|
|
|
// 空单平仓逻辑
|
|
|
if self.inventory < Decimal::ZERO && mid_rate > Decimal::ZERO {
|
|
|
- if self.profit_point > Decimal::ZERO {
|
|
|
- self.mid_rate_signal_close = mid_rate;
|
|
|
- } else if self.t_diff.is_zero() {
|
|
|
- self.mid_rate_signal_close = mid_rate;
|
|
|
- }
|
|
|
+ self.mid_rate_signal_close = mid_rate;
|
|
|
}
|
|
|
}
|
|
|
// 15秒以后平仓
|
|
|
@@ -519,36 +511,36 @@ impl Predictor {
|
|
|
// info!("----------------------------------------");
|
|
|
// }
|
|
|
// // ============================ 平仓特殊逻辑处理2 =======================
|
|
|
- if self.mid_rate_signal_close.is_zero() && !self.inventory.is_zero() && self.profit_point_vec.len() > 1 {
|
|
|
- let prev_profit_point = self.profit_point_vec[self.profit_point_vec.len() - 2];
|
|
|
- let profit_point = self.profit_point_vec[self.profit_point_vec.len() - 1];
|
|
|
-
|
|
|
- if (prev_profit_point >= Decimal::ZERO && profit_point < Decimal::ZERO) || (prev_profit_point > Decimal::ZERO && profit_point <= Decimal::ZERO) {
|
|
|
- self.mid_rate_signal_close = dec!(-0.12);
|
|
|
-
|
|
|
- info!("----------------------------------------");
|
|
|
- info!("止损逻辑2, 在价格{}处,成本价{},价值={}, p={}。", self.mid_price, self.pos_avg_price, self.pos_avg_price*self.pos_amount, self.profit_point);
|
|
|
- info!("----------------------------------------");
|
|
|
- }
|
|
|
- }
|
|
|
+ // if self.mid_rate_signal_close.is_zero() && !self.inventory.is_zero() && self.profit_point_vec.len() > 1 {
|
|
|
+ // let prev_profit_point = self.profit_point_vec[self.profit_point_vec.len() - 2];
|
|
|
+ // let profit_point = self.profit_point_vec[self.profit_point_vec.len() - 1];
|
|
|
+ //
|
|
|
+ // if (prev_profit_point >= Decimal::ZERO && profit_point < Decimal::ZERO) || (prev_profit_point > Decimal::ZERO && profit_point <= Decimal::ZERO) {
|
|
|
+ // self.mid_rate_signal_close = dec!(-0.12);
|
|
|
+ //
|
|
|
+ // info!("----------------------------------------");
|
|
|
+ // info!("止损逻辑2, 在价格{}处,成本价{},价值={}, p={}。", self.mid_price, self.pos_avg_price, self.pos_avg_price*self.pos_amount, self.profit_point);
|
|
|
+ // info!("----------------------------------------");
|
|
|
+ // }
|
|
|
+ // }
|
|
|
// ============================ 平仓特殊逻辑处理3 =======================
|
|
|
- if self.mid_rate_signal_close.is_zero() && !self.inventory.is_zero() {
|
|
|
- if self.inventory > Decimal::ZERO && self.mid_price < self.mid_price_focus_stop_loss * dec!(0.9995) {
|
|
|
- self.mid_rate_signal_close = dec!(-0.13);
|
|
|
-
|
|
|
- info!("----------------------------------------");
|
|
|
- // info!("止损,参数调整:{} -> {}", prev_open_activate, self.params.open_activate);
|
|
|
- info!("趋势失效止损, 在价格{}处,成本价{},价值={}, p={}。", self.mid_price, self.pos_avg_price, self.pos_avg_price*self.pos_amount, self.profit_point);
|
|
|
- info!("----------------------------------------");
|
|
|
- } else if self.inventory < Decimal::ZERO && self.mid_price > self.mid_price_focus_stop_loss * dec!(1.0005) {
|
|
|
- self.mid_rate_signal_close = dec!(-0.13);
|
|
|
-
|
|
|
- info!("----------------------------------------");
|
|
|
- // info!("止损,参数调整:{} -> {}", prev_open_activate, self.params.open_activate);
|
|
|
- info!("趋势失效止损, 在价格{}处,成本价{},价值={}, p={}。", self.mid_price, self.pos_avg_price, self.pos_avg_price*self.pos_amount, self.profit_point);
|
|
|
- info!("----------------------------------------");
|
|
|
- }
|
|
|
- }
|
|
|
+ // if self.mid_rate_signal_close.is_zero() && !self.inventory.is_zero() {
|
|
|
+ // if self.inventory > Decimal::ZERO && self.mid_price < self.mid_price_focus_stop_loss * dec!(0.9995) {
|
|
|
+ // self.mid_rate_signal_close = dec!(-0.13);
|
|
|
+ //
|
|
|
+ // info!("----------------------------------------");
|
|
|
+ // // info!("止损,参数调整:{} -> {}", prev_open_activate, self.params.open_activate);
|
|
|
+ // info!("趋势失效止损, 在价格{}处,成本价{},价值={}, p={}。", self.mid_price, self.pos_avg_price, self.pos_avg_price*self.pos_amount, self.profit_point);
|
|
|
+ // info!("----------------------------------------");
|
|
|
+ // } else if self.inventory < Decimal::ZERO && self.mid_price > self.mid_price_focus_stop_loss * dec!(1.0005) {
|
|
|
+ // self.mid_rate_signal_close = dec!(-0.13);
|
|
|
+ //
|
|
|
+ // info!("----------------------------------------");
|
|
|
+ // // info!("止损,参数调整:{} -> {}", prev_open_activate, self.params.open_activate);
|
|
|
+ // info!("趋势失效止损, 在价格{}处,成本价{},价值={}, p={}。", self.mid_price, self.pos_avg_price, self.pos_avg_price*self.pos_amount, self.profit_point);
|
|
|
+ // info!("----------------------------------------");
|
|
|
+ // }
|
|
|
+ // }
|
|
|
}
|
|
|
|
|
|
// // 判断价格是否回归
|
|
|
@@ -759,8 +751,8 @@ impl Predictor {
|
|
|
|
|
|
let inventory = self.inventory;
|
|
|
|
|
|
- let (sigma_square, _, _) = if self.mid_price_trend_time_vec.len() > 1 {
|
|
|
- Self::get_real_rate(&self.mid_price_trend_time_vec)
|
|
|
+ let (sigma_square, _, _) = if self.mid_price_time_vec.len() > 1 {
|
|
|
+ Self::get_real_rate(&self.mid_price_time_vec)
|
|
|
} else {
|
|
|
(Decimal::ZERO, Decimal::ZERO, Decimal::ZERO)
|
|
|
};
|