|
|
@@ -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):
|
|
|
"""
|