AI辅助原语策略开发指南
本文档介绍如何利用大语言模型(如Claude、GPT等)辅助开发、调试和优化策引原语策略。通过AI辅助,您可以更高效地:
- 生成策略: 用自然语言描述需求,AI帮你生成JSON配置
- 调试诊断: AI分析回测数据,找出策略问题
- 优化迭代: 基于数据分析结果,AI提供优化建议
概述:AI辅助工作流
准备工作:让AI理解原语系统
方法一:直接提供 llm.txt(推荐)
策引提供了专为AI设计的参考文档,包含了所有原语的定义、语法和示例。
llm-quickstart.txt - Schema驱动快速上手指南 ⭐ 推荐
在线地址:
https://docs.myinvestpilot.com/primitives/_llm/llm-quickstart.txt
特点:
- ✅ 架构优先 - 前置 ABSOLUTE PROHIBITIONS,防止常见LLM错误(内联定义等)
- ✅ 渐进式学习 - 12个Level从简单到复杂,覆盖97.5%原语(39/40)
- ✅ 实战验证 - 所有策略来自真实回测案例,包含性能数据
- ✅ 模型约束 - 包含Gemini/ChatGPT实际错误示例作为反面教材
- ✅ 紧凑高效 - 仅74KB,token使用量是完整版的1/5
- 📊 适用模型 - GPT-4, Claude, Gemini, DeepSeek, Llama 3.3等所有主流模型
- 💰 免费选项 - 可通过 OpenRouter 使用免费的 Llama 3.3 70B 模型
使用示例:
请先阅读这份原语策略参考文档,然后帮我编写策略:
https://docs.myinvestpilot.com/primitives/_llm/llm-quickstart.txt
我想要一个双均线交叉策略,20日均线上穿60日均线买入,下穿卖出。
💡 提示:
- 💰 没有GPT/Claude订阅?使用 OpenRouter 的免费 Llama 3.3 70B 模型
- ⚠️ 如果模型无法访问URL,下载文件后直接复制内容到对话框
- ✅ 经过验证:Gemini、ChatGPT、Llama 3.3 在使用此文档后错误率从100%降到0
方法二:使用官方 JSON Schema(高级)
如果你需要进行严格的类型验证或自动化工具开发,策引提供了引擎自动生成的官方 JSON Schema:
Schema 地址:
https://media.i365.tech/myinvestpilot/primitives_schema.json
特点:
- ✅ 权威准确 - 由策引引擎自动生成,与实际运行版本完全一致
- ✅ 完整类型定义 - 包含所有原语类型、参数、默认值、约束条件
- ✅ 机器可读 - 适合 IDE 自动补全、类型检查、代码生成工具
使用场景:
- 编辑器集成 - VS Code、WebStorm 等可以基于 Schema 提供自动补全
- 策略验证 - 在提交回测前,用 Schema 验证 JSON 配置的正确性
- 工具开发 - 如果你要开发策略生成器、配置编辑器等工具
示例:在 VS Code 中启用自动补全
{
"$schema": "https://media.i365.tech/myinvestpilot/primitives_schema.json",
"market_indicators": {
// VS Code 会基于 Schema 提供智能提示
}
}
何时使用 llm-quickstart.txt vs llm-core/full vs JSON Schema:
| 需求 | 推荐方案 | 原因 |
|---|---|---|
| AI 生成策略 | llm-quickstart.txt | Schema驱动,架构约束清晰,防止常见错误 |
| AI 调试分析 | llm-quickstart.txt | 包含SQL诊断和优化指导 |
| RAG知识库 | llm-core.txt | 完整定义,适合检索 |
| 深入学习案例 | llm-full.txt | 17个真实策略详细分析 |
| IDE 自动补全 | JSON Schema | 提供精确的类型定义 |
| 策略验证工具 | JSON Schema | 可编程校验所有约束 |
| 开发自动化工具 | JSON Schema | 完整的 API 规范 |
💡 最佳实践:AI 辅助开发时优先使用 llm-quickstart.txt,它专为代码生成优化,经过Gemini和ChatGPT验证,错误率从100%降到0。只有在需要严格类型校验或工具开发时才使用 JSON Schema。
方法三:配置为AI Skill(推荐)
如果你使用支持Skill/Tool的AI助手(如Claude Code、自定义Agent),可以将原语策略开发配置为一个专用技能。
Claude Code skill 示例:
在 .claude/skills/ 目录创建 plutus-primitive.md:
# 策引原语策略开发 Skill
## 触发条件
当用户想要:
- 创建/编写投资策略
- 生成原语策略配置
- 分析策略回测数据
- 优化交易策略
## 参考文档
首先获取原语策略参考:
WebFetch https://docs.myinvestpilot.com/primitives/_llm/llm-quickstart.txt
## 工作流程
### 1. 策略生成
- 理解用户需求
- 生成符合JSON Schema的原语配置
- 解释策略逻辑
### 2. 数据分析
当用户提供sqlite数据库文件时:
- 使用SQL分析 trade_signals 表
- 检查信号健康度
- 验证信号切换逻辑
- 评估策略表现
### 3. 优化建议
基于分析结果提供:
- 参数调整建议
- 信号组合优化
- 风险控制改进
方法四:MCP Server(高级)
对于需要深度集成的场景,可以开发MCP Server将原语生成、回测、分析封装为工具函数。
其他 llm.txt 版本
除了推荐的 llm-quickstart.txt,还有两个版本适用于特定场景:
llm-core.txt(241 KB)
- 📚 适合RAG系统知识库和深度文档检索
- 📖 包含所有原语的完整定义和详细参数说明
- 🔗 llm-core.txt
llm-full.txt(411 KB)
- 📊 包含17个真实策略的完整案例分析
- 💡 详细的设计思路和复杂场景最佳实践
- 🔗 llm-full.txt
第一步:用AI生成策略
示例对话
用户:
帮我创建一个RSI超买超卖策略。RSI低于30时买入,高于70时卖出。同时要求价格在200日均线之上才能买入(过滤熊市)。
AI(在阅读llm.txt后):
我为你设计了一个带均线过滤的RSI策略:
{
"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"}]
},
{
"id": "buy_condition",
"type": "And",
"inputs": [{"ref": "rsi_oversold"}, {"ref": "price_above_ma"}]
}
],
"outputs": {
"buy_signal": "buy_condition",
"sell_signal": "rsi_overbought",
"indicators": [
{"id": "rsi", "output_name": "rsi"},
{"id": "sma200", "output_name": "ma200"}
]
}
}
}
策略逻辑:
- 买入条件:RSI < 30(超卖)且 价格 > 200日均线(牛市)
- 卖出条件:RSI > 70(超买)
- 输出RSI和MA200用于后续分析
生成技巧
- 描述清晰:告诉AI你的交易思路、买卖条件、参数偏好
- 指定市场:美股、A股可能需要不同的参数设置
- 说明用途:趋势跟踪、均值回归、动量策略等
- 提及风控:止损条件、仓位控制需求
第二步:回测并获取数据
在策引平台回测
- 登录 策引平台
- 创建/编辑投资组合
- 在"原语策略"页面粘贴AI生成的JSON配置
- 选择标的、时间范围
- 运行回测
下载回测数据
策引提供两种数据库,推荐使用组合表现数据库(无需登录,包含完整交易记录):
下载地址:
https://media.i365.tech/myinvestpilot/portfolios/[组合ID]/[组合ID]_portfolio.db
包含9张主要数据表:
trade_records- 交易流水position_records- 每日持仓net_values- 每日净值portfolio_status- 组合摘要(CAGR、夏普比率等)capital_records- 资金记录benchmark_index- 基准对比- 以及其他收益归因和对比表
💡 何时使用:90%的分析需求使用组合表现数据库即可满足。只有需要调试原语信号逻辑时,才使用信号数据库(需登录下载)。
详细的SQL查询方法请参考:策略诊断SQL查询手册
第三步:AI分析回测数据
下载数据库后,让AI分析交易表现、诊断问题、发现优化机会。
AI对话示例:
我有一个策引组合的表现数据库,请帮我分析:
1. 交易频率是否合理?
2. 买卖时机的成功率如何?
3. 有哪些可以优化的地方?
[上传 custom_lkeh0lxz_portfolio.db 文件]
常用分析维度:
- 交易频率和胜率分析(
trade_records表) - 持仓周期分布(
position_records表) - 风险收益指标(
portfolio_status表直接获取) - 回撤分析和净值曲线(
net_values表)
详细的SQL查询模板和分析方法,请参考:策略诊断SQL查询手册
实战案例参考
想看完整的AI辅助决策流程?参考:SOXL杠杆ETF策略实战案例
该案例完整记录了从策略设计、回测分析、AI诊断到实盘决策的全过程。
第四步:迭代优化
优化工作流
分析结果 → AI提出假设 → 修改策略 → 重新回测 → 再次分析 → 循环
常见优化方向
1. 参数调优
用户:买入信号太少了,能不能放宽一点?
AI:可以将RSI阈值从30调整到35,或将均线周期从200调整到150。
2. 信号确认
用户:假信号太多,能加一个确认机制吗?
AI:可以使用Lag原语要求连续2天满足条件:
{
"id": "condition_yesterday",
"type": "Lag",
"params": {"periods": 1, "fill_value": 0},
"inputs": [{"ref": "condition_today"}]
}
3. 动态仓位
用户:能根据RSI动态调整仓位吗?
AI:可以使用LinearScaleWeight原语:
{
"id": "dynamic_weight",
"type": "LinearScaleWeight",
"params": {"min_indicator": 30, "max_indicator": 70, "min_weight": 1.0, "max_weight": 0.3}
}
优化对话示例
用户:
策略在2022年熊市亏损严重,能不能加一个市场过滤?
AI:
可以引入VIX作为市场恐慌指标。当VIX处于历史高位时减少交易:
{
"market_indicators": {
"indicators": [{"code": "VIX"}],
"transformers": [
{
"name": "vix_percentile",
"type": "PercentileRankTransformer",
"params": {"indicator": "VIX", "lookback": 252, "field": "Close"}
}
]
},
"trade_strategy": {
"signals": [
{
"id": "low_fear",
"type": "LessThan",
"inputs": [
{"market": "VIX", "transformer": "vix_percentile"},
{"type": "Constant", "value": 80}
]
},
{
"id": "final_buy",
"type": "And",
"inputs": [{"ref": "original_buy"}, {"ref": "low_fear"}]
}
]
}
}
这样只有在VIX低于历史80%分位时才会买入,过滤掉了极端恐慌期。
完整案例:从需求到优化
第1轮:初始策略
用户需求:
我想要一个简单的双均线策略,适合美股大盘ETF。
AI生成:
{
"trade_strategy": {
"indicators": [
{"id": "sma20", "type": "SMA", "params": {"period": 20}},
{"id": "sma60", "type": "SMA", "params": {"period": 60}}
],
"signals": [
{"id": "buy", "type": "Crossover", "inputs": [{"ref": "sma20"}, {"ref": "sma60"}]},
{"id": "sell", "type": "Crossunder", "inputs": [{"ref": "sma20"}, {"ref": "sma60"}]}
],
"outputs": {
"buy_signal": "buy",
"sell_signal": "sell"
}
}
}
第2轮:数据分析
回测后,AI分析sqlite数据库发现:
- 交易69次,胜率52%
- 发现多次 B→S 快速切换(震荡市被反复"抽耳光")
- 2020年3月熊市中错过了反弹
第3轮:优化
AI建议:增加RSI动态仓位控制,在震荡市减少仓位
{
"trade_strategy": {
"indicators": [
{"id": "sma20", "type": "SMA", "params": {"period": 20}},
{"id": "sma60", "type": "SMA", "params": {"period": 60}},
{"id": "rsi", "type": "RSI", "params": {"period": 14}}
],
"signals": [
{"id": "buy", "type": "Crossover", "inputs": [{"ref": "sma20"}, {"ref": "sma60"}]},
{"id": "sell", "type": "Crossunder", "inputs": [{"ref": "sma20"}, {"ref": "sma60"}]},
{
"id": "weight",
"type": "LinearScaleWeight",
"inputs": [{"ref": "rsi"}],
"params": {"min_indicator": 40, "max_indicator": 75, "min_weight": 1.0, "max_weight": 0.3, "clip": true}
}
],
"outputs": {
"buy_signal": "buy",
"sell_signal": "sell",
"target_weight": "weight"
}
}
}
第4轮:验证优化效果
重新回测后AI分析:
- 交易次数从69次降到28次
- 收益从151%提升到1178%
- 单次交易贡献从2.2%提升到42.1%
最佳实践
1. 提供足够上下文
❌ "帮我写一个策略"
✅ "帮我写一个适合美股科技ETF的趋势跟踪策略,
使用双均线交叉,要有止损机制,
我的风险偏好是中等"
2. 迭代式开发
不要期望一次就得到完美策略,应该:
- 先生成基础版本
- 回测看效果
- 分析数据找问题
- 针对性优化
- 重复2-4步
3. 保持outputs完整
在策略中输出中间指标,方便后续分析:
"outputs": {
"buy_signal": "buy",
"sell_signal": "sell",
"indicators": [
{"id": "rsi", "output_name": "rsi"},
{"id": "sma20", "output_name": "ma_short"},
{"id": "sma60", "output_name": "ma_long"}
]
}
4. 利用AI的SQL能力
AI擅长编写复杂SQL查询。可以直接说:
"帮我写一个SQL,分析每次买入后10天内的最大回撤"
5. 版本管理
保存每个版本的策略配置和分析结果,方便对比和回溯。
相关资源
- llm.txt 参考文档:
- 快速上手版: llm-quickstart.txt ⭐ 推荐 - Schema驱动,架构约束清晰,74KB
- 其他版本(用于RAG或深度学习):
- 核心版: llm-core.txt - 适合RAG检索和知识增强,241KB
- 完整版: llm-full.txt - 包含详细案例分析,411KB
- 可视化编辑器: https://www.myinvestpilot.com/primitives-editor/
- 信号分析手册: https://www.myinvestpilot.com/help/signal-analysis/
- 高级故障排除: 高级调试指南
- 策略优化指南: 优化指南
- 动态仓位案例: 动态仓位策略
提示:AI是辅助工具,最终的投资决策需要您自己判断。回测表现不代表未来收益,请谨慎评估风险。