跳到主要内容

AI 辅助原语策略开发

AI 可以帮助把一个模糊想法整理成可验证的策略假设、解释 DSL 结构、检查错误和比较历史证据。它不应该把历史 signal 直接变成用户订单,也不应该根据短期表现自动修改 Formal Portfolio。

先理解 authoring boundary

MyInvestPilot 的策略 authoring 使用 canonical Strategy DSL:

Human / AI / Harness
-> canonical Strategy DSL
-> schema + symbol + semantic validation
-> deterministic Strategy Engine
-> replayable evidence

不要把 Engine 的 Master Portfolio Schema 当成 Agent Lab 的全部 authoring surface。它是完整引擎配置的 superset,可能包含内部或其他产品分支。Agent Lab 只能使用当前 MCP contract 和 canonical DSL;不 author arbitrary Python、TypeScript、Pine 或其他代码策略。

两种 AI 合同必须分开

第一方 Worker strategy-generation AI

第一方应用内的策略生成 Worker 是一个受限 authoring helper。它输出 strategy_definition fragment,用于表达交易策略本身:

  • 指标、特征、eligibility 和 signal;
  • target weight 或其他受支持的 DSL 节点;
  • 可被 schema 和 semantic contract 验证的结构。

这个 Worker 不选择 symbols,不决定 Portfolio identity,也不自动决定 capital strategy。它的 fragment 不能被理解为一个完整的 Agent Lab run envelope。

外部 Agent Lab Harness

Codex、Claude、OpenCode 或其他外部 Harness 使用 Agent Lab 时,合同不同。Harness 必须先解析 canonical symbols,再构建完整的 Lab Portfolio config,并通过 MCP 校验和运行:

resolve canonical symbols
-> build complete Lab Portfolio envelope
name
description
symbols
market
currency
start / end
commission / execution assumptions
strategy_definition
compatible capital strategy
-> validate_strategy_config
-> create_lab_run
-> get_lab_run

也就是说,第一方 Worker 的输出是一个 strategy_definition fragment;外部 Agent Lab Harness 的输入必须是包含 research metadata、Universe、时间范围、执行假设、交易策略和兼容资金策略的完整 Lab Portfolio envelope。#76 的 Worker contract 和 #75 的外部 Harness contract 不能合并成一句“AI 只输出 strategy_definition”。

test_ 是一次性、未列出的研究 artifact,不写入 Formal Portfolio registry,也不会静默修改正在观察的 Portfolio。

知识路由

Level 1:Agent Lab bootstrap

会员做受控复杂研究时,从 Agent Lab bootstrap prompt 开始。它说明四个 MCP 工具、完整 Lab Portfolio envelope、READY / FAILED 语义和研究循环。

Level 2:紧凑 DSL 指南

优先读取生成的 llm-quickstart.txt。它是外部 Agent 的压缩合同,包含结构约束、Cross-sectional 固定候选池规则和可验证示例。

Level 3:语义与能力

只有在需要精确判断能力兼容性时,才读取引擎生成的:

它们补充 evaluation domain、输入输出语义、组合约束、capital capabilities 和产品限制。不要只从 schema 名称猜语义。

Level 4:精确 schema

需要精确字段或参数时,再按需读取:

不要求 Agent 每次启动时把所有大型 JSON 一次性装入上下文。

推荐研究循环

1. 写清一个研究问题和 hypothesis
2. 选择 baseline 和观察窗口
3. 解析 canonical symbols
4. 按需读取 DSL / manifest / semantics
5. 生成完整 Lab Portfolio config
6. validate_strategy_config
7. 修复结构化错误并重新验证
8. create_lab_run(使用唯一 idempotency key)
9. get_lab_run 直到 PENDING / READY / FAILED
10. 读取 summary、config、evidence 和限制
11. 比较 hypothesis 与证据
12. 停止,或只改变一个有意义的变量进行下一次实验

完整 Lab config 不只有 strategy_definition,还应包括研究元数据、symbols、市场、日期范围、交易成本和兼容的 capital strategy。外部 Harness 不应绕过 MCP 校验,也不应把实验结果升级成 Formal Portfolio。

一个 DSL fragment 示例

下面只是第一方 Worker 或人工 authoring 可以产生的交易策略 fragment。它表达 RSI 与长期均线条件,不包含 symbols、Portfolio identity 或 capital strategy:

{
"trade_strategy": {
"indicators": [
{"id": "rsi", "type": "RSI", "params": {"period": 14}},
{"id": "sma200", "type": "SMA", "params": {"period": 200, "column": "Close"}},
{"id": "threshold_30", "type": "Constant", "params": {"value": 30}},
{"id": "threshold_70", "type": "Constant", "params": {"value": 70}}
],
"signals": [
{
"id": "rsi_oversold",
"type": "LessThan",
"inputs": [{"ref": "rsi"}, {"ref": "threshold_30"}]
},
{
"id": "rsi_overbought",
"type": "GreaterThan",
"inputs": [{"ref": "rsi"}, {"ref": "threshold_70"}]
},
{
"id": "price_above_ma",
"type": "GreaterThan",
"inputs": [{"column": "Close"}, {"ref": "sma200"}]
}
]
}
}

真正执行前仍需按当前 schema、manifest、semantics 和服务器 validation 补齐 contract 要求。RSI 30/70 只是研究输入,不是普遍有效的买卖边界。

固定候选池横截面

Cross-sectional 策略和单标的时序图不是同一种执行契约。固定候选池的公共链条是:

Feature
-> Eligibility
-> RebalanceCadence
-> CrossSectionalRank
-> TopN
-> EqualWeight
-> RebalancingCapitalStrategy

当前边界包括:固定且有序的 1–10 个候选 symbols、长仓、低频日线数据、透明排名和普通 Portfolio Construction。没有 Dynamic Universe、历史成分恢复、做空、杠杆或 intraday ranking。

外部 Harness 仍然要生成完整 envelope;这里的链条只描述其中的 strategy_definition 和兼容 capital rule 语义。

回测与 SQL 诊断

回测用于理解行为,不用于证明未来表现。至少同时查看:

  • 最大回撤、回撤持续时间和空仓;
  • 交易次数、费用、现金暴露和样本量;
  • 市场阶段、数据范围和执行假设;
  • 支持证据、反例、失败结果和仍然未知的部分。

如果需要诊断导出的 Portfolio 数据库,可以先区分表的职责:

  • trade_records:交易流水和买卖时点;
  • position_records:持仓随时间的变化;
  • net_values:净值、回撤和收益序列;
  • portfolio_status:组合摘要指标;
  • capital_records:资金注入、现金和资金规则;
  • benchmark_index:基准比较。

这些表能帮助 Agent 把 signal、holdings、cash 和 evidence 分开阅读。数据库字段和下载路径以当前产品 contract 为准,不能仅凭旧案例猜测。

迭代与失败处理

“优化”只能是显式、受控的研究问题,不是短期表现差后的默认动作。先记录 baseline 和 hypothesis,只改变一个变量,再比较结果和失败区间。

先区分 schema / symbol / semantic validation error、执行失败、数据缺失和 hypothesis evidence。修复时只根据结构化错误和当前公开合同改动,不猜内部字段。

  • READY:实验完成并产出结果,不代表策略好;
  • FAILED:实验未完成,不代表研究假设被证伪;
  • PENDING:等待或执行中的临时状态。

如果问题需要改变 Formal Portfolio,应另走新的 Custom Portfolio 流程,不能把 test_ 重命名或静默升级。

与 MyInvestPilot Chat2Invest 的区别

第一方 Chat2Invest 适合解释 Portfolio、signal、state、evidence 和文档,也可以帮用户整理 Strategy Intent。复杂的 DSL 研究执行应由会员自己的 Harness 通过 Agent Lab MCP 完成。

chat2invest.com 是独立国际化产品;Community 只用于讨论、反馈和支持,不是 Agent Lab 执行入口。

风险提示

AI 辅助开发只生成和解释历史模拟研究,不构成投资建议、收益承诺或真实账户交易指令。