2
Suivre
399
Abonnés

Arbitrage de couverture binaire Polymarket : Analyse complète, du concept à l’application pratique

Créé le: 2026-02-28 11:35:57, Mis à jour le: 2026-03-03 14:35:13
comments   1
hits   37

[TOC]

Arbitrage de couverture binaire Polymarket : Analyse complète, du concept à l’application pratique

I. La structure duale du marché de Polymarket

Polymarket est un marché de prédiction où chaque question n’a que deux issues possibles : oui ou non, hausse ou baisse, gain ou perte. Prenons l’exemple du contrat de variation de prix du Bitcoin sur 15 minutes : chaque tour comporte…Up et DownDeux contrats, consistant à parier sur le fait que le prix de clôture du BTC sera supérieur ou inférieur à son prix d’ouverture dans les 15 minutes. Un pari gagnant rapporte 1 \(, un pari perd 0 \).

Arbitrage de couverture binaire Polymarket : Analyse complète, du concept à l’application pratique

Ce marché possède une caractéristique très particulière :La probabilité que les deux résultats soient combinés est de 100 %, donc le prix de « Up » plus le prix de « Down » devrait théoriquement être égal à exactement 1.

[ \text{Prix_à_la_montée} + \text{Prix_à_la_baisse} = 1 \quad \text{(Valeur théorique)} ]

Ce type de bien n’existe pas sur les marchés contractuels ordinaires, ce qui nous offre un point d’ancrage naturel en matière de certitude.


II. La logique fondamentale de l’arbitrage : trouver la certitude dans l’incertitude.

Le trading quantitatif a toujours consisté en une seule chose : trouver des opportunités relativement sûres sur un marché plein d’incertitudes.

La structure binaire de Polymarket offre un tel point d’ancrage :Que le BTC monte ou descende dans ces 15 minutes, Up ou Down rapportera inévitablement 1 $.En utilisant ce point d’ancrage, nous n’avons pas besoin de déterminer la direction ; il nous suffit de trouver une opportunité où le coût total d’achat à la hausse et à la baisse est inférieur à 1, et où le profit est garanti.

Le problème, c’est que la plupart du temps, la somme des deux prix est proche de 1, ce qui rend les opportunités d’arbitrage direct difficiles à trouver. Alors, où se situent précisément ces opportunités ?


III. Fenêtre d’opportunité : Déséquilibres de prix lors de réactions excessives du marché

L’opportunité vient deDéséquilibres de prix dus à une réaction excessive du marché

Imaginez ce scénario : en l’espace de 15 minutes, le cours du BTC chute brutalement, provoquant la panique sur le marché et une vente massive de contrats « Up », le prix passant de 0,5 à 0,35. Théoriquement, quelle que soit la baisse du « Up », le « Down » devrait augmenter d’autant, leur somme étant toujours égale à 1. Cependant, le marché réagit à des vitesses différentes. Le « Up » a déjà chuté rapidement, tandis que le « Down », qui passe de 0,5 à 0,65, n’a peut-être pas encore rattrapé son retard.

À ce moment crucial de transition, la somme des hausses et des baisses pourrait n’être que de 0,93, entraînant un bref déséquilibre des prix.

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

Il s’agit de la fenêtre d’arbitrage : une combinaison qui coûte 0,93 \( à l'achat et qui rapportera inévitablement 1 \), le profit étant déterminé au moment de l’achat.


IV. Idée originale : Version série à quatre paramètres

L’idée originale vient de l’utilisateur Twitter @the_smart_ape, et elle est très concise, avec seulement quatre paramètres :

paramètre signification
SHARES Achat d’actions par jambe
SUM_TARGET Prix ​​cible pour les deux segments combinés (limite supérieure)
MOVE_PCT L’ampleur de la chute
WINDOW_MIN Temps de surveillance de la fenêtre

La logique d’exécution est la suivante : durant la période de surveillance initiale de chaque cycle, les prix sont suivis en continu. Dès qu’une direction subit une forte baisse dépassant le seuil de déclenchement, cette direction est achetée (première position). On attend ensuite que le prix dans la direction opposée se replie. Lorsque le prix cumulé des deux positions est inférieur au prix cible, la seconde position est achetée et l’arbitrage est clôturé. Le règlement et le remboursement sont effectués en 15 minutes.

Cette approche est simple et directe, mais appliquée directement au trading en temps réel, elle se heurtera à plusieurs problèmes évidents.


V. Nos améliorations : Saisir proactivement les opportunités d’arbitrage

L’idée originale étaitAttente passiveAchetez la première option, puis observez le retournement de prix dans la direction opposée. N’achetez la seconde option que lorsque le prix cumulé des deux options est inférieur au prix cible.

Nos approches en matière d’amélioration sont différentes.Au moment d’une chute brutale, il est fort probable que les indicateurs de hausse et de baisse évoluent à des vitesses différentes. Nous agissons simultanément durant cette période d’asynchronisme :

  • Première étape : passer un ordre d’achat à cours limité au prix après la forte baisse, plus le glissement.
  • Deuxième étape : avecSUM_TARGET - 第一腿价格En appliquant une limite de prix inversée, nous pouvons bloquer le prix avant que la tendance opposée n’atteigne son apogée.

Lorsque les deux ordres sont passés simultanément, l’opportunité d’arbitrage est saisie dès l’instant de la passation de l’ordre. Au lieu d’attendre passivement que le marché réunisse les conditions favorables, nous laissons le marché venir à nous.

L’implémentation du code principal est la suivante :

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. Question 1 : Après l’achat de la première jambe, le prix ne s’est pas encore rétabli.

L’idée initiale était que la deuxième étape se déroulerait rapidement, mais en réalité, il arrive souvent qu’après la baisse de l’étape haussière, le prix de l’étape baissière ne redescende pas, le sentiment du marché reste pessimiste et le prix combiné des deux étapes n’atteigne jamais l’objectif.

Durant cette période, si vous détenez une position acheteuse unilatérale, le prix peut continuer à baisser jusqu’à se stabiliser à zéro.Un ordre stop-loss doit être placé.

Patch 1 : Prix minimum garanti + prise de bénéfices anticipée

Nous avons ajouté deux paramètres :

  • FLOOR_PRICE(Prix minimum)Définissez un seuil minimal absolu (par exemple, 0,05). Si le cours atteint ce niveau, cela indique que le marché estime que cette tendance est probablement perdante ; il faut alors limiter les pertes et sortir du marché.
  • EARLY_TAKE_PROFIT(Taux de prise de bénéfices préliminaire)Après avoir acheté la première tranche du contrat, si le prix atteint l’objectif de profit, vendez-la directement pour encaisser le profit, sans attendre la deuxième tranche.
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)
    }
}

L’une garantit la limite inférieure, et l’autre fixe la limite supérieure, imposant ainsi une limite à la position unilatérale initialement illimitée.


VII. Question 2 : Les éléments en voie de règlement nécessitent un traitement séparé.

L’approche initiale ne tenait pas compte de la dimension temporelle, mais la situation est radicalement différente à l’approche du règlement : celui-ci est imminent et il n’y a plus de temps à perdre, même si le prix n’a pas encore baissé. De plus, plus on se rapproche du règlement, plus les fluctuations de prix ont tendance à être importantes.

Correctif 2 : Logique de segmentation pour la période finale

Nous avons ajoutéLAST_MIN_S(Le seuil temporel final peut être ajusté.) Logique de commutation après l’entrée dans la phase finale :

  • Je n’essaie plus de construire une deuxième jambe
  • PlusLAST_MIN_STOP_LOSS(Pourcentage de stop-loss à la fin de la séance de négociation) Si le prix tombe en dessous du niveau de stop-loss, sortez au prix du marché.
  • S’il ne tombe pas, tenez-le et attendez le règlement.
var isLastMin = (remaining <= LAST_MIN_S)

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

Dans un premier temps, attendez que les prix se redressent ; dans un second temps, évitez qu’ils ne tombent à zéro. Ces deux logiques ne sont pas contradictoires.


8. Question 3 : Gestion des retards sur la chaîne de Polymarket

Polymarket est un marché on-chain, et le retour des informations sur le statut et la position des ordres peut parfois être lent ; la confirmation d’un ordre peut prendre plusieurs secondes. C’est pourquoi la stratégie intègre un mécanisme de détection et de nouvelle tentative en cas de dépassement du délai d’exécution des ordres.

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)
    // ... 继续轮询确认最终状态
}

En même temps, ajoutéSLIPPAGELe paramètre de glissement augmente la probabilité qu’un ordre d’achat soit exécuté. Le prix effectif de l’ordre d’achat est égal au prix cible majoré du glissement.


IX. Racheter Liquidation automatique

Polymarket possède un mécanisme unique : le montant versé n’est pas automatiquement restitué au solde après le règlement du contrat.Les fonds ne peuvent être débloqués qu’en appelant activement l’API Redeem.Si cette étape est omise, les fonds présents sur le compte seront bloqués dans les positions déjà réglées.

Cette stratégie déclenche automatiquement les rachats par lots lors de chaque basculement afin de garantir un retour des fonds en temps voulu.

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. Panneau de surveillance en temps réel

Arbitrage de couverture binaire Polymarket : Analyse complète, du concept à l’application pratique

La stratégie comprend un tableau de bord en temps réel affichant le capital du compte, l’état actuel, le suivi des prix et les gains/pertes des positions sous forme de tableau, vous permettant ainsi de suivre facilement la progression de la stratégie pendant vos transactions en direct. Le tableau de bord contient quatre tableaux :

  1. Les fonds du compteCapitaux propres initiaux, capitaux propres actuels, solde disponible, résultat total (bénéfice/perte)
  2. État politiqueÉtape actuelle de la machine à états, ordres/prix de transaction en attente, niveaux de stop-loss et de take-profit, et verrouillage des profits.
  3. Surveillance des prixHausse/Baisse : Prix actuel, pourcentage de baisse et indication si un signal a été déclenché.
  4. Détails du poste: Contrats ouverts, actions, prix d’entrée moyen, profit/perte flottante

XI. Démonstration de trading en direct et défauts de stratégie

Arbitrage de couverture binaire Polymarket : Analyse complète, du concept à l’application pratique

Exemple de trading en direct :

Un nouveau cycle commence et la stratégie est sous surveillance. Une baisse de 18,60 % du contrat Down a été détectée, passant de 0,43 à 0,35, déclenchant un signal. Simultanément, deux ordres à cours limité ont été placés : un premier ordre Down à 0,37 et un second ordre Up à 0,60, pour un total de 0,97, en dessous du prix cible. Les deux ordres ont été soumis simultanément et exécutés. Prix d’exécution moyen réel : premier ordre à 0,34, second ordre à 0,60, coût total réel.0.94Le bénéfice a été supérieur aux prévisions, qui étaient inférieures au seuil prédéfini de 0,97.

Cette stratégie est relativement solide dans son concept et peut générer de bons rendements lorsque les conditions de marché sont favorables. Cependant, il convient de reconnaître franchement trois lacunes :

Défaut n° 1 : Il est difficile de trouver des opportunités d’ouverture de positions lorsque le marché est stable.Les opportunités d’arbitrage reposent sur la surréaction du marché ; lorsque celui-ci est stable, la probabilité d’une chute brutale est très faible et la stratégie ne peut fonctionner que de manière isolée. Élargir la plage de déclenchement peut multiplier les opportunités, mais la qualité des entrées s’en trouvera diminuée.

Défaut 2 : Il est difficile d’éviter complètement les risques liés au maintien d’une position unique.Une fois le premier ordre exécuté, si le prix continue de baisser au lieu de se redresser, le second ordre ne sera jamais exécuté et continuera de chuter jusqu’à atteindre le niveau de stop-loss et être déclenché. Définir le seuil de stop-loss est un dilemme : trop serré, il sera facilement déclenché par les fluctuations normales ; trop lâche, la perte sera trop importante en cas de forte baisse du prix.

Défaut 3 : Le seuil du prix cible combiné des deux jambes est un compromis.Fixer un seuil trop élevé augmente les opportunités, mais les profits diminuent à chaque fois ; le fixer trop bas augmente les profits à chaque fois, mais peut entraîner une longue attente avant de trouver une opportunité significative. Il s’agit d’un choix stratégique : accumuler fréquemment de petites sommes, ou maintenir un seuil bas et attendre une opportunité importante de temps à autre.


XII. Orientations futures en matière d’optimisation

Cette stratégie constitue un cadre, et trois pistes méritent d’être explorées en profondeur :

Option 1 : Introduire des données externes sur le prix du BTC.Cette stratégie est plus adaptée aux marchés stables ; sur les marchés en tendance, les ordres stop-loss seront fréquemment déclenchés. Elle peut être intégrée aux cours du BTC en temps réel sur les plateformes d’échange, permettant ainsi de suspendre l’ouverture des positions lorsqu’une tendance claire se dessine, et de limiter les pertes inutiles.

Direction 2 : Modélisation mathématique.« À la hausse » et « À la baisse » sont essentiellement deux options binaires. Il existe de nombreux modèles de tarification éprouvés dans le domaine des options, capables, en théorie, de modéliser avec plus de précision la probabilité des fenêtres d’arbitrage et le point d’entrée optimal, plutôt que de s’appuyer sur des seuils fixes pour prendre des décisions arbitraires.

Option 3 : Ajustement dynamique des paramètres.Actuellement, tous les paramètres sont fixes, mais la volatilité du marché fluctue. Utiliser les mêmes paramètres en période de forte et de faible volatilité est manifestement inapproprié. L’ajustement automatique des paramètres en fonction des conditions de marché en temps réel améliore considérablement l’adaptabilité de la stratégie.


La logique fondamentale de cette stratégie – repérer les déséquilibres de prix sur les marchés binaires – ne se limite pas aux contrats BTC de Polymarket. Tout marché binaire présentant des écarts de prix à court terme peut être exploité pour identifier des opportunités grâce à une approche similaire. Nous avons simplement transformé cette idée en un cadre opérationnel ; le plus intéressant reste à venir.

Code source de la stratégie : Robot d’arbitrage de couverture bidirectionnelle Polymarket BTC en 15 minutes (Version de couverture bidirectionnelle)