|
|
@@ -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 {
|