股票市场AI助手

一个实时印度股票市场AI助手,通过模型上下文协议(MCP)构建,提供实时NSE/BSE市场情报、期权希腊值计算、投资组合管理和量化交易信号。

  • by deepak-05dktopG
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 deepak-05dktopG/IndiaQuant-MCP-Server

使用说明

IndiaQuant MCP服务器🚀

通过模型上下文协议(MCP)构建的实时印度股市人工智能助手。它直接连接到Claude Desktop(或任何兼容MCP的代理),提供实时NSE/BSE市场情报、希腊期权计算(从头开始)、投资组合管理和定量交易信号。


🏗️ 架构和模块

该系统建立在 100%免费API (yfinance、NewsAPI、Alpha Vantage),完全通过SQLite在本地运营。该架构由5个核心模块组成,通过10个不同的MCP工具公开。

1.市场数据引擎(market_engine.py)

  • 使用以下命令提取实时价格、交易量和日变化指标 yfinance.
  • 自动处理NSE股票代码翻译(.NS 后缀)。
  • 实现TTL缓存(cachetools)以防止AI快速连续查询的速率限制禁令。

2.定量逻辑库(quant_logic.py)

  • 布莱克-斯科尔斯从头开始: 使用纯数学推导计算期权价格、Delta、Gamma、Vega和Theta(通过 math, numpy, scipy.stats.norm).不使用黑盒选项库。
  • 技术指标(RSI、MACD、布林带)通过OHLC数据手动得出。

3.AI交易信号生成器(signal_generator.py)

  • 将技术约束(超卖RSI界限、MACD看涨交叉、%B支撑位)与NewsAPI情绪分析相结合。
  • NLP情绪评分通过 TextBlob.
  • 将技术和情绪标记聚合成加权的1-100置信度得分,映射到严格的 BUY, SELL,或 HOLD 建议。

4.选项链分析器(options_analyzer.py)

  • CE/PE链的实时抓取。
  • 扫描最多6个最近的赎罪日。
  • 计算 最大疼痛 通过汇总所有罢工的内在价值。
  • 检测异常体积(>3×中位数)和OI峰值(z评分>1.5)。

5.投资组合风险经理(portfolio_manager.py)

  • SQLite支持的虚拟交易状态管理(data/portfolio.db).
  • 根据实时CMP跟踪实时损益。
  • 对设定的止损和目标进行自动跟踪/违规检测。
  • 使用30天内未加权的年化历史波动率计算每个头寸的自动风险评分(0-100)。

🛠️ 10个MCP工具

工具名称 描述
get_live_price 获取NSE交易品种或指数的实时报价、变化百分比和交易量。
get_options_chain 拉活到期链,富含LTP、OI和IV
analyze_sentiment 汇总和评分最近的新闻头条。
generate_signal 生成0-100信心买入/卖出信号。
get_portfolio_pnl 虚拟投资组合的实时损益表。
place_virtual_trade 开立模拟多头/空头头寸(持续)。
calculate_greeks 在给定Spot、Strike、Expire和IV的情况下运行纯Black-Scholes数学
detect_unusual_activity 机构OI/Volume鲸鱼扫描链。
scan_market 按百分比变化和RSI约束筛选Nifty50/行业。
get_sector_heatmap 10个主要NSE行业的平均价格变化。

🚀 设置和安装

需求

  • Python 3.10+
  • 已安装Claude Desktop

1.克隆和安装

git clone https://github.com/your-repo/IndiaQuant-MCP-Server.git
cd IndiaQuant-MCP-Server
python -m venv .venv

# On Windows:
.venv\Scripts\activate
# On Mac/Linux:
source .venv/bin/activate

pip install -r requirements.txt

2.环境变量

创建一个名为的文件 .env 在根文件夹中基于 .env.example:

NEWS_API_KEY=your_key_here
ALPHA_VANTAGE_KEY=your_key_here

(两者都是免费等级。如果省略NewsAPI,情绪评分将默认为中性0.0)

3.连接到克劳德桌面(Windows)

打开 %APPDATA%\Claude\claude_desktop_config.json 并添加:

{
  "mcpServers": {
    "indiaquant": {
      "command": "C:/Path/To/Your/Python/python.exe",
      "args": [
        "C:/Path/To/IndiaQuant-MCP-Server/mcp_server.py"
      ]
    }
  }
}

注意:请确保使用正斜杠将上述路径替换为实际的绝对路径 /。然后完全重新启动Claude Desktop。


🛑 权衡和已知限制

1.延迟和免费API yfinance 被大量使用。虽然缓存可以防止冗余的相同调用,但为Nifty 50扫描并发请求获取完整的选项链+OHLC逻辑可能会很慢。生产系统将接收实时UDP多播滴答声,而不是轮询抓取API。

2.固定无风险利率 目前, RISK_FREE_RATE 静态映射到约6.5%的标准NSE T-Bill产量。真正的量化堆栈将插值映射到贴现因子生成到期前确切天数的零息票收益率曲线。

3.隐含波动 金融IV数据经常过时或格式错误。当缺失时,服务器会通过尝试计算基础的30天历史波动率并将其代入Black-Scholes来优雅地降级。

4.并发DB写入 SQLite数据库 portfolio.db 使用简单的锁定。如果克劳德打电话来 place_virtual_trade 高度异步并行, sqlite3.OperationalError (数据库已锁定)可能会发生。这对于单用户代理接口是可以接受的,但对于高频websocket后端则不可接受。

📬 Contact


⭐ If you like this project, consider giving it a star and sharing it!
Contributions and feedback are welcome 🙌