|
|
@@ -593,12 +593,17 @@ impl Strategy {
|
|
|
|
|
|
// 判断是否在本地挂单表中
|
|
|
if let Some(order) = order_some {
|
|
|
- let is_side_equals = (order.side == "kk" && self.side == "short") || (order.side == "kd" && self.side == "long");
|
|
|
+ let is_side_error = (order.side == "kk" && self.side == "long") || (order.side == "kd" && self.side == "short");
|
|
|
|
|
|
- // 如果订单创建时间大于100ms,或有相反方向订单,才能有撤单操作
|
|
|
- if is_side_equals || self.local_time - order.create_time < 100 {
|
|
|
+ // 如果订单创建时间大于100ms,才能有撤单操作
|
|
|
+ if self.local_time - order.create_time < 100 {
|
|
|
need_limit_cancel = false;
|
|
|
}
|
|
|
+
|
|
|
+ // 如果方向有误,直接撤单
|
|
|
+ if is_side_error {
|
|
|
+ need_limit_cancel = true;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if need_limit_cancel {
|
|
|
@@ -1128,7 +1133,7 @@ impl Strategy {
|
|
|
|
|
|
// debug!(?self.post_side);
|
|
|
// 挂多单
|
|
|
- if self.post_side >= 0 && self.side == "long".to_string() {
|
|
|
+ if self.post_side >= 0 && self.side != "short".to_string() {
|
|
|
// debug!(?buy_price_list);
|
|
|
if buy_price_list.len() == 0 {
|
|
|
let mut target_buy_price = (long_upper + long_lower) * dec!(0.5);
|
|
|
@@ -1155,7 +1160,7 @@ impl Strategy {
|
|
|
}
|
|
|
}
|
|
|
// 挂空单
|
|
|
- if self.post_side <= 0 && self.side == "short".to_string() {
|
|
|
+ if self.post_side <= 0 && self.side != "long".to_string() {
|
|
|
// debug!(?sell_price_list);
|
|
|
if sell_price_list.len() == 0 {
|
|
|
let mut target_sell_price = (short_lower + short_upper) * dec!(0.5);
|