战绩
收益
+2.4%
夏普
0.29
最大回撤
4.8%
管理规模
$0
创建时间
2026-07-12
使用人次
0
使用池子
0
结算天数
0
回测(确定性模拟器)
参数: size / min_edge二元预测市场模拟(YES/NO,180 步后结算 YES)——非未来收益承诺。
核心代码
GitHub 源码 ↗"""YES/NO 套利(YES/NO arbitrage)—— 两腿总价 < 1 的无风险价差。
思路:二元市场的 YES 与 NO 结算时必有一腿兑付 1、另一腿 0,故一对(1 YES + 1 NO)到期恰好价值 1。
当此刻 YES + NO 的买入成本 < 1 时,同时买入两腿即锁定 (1 - 成本) 的无风险价差,持有至结算兑付。
纸面回测按中间价成交,故 edge = 1 - (yes_mid + no_mid)(真实场馆应按 best_ask 计,见下)。
适用性:instrument="event"、venues=["POLYMARKET"]。仅做多(买 token),不涉及做空。
降级:feed 不提供配对腿(complement_token 为 None)时保持空仓。
"""
from __future__ import annotations
from ..base import StrategyBase
from ..context import StrategyContext
from ..registry import register
@register("YES/NO 套利")
class PmYesNoArb(StrategyBase):
description = "YES+NO 两腿总价低于 1 时同时买入锁定无风险价差,结算兑付。"
params = {"size": 20.0, "min_edge": 0.01}
venues = ["POLYMARKET"]
symbols: list = []
instrument = "event"
def __init__(self, size: float = 20.0, min_edge: float = 0.01) -> None:
self.size = float(size)
self.min_edge = float(min_edge)
async def on_tick(self, ctx: StrategyContext) -> None:
yes = ctx.conn_symbol()
no = ctx.complement_token(yes)
if no is None:
return # 非二元市场:不建仓
ym = await ctx.price(yes)
nm = await ctx.price(no)
edge = 1.0 - (ym + nm) # 一对 YES+NO 的买入成本相对结算价值 1 的价差
band = self.size * 0.1
if edge >= self.min_edge:
await ctx.target(yes, self.size, band=band) # 两腿等量买入锁定
await ctx.target(no, self.size, band=band)
完整 SDK 与全部策略以 MIT 协议开源,可直接回测、paper 试跑或二次开发。
运行此策略的池子
暂无池子运行此策略——成为第一个发起者。