Selaa lähdekoodia

refactor(strategy): 调整交易策略中数据处理顺序

将价格数据记录和状态处理逻辑移到账户信息更新之前,使流程更符合逻辑顺序
skyfffire 3 päivää sitten
vanhempi
commit
b880ca9ace
1 muutettua tiedostoa jossa 12 lisäystä ja 12 poistoa
  1. 12 12
      src/leadlag/strategy.py

+ 12 - 12
src/leadlag/strategy.py

@@ -261,6 +261,18 @@ class TradingStrategy:
         # 如果不是目标交易对,直接返回
         if symbol != self.target_symbol:
             return
+                
+        # 记录价格数据到数据库
+        await self._record_price_data(market_data)
+        
+        # 基于账户信息更新 current_position 和状态
+        await self._update_position_and_state(market_data)
+
+        # 根据当前状态执行相应逻辑
+        if self.state == StrategyState.IDLE_MONITORING:
+            await self._handle_idle_monitoring(market_data)
+        elif self.state == StrategyState.CLOSING_WITH_LIMIT_ORDER:
+            await self._handle_closing_with_limit_order(market_data)
             
         # 更新账户信息,但至少间隔1秒
         current_time = time.time()
@@ -276,18 +288,6 @@ class TradingStrategy:
             except Exception as e:
                 logger.error(f"查询账户信息时出错: {str(e)}")
                 return
-                
-        # 记录价格数据到数据库
-        await self._record_price_data(market_data)
-        
-        # 基于账户信息更新 current_position 和状态
-        await self._update_position_and_state(market_data)
-
-        # 根据当前状态执行相应逻辑
-        if self.state == StrategyState.IDLE_MONITORING:
-            await self._handle_idle_monitoring(market_data)
-        elif self.state == StrategyState.CLOSING_WITH_LIMIT_ORDER:
-            await self._handle_closing_with_limit_order(market_data)
     
     async def _update_position_and_state(self, market_data):
         """