Browse Source

1. 修复bitget下单后不返回orderId的问题
2. 修复bybit偶尔接收不到仓位推送的问题

skyffire 9 months ago
parent
commit
c6006d17e0
2 changed files with 10 additions and 0 deletions
  1. 5 0
      standard/src/bitget_swap.rs
  2. 5 0
      strategy/src/core.rs

+ 5 - 0
standard/src/bitget_swap.rs

@@ -487,6 +487,11 @@ impl Platform for BitgetSwap {
         }
 
         let res_data_json = res_data.data;
+
+        if res_data_json["orderId"].is_null() {
+            return Err(Error::new(ErrorKind::Other, res_data_json.to_string()));
+        }
+
         let result = Order {
             id: res_data_json["orderId"].as_str().unwrap().to_string(),
             custom_id: res_data_json["clientOid"].as_str().unwrap().to_string(),

+ 5 - 0
strategy/src/core.rs

@@ -492,6 +492,11 @@ impl Core {
                         }
                         // info!("成交单耗时数据:{}", time_record.to_string());
                         info!("更新推算仓位 {:?}", self.local_position_by_orders);
+
+                        // 有的交易所空仓后半天不推仓位……
+                        if self.local_position_by_orders.short_pos == self.local_position_by_orders.long_pos {
+                            self.predictor.on_inventory(&Decimal::ZERO, &Decimal::ZERO, &self.strategy.min_amount_value).await;
+                        }
                         // 本地计算利润
                         self._print_local_trades_summary();
                         // 打印各类信息