|
@@ -960,31 +960,31 @@ impl Core {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 仓位异常风控,只在合约模式下执行
|
|
// 仓位异常风控,只在合约模式下执行
|
|
|
- if !self.exchange.contains("spot") {
|
|
|
|
|
- let local_position_by_orders_pos = (self.local_position_by_orders.long_pos - self.local_position_by_orders.short_pos).abs();
|
|
|
|
|
- let local_position_pos = (self.local_position.long_pos - self.local_position.short_pos).abs();
|
|
|
|
|
-
|
|
|
|
|
- if local_position_by_orders_pos != local_position_pos {
|
|
|
|
|
- warn!("{}发现仓位异常", self.params.account_name);
|
|
|
|
|
- warn!(?self.local_position_by_orders, ?self.local_position);
|
|
|
|
|
- self.position_check_series.push(1);
|
|
|
|
|
- } else {
|
|
|
|
|
- self.position_check_series.push(0);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // self.position_check_series长度限制
|
|
|
|
|
- if self.position_check_series.len() > 6 {
|
|
|
|
|
- self.position_check_series.remove(0);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // 连续不符合判定
|
|
|
|
|
- if self.position_check_series.iter().sum::<i8>() >= 6 {
|
|
|
|
|
- let exit_msg = format!("{} 合约连续检查本地仓位和推算仓位不符合,退出。", self.params.account_name);
|
|
|
|
|
- warn!(exit_msg);
|
|
|
|
|
- self.exit_msg = exit_msg;
|
|
|
|
|
- self.stop().await;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // if !self.exchange.contains("spot") {
|
|
|
|
|
+ // let local_position_by_orders_pos = (self.local_position_by_orders.long_pos - self.local_position_by_orders.short_pos).abs();
|
|
|
|
|
+ // let local_position_pos = (self.local_position.long_pos - self.local_position.short_pos).abs();
|
|
|
|
|
+ //
|
|
|
|
|
+ // if local_position_by_orders_pos != local_position_pos {
|
|
|
|
|
+ // warn!("{}发现仓位异常", self.params.account_name);
|
|
|
|
|
+ // warn!(?self.local_position_by_orders, ?self.local_position);
|
|
|
|
|
+ // self.position_check_series.push(1);
|
|
|
|
|
+ // } else {
|
|
|
|
|
+ // self.position_check_series.push(0);
|
|
|
|
|
+ // }
|
|
|
|
|
+ //
|
|
|
|
|
+ // // self.position_check_series长度限制
|
|
|
|
|
+ // if self.position_check_series.len() > 6 {
|
|
|
|
|
+ // self.position_check_series.remove(0);
|
|
|
|
|
+ // }
|
|
|
|
|
+ //
|
|
|
|
|
+ // // 连续不符合判定
|
|
|
|
|
+ // if self.position_check_series.iter().sum::<i8>() >= 6 {
|
|
|
|
|
+ // let exit_msg = format!("{} 合约连续检查本地仓位和推算仓位不符合,退出。", self.params.account_name);
|
|
|
|
|
+ // warn!(exit_msg);
|
|
|
|
|
+ // self.exit_msg = exit_msg;
|
|
|
|
|
+ // self.stop().await;
|
|
|
|
|
+ // }
|
|
|
|
|
+ // }
|
|
|
|
|
|
|
|
// 下单异常风控
|
|
// 下单异常风控
|
|
|
if self.strategy.total_amount == Decimal::ZERO {
|
|
if self.strategy.total_amount == Decimal::ZERO {
|