______________________________________________________________________
标题:股票回测MCP 表情符号📈 颜色来源:蓝色 颜色To:绿色 sdk:毕业 app_file:app.py 固定:false 标签:
- “建设mcp轨道xx”
______________________________________________________________________
LinkedIn帖子:https://www.linkedin.com/feed/update/urn:li:activity:7400976801524629504/
演示视频:https://youtu.be/EKdxNMhcD8I
LLM驱动的策略回溯测试
一个轻量级的模块化回溯测试应用程序,可以转换 自然语言交易策略 使用OpenAI GPT-4o-mini将其转化为结构化的可执行策略。
技术支持:
- 格拉迪奥 --交互式web UI
- 模态 --云托管LLM策略解析器端点
- OpenAI GPT-4o-mini --自然语言理解
- python --可插拔回溯测试引擎
- AlphaVantage --历史每日价格数据(免费等级:~100个交易日)
______________________________________________________________________
特性
自然语言策略解析(LLM模式)
用户可以编写自由形式的策略描述,系统会自动将其转换为结构化配置:
示例:
- “当10天均线超过50天均线时买入,当均线低于50天时卖出”
- “每7天投资1000美元,初始现金为5000美元”
- “DCA每周500美元”
- “买入并长期持有”
LLM(OpenAI GPT-4o-mini)解析描述并返回结构化配置:
{
"type": "ma_cross",
"params": {"short_window": 10, "long_window": 50},
"initial_cash": 5000
}手动模式
或者,用户可以直接通过UI手动选择策略类型并设置参数。
支持的策略
- 移动平均线交叉(ma_cross)
- 当空头MA超过多头MA时买入 - 当空头MA跌破多头MA时卖出 - 参数: short_window, long_window
- 美元成本平均值(dca)
- 定期投资固定金额 - 参数: interval_days, buy_amount - 支持 initial_cash 从LLM中提取 - 注:对于DCA,显示的“初始现金”指标表示总投资(初始现金+所有定期投资)
- 买入并持有
- 在开始时购买并持有至结束 - 参数: buy_fraction (默认值:1.0)
- 其他
- 当策略描述与上述任何一项都不匹配时返回 - 参数: {} (空)
回溯测试指标
- 初始现金/最终权益
- 总回报/年化回报
- 最大跌幅
- 交易次数/胜率
- 股权曲线可视化
______________________________________________________________________
设置
先决条件
- Python 3.8+
- 模态账户(用于LLM端点)
- OpenAI API密钥
- AlphaVantage API密钥(提供免费层)
安装
- 克隆仓库
git clone
cd "MCP Hackathon"- 安装依赖项
pip install -r requirements.txt- 设置环境变量
创建一个 .env 项目根目录中的文件:
ALPHAVANTAGE_API_KEY=your_alphavantage_api_key
MODAL_STRATEGY_URL=https://your-username--strategy-config-service-strategy-config-web.modal.run注: OPENAI_API_KEY 不需要 .env 为了地方发展。模态端点使用来自模态机密的API密钥。但是,如果你想在本地测试LLM解析,你可以选择添加它。
- 部署模态端点
Modal应用程序托管LLM策略解析器。使用以下方式进行部署:
modal deploy modal_app.py部署后,Modal将提供一个URL。更新 MODAL_STRATEGY_URL 在你的 .env 文件。
- 设置模态秘密
在Modal web UI中,创建一个名为 openai-secret 与:
OPENAI_API_KEY=your_openai_api_key运行应用程序
python app.pyGradio界面将在 http://127.0.0.1:7860
______________________________________________________________________
用法
LLM模式(推荐)
- 选择 LLM 从“策略模式”下拉列表中
- 输入自然语言策略描述
- 在描述中可选地指定初始现金(例如,“初始现金为5000美元”)
- 点击“运行回溯测试”
输入示例:
- “当10天均线超过50天均线时买入,当均线低于50天时卖出”
- “DCA每7天1000美元,初始现金=5000”
- “每周投资500美元,起始资本为10000美元”
- “用初始现金20000美元购买并长期持有”
注: LLM自动提取 initial_cash 如果在描述中提及。如果没有提及,系统将使用UI中的默认值(10000)。
手动模式
- 选择 “手册” 从“策略模式”下拉列表中
- 选择策略类型(ma_cross、dca或buy_and_hold)
- 设置所需参数
- 设定初始现金
- 点击“运行回溯测试”
______________________________________________________________________
数据限制
AlphaVantage免费套餐:
- 提供约100个交易日的历史数据
- 每天25个API请求
- 开始日期必须在最近100天内
UI包括验证,以确保日期在可用范围内。
______________________________________________________________________
项目结构
.
├── app.py # Main Gradio UI application
├── llm_strategy.py # Client-side LLM strategy parser (calls Modal)
├── modal_app.py # Modal deployment: LLM endpoint (OpenAI GPT-4o-mini)
├── mcp_server.py # MCP server implementation (FastMCP tools for strategy parsing and backtesting)
├── backtest/
│ ├── __init__.py # Package initialization
│ ├── engine.py # Backtest orchestrator
│ ├── strategies.py # Strategy implementations (ma_cross, dca, buy_and_hold)
│ ├── data.py # AlphaVantage data fetcher
│ └── metrics.py # Performance metrics calculation
├── requirements.txt # Python dependencies
├── README.md # This file
└── .env # Environment variables (create this file)注: 其他文件,如 mcp_client_http.py 和 test_client.py 可以用于MCP客户端测试,但不是核心回测功能所必需的。
______________________________________________________________________
运作原理
- 用户输入 → Gradio用户界面(
app.py) - LLM解析 → 模态端点(
modal_app.py)调用OpenAI GPT-4o-mini - 策略配置 → 返回给客户端的结构化JSON(
llm_strategy.py) - 数据获取 → AlphaVantage API(
backtest/data.py) - 回溯测试 → 战略执行(
backtest/strategies.py) - 度量与可视化 → 结果显示在UI中
______________________________________________________________________
API密钥
AlphaVantage
- 免费层:从获取您的API密钥https://www.alphavantage.co/support/#api-钥匙
- 速率限制:每天25个请求
OpenAI
- 从获取API密钥https://platform.openai.com/api-keys
- 由Modal端点用于策略解析
模态
- 注册地址:https://modal.com
- 部署端点并获取的URL
MODAL_STRATEGY_URL
______________________________________________________________________
故障排除
“模态端点返回非200状态:404”
- 确保已部署Modal应用程序:
modal deploy modal_app.py - 检查一下
MODAL_STRATEGY_URL在.env与部署的端点URL匹配
“超过AlphaVantage API费率限制”
- 免费套餐每天允许25个请求
- 等待24小时或升级到高级计划
“指定日期范围内没有数据”
- AlphaVantage免费套餐仅提供约100个交易日
- 使用过去100天内的开始日期
“LLM策略解析失败”
- 检查一下
OPENAI_API_KEY设置在模态秘密中 - 验证模态端点是否正在运行
- 检查与Modal的网络连接
______________________________________________________________________
