mcpField
P
polymarket-trading

polymarket-trading

github.com/niller2005其他17139 次安装2 天前更新
代码仓库

关于 polymarket-trading

polymarket-trading 介绍 Polymarket 交易机器人的策略与代码模式,涵盖置信度计算、订单处理、退出计划和仓位规模。内容面向开发交易逻辑及维护机器人运行行为的开发者。

主要功能

  1. 01比较加法与贝叶斯置信度算法
  2. 02管理自动退出订单及修复
  3. 03按时机和置信度追加仓位
  4. 04考虑费用、返利和订单限制
  5. 05参考行情数据与下单代码模式

适用场景

  1. 01对置信度计算方法进行 A/B 测试
  2. 02设置并维护仓位退出订单
  3. 03在指定条件下增加仓位
  4. 04评估考虑手续费的订单策略

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/niller2005/polyflup --skill polymarket-trading

安装后在 Claude Code 中输入/polymarket-trading确认已加载。

详细介绍

术语与概念

  • 退出计划:持仓开仓后立即设置自动限价卖单,价格为 $0.99。
  • 对冲反转:趋势反转时,同时持有 UP 和 DOWN 仓位。
  • 中点止损:当中点价格降至或低于 $0.30 时触发市价卖出。
  • 加仓:通过市价单(FAK)向盈利仓位追加资金。
  • 弱势方:交易价格低于 $0.50 的一方。入场置信度需高于 40%。
  • 最小价格变动单位:市场允许的最小价格增量(例如 0.01 或 0.001)。

策略细节

置信度计算方法(v0.5.0+)

该机器人支持两种置信度计算方法,用于 A/B 测试:

加法方法(默认):

  • 基于方向的投票系统,对信号进行加权汇总
  • 置信度 = (获胜方总分 - (落败方总分 × 0.2)) × 领先/滞后加成
  • 当 Binance 和 Polymarket 的动量一致时,趋势一致性加成(1.1x)

贝叶斯方法(备选):

  • 使用对数赔率的统计学概率理论
  • 以 Polymarket 订单簿中的市场先验概率为起点
  • 通过对数似然比累积证据:
    evidence = (score - 0.5) × 2  # Scale to -1 to +1
    log_LR = evidence × 3.0 × quality  # Quality factor (0.7-1.5x)
    log_odds += log_LR × weight
    confidence = 1 / (1 + exp(-log_odds))
    
  • 能自然处理相互冲突的信号(信号会相互抵消)
  • 市场先验概率将计算锚定于 Polymarket 的实际情况

A/B 测试:

  • 每笔交易同时计算这两种方法
  • 将结果存入数据库以供比较
  • 通过 BAYESIAN_CONFIDENCE 环境变量切换(默认:NO)
  • 交易 100 笔以上后比较胜率:
    SELECT
        AVG(CASE WHEN bias='UP' THEN edge ELSE -edge END) as avg_edge,
        COUNT(*) as total,
        SUM(CASE WHEN result='WIN' THEN 1 ELSE 0 END) as wins,
        CAST(wins AS REAL) / COUNT(*) as win_rate
    FROM trades
    WHERE settled = 1
    GROUP BY method;
    
退出计划优化
  • 智能退出定价:
    • 高置信度交易(≥85%):使用 $0.999 的退出价格,以实现利润最大化
    • 普通交易:使用 $0.99 的退出价格(可通过 EXIT_PRICE_TARGET 配置)
    • 仅对盈利仓位使用 0.999(UP 方向的价格 ≥ 入场价,或 DOWN 方向的价格 ≤ 入场价)
  • 立即设置:持仓成交后立即设置退出计划(无需满足持仓时长要求)
  • 实时数量验证:每 1 秒周期验证一次退出订单数量
  • 修复逻辑:
    • 如果退出订单数量与数据库中的数量不符,则自动修复
    • 使用 0.05 股的阈值,避免交易所舍入导致无限修复循环
    • 取消错误订单,并按正确数量重新下单
  • 接管逻辑:发现并接管交易所上已有的 SELL 订单,以避免重复下单
加仓策略(动态)
  • 默认 SCALE_IN_TIME_LEFT:450s(7.5 分钟)
  • 根据置信度(edge)和中点价格动态提前入场:
    • 剩余 12 分钟:edge ≥ 90%,且价格 ≥ $0.80
    • 剩余 9 分钟:edge ≥ 80%,且价格 ≥ $0.70
    • 剩余 7 分钟:edge ≥ 70%,且价格 ≥ $0.65
  • 使用市价单(FAK)确保立即成交
  • 倍数:1.5x(追加 150% 的资金,使仓位总额达到原来的 2.5 倍)
信号加成
  • 趋势一致性加成:如果 Binance 和 Polymarket 的趋势一致,则乘以 1.1x
  • 领先/滞后加成:根据跨交易所的一致性,给予 1.2x 加成或 0.8x 惩罚
技术要求
  • 精度:余额同步使用严格的 0.0001 阈值
  • 最小数量:Polymarket 对限价单设定了 5.0 股的最低数量
  • 舍入:所有订单数量均使用 truncate_float(value, 2),以匹配交易所精度

费用与返利(15 分钟加密货币市场)

  • 吃单费用:仅适用于 15 分钟加密货币市场。
  • 费用扣除方式:
    • BUY:从所得款项中以代币扣除费用。
    • SELL:从所得款项中以 USDC 扣除费用。
  • 实际费率:
    • 买入:价格为 $0.50 时费率最高,约为 1.6%。
    • 卖出:价格为 $0.30 时费率最高,约为 3.7%。卖出通常更贵,因为会直接扣除 USDC。
  • 费用精度:四舍五入至小数点后 4 位(最低 0.0001 USDC)。极端价格下的小额交易可能免收费用。
  • 做市返利:每日以 USDC 发放给提供流动性且订单成交的做市方。
  • 策略影响:
    • 优先使用做市订单(增加流动性的限价单),以避免费用并有机会获得返利。
    • 作为吃单方以低价卖出,成本尤其高。

常见代码模式

市场数据
from src.trading.orders import get_midpoint, get_spread, check_liquidity
# Get accurate midpoint price
price = get_midpoint(token_id)
# Check if liquidity is good
if check_liquidity(token_id, size=100, warn_threshold=0.05):
    # Safe to trade
下单
from src.trading.orders import place_batch_orders, place_market_order
# Batch Orders
results = place_batch_orders(orders)
# Market Sell
result = place_market_order(token_id, amount=10.0, side="SELL", order_type="FAK")

标准表情符号指南

持仓监控
  • 👀 正在监控持仓
  • 📈 UP 方向持仓(PnL 为正时盈利)
  • 📉 DOWN 方向持仓(PnL 为正时盈利)
  • 📦 持仓规模显示
  • 🧮 PnL 百分比显示
持仓状态
  • ⏰ 退出计划已激活(已挂出限价卖单)
  • ⏳ 退出计划待处理(等待条件满足)
  • ⏭️ 已跳过退出(持仓低于 MIN_SIZE 阈值)
  • 📊 加仓持仓指示器
订单生命周期
  • 🚀 交易执行 / 入场
  • 🎯 挂出限价单
  • ✅ 成功 / 订单已成交
  • 🧹 取消订单
  • ❌ 错误 / 失败
风险管理
  • 🛑 止损已触发
  • 🔄 反转 / 趋势翻转
  • ⚠️ 警告 / 验证问题
  • 🔧 持仓修复 / 同步
系统
  • 💰 资金 / 余额 / 结算
  • 🌍 地理限制
  • 🧟 幽灵交易检测

评论

支持 Markdown