NovaMarket
← 全部策略

事件做市

Polymarket事件预测事件市场较低风险

对 YES token 做市:围绕滚动中间价按库存偏移持仓,价差过窄则不报价

战绩

收益
+9.1%
夏普
4.01
最大回撤
0.9%
管理规模
$0
创建时间
2026-07-12
使用人次
0
使用池子
0
结算天数
0

适用市况

事件预测对特定事件结果下注(如 BTC 年底价格)
  • 你对事件概率有独立判断、与市场定价有分歧时
  • 临近结算流动性变差,二元结果有归零风险
不确定行情会怎么走?看看市场中性策略 →

回测(确定性模拟器)

参数: ref_window / max_inventory / spread

二元预测市场模拟(YES/NO,180 步后结算 YES)——非未来收益承诺。

核心代码

GitHub 源码
"""事件做市(Prediction-market making)—— 订单簿价差 + 库存偏移。

思路:在二元市场对 YES token 做市:以滚动中间价为参考,价格低于参考(偏便宜)时增持库存、高于参考时
减仓,等价于围绕中间价的双边报价在成交后把库存拉回中性,赚取价差与短期均值回归。价差过窄(低于
min_spread)时不报价——做市无利可图。本 demo 为长仓做市(库存 0..max_inventory)。

适用性:instrument="event"、venues=["POLYMARKET"]。
"""
from __future__ import annotations

from ..base import StrategyBase
from ..context import StrategyContext
from ..indicators import clamp01, sma
from ..registry import register


@register("事件做市")
class PmMarketMaking(StrategyBase):
    description = "预测市场对 YES 做市:围绕滚动中间价按库存偏移持仓,价差过窄则不报价。"
    params = {"ref_window": 20, "max_inventory": 30.0, "spread": 0.06, "min_spread": 0.005}
    venues = ["POLYMARKET"]
    symbols: list = []
    instrument = "event"

    def __init__(self, ref_window: int = 20, max_inventory: float = 30.0,
                 spread: float = 0.06, min_spread: float = 0.005) -> None:
        self.ref_window = int(ref_window)
        self.max_inventory = float(max_inventory)
        self.spread = float(spread)
        self.min_spread = float(min_spread)

    async def on_tick(self, ctx: StrategyContext) -> None:
        sym = ctx.conn_symbol()
        bid, ask, _depth = await ctx.orderbook(sym)
        if ask - bid < self.min_spread:
            return  # 价差过窄,做市无利可图
        hist = await ctx.history(sym, self.ref_window + 1)
        ref = sma(hist, self.ref_window)
        if ref is None or ref == 0:
            return
        dev = (hist[-1] - ref) / self.spread  # >0 偏贵、<0 偏便宜(以 spread 归一)
        frac = clamp01(0.5 - dev * 0.5)  # 便宜 → 库存大
        await ctx.target(sym, frac * self.max_inventory, band=self.max_inventory * 0.08)

完整 SDK 与全部策略以 MIT 协议开源,可直接回测、paper 试跑或二次开发。

运行此策略的池子

暂无池子运行此策略——成为第一个发起者。