内容
# 交易视图MCP服务器
> **生产就绪的多资产交易助手和Pine脚本开发服务器,用于Claude桌面**
[](https://github.com/lev-corrupted/TradingViewMCPServer/actions)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[](https://hub.docker.com)
[](https://github.com/lev-corrupted/TradingViewMCPServer/releases)
支持**外汇、股票和加密货币**的专业交易助手,拥有**25+技术指标**、**Pine脚本v6开发工具**和**生产级可靠性**。
## ✨ 功能
### 🎯 生产就绪(v3.4.0 新增!)
- **🏥 健康监测**:内置健康检查工具,带有缓存统计和API状态
- **🔄 自动重试逻辑**:网络故障的指数退避(3次重试:2秒、4秒、8秒)
- **⚡ LRU缓存**:内存有界缓存(1000个条目),自动驱逐
- **🐳 Docker支持**:使用Docker Compose的生产就绪容器化
- **🚀 CI/CD管道**:跨Python 3.10-3.12的自动化测试
- **✅ 100%测试覆盖率**:44/44测试通过
### 📊 交易与市场分析
- **多资产支持**:外汇(22+货币对)、美国股票、加密货币
- **25+技术指标**:成交量剖面、市场剖面、VWAP、斐波那契、布林带、MACD、移动平均线、ATR、支撑/阻力、枢轴点、随机指标、**RSI、CCI、威廉姆斯%R**、ADX、云图等
- **完整历史数据**:通过Alpha Vantage API获取**所有资产类型**(外汇、股票、加密货币)的实时报价和历史数据
- **智能缓存**:通过智能缓存减少70%的API调用
- **Claude桌面集成**:通过MCP与Claude桌面无缝集成
### Pine脚本开发工具(v3.1 新增)
- **Pine脚本v6支持**:完全支持最新的Pine脚本v6,包含类型、枚举和映射!⭐
- **实时语法验证**:全面的语法和语义错误检查,带有逐行反馈
- **智能自动补全**:上下文感知的代码补全,带有函数签名和文档
- **实时文档访问**:即时访问Pine脚本函数文档,带有示例(110+函数)
- **版本检测**:自动检测Pine脚本版本(v1-v6),带有兼容性分析
- **版本转换**:Pine脚本版本之间的自动代码转换(v3→v4→v5→v6)
- **代码测试沙盒**:带有验证和性能指标的安全测试环境
- **错误解释**:详细的错误描述,带有原因、解决方案和代码示例
- **代码模板**:可立即使用的指标、策略和覆盖层模板
## 🚀 快速入门
### 先决条件
- Python 3.10+ 或 Docker
- Claude 桌面
- Alpha Vantage API 密钥([获取免费密钥](https://www.alphavantage.co/support/#api-key))
### 选项 1:Docker(推荐) 🐳
```bash
# 1. 克隆仓库
git clone https://github.com/lev-corrupted/TradingViewMCPServer.git
cd TradingViewMCPServer
# 2. 创建 .env 文件
echo "ALPHA_VANTAGE_API_KEY=your_key_here" > .env
# 3. 使用 Docker Compose 运行
docker-compose up -d
# 4. 检查服务器健康状况
docker-compose logs -f
```
### 选项 2:标准安装
```bash
# 1. 克隆仓库
git clone https://github.com/lev-corrupted/TradingViewMCPServer.git
cd TradingViewMCPServer
# 2. 创建虚拟环境
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 3. 安装依赖项
pip install -e .
# 4. 创建 .env 文件
echo "ALPHA_VANTAGE_API_KEY=your_key_here" > .env
```
4. 配置Claude桌面:
编辑 `~/Library/Application Support/Claude/claude_desktop_config.json`(macOS)或 `%APPDATA%\Claude\claude_desktop_config.json`(Windows):
```json
{
"mcpServers": {
"tradingview": {
"command": "/absolute/path/to/TradingViewMCPServer/.venv/bin/python",
"args": [
"/absolute/path/to/TradingViewMCPServer/tradingview_mcp/server.py",
"stdio"
]
}
}
}
```
将 `/absolute/path/to/TradingViewMCPServer` 替换为实际安装路径。
5. 重启Claude桌面
## 💡 使用方法
### 健康检查(新增!) 🏥
监控服务器健康状况和性能:
```
检查服务器健康状况
缓存命中率是多少?
显示服务器统计信息
```
**返回:**
- 服务器版本和状态
- API密钥配置
- 缓存统计信息(大小、命中率、驱逐次数)
- 已进行的API调用总数
### 交易与市场分析 📊
向Claude桌面提问自然语言问题:
```
AAPL的当前价格是多少?
显示TSLA的布林带,时间范围为1小时
计算BTC的斐波那契水平
获取EURUSD的MACD和RSI
显示NVDA的支撑和阻力
SPY的成交量剖面是什么?
给我ETH的云图
计算GBPUSD的枢轴点和CCI
分析AAPL的威廉姆斯%R指标
```
### Pine脚本开发
请Claude帮助编写Pine脚本代码:
```
验证此Pine脚本代码:[粘贴代码]
将此v4代码转换为v5:[粘贴代码]
显示ta.macd的文档
在AAPL 1小时时间范围内测试此指标:[粘贴代码]
解释错误E101
检测此Pine脚本的版本:[粘贴代码]
给我一个Pine脚本策略模板
```
## 🛠️ 可用工具
### 服务器管理(v3.4.0 新增!)
- `health_check` - 服务器健康状况和缓存统计信息
### 价格和市场数据
- `get_price` - 获取任意资产的当前价格
- `get_multiple_prices` - 批量价格报价
- `list_available_pairs` - 列出外汇货币对
- `list_supported_assets` - 列出所有支持的资产
### 技术分析
- `analyze_pair` - 综合分析
- `get_trading_recommendation` - 交易信号
- `calculate_correlation` - 货币对相关性
### 成交量和剖面分析
- `get_volume_profile` - 价格水平的成交量
- `get_market_profile` - 市场剖面,带有TPO和价值区域
- `get_vwap` - 成交量加权平均价格
- `get_volume_nodes` - 高/低成交量节点
- `detect_unfilled_gaps` - 价格缺口检测
### 动量指标(新增:RSI、CCI、威廉姆斯%R)
- `get_stochastic` - 随机振荡器(%K、%D)
- `get_rsi` - **新增!** RSI(相对强弱指数)
- `get_cci` - **新增!** CCI(商品通道指数)
- `get_williams_r` - **新增!** 威廉姆斯%R
### 趋势指标
- `get_moving_averages` - 多个SMA/EMA
- `get_macd` - MACD指标
- `get_adx` - 平均方向指数(趋势强度)
- `get_ichimoku_cloud` - 云图
### 波动性指标
- `get_bollinger_bands` - 布林带
- `get_atr` - 平均真实范围
### 支撑/阻力
- `get_fibonacci_retracement` - 斐波那契水平
- `get_support_resistance` - 自动检测的水平
- `get_pivot_points` - 每日枢轴点
### Pine脚本开发(新增)
- `validate_pine_script` - 实时语法验证,详细错误报告(支持v1-v6)
- `get_pine_documentation` - 函数和主题文档,带有示例(110+函数)
- `test_pine_script` - 安全的沙盒测试,带有指标
- `explain_pine_error` - 详细的错误解释,带有解决方案
- `detect_pine_version` - 自动版本检测(v1-v6)
- `convert_pine_version` - 自动版本转换(支持v6!)
- `autocomplete_pine` - 智能代码补全(包括v6功能)
- `get_pine_template` - 可立即使用的代码模板
## 支持的资产
### 外汇
主要货币对、交叉货币对、奇异货币对和黄金(XAUUSD)
### 股票
美国股票,包括AAPL、MSFT、GOOGL、AMZN、TSLA、NVDA、META等
### 加密货币
BTC、ETH、BNB、XRP、ADA、SOL等主要加密货币
## 配置
### API速率限制
Alpha Vantage免费层:
- 每天25个请求
- 每分钟5个API调用
要获取更高的限制,请升级到高级API密钥。
### 时间范围
支持的时间范围:`5m`、`15m`、`30m`、`1h`、`4h`、`1d`
## 📈 版本历史
### 版本3.4.0 - 生产就绪(当前) 🚀
**主要生产级改进:**
#### 性能和可靠性
- ✅ **LRU缓存**:内存有界缓存,自动驱逐(最多1000个条目)
- ✅ **自动重试**:网络故障的指数退避(3次重试:2秒、4秒、8秒)
- ✅ **健康检查**:用于监控和调试的新MCP工具
- ✅ **100%测试**:所有44个测试通过(之前为93%)
#### 开发人员体验
- ✅ **Docker支持**:生产就绪的Dockerfile和docker-compose.yml
- ✅ **CI/CD管道**:跨Python 3.9-3.12的自动化测试
- ✅ **需求**:单独的运行时和开发依赖项
#### 错误修复
- 修复了pyproject.toml中的版本不匹配问题
- 修复了3个失败的测试(ATR、布林带、Pine脚本v5)
- 验证了.env安全性(不在git中)
**测试结果:** 44/44 通过(100%)| **更改的文件:** 12 | **添加的行:** 661+
请参阅 [IMPROVEMENTS_v3.4.0.md](IMPROVEMENTS_v3.4.0.md) 以获取完整详细信息。
---
### 版本 3.3.0 - 新增指标
- 新增RSI(相对强弱指数)指标
- 新增CCI(商品通道指数)指标
- 新增威廉姆斯%R指标
- 股票和加密货币的完整历史数据支持
- 更新README:20+ → 25+ 指标
### 版本 3.1 - Pine脚本v6支持 ⭐
主要更新,全面支持Pine脚本v6:
### 新增功能
- **Pine脚本v6**:完全支持最新的Pine脚本版本
- **V6数据结构**:类型(结构体)、枚举和映射集合
- **110+函数签名**:增强的函数数据库,包括map.*命名空间
- **增强转换**:v3→v4→v5→v6自动迁移
- **8个Pine脚本MCP工具**:完整的开发环境
- **3000+行Pine脚本代码**:词法分析器、解析器、验证器等
- **版本支持**:全面支持Pine脚本v1-v6
- **智能分析**:基于AST的解析和验证
- **上下文感知补全**:命名空间感知的自动补全(ta.、math.、str.、map.)
- **错误数据库**:常见错误的详细解释
请参阅 [PINE_SCRIPT.md](PINE_SCRIPT.md) 以获取完整的Pine脚本文档。
### 架构
- **模块化设计**:交易视图分析和Pine脚本工具之间的清晰分离
- **组织良好的代码库**:按功能逻辑分组
- **统一的MCP服务器**:单个安装,无缝集成
请参阅 [ARCHITECTURE.md](ARCHITECTURE.md) 以获取详细的架构文档。
## 版本 3.0 - Pine脚本集成
初始Pine脚本开发工具发布:
- 8个综合MCP工具
- 支持Pine脚本v1-v5
- 自动代码转换和验证
## 版本2.0改进
此版本包括重大改进和重构:
### 架构
- **模块化结构**:从单一的1700行文件重构为有组织的模块
- `api/`:带有缓存和速率限制的API客户端
- `indicators/`:按类型组织的technical指标
- `utils/`:实用函数和格式化程序
- `config.py`:集中式配置
### 性能和可靠性
- **智能缓存**:带有TTL的内存缓存减少了约70%的API调用
- **速率限制**:自动速率限制保护以防止API错误
- **改进的错误处理**:标准化的错误响应,有用的建议
- **综合日志记录**:调试和跟踪所有操作
### 代码质量
- **类型提示**:整个代码中完整的类型注释
- **更好的计算**:修复了MACD、随机指标和ADX公式
- **常量**:所有神奇数字提取到命名常量
- **测试套件**:包括pytest测试框架
### 开发
- **较低的Python要求**:现在支持Python 3.10+(之前为3.13+)
- **开发工具**:添加了black、mypy、pytest等开发依赖项
- **更好的文档**:改进了文档字符串和代码注释
### API改进
- **通用资产检测**:自动检测外汇、股票或加密货币
- **更好的外汇检测**:处理各种格式(EUR/USD、EURUSD等)
- **缓存统计信息**:使用`get_server_stats()`工具查看缓存性能
## 测试
运行测试套件:
```bash
# 安装开发依赖项
pip install -r requirements-dev.txt
# 运行所有测试
pytest
# 运行覆盖率
pytest --cov=tradingview_mcp --cov-report=html
# 运行特定测试文件
pytest tests/test_cache.py -v
# 运行匹配模式的测试
pytest -k "test_cache" -v
```
## 故障排除
### Claude桌面未连接
1. 验证配置文件路径是否正确
2. 检查配置文件中的Python路径
3. 确保.env文件存在有效的API密钥
4. 重启Claude桌面
### API速率限制错误
请在1分钟内等待请求或升级API密钥。
### 模块导入错误
确保虚拟环境已激活且依赖项已安装:
```bash
source .venv/bin/activate
pip install -e .
```
## 📁 仓库结构
```
TradingViewMCPServer/
├── tradingview_mcp/ # 核心Python包
│ ├── server.py # MCP服务器实现
│ ├── config.py # 配置管理
│ ├── api/ # Alpha Vantage API客户端
│ ├── indicators/ # 技术指标(25+)
│ ├── pine_script/ # Pine脚本开发工具
│ └── utils/ # 实用工具(缓存、重试等)
├── tests/ # 测试套件(44/44通过)
├── docs/ # 文档
│ ├── ARCHITECTURE.md # 系统架构
│ ├── CONTRIBUTING.md # 贡献指南
│ ├── PROJECT_SUMMARY.md # 项目概述
│ ├── GITHUB_REPO_INFO.md # GitHub仓库元数据
│ ├── guides/ # 使用指南
│ └── releases/ # 版本说明和检查清单
├── examples/ # 示例代码
│ └── pine-scripts/ # Pine脚本示例和模板
├── .github/ # GitHub Actions CI/CD
├── logs/ # 应用程序日志
├── README.md # 此文件
├── CHANGELOG.md # 完整的版本历史
├── pyproject.toml # 项目元数据
├── requirements.txt # 依赖项
└── Dockerfile # Docker配置
```
### 关键目录
- **[tradingview_mcp/](tradingview_mcp/)** - 主Python包,包含所有服务器逻辑
- **[tests/](tests/)** - 综合测试套件,覆盖率100%
- **[docs/](docs/)** - 所有文档、指南和架构文档
- **[examples/pine-scripts/](examples/pine-scripts/)** - Pine脚本示例、策略和模板
- **[.github/](.github/)** - CI/CD工作流和问题模板
## 许可证
MIT许可证 - 请参阅LICENSE文件获取详细信息
## 贡献
我们欢迎贡献!请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)获取详细指南。
### 如何贡献
- **错误报告**:使用错误报告模板
- **功能请求**:使用功能请求模板
- **代码贡献**:Fork、创建分支并提交PR
- **文档**:改进README、代码注释或示例
- **示例用例**:
请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 获取开发设置和编码标准。
## 支持
问题或疑问:
1. 检查 [Troubleshooting](#troubleshooting) 部分
2. 审查 [CONTRIBUTING.md](CONTRIBUTING.md)
3. 搜索现有的 [GitHub Issues](https://github.com/lev-corrupted/TradingViewMCPServer/issues)
4. 开启一个带有适当模板的新问题