2
Подписаться
399
Подписчики

Арбитраж бинарного хеджирования Polymarket: полный анализ от концепции до практического применения

Создано: 2026-02-28 11:35:57, Обновлено: 2026-03-03 14:35:13
comments   1
hits   37

[TOC]

Арбитраж бинарного хеджирования Polymarket: полный анализ от концепции до практического применения

I. Двойная рыночная структура Polymarket

Polymarket — это рынок прогнозов, где у каждого вопроса всего два исхода: да или нет, рост или падение, выигрыш или проигрыш. Взяв в качестве примера контракт на изменение цены BTC за 15 минут, каждый раунд имеет…Up и DownДва контракта, ставки на то, будет ли цена закрытия BTC выше или ниже цены открытия в течение 15 минут. За правильную ставку выплачивается 1 доллар, за неправильную — ноль.

Арбитраж бинарного хеджирования Polymarket: полный анализ от концепции до практического применения

Этот рынок обладает очень специфической особенностью:Суммарная вероятность двух исходов составляет 100%, поэтому цена «Вверх» плюс цена «Вниз» теоретически должны равняться ровно 1.

[ \text{Up_price} + \text{Down_price} = 1 \quad \text{(Теоретическое значение)} ]

Данная недвижимость не представлена ​​на обычных рынках договоров, что дает нам естественную гарантию надежности.


II. Основная логика арбитража: обретение определенности в неопределенности.

Количественная торговля всегда сводилась к одному: поиску относительно надежных возможностей на рынке, полном неопределенности.

Бинарная структура Polymarket обеспечивает такую ​​опору:Независимо от того, вырастет или упадет BTC за эти 15 минут, в любом случае, независимо от того, вырастет цена или упадет, игрок неизбежно получит 1 доллар.Используя эту опорную точку, нам не нужно определять направление; нам нужно лишь найти возможность, где общая стоимость покупки вверх и вниз меньше 1, а прибыль гарантирована.

Проблема в том, что в большинстве случаев сумма двух цен близка к 1, что затрудняет поиск прямых арбитражных возможностей. Так где же именно находятся эти возможности?


III. Окно возможностей: ценовые дисбалансы во время чрезмерной реакции рынка.

Возможность возникает изЦеновые дисбалансы, вызванные чрезмерной реакцией рынка.

Представьте себе такую ​​ситуацию: за 15 минут цена BTC внезапно резко падает, вызывая панику на рынке и массовую распродажу контрактов Up, при этом цена падает с 0,5 до 0,35. Теоретически, независимо от того, насколько сильно упадет Up, цена Down должна вырасти на ту же величину, их сумма всегда равна 1. Однако рынок реагирует с разной скоростью. Up уже быстро упал, в то время как Down все еще движется от 0,5 до 0,65 и, возможно, еще не догнал его полностью.

В этот решающий момент перехода сумма значений Up и Down может составлять всего 0,93, что приведет к кратковременному ценовому дисбалансу.

[ \text{Up}(0.35) + \text{Down}(0.58) = 0.93 < 1 ]

Это арбитражное окно: комбинация, покупка которой стоит 0,93 доллара, но которая неизбежно принесет 1 доллар прибыли, причем размер прибыли определяется в момент покупки.


IV. Оригинальная идея: четырехпараметрическая последовательная версия

Оригинальная идея принадлежит пользователю Twitter @the_smart_ape, и она очень лаконична, содержит всего четыре параметра:

параметр значение
SHARES Покупка акций по каждой ветке
SUM_TARGET Целевая цена для обеих частей вместе взятых (верхний предел)
MOVE_PCT Величина падения
WINDOW_MIN Мониторинг временного окна

Логика исполнения следующая: в течение периода мониторинга в начале каждого раунда цены непрерывно отслеживаются. Как только в определенном направлении происходит резкое падение, превышающее пороговое значение, в этом направлении совершается покупка в качестве первого шага. Затем ожидается снижение цены в противоположном направлении. Когда суммарная цена двух шагов оказывается ниже целевой цены, совершается покупка второго шага, и арбитраж закрывается. Расчеты и погашение завершаются в течение 15 минут.

Этот подход прост и понятен, но при непосредственном применении к реальной торговле он столкнется с рядом очевидных проблем.


V. Наши улучшения: Проактивное использование арбитражных возможностей

Первоначальная идея заключалась в следующем:Пассивное ожиданиеПокупайте первую часть, затем наблюдайте, когда цена в противоположном направлении снова упадет. Покупайте вторую часть только тогда, когда суммарная цена обеих частей окажется ниже целевой цены.

Наши подходы к совершенствованию различны.В момент резкого падения существует высокая вероятность того, что индикаторы «Вверх» и «Вниз» будут двигаться с разной скоростью. В этот период асинхронности мы действуем одновременно:

  • Первый шаг: Разместите лимитный ордер на покупку по цене после резкого падения, с учетом проскальзывания.
  • Второй этап: сSUM_TARGET - 第一腿价格Применив обратный ценовой лимит, мы можем зафиксировать цену до того, как противоположный тренд достигнет своего пика.

Когда оба ордера подаются одновременно, арбитражная возможность фиксируется в момент размещения ордера. Вместо пассивного ожидания, пока рынок выполнит условия, мы позволяем рынку самому к нам прийти.

Основной код реализован следующим образом:

function executeBothLegs(symbols, dumpSide, dumpAsk) {
    var leg1Symbol = (dumpSide === "Up") ? symbols.up   : symbols.down
    var leg2Symbol = (dumpSide === "Up") ? symbols.down : symbols.up

    leg1Price = _N(dumpAsk + SLIPPAGE, 4)
    // 第二腿限价:SUM_TARGET - leg1Price,确保两腿合计 <= SUM_TARGET 即有利润
    leg2Price = _N(SUM_TARGET - leg1Price, 4)

    // 并发提交两个限价单
    var goLeg1 = exchange.Go("CreateOrder", leg1Symbol, "buy", leg1Price, SHARES)
    var goLeg2 = exchange.Go("CreateOrder", leg2Symbol, "buy", leg2Price, SHARES)

    var id1 = goLeg1.wait()
    var id2 = goLeg2.wait()

    leg1OrderId = id1
    leg2OrderId = id2
    state = STATE.BOTH_PENDING
}

VI. Вопрос 1: После покупки первой части контракта цена еще не восстановилась.

Первоначальная идея заключалась в том, что второй этап будет завершен быстро, но в реальности часто случается так, что после того, как восходящий этап смещается вниз, цена нисходящего этапа не падает обратно, рыночные настроения остаются пессимистичными, и суммарная цена обоих этапов никогда не достигает целевого уровня.

В течение этого периода, если вы удерживаете позицию с односторонним ростом, цена может продолжать падать, пока не стабилизируется на нулевом уровне.Необходимо разместить ордер стоп-лосс.

Патч 1: Гарантированная минимальная цена + ранняя фиксация прибыли

Мы добавили два параметра:

  • FLOOR_PRICE(Минимальная цена)Установите абсолютный минимум (например, 0,05). Если цена актива упадет до этого уровня, это означает, что рынок определил, что это направление, вероятно, будет неблагоприятным, поэтому зафиксируйте убыток и выйдите из рынка.
  • EARLY_TAKE_PROFIT(Предварительное соотношение фиксации прибыли)После покупки первой части контракта, если цена поднимется до целевого уровня прибыли, продайте ее напрямую, чтобы получить прибыль, не дожидаясь второй части.
function handleLeg1OnlyRisk(symbols, upBid, downBid, isLastMin) {
    var holdBid    = (leg1Side === "Up") ? upBid : downBid
    var profitLine = leg1EntryAsk * (1 + EARLY_TAKE_PROFIT)
    var stopLine   = leg1EntryAsk * (1 - LAST_MIN_STOP_LOSS)

    var needClose = false
    var reason    = ""

    if (holdBid <= FLOOR_PRICE) {
        needClose = true; reason = "止损(保底)"
    } else if (!isLastMin && holdBid >= profitLine) {
        needClose = true; reason = "前期止盈"
    } else if (isLastMin && holdBid <= stopLine) {
        needClose = true; reason = "末段止损"
    }

    if (needClose) {
        // 先撤对侧挂单,再平仓
        cancelAndConfirmUntilClear(leg2OrderId)
        closePosition(holdSymbol, holdBid, reason)
    }
}

Один гарантирует нижний предел, а другой фиксирует верхний предел, тем самым устанавливая границу для изначально неограниченной односторонней позиции.


VII. Вопрос 2: Товары, приближающиеся к стадии оформления, требуют отдельной обработки.

Первоначальный подход не учитывал временной аспект, но ситуация кардинально меняется, когда приближается этап расчетов: расчеты наступают скоро, и ждать уже некогда, даже если цена еще не упала. Более того, чем ближе к расчетам, тем резче, как правило, становятся колебания цен.

Патч 2: Логика сегментации для заключительного временного периода

Мы добавилиLAST_MIN_S(Пороговое значение времени можно скорректировать.) Логика переключения после перехода к заключительному этапу:

  • Больше не пытаюсь построить вторую ногу
  • ПлюсLAST_MIN_STOP_LOSS(Процент стоп-лосса в конце торговой сессии) Если цена упадет ниже уровня стоп-лосса, выход по рыночной цене.
  • Если оно не упадет, просто держитесь за него и ждите расплаты.
var isLastMin = (remaining <= LAST_MIN_S)

// BOTH_PENDING 状态下
if (isLastMin) {
    Log("⏰ 最后1分钟,撤销未成交挂单")
    cancelAllPending("最后1分钟")
}

На начальных этапах следует дождаться восстановления цен; на более поздних этапах — избегать падения цен до нуля. Эти два подхода не противоречат друг другу.


8. Вопрос 3: Обработка задержек в сети Polymarket

Polymarket — это онлайн-рынок, и получение информации о статусе и позиции ордера иногда может быть медленным; подтверждение после размещения ордера может занять несколько секунд. Поэтому стратегия включает механизм обнаружения таймаута ордера и повторной попытки его размещения.

function placeOrderAndConfirm(symbol, side, price, amount) {
    var orderId = exchange.CreateOrder(symbol, side, orderPrice, amount)

    var deadline = Date.now() + ORDER_TIMEOUT_S * 1000
    while (Date.now() < deadline) {
        var order = exchange.GetOrder(orderId)
        if (order && order.Status === 1) {
            return { orderId: orderId, avgPrice: order.AvgPrice }  // 成交
        }
        if (order && (order.Status === 2 || order.Status === 4)) {
            return { orderId: orderId, avgPrice: null }  // 已撤销
        }
        Sleep(1000)
    }
    // 超时后执行撤单
    exchange.CancelOrder(orderId)
    // ... 继续轮询确认最终状态
}

Одновременно добавилSLIPPAGEПараметр «проскальзывание» увеличивает вероятность исполнения ордера на покупку. Фактическая цена ордера при покупке равна целевой цене плюс проскальзывание.


IX. Выкуп автоматической ликвидации

Polymarket использует уникальный механизм: выплаченная сумма не возвращается автоматически на баланс после расчёта по контракту.Средства могут быть разблокированы только путем активного вызова API Redeem.Если этот шаг будет пропущен, средства на счете будут заблокированы в уже закрытых позициях.

Стратегия автоматически инициирует вывод средств партиями при каждом переключении, чтобы обеспечить своевременный возврат средств.

function doRedeem() {
    var positions = exchange.GetPositions()
    for (var i = 0; i < positions.length; i++) {
        var pos = positions[i]
        if (pos.Info && pos.Info.redeemable) {
            var result = exchange.IO("redeem", pos.Symbol, true)
            Log("Redeem 结果:", result)
        }
    }
}

// 每轮结算前(840s 后)自动触发
if (!redeemDone && elapsed >= 840) {
    doRedeem()
    redeemDone = true
}

10. Панель мониторинга в режиме реального времени

Арбитраж бинарного хеджирования Polymarket: полный анализ от концепции до практического применения

Стратегия включает в себя панель мониторинга в режиме реального времени, которая отображает баланс счета, текущее состояние, мониторинг цен и прибыль/убыток по позициям в табличном формате, что позволяет легко отслеживать прогресс стратегии во время реальной торговли. Панель мониторинга содержит четыре таблицы:

  1. Средства счетаПервоначальный капитал, собственный капитал, остаток денежных средств, общая прибыль/убыток
  2. Государственная политикаТекущее состояние автомата, отложенные ордера/цены сделок, уровни стоп-лосса и тейк-профита, а также блокировка прибыли.
  3. Мониторинг ценВверх/Вниз: Текущая цена, процентное падение и наличие срабатывания сигнала.
  4. Подробности о должностиОткрытые контракты, акции, средняя цена входа, плавающая прибыль/убыток

XI. Демонстрация реальных торговых операций и выявление недостатков стратегии.

Арбитраж бинарного хеджирования Polymarket: полный анализ от концепции до практического применения

Пример реальной торговли:

Начинается новый раунд, и стратегия находится под наблюдением. Зафиксировано падение контракта Down на 18,60%, с 0,43 до 0,35, что вызвало сигнал. Одновременно были размещены два лимитных ордера: первый ордер Down на уровне 0,37, и второй ордер Up на уровне 0,60, в сумме 0,97, ниже целевой цены. Оба ордера были поданы одновременно и впоследствии исполнены. Фактическая средняя цена исполнения: первая часть 0,34, вторая часть 0,60, истинная общая стоимость.0.94Прибыль оказалась выше ожидаемой, но ниже установленного порога в 0,97.

Эта стратегия относительно обоснована по своей концепции и может принести хорошую прибыль при благоприятных рыночных условиях. Однако следует откровенно признать три недостатка:

Недостаток 1: В условиях стабильного рынка сложно найти возможности для открытия позиций.Арбитражные возможности основаны на чрезмерной реакции рынка; когда рынок стабилен, вероятность резкого падения очень низка, и стратегия может работать только изолированно. Расширение диапазона срабатывания может увеличить возможности, но качество точек входа снизится.

Недостаток 2: Риски, связанные с удержанием одной позиции, трудно полностью избежать.После исполнения первого стоп-лосса, если цена продолжит падать вместо восстановления, второй стоп-лосс никогда не будет исполнен и будет продолжать падать до тех пор, пока не достигнет линии стоп-лосса и не сработает. Установка порогового значения стоп-лосса — это дилемма: слишком узкий порог приведет к легкому срабатыванию стоп-лосса при обычных колебаниях; слишком свободный — к слишком большим убыткам, если цена действительно пойдет не так.

Недостаток 3: Пороговое значение для совокупной целевой цены обеих составляющих представляет собой компромисс.Слишком высокая установка порогового значения увеличивает возможности, но каждый раз приносит меньшую прибыль; слишком низкая установка увеличивает прибыль каждый раз, но может привести к длительному ожиданию значимой возможности. Это выбор стратегии: частое накопление небольших сумм или удержание низкого порогового значения и ожидание случайных крупных возможностей.


XII. Перспективы оптимизации в будущем

Эта стратегия представляет собой общую концепцию, и есть три направления, которые заслуживают более подробного изучения:

Вариант 1: Использовать внешние данные о цене BTC.Эта стратегия лучше подходит для рынков с ограниченным диапазоном движения цен; на трендовых рынках стоп-лосс ордера будут срабатывать часто. Она может быть интегрирована с ценами BTC в реальном времени с бирж, что позволяет приостанавливать открытие позиций при появлении четкого тренда, тем самым снижая ненужные потери.

Направление 2: Математическое моделирование.«Вверх» и «Вниз» — это, по сути, два бинарных варианта. В сфере опционов существует множество зрелых моделей ценообразования, которые теоретически могут более точно моделировать вероятность арбитражных окон и оптимальную точку входа, чем полагаться на фиксированные пороговые значения для принятия произвольных решений.

Вариант 3: Динамическая настройка параметров.В настоящее время все параметры фиксированы, но волатильность рынка меняется. Использование одного и того же набора параметров в периоды высокой и низкой волатильности явно нецелесообразно. Автоматическая корректировка параметров на основе рыночных условий в реальном времени значительно повышает адаптивность стратегии.


Основная логика этой стратегии — поиск моментов ценового дисбаланса на бинарных рынках — не ограничивается контрактами BTC от Polymarket. Любой рынок с бинарной структурой и краткосрочными ценовыми расхождениями может быть использован для выявления возможностей с помощью аналогичного подхода. Мы просто преобразовали эту идею в работающую модель; самое интересное еще впереди.

Исходный код стратегии: Робот для хеджирования и арбитража BTC Polymarket с 15-минутной разверткой и двусторонним управлением (версия для двустороннего хеджирования)