AI交易助手

AITrader是一个基于MCP协议的AI交易助手,连接AI客户端与实时市场数据、技术分析和AI研究,提供市场数据、技术分析和交易建议生成功能。

  • by Muno459
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Muno459/AITrader

使用说明

AITrader

基于MCP的人工智能交易助手,将人工智能客户端与实时市场数据、技术分析和人工智能驱动的研究联系起来。构建为具有Python数据管道和TypeScript MCP服务器的单仓库。

建筑

┌──────────────┐     stdio (JSON-RPC)     ┌──────────────────┐
│   AI Client  │◄────────────────────────►│   MCP Server     │
│  (Claude,    │                          │   (TypeScript)    │
│   etc.)      │                          │   16 tools        │
└──────────────┘                          │   6 resources     │
                                          └────┬────────┬─────┘
                                               │        │
                                    HTTP :8321  │        │  HTTP :4141
                                               ▼        ▼
                                     ┌────────────┐  ┌──────────────┐
                                     │  Bot API   │  │  copilot-api │
                                     │  (Python)  │  │  (AI backend)│
                                     │  FastAPI   │  │  OpenAI-     │
                                     │  tvscreener│  │  compatible  │
                                     └────────────┘  └──────────────┘
                                          │
                                          ▼
                                   TradingView
                                   Scanner API

三层:

层 技术 端口 角色
数据 Python、tvscreener、FastAPI 8321 市场数据、技术、筛选
AI 副驾驶api(GitHub副驾驶代理) 4141 研究报告,交易创意生成
MCP TypeScript,@modelcontextprotocol/sdk stdio AI客户端的工具/资源接口

先决条件

  • Node.js>=18 (.nvmrc 设置为22)
  • Python>=3.10
  • GitHub Copilot 订阅 (通过副驾驶api获取AI功能)

设置

# Clone and enter the project
cd AITrader

# Install everything (npm + Python)
npm run setup

# Or manually:
npm install
cd packages/bot && pip install -e . && cd ../..

# Build the MCP server
npm run mcp -- --workspace=packages/mcp run build
# or directly:
npx tsc --project packages/mcp/tsconfig.json

跑步

快速启动(所有服务)

./start.sh

这将启动:

  1. 副驾驶api 在端口4141上(AI后端)
  2. 博特API 端口8321(数据管道)
  3. 打印连接MCP服务器的说明

手动启动(个人服务)

# Terminal 1: AI backend
npx copilot-api@latest start

# Terminal 2: Data pipeline
python3 -m aitrader_bot.api

# Terminal 3: MCP server (connect to an AI client)
node packages/mcp/dist/index.js

使用克劳德代码注册

claude mcp add aitrader -- node /path/to/AITrader/packages/mcp/dist/index.js

环境变量

变量 默认值 描述
BOT_API_URL http://localhost:8321 Python机器人程序API地址
AI_BASE_URL http://localhost:4141/v1 副驾驶api地址
AI_API_KEY dummy API密钥(copilot-API不需要真正的密钥)
AI_MODEL gpt-4.1 用于AI功能的模型
CONTENT_DIR ./content 缓存的报告和新闻目录

MCP工具

市场数据和符号

工具 说明
symbol-overview 完整快照:价格、交易量、基本面、技术面、评级
symbols-search 按名称或股票代码查找符号
sp500-movers 标普500指数涨幅或跌幅最大的股票
macro-snapshot 主要指数(SPY、QQQ、DIA、IWM)、波动率指数、利率、大宗商品、外汇
screen-stocks 带过滤器的柔性筛分机(price > 100, rsi < 30等)、排序、索引过滤
crypto-overview 加密货币快照
forex-overview 外汇对快照

技术分析

工具 说明
technicals-get RSI、MACD、布林带、SMA(20/50/200)、随机指标、ADX、CCI、动量
signals-get 离散信号:RSI超买/超卖、MACD交叉、黄金/死亡交叉、布林触线
signals-batch 多个符号的批处理信号
prices-recent-closes 最近的OHLCV数据

支持的时间范围: 1, 5, 15, 30, 60, 240, 1D, 1W, 1M

人工智能研究

工具 说明
symbol-research 获取市场数据+技术数据+信号,然后生成人工智能分析师报告
trade-ideas 筛选候选人,运行批量信号,根据标准生成人工智能交易想法
report-latest 检索符号的最新缓存报告
news-index 列出某个符号的缓存新闻文章

效用

工具 说明
help-usage 完整的工具列表、工作流示例和连接状态

MCP资源

URI可寻址只读端点:

URI 返回
report://{symbol}/latest 最新缓存的研究报告(降价)
technicals://{symbol} 实时技术指标(JSON)
signals://{symbol} 实时交易信号(JSON)
movers://sp500/{direction} 标准普尔500指数走势图(JSON)
files://news/{symbol} 缓存的新闻文件列表
files://reports/{symbol} 缓存的报告文件列表

工作流

筛选循环

sp500-movers (direction: "up")
  → signals-batch (top movers)
    → technicals-get (best candidates)
      → symbol-research (top pick)

深潜

symbol-overview ("AAPL")
  → technicals-get + signals-get
    → symbol-research
      → report-latest (retrieve cached)

贸易创意生成

trade-ideas (criteria: "oversold large caps with high volume")
  → internally screens, runs signals, generates AI ideas

宏观背景

macro-snapshot
  → sp500-movers (direction: "down")
    → signals-batch (losers to find oversold bounces)

项目结构

AITrader/
├── packages/
│   ├── bot/                          # Python data pipeline
│   │   ├── aitrader_bot/
│   │   │   ├── screener.py           # tvscreener integration (11 functions)
│   │   │   └── api.py                # FastAPI HTTP bridge
│   │   └── pyproject.toml
│   └── mcp/                          # TypeScript MCP server
│       ├── src/
│       │   ├── index.ts              # Server entry point (stdio transport)
│       │   ├── lib/
│       │   │   ├── bot-client.ts     # HTTP client → Python bot API
│       │   │   ├── ai-client.ts      # OpenAI client → copilot-api
│       │   │   └── cache.ts          # File-based report/news cache
│       │   ├── tools/
│       │   │   ├── market-data.ts    # 7 market data tools
│       │   │   ├── technicals.ts     # 4 technical analysis tools
│       │   │   ├── research.ts       # 4 AI research tools
│       │   │   └── utility.ts        # help tool
│       │   └── resources/
│       │       └── index.ts          # 6 URI resource endpoints
│       ├── tsconfig.json
│       └── package.json
├── config/
│   └── mcp.json                      # MCP client configuration
├── content/                          # Cached reports & news (auto-created)
├── database/                         # SQLite databases
├── start.sh                          # All-in-one launcher
├── start-dev.sh                      # Dev mode launcher
├── .nvmrc                            # Node version (22)
└── package.json                      # Workspace root

数据源

  • 市场数据: 电视筛选器 (非官方TradingView屏蔽程序API)
  • AI后端: 副驾驶api (GitHub Copilot作为兼容OpenAI的API)

备注

  • MCP服务器通过以下方式进行通信 标准. stdout 仅适用于JSON-RPC消息。所有日志都转到 stderr.
  • 人工智能研究工具会优雅地降级:如果副驾驶api不可用,原始数据仍然会返回。
  • 缓存的报告以markdown形式存储在 content/{SYMBOL}/reports/.
  • tvscreener查询TradingView的公共API,不需要身份验证。