投资组合顾问工具

一个基于规则的投资组合顾问工具,使用Yahoo Finance MCP服务器获取实时市场数据,适用于个人投资者进行投资组合管理和自动化交易决策。

  • by dvd90
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 dvd90/ts-portfolio-agent

使用说明

TS投资组合代理

一个基于规则的TypeScript投资组合顾问,利用Yahoo Finance MCP服务器获取实时市场数据。

先决条件

雅虎财经MCP服务器(获取实时数据必需)

这个项目使用了 雅虎财经MCP服务器 获取市场数据。

使用真实市场数据您需要安装并配置MCP服务器:

# Install the Yahoo Finance MCP server (one-time install)
npm install -g @onori/yfinance-mcp-server

# Or use via npx (downloads on each run)
npx @onori/yfinance-mcp-server

然后将其添加到您的MCP设置中(通常在 ~/.config/claude/mcp.json 或者您IDE的MCP配置:

{
  "mcpServers": {
    "yfinance": {
      "command": "npx",
      "args": ["-y", "@onori/yfinance-mcp-server"]
    }
  }
}

对于 Cursor IDE,请在设置中添加:

{
  "mcpServers": {
    "yfinance": {
      "command": "npx",
      "args": ["@onori/yfinance-mcp-server"]
    }
  }
}

注: 如果没有MCP服务器,应用程序将使用模拟数据进行开发和测试。

快速入门

  1. 安装依赖项:
    npm i
    
  2. 编辑 data/portfolio.csv 根据您的持股情况。
  3. 以开发模式运行(无需构建):
    npm run dev
    
    或者构建并运行以用于生产环境:
    npm run build
    npm start
    
  4. 将生成一个Markdown格式的报告,保存至 reports/YYYY-MM-DD.md。

投资组合CSV模式

ticker,shares,cost_basis
AAPL,50,165.20
MSFT,10,295.00
NVDA,5,610.00

信号与规则

  • 信号: MA50对比MA200(趋势),RSI-14(动量),价格对比52周高点。
  • 购买: 得分≥2,相对强弱指数(RSI)≤65,且在最大仓位和插槽数范围内。
  • 修剪/出售: 止损/止盈;50日均线小于200日均线;相对强弱指数(RSI)大于70;超过最大持仓量。

配置

编辑 src/config.ts 设置仓位限制、现金、投资范围等。

GitHub Actions(自动化)

  • 工作流程在 .github/workflows/agent.yml 每天构建并运行。
  • 将生成的报告提交回仓库。
  • 可选地,从(某处)发布GitHub Pages /reports.

数据源

这个项目使用了 雅虎财经MCP服务器 用于获取市场数据:

  • 无需API密钥
  • 免费使用
  • 通过MCP集成获取实时市场数据
  • 当MCP不可用时,回退到模拟数据(用于开发/测试)

要使用真实市场数据,请确保已安装并配置好Yahoo Finance MCP服务器(参见上文的“先决条件”部分)。

注释

  • 调整cron计划任务中的设置 .github/workflows/agent.yml 如果您想根据您的交易时间/时区进行调整。
  • 考虑在进行实盘交易前先进行回测。
  • 对于自定义数据源,请修改 src/data.ts 实现你自己的数据获取逻辑。

⚠️ 非投资建议。请先用于教育/回测/模拟交易。