用 JEV-latest 给外汇交易机器人做审计,看看它的推理逻辑是不是在自相矛盾
最近我在尝试一种比较特殊的交易架构:给我的交易 Bot 找一个“审计员”。这个审计员必须满足一个硬性条件——它不能看 K 线图。
很多人在做 AI 交易时,习惯于让模型直接面对图表给出方向,但很少有人去思考:模型给出的那个“买入”或“卖出”的理由,在逻辑上是否真的能推导出这个结论?为了验证这一点,我开始尝试用一个纯文本模型来审计一个视觉模型的推理过程,看看它是不是在自相矛盾。
先聊聊我这套 Bot 的具体实现。我写了一个叫 gemini_snap_flash 的 Python 脚本,它的运行逻辑是每小时触发一次。具体操作是:脚本会将 1 分钟 K 线图,以及作为上下文参考的日线图和周线图,一共三张图像发送给 Gemini。模型在分析完图像后,会返回一个方向(UP 或 DOWN)以及一行简单的逻辑理由。随后,脚本通过 MT5 在资助账户上执行交易,目标货币对是 EURUSD、GBPUSD 或 USDJPY。
为了控制风险,我设定了比较严格的交易规则:每对货币只持有一个仓位,并且设置了固定的止损和止盈。更关键的是,为了防止爆仓,我设置了三层硬性限制:第一,日亏损上限设为 2%;第二,日盈利上限设为 0.6%;第三,我部署了一个外部看门狗程序,一旦监测到连续亏损 4 次,会直接杀掉进程。
这些限制在实际操作中至关重要。事实证明,如果没有这些硬性约束,账户是非常脆弱的。我的第一个 1 万美金账户在 9 月 9 日就因为触及最大回撤被洗掉了。目前我运行的是两个 10 万美金的账户,但我将它们分成了两个独立实例运行,确保状态互不干扰。
在研究 AI 交易的过程中,我发现很多讨论帖都避开了最核心的一点,那就是日志记录。很多人的 Bot 只是简单地记录买入卖出,但我的 Bot 记录得非常详细。我维护了两个核心文件:signal_log.csv 记录了所有决定(包括被跳过的信号)以及模型给出的推理理由;trade_analysis.csv 则记录了每笔平仓后的 MFE/MAE 点数和 R 倍数。
然而,即便有了详细的日志,我依然发现自己缺少一个对“决策本身”进行校验的手段。在账户爆掉之后,我翻看每笔交易的理由,发现了一个很诡异的现象:很多解释根本没法告诉我这次推理到底合格不合格。简单来说,模型可能会说“趋势向下且有压力位”,但最后给出的指令却是“UP”。这种逻辑上的断层,在视觉模型快速输出时经常被忽略,但它却是交易失败的根源。
这就是我引入 JEV 的原因。JEV 是 TypeSafe 的 System-One 模型(具体版本是 jev-latest),其接口位于 api.typesafe.ai/v1/systemone。
我选择 JEV 的核心逻辑在于:它是一个纯文本模型,完全没有视觉能力,也不提供任何市场预测。这意味着它不会被 K 线图干扰,也不会尝试去猜价格涨跌,它唯一的任务就是扮演一个“逻辑审查员”。
在我的审计流程中,我将 Gemini 产生的“推理理由”和“最终方向”作为文本发送给 JEV。具体操作是向 JEV 发送一个 "state" 字符串和一组预设的问题。每个问题都包含明确的指令和判定标准。JEV 的工作不是告诉我市场会怎么走,而是告诉我:基于这段文本描述的逻辑,它得出的结论是否在逻辑上自洽。
通过这种方式,我把“视觉感知”和“逻辑审计”分离开来。Gemini 负责看图并给出理由,而 JEV 负责检查这个理由是否支持该结论。如果 JEV 返回的结构化结论显示逻辑自相矛盾,那么即使 Gemini 认为机会很大,这笔交易在审计层面也是不合格的。
这种架构尝试的核心在于,通过一个不具备视觉能力的纯文本模型,去剔除视觉模型在快速推理时产生的“幻觉”或逻辑跳跃。在外汇这种高波动的市场中,确保每一笔交易的逻辑闭环,比单纯追求胜率要重要得多。
全部回复 (3)
想当场把话说完?进全球 AI 聊天室,登录就能开口。
我之前跑这种视觉分析直接被坑掉 200 刀,关键得在 Prompt 里强制它标注坐标轴数值,不然它老是把 15 分钟线看成 1 小时线。