Hermes Agent自动化AI Agent量化

AI 自动化实战:用 Hermes Agent 替代重复劳动


为什么要自动化

做量化交易,最消耗时间的是不是策略研究,而是这些重复劳动:

任务频率手动耗时
下载全市场日线数据每天5-10 分钟
运行策略回测每周15-30 分钟
生成投资日报每天20-40 分钟
检查系统健康(磁盘、数据完整性)每天5 分钟
同步数据到数据库每天10 分钟

加起来每天 40-60 分钟——一个月就是 20 小时。用 Hermes Agent 自动化后,这些任务全部在后台自动完成,你只需要在飞书/微信上收结果。

架构设计

这套自动化系统的架构很简单:

┌────────────────┐    ┌──────────────┐    ┌──────────────┐
│  Hermes Agent  │───▶│  工具调用     │───▶│  外部系统    │
│  (大脑)         │    │  terminal    │    │  pytdx       │
│                 │    │  file        │    │  DuckDB      │
│                 │    │  web_search  │    │  本地文件    │
│                 │    │              │    │  飞书        │
└────────────────┘    └──────────────┘    └──────────────┘

Agent 作为”大脑”,收到指令后:

  1. 规划步骤
  2. 调用 terminal 执行 Python 脚本
  3. 读取结果并判断
  4. 继续下一步或输出报告

实战一:自动下载数据

手动方式

python download_daily.py

Agent 方式

只需要给 Agent 一句话:

下载今天的全市场日线数据,包括股票、ETF 和可转债

Agent 会自动:

  1. 检查上次下载日期
  2. 调用 pytdx 拉取增量数据
  3. 保存为 CSV
  4. 导入 DuckDB
  5. 汇报下载结果

核心代码(Agent 自己会写的脚本)

# download_daily.py
import pandas as pd
from tdxuse import TdxUse

def download_market_data():
    """下载全市场日线数据"""
    tdx = TdxUse()
    
    # 股票
    stocks = tdx.get_all_stocks()
    for code in stocks:
        df = tdx.get_daily(code, start='20260101')
        df.to_parquet(f'data/stock_{code}.parquet')
    
    # ETF
    etfs = tdx.get_all_etfs()
    for code in etfs:
        df = tdx.get_daily(code, start='20260101')
        df.to_parquet(f'data/etf_{code}.parquet')
    
    print(f"✅ 下载完成: {len(stocks)}只股票, {len(etfs)}只ETF")

实战二:策略回测自动化

你不需要手动改参数跑回测。直接说:

帮我回测 ETF 轮动策略,调仓频率改成每两周一次

Agent 会:

  1. 读取当前策略代码
  2. 修改调仓频率参数
  3. 运行回测
  4. 输出收益曲线和关键指标

回测脚本示例

# backtest_etf_rotation.py
import duckdb
import pandas as pd

def run_rotation_backtest(period='2w'):
    """ETF动量轮动回测"""
    conn = duckdb.connect('data/quant.duckdb')
    
    # 读取ETF数据
    etfs = conn.execute("""
        SELECT code, date, close 
        FROM etf_daily 
        WHERE date >= '2020-01-01'
    """).fetchdf()
    
    # 计算动量(过去N日收益率)
    etfs['momentum'] = etfs.groupby('code')['close'].transform(
        lambda x: x.pct_change(20)
    )
    
    # 每月调仓:选动量最强的3只ETF
    etfs['month'] = etfs['date'].dt.to_period('M')
    top_etfs = etfs.groupby('month').apply(
        lambda x: x.nlargest(3, 'momentum')
    )
    
    # 计算组合收益
    portfolio_return = top_etfs.groupby('date')['close'].mean()
    total_return = (portfolio_return / portfolio_return.iloc[0] - 1)
    
    print(f"回测周期: 2020-01 ~ {pd.Timestamp.today().date()}")
    print(f"总收益率: {total_return.iloc[-1]:.1%}")
    print(f"年化收益率: {((1 + total_return.iloc[-1]) ** (12 / len(total_return)) - 1):.1%}")

实战三:自动生成投资日报

这是每天最有价值的自动化。只需要说:

生成今天的投资日报,发送到飞书

Agent 会:

  1. 拉取数据——今日行情、持仓变动
  2. 计算指标——账户收益率、风险敞口
  3. 生成报告——Markdown 格式日报
  4. 发送推送——通过飞书 API 发送

日报内容示例

📊 **2026-06-18 投资日报**

**市场概况**
- 上证指数: 3,215.67 (+0.32%)
- 沪深300: 3,876.54 (+0.45%)

**策略表现**
- ETF轮动: 今日 +0.52%,累计 +18.7%
- Barra因子选股: 今日 +0.38%,累计 +30.5%

**操作提醒**
- 无调仓信号,持有不动

**数据状态**
- 数据完整性: ✅ 正常
- 磁盘空间: 47% 可用

实战四:自动巡检系统健康

每天早上开机后,Agent 自动检查:

检查系统状态:磁盘、数据完整性、网关连接

输出示例:

🔍 早间巡检报告 — 2026-06-18

✅ DuckDB 数据: 15.2M 行股票 × 736K 行可转债 × 69K 行 ETF
✅ 磁盘: C盘 64%, D盘 47%, WSL 2%
✅ 网关: 运行中
✅ 昨日数据: 完整无缺失

让自动化持续运行

手动下指令还不够”自动”——真正的自动化是设定好就不管了

在 Hermes 中,一句简单的:

创建一个 cron 任务,每天早上 6 点执行早间巡检并发到飞书

就完成了自动化配置。Agent 会帮你创建 cron 作业,到点自动执行。

💡 详细 cron 配置方法见下一篇:「cron 调度:让 Agent 每天自动干活

常见问题

Agent 写的脚本不放心怎么办?

你可以让 Agent 先展示代码再执行

先把下载脚本写出来让我看看,不要执行

确认无误后再说:

现在执行吧

任务跑到一半断了?

Hermes 有上下文压缩和会话恢复机制。如果任务中途被中断:

hermes --continue

就可以从上次位置继续。

能同时跑多个任务吗?

可以。Agent 可以并行处理多个独立任务,或者一个任务在后台跑、你同时问别的问题。

小结

自动化实战的关键三步:

  1. 识别重复——找出每天/每周固定要做的任务
  2. 封装脚本——让 Agent 帮你写执行脚本
  3. 设置触发——手动指令 → cron 定时 → 全自动

本文是 Agent 学习路径的第 2 步。下一步:cron 调度:让 Agent 每天自动干活 →

💬 评论