Tradovate交易服务器

一个用于Tradovate集成的模型上下文协议(MCP)服务器,使AI助手能够通过自然语言交互管理Tradovate交易账户。

  • by 0xjmp
  • Go
  • 本地部署
  • 20 星标
  • 更新于
在 GitHub 查看 0xjmp/tradovate-mcp

使用说明

MCP Tradovate服务器

Claude Desktop中用于Tradovate集成的模型上下文协议(MCP)服务器。该服务器使AI助手能够通过自然语言交互管理Tradovate交易账户。

特性

  • ✅ 完成Tradovote API集成
  • 🔒 安全身份验证处理
  • 📈 实时市场数据访问
  • 💼 账户管理
  • 📊 风险管理控制
  • 🔄 订单下达和管理
  • 📝 全面的测试覆盖率

安装

通过Smithery安装

要通过Smithery自动安装Claude Desktop的Tradovate MCP服务器,请执行以下操作:

npx -y @smithery/cli install @0xjmp/mcp-tradovate --client claude

手动安装

  1. 克隆存储库:
git clone https://github.com/0xjmp/mcp-tradovate.git
cd mcp-tradovate
  1. 安装依赖项:
go mod download
  1. 构建项目:
go build ./cmd/mcp-tradovate
  1. 运行:
./mcp-tradovate

配置

创建一个 .env 使用您的Tradovate凭据在项目根目录中创建文件:

TRADOVATE_USERNAME=your_username
TRADOVATE_PASSWORD=your_password
TRADOVATE_APP_ID=your_app_id
TRADOVATE_APP_VERSION=your_app_version
TRADOVATE_CID=your_client_id
TRADOVATE_SEC=your_client_secret

可用工具

认证

  • authenticate:连接到Tradovote API
    • 无需参数

账户管理

  • get_accounts:列出所有交易账户

    • 无需参数
  • get_positions:查看当前职位

    • 无需参数
  • get_risk_limits:获取风险管理设置

    • 所需参数:
      • account_id:(number)要获取限额的帐户ID
  • set_risk_limits:配置风险管理设置

    • 所需参数:
      • account_id:(number)用于设置限制的帐户ID
      • day_max_loss:(数字)每日最大损失限额
      • max_drawdown:(数字)最大提款限额
      • max_position_qty:(number)最大仓位数量
      • trailing_stop:(数字)尾随停车百分比

交易操作

  • place_order:提交新订单

    • 所需参数:
      • account_id:(number)用于下订单的帐户ID
      • contract_id:(编号)要交易的合同ID
      • order_type:(string)订单类型(市价、限价等)
      • quantity:(数量)交易合同数量
      • time_in_force:(string)有效时间(日、GTC、IOC等)
    • 可选参数:
      • price:(数字)订单价格(限价订单需要)
  • cancel_order:取消现有订单

    • 所需参数:
      • order_id:(number)要取消的订单ID
  • get_fills:获取特定订单的订单

    • 所需参数:
      • order_id:(number)用于获取填充的订单ID

市场数据

  • get_contracts:列出可用合同

    • 无需参数
  • get_market_data:获取实时市场数据

    • 所需参数:
      • contract_id:(number)用于获取市场数据的合同ID
  • get_historical_data:获取历史价格数据

    • 所需参数:
      • contract_id:(number)用于获取数据的合同ID
      • start_time:(字符串)ISO 8601格式的开始时间
      • end_time:(字符串)ISO 8601格式的结束时间
      • interval:(字符串)时间间隔(1m、5m、15m、1h、1d)

发展

运行测试

在覆盖范围内运行所有测试:

go test -v -race -coverprofile=coverage.txt -covermode=atomic ./...

代码的风格

遵循Go最佳实践和惯例:

go fmt ./...
go vet ./...

故障排除

常见问题

  1. 身份验证失败

    • 在 .env 文件
    • 确保您的API访问在Tradovote中启用
  2. 连接问题

    • 检查您的互联网连接
    • 验证Tradovote API状态
    • 确保防火墙没有阻止连接
  3. 速率限制

    • 在请求之间实施适当的延迟
    • 监控API使用限制

贡献

欢迎投稿!请随时提交拉取请求。

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

支持

如果您遇到任何问题或有疑问,请在GitHub存储库上提交问题。

作者

杰克·彼得森(@0xjmp)