自动化跟单交易机器人

PolyCopy是一个自动化跟单交易机器人,用于Polymarket预测市场,支持多种跟单策略和实时监控。

  • by neosun100
  • TypeScript
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 neosun100/polycopy

使用说明

英语 | 简体中文 | 繁体中文 | 日本语

PolyCopy

Automated copy trading bot for Polymarket prediction markets


⚠️ 安全说明:该项目是从一个包含隐藏私钥盗窃代码的恶意存储库中分叉出来的。所有恶意代码已被删除,审核了3次,该项目已完全重写为安全第一的设计。看 安全 了解详情。

✨ 特性

  • 多交易者跟单交易 --同时跟踪和镜像多个顶级Polymarket交易员的交易
  • 3复制策略 --具有分层乘数的百分比、固定或自适应大小
  • 关闭开关保护 --超过阈值时,自动每日损失上限停止交易
  • 预览模式 --模拟运行模式,无需冒实际资金风险即可进行测试
  • 贸易汇总 --将小额交易合并为较大的可执行订单
  • 位置跟踪 --即使在余额变化后,也能准确跟踪买入/卖出
  • Web仪表板 --具有深色主题和多语言支持的实时监控UI
  • REST API+Swagger -完整的API和交互式文档 /docs
  • MCP服务器 --AI辅助访问的模型上下文协议集成
  • 电报通知 --交易执行、终止开关和错误警报
  • 零外部数据库 --使用NeDB(本地文件存储),不需要MongoDB
  • Docker就绪 --单容器,189MB,一体化部署

🚀 快速开始

选项1:Docker(推荐)

# Pull and run
docker run -d --name polycopy \
  -p 3000:3000 \
  -v polycopy_data:/app/data \
  --env-file .env \
  neosun/polycopy:latest

# Open dashboard
open http://localhost:3000

选项2:来源

git clone https://github.com/neosun100/polycopy.git
cd polycopy
npm install
cp .env.example .env   # Edit with your settings
npm run build
npm start              # Bot + Web UI on port 3000

⚙️ 配置

复制 .env.example 到 .env 并配置:

# Required
USER_ADDRESSES='0xTraderAddress1,0xTraderAddress2'  # Traders to copy
PROXY_WALLET='0xYourWalletAddress'                   # Your wallet
PRIVATE_KEY='your_64_hex_private_key'                # No 0x prefix
RPC_URL='https://polygon-mainnet.infura.io/v3/KEY'   # Polygon RPC

# Strategy (defaults shown)
COPY_STRATEGY='PERCENTAGE'    # PERCENTAGE | FIXED | ADAPTIVE
COPY_SIZE=10.0                # 10% of trader's order
MAX_ORDER_SIZE_USD=100.0      # Max per trade
SLIPPAGE_TOLERANCE=0.05       # Max price deviation

# Safety
DAILY_LOSS_CAP_PCT=20         # Kill switch at 20% daily loss
PREVIEW_MODE=false            # Set true to test without trading

# Optional
TELEGRAM_BOT_TOKEN='...'      # From @BotFather
TELEGRAM_CHAT_ID='...'        # Your chat ID

看 .env.示例 所有选项,包括分层乘数和贸易汇总。

🖥️ 访问模式

模式 URL 描述
Web用户界面 http://localhost:3000 带有交易监控的仪表板
斯瓦格 http://localhost:3000/docs 交互式API文档
REST API http://localhost:3000/api/* 程序化访问
MCP stdio AI助手集成

MCP配置

{
  "mcpServers": {
    "polycopy": {
      "command": "node",
      "args": ["dist/mcp/server.js"]
    }
  }
}

可用的MCP工具: get_bot_status, get_recent_trades, get_positions, get_config

🏗️ 项目结构

polycopy/
├── src/
│   ├── config/          # Environment & strategy configuration
│   ├── interfaces/      # TypeScript type definitions
│   ├── models/          # NeDB data models
│   ├── server/          # Express.js Web UI + API
│   ├── services/        # Trade monitor & executor
│   ├── mcp/             # MCP server
│   ├── utils/           # Core utilities (orders, balance, logging)
│   ├── scripts/         # CLI tools (health check, simulation, etc.)
│   └── __tests__/       # Unit tests (40 tests)
├── Dockerfile           # Multi-stage build
├── docker-compose.yml   # One-command deployment
└── .env.example         # Configuration template

🛡️ 安全

这个项目是从 已知的恶意存储库 并经历了广泛的安全强化:

  • ✅ 删除隐藏的私钥盗窃码(keccak256-helper 供应链攻击)
  • ✅ 删除2个恶意npm包
  • ✅ 从文档中删除了泄漏的MongoDB凭据和API密钥
  • ✅ 三轮安全审计(代码、依赖关系、网络请求)
  • ✅ 预提交秘密扫描脚本(npm run check-secrets)
  • ✅ npm audit 每次启动前自动运行
  • ✅ 启动时进行私钥格式验证
  • ✅ 无外部数据外过滤-仅连接Polymarket API和Polygon RPC

🧪 测试

npm test                # Run all 40 tests
npm run test:coverage   # With coverage report
npm run check-secrets   # Scan for leaked secrets
npm run health-check    # Verify all connections

🔧 技术栈

组件 技术
语言 TypeScript 5
运行时 Node.js 18+
交易 @polymarket/clob客户(官方)
区块链 ethers.js v5(多边形)
数据库 NeDB(本地文件,零配置)
Web UI Express.js+vanilla js
API文档 Swagger用户界面
MCP @modelcontextprotocol/sdk
测试 玩笑+玩笑
容器 Docker(Alpine,189MB)

📋 可用命令

npm start              # Start bot + web UI
npm run dev            # Development mode
npm run health-check   # Verify configuration
npm run check-secrets  # Security scan
npm test               # Run tests
npm run find-traders   # Discover profitable traders
npm run simulate       # Backtest strategies
npm run check-stats    # View trading statistics

👥 贡献者


🛡️ Security Hardening & v2.0 Rewrite

📝 Original Codebase (v1.0)

Neo孙 (v2.0--安全重写):

  • 🛡️ 发现并删除隐藏的私钥盗窃码(keccak256-helper 供应链攻击)
  • 🛡️ 删除2个恶意npm包(keccak256-helper, encrypt-layout-helper)
  • 🛡️ 三轮安全审计(代码、依赖关系、网络请求)
  • 🛡️ 从文档中删除了泄漏的MongoDB凭据和Infura API密钥
  • 🛡️ 添加了预提交秘密扫描和 npm audit 自动化
  • 🚀 从MongoDB迁移到NeDB(零外部数据库依赖)
  • 🚀 添加了终止开关+每日损失上限保护
  • 🚀 新增预览/模拟运行模式
  • 🚀 添加了Telegram通知
  • 🚀 添加了Web UI仪表板+REST API+Swagger文档
  • 🚀 添加MCP服务器以集成AI助手
  • 🚀 平行交易者监控(多个交易者速度提高5倍)
  • 🚀 可配置的滑动保护
  • 🐛 固定的 TOO_OLD_TIMESTAMP 比较错误(将Unix时间戳与小时整数进行比较)
  • 🐛 删除了约80行死代码(无法访问 merge 分支)
  • 🧪 增加了40个单元测试(copyStrategy、postOrder、env)
  • 🐳 Docker一体化镜像(189MB,多阶段构建)
  • 📝 4语言自述文件(英文/中文/台湾/日本)

莱斯特·科瓦塔 (v1.0--原始):

  • 📝 核心复制交易逻辑(交易监视器、执行器、订单过账)
  • 📝 3种复制策略(百分比、固定、自适应),具有分层乘数
  • 📝 位置跟踪系统 myBoughtSize
  • 📝 小订单的交易汇总
  • 📝 20+CLI实用程序脚本(查找交易者、模拟、检查统计数据等)
  • 📝 综合文档(15+指南)

⚠️ 关于原始代码库的注释:v1.0代码是一个功能齐全的复制交易机器人,值得称赞。然而,它也包含了一个精心隐藏的供应链攻击: setTimeout 调用埋在一行500个字符的末尾,该行会悄悄地将您的私钥发送到恶意的npm包。该代码旨在在窃取资金时看起来合法。这是一个教科书式的例子,说明为什么你应该 永远不要用真正的私钥运行未经审计的交易机器人。v2.0中已删除所有恶意代码。

🤝 贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing)
  3. 运行测试(npm test)
  4. 提交更改(git commit -m 'Add amazing feature')
  5. 推送到分支(git push origin feature/amazing)
  6. 打开拉取请求

📄 许可证

MIT许可证——见 许可证.md

⭐ 星史

📱 跟随


免责声明:此软件仅用于教育目的。交易涉及损失风险。只投资你能承受损失的东西。