暂无描述

lushdog bb8edcb20b readme 3 月之前
.env.example f1083a712f main 3 月之前
.gitignore f1083a712f main 3 月之前
README.md bb8edcb20b readme 3 月之前
bid.mjs a8faebf102 单项下单 3 月之前
index.mjs f1083a712f main 3 月之前
package-lock.json f1083a712f main 3 月之前
package.json f1083a712f main 3 月之前

README.md

Polymarket BTC Up/Down Trading Bot

这是一个自动化交易机器人,用于在 Polymarket 上交易比特币涨跌预测市场。机器人会根据当前时间自动计算正确的市场 slug,支持同时下单 UP 和 DOWN 的限价单,也支持指定方向单独下单。

功能特性

  • 🕐 自动时间计算:根据当前 UTC 时间自动计算下一个 15 分钟间隔的市场 slug
  • 📊 双向下单index.mjs 可同时下单 UP 和 DOWN 的限价单
  • 🎯 单向下单bid.mjs 支持根据参数指定下单方向(UP 或 DOWN)
  • 🔐 环境变量支持:通过 .env.local 文件安全地管理私钥和配置
  • 实时交易:使用 Polymarket CLOB API 进行实时交易
  • 🛡️ 错误处理:完善的错误处理和日志记录

安装依赖

npm install

环境配置

  1. 复制环境变量示例文件:

    cp env.example .env.local
    
  2. 编辑 .env.local 文件,填入你的配置:

    PRIVATE_KEY=你的私钥
    FUNDER_ADDRESS=你的Polymarket地址
    

使用方法

index.mjs - 同时下单 UP 和 DOWN

同时下单 UP 和 DOWN 的限价单(价格和数量从环境变量读取):

node index.mjs

bid.mjs - 指定方向下单

根据传入参数指定下单方向,支持命令行参数覆盖价格和数量:

基本用法

# 下单 UP(使用环境变量中的默认价格和数量)
node bid.mjs up

# 下单 DOWN(使用环境变量中的默认价格和数量)
node bid.mjs down

指定价格和数量

# 下单 UP,价格为 0.49,数量为 5
node bid.mjs up 0.49 5

# 下单 DOWN,价格为 0.48,数量为 10
node bid.mjs down 0.48 10

参数说明

  • 第一个参数(必填):下单方向

    • up - 下单 UP
    • down - 下单 DOWN
  • 第二个参数(可选):订单价格

    • 如果不提供,使用环境变量 ORDER_PRICE 或默认值 0.49
  • 第三个参数(可选):订单数量

    • 如果不提供,使用环境变量 ORDER_SIZE 或默认值 5

配置说明

环境变量

变量名 描述 示例
PRIVATE_KEY 你的以太坊私钥 0x1234...
FUNDER_ADDRESS 你的 Polymarket 地址 0xabcd...

交易参数

index.mjsbid.mjs 都使用相同的环境变量配置:

  • 价格:环境变量 ORDER_PRICE(默认 0.49)
  • 数量:环境变量 ORDER_SIZE(默认 5)
  • 订单类型:GTC (Good Till Cancelled)
  • 市场间隔:15 分钟

bid.mjs 额外支持通过命令行参数覆盖价格和数量:

  • 命令行参数优先级高于环境变量
  • 示例:node bid.mjs up 0.49 5 会使用命令行指定的 0.49 和 5,而不是环境变量中的值

市场信息

机器人会自动获取以下信息:

  • 市场 ID 和问题描述
  • UP/DOWN token ID
  • 当前价格和流动性
  • 最小订单大小和价格精度

安全注意事项

⚠️ 重要

  • 永远不要将 .env.local 文件提交到版本控制系统
  • 确保私钥安全,不要分享给他人
  • 建议使用专门的交易账户,不要使用主钱包
  • 在正式交易前,先在测试环境验证

项目结构

poly/
├── index.mjs          # 同时下单 UP 和 DOWN 的主程序
├── bid.mjs            # 指定方向下单的程序(支持命令行参数)
├── package.json        # 项目配置和依赖
├── .env.example         # 环境变量示例文件
├── .env.local          # 环境变量文件(需要创建)
└── README.md          # 项目说明文档

依赖包

  • @polymarket/clob-client: Polymarket CLOB API 客户端
  • @ethersproject/wallet: 以太坊钱包管理
  • dotenv: 环境变量管理

故障排除

常见问题

  1. API Key 创建失败

    • 检查私钥是否正确
    • 确认网络连接正常
    • 验证 Polymarket 账户状态
  2. 市场未找到

    • 检查时间计算是否正确
    • 确认市场是否已激活
    • 验证 slug 格式
  3. 订单创建失败

    • 检查账户余额
    • 确认订单参数是否有效
    • 查看市场状态

日志说明

程序会输出详细的日志信息:

  • 时间戳计算过程
  • API 调用状态
  • 订单创建结果
  • 错误信息(如有)

许可证

本项目仅供学习和研究使用。使用本软件进行实际交易的风险由用户自行承担。

贡献

欢迎提交 Issue 和 Pull Request 来改进这个项目。

联系方式

如有问题,请通过 GitHub Issues 联系。