This commit is contained in:
aaron 2026-02-19 23:33:01 +08:00
parent 111e46b8f3
commit b277166cc0
2 changed files with 17 additions and 9 deletions

View File

@ -151,8 +151,8 @@ STOCK_AGENT_MODEL=deepseek
# 美股智能体配置 # 美股智能体配置
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
# 监控的股票代码(逗号分隔) # 监控的股票代码(逗号分隔)
# 配置策略:科技龙头30% + AI/半导体成长30% + 生物医疗20% + 新能源10% + 金融10% # 配置策略:科技龙头25% + AI/半导体25% + 生物医疗15% + 云计算/网络安全15% + 新能源10% + 金融5% + 其他5%
STOCK_SYMBOLS=AAPL,MSFT,GOOGL,META,AMZN,NVDA,AMD,AVGO,ARM,PLTR,SNOW,LLY,NVO,VRTX,TSLA,ENPH,V,MA,HD,COST STOCK_SYMBOLS=AAPL,MSFT,GOOGL,META,AMZN,NVDA,AMD,AVGO,ARM,PLTR,SNOW,LLY,NVO,VRTX,TSLA,ENPH,V,MA,HD,COST,RKLB,HOOD,DXYZ,GLW,UNTY,CRM,ADBE,INTC,FSLR,CRWD,SHOP,NET,COIN,MSTR
# 分析间隔(秒,美股交易时间内每小时分析一次=3600秒 # 分析间隔(秒,美股交易时间内每小时分析一次=3600秒
STOCK_ANALYSIS_INTERVAL=3600 STOCK_ANALYSIS_INTERVAL=3600
# 触发 LLM 分析的置信度阈值0-1 # 触发 LLM 分析的置信度阈值0-1

View File

@ -69,25 +69,33 @@ class StockAgent:
logger.info("美股智能体已停止") logger.info("美股智能体已停止")
async def _analysis_loop(self): async def _analysis_loop(self):
"""分析循环 - 只在美股交易时间内运行""" """分析循环 - 只在美股交易时间内运行,整点执行"""
while self.running: while self.running:
try: try:
# 计算距离下一个整点的时间
now = datetime.now()
next_hour = now.replace(minute=0, second=0, microsecond=0) + timedelta(hours=1)
wait_seconds = (next_hour - now).total_seconds()
logger.info(f"等待到下一个整点: {next_hour.strftime('%H:%M')} (等待 {int(wait_seconds)} 秒)")
# 等待到整点
await asyncio.sleep(wait_seconds)
# 检查是否在美股交易时间 # 检查是否在美股交易时间
if not self._is_market_hours(): if not self._is_market_hours():
# 不在交易时间,等待 10 分钟后再次检查 logger.debug("非美股交易时间,跳过本次分析")
logger.debug("非美股交易时间,等待中...") # 继续等待下一个整点
await asyncio.sleep(600)
continue continue
# 在交易时间内,分析所有股票 # 在交易时间内,分析所有股票
logger.info(f"开始分析 {len(self.symbols)} 只股票")
for symbol in self.symbols: for symbol in self.symbols:
if not self.running: if not self.running:
break break
await self.analyze_symbol(symbol) await self.analyze_symbol(symbol)
# 等待 1 小时后进行下次分析 logger.info("本次分析完成")
logger.info("本次分析完成,等待 1 小时后进行下次分析...")
await asyncio.sleep(3600)
except Exception as e: except Exception as e:
logger.error(f"分析循环出错: {e}") logger.error(f"分析循环出错: {e}")