Browse Source

撤单逻辑改的与as一样。

skyffire 9 months ago
parent
commit
d1ae2bd442
1 changed files with 4 additions and 4 deletions
  1. 4 4
      strategy/src/strategy.rs

+ 4 - 4
strategy/src/strategy.rs

@@ -400,7 +400,7 @@ impl Strategy {
         // let close = self.trade_close_dist;
         // let close = self.trade_close_dist;
 
 
         // 平仓相关
         // 平仓相关
-        let close_avoid = dec!(0.0001);
+        let close_avoid = min(dec!(0.0005), predictor.params.close * dec!(0.05));
         self.close_dist = vec![
         self.close_dist = vec![
             predictor.optimal_bid_price * (Decimal::ONE + close_avoid),                   // buy upper
             predictor.optimal_bid_price * (Decimal::ONE + close_avoid),                   // buy upper
             predictor.optimal_bid_price * (Decimal::ONE - close_avoid),                   // buy lower
             predictor.optimal_bid_price * (Decimal::ONE - close_avoid),                   // buy lower
@@ -410,7 +410,7 @@ impl Strategy {
         // debug!(?mp, ?buy_start, ?sell_start, ?avoid, ?close_dist);
         // debug!(?mp, ?buy_start, ?sell_start, ?avoid, ?close_dist);
 
 
         // 开仓相关
         // 开仓相关
-        let open_avoid = dec!(0.0001);
+        let open_avoid = min(dec!(0.001), predictor.params.open * dec!(0.05));
         // 用于判断价格是否出界
         // 用于判断价格是否出界
         self.open_dist = vec![
         self.open_dist = vec![
             predictor.optimal_bid_price * (Decimal::ONE + open_avoid),                   // buy upper
             predictor.optimal_bid_price * (Decimal::ONE + open_avoid),                   // buy upper
@@ -869,7 +869,7 @@ impl Strategy {
                 // if (self.local_time - order.local_time <= 500) && (order.price <= long_upper && order.price >= long_lower) {
                 // if (self.local_time - order.local_time <= 500) && (order.price <= long_upper && order.price >= long_lower) {
                 // if predictor.bid_price == order.price {
                 // if predictor.bid_price == order.price {
                 // if self.local_time - order.local_time <= 500 {
                 // if self.local_time - order.local_time <= 500 {
-                if self.local_time - order.local_time <= 500 && predictor.bid_delta != dec!(-2) && (order.price <= long_upper && order.price >= long_lower) {
+                if predictor.bid_delta != dec!(-2) && (order.price <= long_upper && order.price >= long_lower) {
                     continue
                     continue
                 }
                 }
                 command.cancel.insert(key, value);
                 command.cancel.insert(key, value);
@@ -880,7 +880,7 @@ impl Strategy {
                 // if order.price >= short_lower && order.price <= short_upper {
                 // if order.price >= short_lower && order.price <= short_upper {
                 // if predictor.ask_price == order.price {
                 // if predictor.ask_price == order.price {
                 // if self.local_time - order.local_time <= 500 {
                 // if self.local_time - order.local_time <= 500 {
-                if self.local_time - order.local_time <= 500 && predictor.ask_delta != dec!(-2) && (order.price >= short_lower && order.price <= short_upper) {
+                if predictor.ask_delta != dec!(-2) && (order.price >= short_lower && order.price <= short_upper) {
                     continue
                     continue
                 }
                 }
                 // debug!(?key, ?order.price, ?short_lower, ?short_upper);
                 // debug!(?key, ?order.price, ?short_lower, ?short_upper);