update
This commit is contained in:
parent
15add26b15
commit
2f246491e9
@ -40,8 +40,24 @@ class CryptoAgent:
|
|||||||
|
|
||||||
logger.info(f"加密货币智能体初始化完成,监控交易对: {self.symbols}")
|
logger.info(f"加密货币智能体初始化完成,监控交易对: {self.symbols}")
|
||||||
|
|
||||||
|
def _get_seconds_until_next_5min(self) -> int:
|
||||||
|
"""计算距离下一个5分钟整点的秒数"""
|
||||||
|
now = datetime.now()
|
||||||
|
current_minute = now.minute
|
||||||
|
current_second = now.second
|
||||||
|
|
||||||
|
# 计算下一个5的倍数分钟
|
||||||
|
minutes_past = current_minute % 5
|
||||||
|
if minutes_past == 0 and current_second == 0:
|
||||||
|
# 刚好在整点,立即执行
|
||||||
|
return 0
|
||||||
|
minutes_to_wait = 5 - minutes_past if minutes_past > 0 else 5
|
||||||
|
seconds_to_wait = minutes_to_wait * 60 - current_second
|
||||||
|
|
||||||
|
return seconds_to_wait
|
||||||
|
|
||||||
async def run(self):
|
async def run(self):
|
||||||
"""主运行循环"""
|
"""主运行循环 - 在5的倍数分钟执行"""
|
||||||
self.running = True
|
self.running = True
|
||||||
logger.info("加密货币智能体开始运行...")
|
logger.info("加密货币智能体开始运行...")
|
||||||
|
|
||||||
@ -49,16 +65,27 @@ class CryptoAgent:
|
|||||||
await self.feishu.send_text(
|
await self.feishu.send_text(
|
||||||
f"🚀 加密货币智能体已启动\n"
|
f"🚀 加密货币智能体已启动\n"
|
||||||
f"监控交易对: {', '.join(self.symbols)}\n"
|
f"监控交易对: {', '.join(self.symbols)}\n"
|
||||||
f"分析间隔: {self.analysis_interval}秒"
|
f"运行时间: 每5分钟整点 (:00, :05, :10, ...)"
|
||||||
)
|
)
|
||||||
|
|
||||||
while self.running:
|
while self.running:
|
||||||
try:
|
try:
|
||||||
|
# 等待到下一个5分钟整点
|
||||||
|
wait_seconds = self._get_seconds_until_next_5min()
|
||||||
|
if wait_seconds > 0:
|
||||||
|
next_run = datetime.now() + timedelta(seconds=wait_seconds)
|
||||||
|
logger.info(f"等待 {wait_seconds} 秒,下次运行时间: {next_run.strftime('%H:%M:%S')}")
|
||||||
|
await asyncio.sleep(wait_seconds)
|
||||||
|
|
||||||
|
# 执行分析
|
||||||
|
run_time = datetime.now()
|
||||||
|
logger.info(f"=== 开始分析 [{run_time.strftime('%H:%M:%S')}] ===")
|
||||||
|
|
||||||
for symbol in self.symbols:
|
for symbol in self.symbols:
|
||||||
await self.analyze_symbol(symbol)
|
await self.analyze_symbol(symbol)
|
||||||
|
|
||||||
# 等待下一次分析
|
# 等待几秒确保不会在同一分钟内重复执行
|
||||||
await asyncio.sleep(self.analysis_interval)
|
await asyncio.sleep(2)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"分析循环出错: {e}")
|
logger.error(f"分析循环出错: {e}")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user