Hermes Agent 实战 08|量化交易助手:持仓盈亏、网格减仓,与「没开单」的真相原创
# 量化交易助手:持仓盈亏、网格减仓,与「没开单」的真相
系列第 08 篇。我有一个 Profile 专门盯量化交易机器人(Freqtrade)。它不下单——只做监控、解读和复盘:现在持仓多少、为什么这单这么开、最近为什么不开单、亏在哪。这篇讲几个真实对话里学到的东西,包括一个对所有「让 AI 看交易」的人都成立的认知陷阱。
# 1. Agent 怎么读交易机器人
Freqtrade 跑在容器里,对外有 REST API(和 WebSocket)。Agent 通过 API 拉持仓、历史、盈亏,只读:
# 先确认走的是 REST 还是 WebSocket,鉴权方式对不对
curl -s -u "$FT_USER:$FT_PASS" http://<ft-host>:8080/api/v1/status | jq .
curl -s -u "$FT_USER:$FT_PASS" http://<ft-host>:8080/api/v1/profit | jq .
2
3
一个真实坑:官方文档常落后于实际实现。某次按文档调 API 各种不通,最后是靠浏览器 Network 面板逆向出真实端点才搞定。让 agent 学会「文档不可信时去扒真实请求」,比死磕文档高效得多。
# 2. 最重要的一课:「没开单」常常是正确答案
我问得最多的三个字是「开单了吗」。很多次答案是「没有」——而我的第一反应总是「是不是坏了」。
别把「沉默」等同于「故障」。
Agent 多次正确地诊断出:机器人功能正常,只是在等信号。没有符合策略条件的入场点,不开单恰恰是策略在正确工作,是「战略性的耐心」,不是 bug。
这件事的工程含义和第 06 篇一脉相承:无人值守监控最怕把正常态报成异常。所以我让 agent 报「为什么没开单」(当前选币池、信号条件没满足在哪),而不是光报一个「无持仓」让我自己瞎猜。
# 3. 让 Agent 解释「黑箱」交易
策略(比如 NostalgiaForInfinityX7 这类复杂策略)对人来说基本是黑箱。Agent 在这里特别有用——你贴一笔成交,让它反推触发条件:
- 「这单的买入/卖出是怎么触发的?」 → agent 去读策略代码 + 这笔的指标快照,复原出入场/出场逻辑。
- 「当前选币规则是什么,这 top40 怎么筛的?」 → agent 把选币逻辑讲成人话。
- 「讲一下我策略的大致逻辑」 → 把上千行策略浓缩成一页可读的说明。
有一次 agent 还揪出一笔「幽灵卖出」背后藏着的隐性利润——人眼扫一遍根本看不出来的。
# 4. 几个真实的「陷阱」复盘
让 agent 做复盘,比自己看更容易跳出情绪。几个真实结论:
- 高胜率陷阱:胜率 77% 听着很美,但 agent 复盘亏损原因时点破——高胜率可能正掩盖着「小赢多次、大亏一次」的盈亏比问题。胜率从来不是盈利的充分条件。
- 3x 杠杆的「死猫跳」:一笔本来很安全的交易,因为上了 3 倍杠杆,在一次回调里差点爆仓。Agent 把「无杠杆下这单毫无压力 vs 加杠杆后的强平距离」摆出来,杠杆的真实风险一目了然。
- 是不是真盈利:「总体是盈利的吗」这种问题,agent 会把已实现/未实现、手续费、资金费率都算进去,而不是只看一个浮盈数字。
# 5. 让它自己盯:带回滚的策略自动更新
我把「同步云端策略」做成了一个每 10 分钟的 cron 任务,关键是带验证和回滚:
# 策略自动更新脚本的核心逻辑(可复现骨架)
fetch_remote_strategy
if strategy_changed; then
backup_current # 先备份本地现版
apply_remote
if ! freqtrade_validates; then # 更新后必须能正常加载/回测
rollback_to_backup # 不行就回滚
notify "策略更新失败,已回滚"
else
notify "策略已更新并验证通过"
fi
fi
2
3
4
5
6
7
8
9
10
11
12
这正好踩中第 06 篇讲的无人值守铁律:变更类定时任务必须可回滚、必须验证、必须发心跳。「更新成功」和「更新后还能正常跑」是两件事——只做前者,迟早把自己更新挂。
# 6. 可复现 checklist
- 只读接入:agent 拉持仓/盈亏/历史,不碰下单。
- 文档不可信就逆向:用 Network 面板扒真实 API 端点。
- 区分「没动作」和「故障」:报「为什么没开单」,别让沉默默认等于正常或异常。
- 让它解释黑箱:贴成交反推触发条件、讲清选币与策略逻辑。
- 复盘看盈亏比不只看胜率,把杠杆的强平距离显式摆出来。
- 自动更新必带验证 + 回滚 + 心跳。
下一篇讲怎么把这些 Hermes Profile 暴露成一个个「模型」,接进 OpenWebUI,用熟悉的聊天界面调度它们——以及前面挡着的 Kong 网关有哪些静默杀手。