检查你的代理逻辑,不仅仅是你的策略
编者: 汇率数据组
发表时间: May 21, 2026
大多数AI交易团队仍然仅对一个层进行后台测试:信号到PnL. 这忽略了现代系统中风险最高的组件,即代理本身. 如果你的模型误读了宏观打印,偏离了方案,或在压力下违反了政策,一个好的策略仍然可以产生糟糕的交易.
经纪人逻辑测试通过重播历史背景和评分决策质量来解决这个问题. 在FX中,这最重要的是对象的事件重窗口,如 美元/日元 现在我 欧元/美元现在我们要做什么?
为什么仅仅是战略的反向测试会错过真正的失败模式
只有在PnL中,
- 解释错误: 模型误读了这样的释放: 其他国家 并且在错误的方向上建立论文.
- 合同中的错误: 产出在高波动时期会破坏你的方案.
- 风险政策绕行: 模型建议超大或忽略了无效标准.
这些问题通常在PnL降解显而易见之前出现.
四层代理后验框架
层1:语境重播
复制每个时间,因为模型会看到它在实时. 抽取只有可用数据到决策时间从FXMacroData终点和日历快照从 发布日程现在我们要做什么?
curl "https://fxmacrodata.com/api/v1/announcements/usd/core_pce?api_key=YOUR_API_KEY"
curl "https://fxmacrodata.com/api/v1/announcements/eur/inflation?api_key=YOUR_API_KEY"
curl "https://fxmacrodata.com/api/v1/forex?base=EUR"e=USD&api_key=YOUR_API_KEY"
层2:决定重播
运行代理在每个语境上,使用精确的生产提示符和约束. 存储原始输出加上解析输出,以便您可以审核推理和结构.
{
"pair": "EUR/USD",
"action": "long|short|flat",
"confidence": 0.0,
"thesis": "string",
"invalidation": "string",
"size_pct": 0.0
}
层3:政策模拟
玩一遍你现场使用的相同的守门员规则:最大风险,事件窗口锁定,信任地板,
层4:结果归因
单独的结果组:
- 准确的论点,良好的政策遵守,有利可图.
- 错误的论文,执行质量不佳.
- 错误的论点,政策应该阻止.
- 系统或过程失败,不依赖市场方向.
您可以通过此方式查看您的信息,
设计高质量的重播数据集
由于数据集太干净或太狭窄,大多数重播管道都失败了.
实际的分离:
- 40%的正常时间: 低体积,趋势和范围的混合物.
- 35% 的事件窗口: 像是: 核心PCE 政策利率日.
- 25% 的应力窗口: 风险范围广泛,波及率异常高,延迟噪音.
对于每个时间,只捕获当时已知内容.其中包括日历中的发布时间表背景,当前现货路径以及中央银行通信档案中的任何政策背景.
Replay row fields (recommended):
- ts_utc
- pair
- context_payload_hash
- prompt_version
- model_version
- raw_output
- parsed_output
- policy_decision
- simulated_execution
- realized_outcome
通过对语境有效负载进行哈希,可以在重组器中检测出意外的未来数据泄漏.
如何评分推理,而不仅仅是指导
仅指向评分隐藏了重要的降低. 添加一个简单的推理标题,
- 原因的正确性: 论文是否引用了正确的宏观驱动器?
- 限制意识: 建议是否反映了风险规则?
- 测量不确定性: 信心与上下文质量相匹配吗?
- 行动纪律: 选择一个模型.
flat当证据不够强的时候?
追踪这个 ReasoningConsistency 让您可以比较PNL以外的模型和提示.
评分剂质量 (超出了成功率)
一个强大的分数表至少应该跟踪以下指标:
- 方案通过率: 结果的百分比是清晰的.
- 政策遵守率: 满足严格限制的输出.
- 推理一致性: 论文与所提供的背景有多频繁.
- 延迟分布: p50/p95 在实际的管道条件下决定时间.
- 制度稳定性: 通过趋势,范围和事件冲击窗口进行分数漂移.
举例加权分数:
AgentScore = 0.30 * SchemaPass
+ 0.25 * PolicyCompliance
+ 0.20 * ReasoningConsistency
+ 0.15 * RegimeStability
+ 0.10 * LatencyScore
如果您运行一个安全优先的工作流程,增加对方案和策略合规性的权重. 如果您执行一个事件速度的工作流,增加延迟和事件窗口行为权重
最小的重播带
通过重播运行器记录每一个决定和分数组件.
from dataclasses import dataclass
@dataclass
class ReplayResult:
ts: str
parsed_ok: bool
policy_ok: bool
reasoning_ok: bool
latency_ms: int
pnl_r: float
def evaluate_one(ctx, agent, gatekeeper) -> ReplayResult:
raw = agent.run(ctx)
parsed = agent.parse(raw)
parsed_ok = parsed is not None
if not parsed_ok:
return ReplayResult(ctx["ts"], False, False, False, agent.last_latency_ms, 0.0)
gate = gatekeeper.validate(parsed, ctx)
policy_ok = gate.allowed
reasoning_ok = gate.reasoning_consistent
pnl_r = gate.simulated_r if policy_ok else 0.0
return ReplayResult(
ts=ctx["ts"],
parsed_ok=parsed_ok,
policy_ok=policy_ok,
reasoning_ok=reasoning_ok,
latency_ms=agent.last_latency_ms,
pnl_r=pnl_r,
)
关键是确定性重播:相同的输入环境,相同的提示版本,相同验证规则.
从重播结果到部署决定
不要直接从点指标中促进模型或提示更改.使用明确的部署门:
- Gate 1: 方案通过率不得退化.
- Gate 2: 政策遵守必须保持在事件窗口上.
- Gate 3: 推理一致性必须提高或保持稳定.
- Gate 4: 延迟 p95 必须保持在运营预算范围内.
只有通过所有门,你才可以开始纸张交易影子模式.
Promotion policy example:
- Replay pass: required
- Shadow mode: 3 weeks minimum
- Live rollout: 20% traffic for 5 days, then full
- Auto-rollback: any schema fail burst or policy breach cluster
这样就避免了团队过度适应重播和低测试运营行为的经典循环.
常见的测试错误
- 漏水: 偶然将未来的字段包含在背景中.
- 快速漂移: 通过一个提示进行后台测试,
- 没有节奏分区: 平均结果在非常不同的波动状态.
- 没有政策重播: 处理所有模型输出作为可交易的.
这如何提高实时交易可靠性
代理逻辑后验可以提高可靠性,而传统后验无法做到:
- 发现在中央银行周围的失败集群,从 美国联邦储备 到了 英国银行现在我们要做什么?
- 揭示哪些错误是与提示相关的,而不是与政策相关的.
- 支持更安全的模型升级,因为在部署之前可以比较版本之间的决策行为.
- 创建一个可重复使用的审计跟踪每个被接受或拒绝的贸易候选人.
如果您已经跟踪PnL, 这会增加缺失的可观测层,
总结
后测策略逻辑是必要的.后测代理逻辑使人工智能交易工作流程持久.最强大的系统评估市场优势和决策完整性.
接下来:建立一个月度重播基准,并要求每个提示/模型更改通过它,然后进入现场模式. 其他 并且是从 外汇会议 在不同的市场状态下进行压力测试行为.