J'ai analysé 10 millions de transactions de bots sur Polymarket avec Claude : comment ils génèrent plus de 1 000 $ par jour

@Dan1ro0
ANGLAISil y a 3 semaines · 27 juin 2026
236K
58
9
8
148

TL;DR

Une analyse technique de 10 millions de transactions de bots sur Polymarket, détaillant cinq modèles de profit spécifiques et les cadres mathématiques qui les sous-tendent.

Pour le trader moyen, un marché Polymarket à court terme semble simple :

Le Bitcoin sera-t-il plus haut ou plus bas dans cinq minutes ?

Un bot de trading voit un problème complètement différent.

Il suit le prix sous-jacent, le temps restant avant l'expiration, la liquidité des deux côtés, les marchés connexes et son propre inventaire en temps réel - tout à la fois :

Daniro - inline image

Lien du portefeuille : https://polymarket.com/@bonereaper?via=dan-kwpx

Pendant qu'un humain décide encore s'il doit acheter Up ou Down, le bot a peut-être déjà :

**> ingéré un nouveau signal de prix > réévalué le résultat > comparé avec le prix du contrat > vérifié les marchés voisins > passé plusieurs ordres limités > remodelé l'intégralité de sa position**

C'est ainsi que certains de ces systèmes transforment de minuscules écarts de prix en plus de 1 000 $ de profit quotidien.

J'ai analysé l'activité de plus de 1 000 bots et plus de 10 millions d'exécutions sur les marchés Up/Down crypto à courte durée de Polymarket via Claude.

Au début, le trading semble complètement chaotique. Le même portefeuille achète Up, ajoute Down quelques secondes plus tard, vend une partie de la première position et termine le marché en détenant les deux résultats.

Mais une fois que vous reconstituez le cycle de vie complet du trade, le bruit commence à avoir un sens. Il y a généralement un système très spécifique en dessous.

Voici comment fonctionne toute la machine 👇

1. Pourquoi les bots de trading sont utilisés sur Polymarket

Le principal avantage d'un bot n'est pas une prédiction parfaite du Bitcoin.

Son avantage vient de la vitesse, de la cohérence et de la capacité à traiter plus d'informations qu'un humain ne peut en surveiller simultanément :

Daniro - inline image

Lien du portefeuille : https://polymarket.com/@0xb55fa1296e6ec55d0ce53d93b9237389f11764d4-1777575277609?via=dan-kwpx

Un contrat à courte durée n'est pas évalué uniquement par le fait que le Bitcoin se déplace actuellement à la hausse ou à la baisse.

L'algorithme doit également prendre en compte :

**> la distance par rapport au prix d'ouverture > la vitesse du dernier mouvement > le temps restant > la volatilité actuelle > la profondeur du carnet d'ordres > les prix de Up et Down > le comportement sur les marchés connexes > le flux exact utilisé pour la résolution**

Dans un marché de cinq minutes, une réelle opportunité peut n'exister que pendant quelques secondes.

Un humain peut encore être en train de basculer entre les graphiques pendant qu'un autre algorithme prend déjà la liquidité disponible et remplace ses ordres.

La plupart des bots de trading sont construits autour de cinq composants principaux :

  1. Couche de données - diffuse les prix externes et les mises à jour du carnet d'ordres
  2. Moteur de signaux - détecte les changements qui peuvent affecter le résultat
  3. Modèle de probabilité - calcule une probabilité équitable indépendante
  4. Moteur d'exécution - place, annule et ajuste les ordres
  5. Gestionnaire de risques - contrôle la taille des positions et bloque les transactions qui dépassent les limites prédéfinies

Un signal que le bot peut calculer directement à partir du carnet d'ordres est le déséquilibre entre le volume des acheteurs et des vendeurs :

python
1def orderbook_imbalance(bids, asks):
2 bid_volume = sum(size for price, size in bids)
3 ask_volume = sum(size for price, size in asks)
4
5 total_volume = bid_volume + ask_volume
6
7 if total_volume == 0:
8 return 0.0
9
10 return (
11 bid_volume - ask_volume
12 ) / total_volume
13
14bids = [
15 (0.48, 1_250),
16 (0.47, 920),
17 (0.46, 680)
18]
19
20asks = [
21 (0.49, 640),
22 (0.50, 510),
23 (0.51, 430)
24]
25
26imbalance = orderbook_imbalance(bids, asks)
27
28print(f"Order-book imbalance: {imbalance:.2%}")

Une valeur positive signifie qu'il y a plus de volume d'achat dans la section analysée du carnet. Une valeur négative signifie que le volume de vente est plus important. Ce signal seul ne prouve pas que le prix va bouger.

Les ordres importants peuvent être annulés, et la liquidité située loin du meilleur prix peut ne jamais affecter l'exécution.

Mais combiné au mouvement du Bitcoin, au temps restant et aux flux de prix externes, il devient une partie d'un signal plus fort.

Un bot n'est pas utile parce qu'il trade automatiquement chaque mouvement du marché. Un système solide gagne son avantage en rejetant la plupart des configurations avant qu'elles ne deviennent des positions.

2. Après avoir reçu un signal, le bot met à jour la probabilité avec Bayes 🧮

Supposons que Up se négocie à 41¢.

Le Bitcoin accélère soudainement, le volume augmente et le carnet d'ordres commence à montrer une pression d'achat plus forte.

Un humain pourrait penser :

Ce mouvement a l'air fort.

Up

pourrait être sous-évalué

L'algorithme a besoin d'une réponse plus précise :

De combien exactement ce signal a-t-il changé la probabilité de

Up

?

C'est là qu'intervient le théorème de Bayes.

Daniro - inline image

Lien du portefeuille : https://polymarket.com/@0xce25e214d5cfe4f459cf67f08df581885aae7fdc-1777575398144?via=dan-kwpx

Bayes permet au modèle de commencer avec une probabilité existante et de la mettre à jour après avoir reçu de nouvelles preuves.

La formule est :

P(Up | Signal) = P(Signal | Up) × P(Up) / [P(Signal | Up) × P(Up) + P(Signal | Down) × P(Down)]

Où :

P(Up)

* est la probabilité avant le nouveau signal *

P(Signal | Up)

* est la fréquence à laquelle ce signal apparaît avant un résultat Up *

P(Signal | Down)

* est la fréquence à laquelle il apparaît avant un résultat Down *

P(Up | Signal)

est la probabilité mise à jour

Supposons :

la probabilité originale de

Up

* est de 41 % ce signal apparaît dans 64 % des scénarios historiques *

Up

* le même signal apparaît dans 35 % des scénarios *

Down

python
1def bayes_update(
2 prior_up,
3 signal_given_up,
4 signal_given_down
5):
6 numerator = signal_given_up * prior_up
7
8 denominator = (
9 numerator
10 + signal_given_down * (1 - prior_up)
11 )
12
13 return numerator / denominator
14
15prior = 0.41
16
17posterior = bayes_update(
18 prior_up=prior,
19 signal_given_up=0.64,
20 signal_given_down=0.35
21)
22
23print(f"Previous probability: {prior:.2%}")
24print(f"Updated probability: {posterior:.2%}")

L'estimation mise à jour est d'environ 56 %. Si le contrat se négocie toujours à 41¢, le bot voit un écart mesurable :

*valeur interne équitable - 56 % prix du marché - 41¢ avantage théorique - 15 points de pourcentage*

Pour un humain, cela peut ressembler à une bonne idée de trade. Pour un bot, c'est une différence spécifique entre la valeur équitable et le prix actuel du marché.

Bayes n'est cependant pas un raccourci de prédiction.

Si le modèle donne trop de poids à des signaux faibles ou compte la même information plusieurs fois, le résultat sera systématiquement faussé.

Un mouvement de prix, une augmentation de volume et un déséquilibre du carnet d'ordres peuvent ressembler à trois confirmations distinctes alors qu'ils sont en réalité trois effets du même événement.

Un modèle solide doit tenir compte de ce chevauchement.

3. Un contrat mal évalué n'est pas automatiquement un trade rentable

Même si le modèle valorise Up à 56 %, l'acheter à 41¢ ne crée pas automatiquement un profit.

L'exécution réelle comprend :

*> les frais de taker > l'écart acheteur-vendeur > le slippage > les exécutions partielles > la détérioration du prix > l'incertitude du modèle*

Le bot calcule donc l'avantage net - l'avantage qui reste après l'exécution réelle de la position.

python
1def calculate_net_edge(
2 model_probability,
3 execution_price,
4 fee,
5 slippage,
6 safety_buffer
7):
8 gross_edge = (
9 model_probability - execution_price
10 )
11
12 net_edge = (
13 gross_edge
14 - fee
15 - slippage
16 - safety_buffer
17 )
18
19 return gross_edge, net_edge
20
21gross, net = calculate_net_edge(
22 model_probability=0.56,
23 execution_price=0.47,
24 fee=0.017,
25 slippage=0.005,
26 safety_buffer=0.010
27)
28
29print(f"Gross edge: {gross:.2%}")
30print(f"Net edge: {net:.2%}")

L'écart initial de neuf points tombe à environ six points après les coûts.

Si la liquidité est limitée, le bot peut ne remplir qu'une petite partie de la position à 47¢. La taille restante peut devoir être achetée à un prix plus élevé.

L'avantage peut disparaître avant que la position complète ne soit construite. La même logique s'applique à l'arbitrage binaire.

Si des quantités égales de Up et Down peuvent être acquises pour moins de 1 $ après tous les coûts, un côté finira par payer 1 $.

Mais le système doit utiliser le prix d'exécution réel pondéré par le volume, et pas simplement le prix le plus attractif visible en haut du carnet d'ordres.

C'est là qu'un backtest propre et une exécution en direct produisent souvent des résultats très différents. Un humain remarque un prix inhabituel. Un bot doit prouver qu'il reste suffisamment de valeur après l'inclusion des coûts du marché.

4. Le meilleur avantage existe souvent entre les marchés connexes 🕸

Les contrats à courte durée n'évoluent pas de manière isolée.

Un mouvement du Bitcoin peut affecter tous les éléments suivants :

> la fenêtre actuelle

BTC

* 5m > la fenêtre de cinq minutes suivante > *

BTC

* 15m > *

BTC

* 1h > les marchés connexes *

ETH

et

SOL

Mais ces marchés ne se mettent pas toujours à jour à la même vitesse.

Chaque contrat a son propre carnet d'ordres, sa liquidité, son niveau d'ouverture et ses participants.

Par exemple :

>

BTC

* 5m peut se réévaluer immédiatement > *

BTC

* 15m peut réagir moins que prévu > une fenêtre voisine peut conserver son déséquilibre de carnet précédent > un contrat peut devenir cher > un autre peut continuer à se négocier sur des hypothèses obsolètes*

Daniro - inline image

Lien du portefeuille : https://polymarket.com/@flippingsharks?via=dan-kwpx

Le bot mesure si l'écart entre les marchés connexes a dépassé sa fourchette normale.

Un outil simple est un z-score :

Z = (écart actuel − écart moyen) / écart type

python
1def spread_zscore(
2 current_spread,
3 average_spread,
4 spread_deviation
5):
6 return (
7 current_spread - average_spread
8 ) / spread_deviation
9
10z = spread_zscore(
11 current_spread=0.112,
12 average_spread=0.036,
13 spread_deviation=0.025
14)
15
16print(f"Spread z-score: {z:.2f}")

Une lecture supérieure à 3 signifie que l'écart actuel est bien en dehors de la fourchette que le modèle observe habituellement.

Cela ne crée pas automatiquement un trade. Un marché peut être véritablement en retard. Ou le marché qui a bougé en premier peut avoir déjà intégré des informations que les contrats voisins n'ont pas encore traitées.

Un bot ne peut pas non plus comparer BTC 5m et BTC 15m en regardant uniquement leurs prix Up.

Ils ont des niveaux d'ouverture différents et des durées restantes différentes.

Un système sérieux compare la distance parcourue par chaque contrat par rapport à son propre modèle de valeur équitable.

Un humain regarde un marché. Un bot regarde un réseau de probabilités connectées et identifie la partie qui s'est temporairement éloignée du reste.

5. Cinq façons dont les bots transforment l'avantage en position 🔄

Une fois le signal confirmé, la probabilité mise à jour et l'avantage net restant positif, l'étape la plus intéressante commence.

Le bot doit décider comment construire et gérer la position.

Après avoir regroupé les exécutions individuelles en cycles de trading complets, cinq modèles récurrents sont apparus.

1️⃣ Rotation dynamique de la position

Ce système met continuellement à jour sa vision et peut changer de direction plusieurs fois à l'intérieur du même contrat. Supposons que le modèle considère Up comme sous-évalué au début d'un marché de cinq minutes.

Il commence à accumuler Up via des ordres limités.

Puis la configuration change :

Bitcoin

* perd de l'élan le prix revient vers le niveau d'ouverture les acheteurs disparaissent du carnet d'ordres la probabilité *

Up

du modèle diminue

Le bot n'est pas obligé de conserver la position initiale jusqu'à la résolution. Il peut vendre une partie de son Up, annuler les ordres restants et commencer à accumuler Down.

Si le marché change à nouveau, la position peut être reconstruite une fois de plus. L'objectif n'est pas d'identifier parfaitement le résultat final du premier coup.

L'objectif est de rester plus exposé au côté qui est actuellement évalué en dessous de l'estimation mise à jour du modèle.

La force de cette approche est que le bot peut abandonner une vision obsolète immédiatement.

La principale faiblesse est les faux retournements répétés.

Pendant une fenêtre bruyante, le système peut :

acheter

Up

* après un mouvement à la hausse le réduire après un repli passer à *

Down

* réduire *

Down

après le prochain mouvement à la hausse

Les coûts d'exécution et les changements de position répétés peuvent progressivement éliminer l'avantage initial.

Un bot de rotation doit donc changer de direction uniquement lorsque le nouveau signal est suffisamment fort pour couvrir le coût de la sortie, de la reconstruction de la position et de la possibilité de se tromper à nouveau :

Daniro - inline image

Lien du portefeuille : https://polymarket.com/@trinity42?via=dan-kwpx

2️⃣ Arbitrage temporel

L'arbitrage traditionnel apparaît lorsque Up et Down peuvent être achetés en même temps pour moins de 1 $.

L'arbitrage temporel construit les deux côtés à des moments différents. Imaginez que le Bitcoin monte fortement peu après l'ouverture du marché.

Down tombe à 26¢, et le bot accumule progressivement 750 contrats à un prix moyen de 27,4¢. Deux minutes plus tard, le Bitcoin restitue la majeure partie du mouvement et se négocie plus près du niveau d'ouverture.

Maintenant Up devient moins cher, et le bot achète 750 Up à un prix moyen de 49,8¢.

La structure finale est :

*750 Down à 27,4¢ 750 Up à 49,8¢ coût total par paire complète - 77,2¢*

Quel que soit le résultat final, un contrat de chaque paire paie 1 $. Cela crée une marge brute de 22,8¢ par paire avant frais et coûts d'exécution. Le détail clé est que Down à 27,4¢ et Up à 49,8¢ n'ont jamais été disponibles en même temps.

Le bot a créé l'arbitrage à partir de deux états de marché différents. Cependant, le premier achat est toujours exposé au risque directionnel.

Si le Bitcoin continue d'augmenter, le bot pourrait ne jamais recevoir un prix Up suffisamment attractif pour compléter la paire.

Il se retrouverait alors avec 750 contrats Down qui continuent de perdre de la valeur.

Le système suit donc :

*la quantité détenue de chaque côté le coût moyen des deux résultats le coût de l'inventaire déjà protégé la taille de la position directionnelle non appariée le temps maximum autorisé pour attendre le deuxième côté*

Certains bots construisent la structure en blocs plus petits.

Ils peuvent acheter 100 Down, attendre de pouvoir ajouter 100 Up, compléter la première paire protégée, et seulement ensuite continuer à augmenter la taille.

Cela réduit le rendement potentiel maximum mais limite également le risque de se retrouver avec une grande position unilatérale.

L'arbitrage temporel fonctionne mieux sur les marchés avec plusieurs mouvements significatifs dans les deux directions.

Un mouvement prolongé dans une seule direction est son environnement le plus difficile :

Daniro - inline image

Lien du portefeuille : https://polymarket.com/@garvy?via=dan-kwpx

3️⃣ Bot de tenue de marché d'inventaire

Ce système ne gère pas une seule position. Il gère un inventaire entier de contrats.

Il peut trader :

*BTC, ETH et SOL les marchés 5m, 15m, 1h et 4h à la fois Up et Down sur plusieurs fenêtres*

Le bot achète et vend en petites quantités tout en suivant en continu le coût total de son inventaire. Supposons qu'il ait accumulé les deux côtés d'un contrat. Près de l'expiration, Down devient le favori clair et monte à 98¢.

Au lieu d'attendre simplement la résolution, le bot peut :

*vendre une partie de l'inventaire Down cher libérer du capital avant le règlement conserver le reste de la position principale acheter une petite quantité de Up à 2¢ déplacer le capital disponible vers un autre marché*

L'achat du côté à bas prix peut sembler inhabituel au premier abord.

Mais une petite position à 1–2¢ peut servir de protection peu coûteuse contre un dernier mouvement soudain. Si rien ne change, le coût est limité. Si le Bitcoin franchit de manière inattendue le niveau d'ouverture, la petite position Up peut compenser une partie de la perte ailleurs.

Le bot d'inventaire peut également profiter des différences entre les marchés connexes.

Un contrat peut offrir un bon prix d'entrée. Un autre peut fournir une liquidité plus profonde pour une sortie. Un troisième peut offrir le côté opposé à un prix inhabituellement bas.

Le principal défi est le coût moyen de l'inventaire complet.

Si le coût moyen Up est de 56¢ et le coût moyen Down est de 49¢, une paire protégée coûte 1,05 $.

La résolution ne paie que 1 $.

Pour récupérer cette différence de cinq cents, le système a besoin de gains supplémentaires provenant de la vente d'inventaire cher, du maintien d'un déséquilibre directionnel contrôlé, du gain de remises de maker, ou du déplacement plus efficace du capital entre les marchés :

Daniro - inline image

Lien du portefeuille : https://polymarket.com/@polkadot-frog?via=dan-kwpx

4️⃣ Bot directionnel couvert

Cette structure se situe entre l'arbitrage pur et une position entièrement directionnelle.

Supposons que le bot détienne :

*280 Up 257 Down*

Les 257 premiers Up et 257 Down forment une base protégée. Quel que soit le résultat final, un côté de ce bloc paie 257 $. Les 23 contrats Up restants créent une inclinaison directionnelle.

Si Up devient le résultat final, ces contrats supplémentaires augmentent le paiement. Si Down devient le résultat final, la position opposée couvre la majeure partie de l'exposition.

Le système dit effectivement :

Mon modèle favorise actuellement Up, mais je ne veux pas que la position entière dépende d'un seul résultat.

La taille du déséquilibre peut changer tout au long du marché. Lorsque la confiance augmente, le bot ajoute plus de Up. Lorsque le signal s'affaiblit, il réduit Up ou achète du Down supplémentaire.

Détenir les deux côtés ne rend pas automatiquement la structure efficace.

Si les paires protégées ont été construites au-dessus de 1 $, elles créent une marge négative garantie.

Supposons que le coût moyen de la paire soit de 1,04 $. Les 23 contrats Up supplémentaires doivent d'abord récupérer la perte sur la base protégée, ainsi que les frais et le slippage.

Ce n'est qu'après cela que la position complète devient rentable.

Dans certains cas, une couverture coûteuse est moins efficace que le maintien d'une position directionnelle plus petite :

Daniro - inline image

Lien du portefeuille : https://polymarket.com/@uuddlrlr?via=dan-kwpx

5️⃣ Bot de capture de résolution tardive

Le dernier modèle se concentre presque entièrement sur la phase de clôture du marché.

Lorsqu'un résultat est sur le point d'être déterminé, le côté final probable peut encore se négocier à 98–99¢. Le bot achète le volume disponible restant et attend le paiement de 1 $.

Par exemple :

*entrée à 98,6¢ paiement à 1 $ bénéfice brut - 1,4¢ par contrat*

Le rendement de chaque opération est faible, donc le système scanne un grand nombre de marchés et utilise un volume substantiel.

La stratégie peut sembler très prévisible, mais son profil de rendement est très inégal.

Si 99 opérations génèrent un cent chacune et qu'une position à 99¢ se résout de manière incorrecte, les gains antérieurs peuvent disparaître.

Cette seule exécution incorrecte peut résulter de :

*un mouvement brusque de dernière seconde une différence entre les flux de prix un niveau d'ouverture incorrect une mise à jour de résolution retardée une mauvaise compréhension des règles du marché un ordre resté actif trop longtemps*

Un système de résolution tardive a donc besoin de plus que de la vitesse.

Il doit savoir exactement quel flux détermine le résultat et à quelle distance se trouve la valeur actuelle de la limite du contrat.

La structure finale de la position peut être analysée par programmation.

python
1def inspect_position(
2 up_quantity,
3 down_quantity,
4 up_average_price,
5 down_average_price
6):
7 protected_pairs = min(
8 up_quantity,
9 down_quantity
10 )
11
12 directional_up = max(
13 up_quantity - down_quantity,
14 0
15 )
16
17 directional_down = max(
18 down_quantity - up_quantity,
19 0
20 )
21
22 pair_cost = (
23 up_average_price
24 + down_average_price
25 )
26
27 return {
28 "protected_pairs": protected_pairs,
29 "extra_up": directional_up,
30 "extra_down": directional_down,
31 "average_pair_cost": pair_cost,
32 "pair_margin": 1 - pair_cost
33 }
34
35position = inspect_position(
36 up_quantity=280,
37 down_quantity=257,
38 up_average_price=0.51,
39 down_average_price=0.46
40)
41
42print(position)

Mais un instantané final ne révèle toujours pas la stratégie complète.

Pour comprendre le système, vous devez savoir comment la position a été construite, quelles parties ont été vendues et comment le coût moyen a changé au fil du temps.

6. Trouver une mauvaise évaluation ne suffit pas — le bot doit encore la capturer 🎯

Supposons que le bot trouve une opportunité d'acheter Up et Down pour un total de 94¢. Il soumet les deux ordres. Up est entièrement exécuté.

Avant que Down ne soit exécuté, le marché bouge, la liquidité disponible disparaît et le deuxième côté devient plus cher.

L'arbitrage n'existe plus.

Le bot détient maintenant une position directionnelle Up ouverte.

C'est le risque d'inventaire.

Un système solide ne peut pas simplement identifier des prix inhabituels. Il doit gérer l'ensemble du processus d'exécution.

Il doit décider :

*combien de temps attendre le deuxième côté quand ajuster l'ordre limité quel déséquilibre est acceptable quand rester un maker et quand exécuter en tant que taker s'il faut réduire le premier côté après la disparition de l'avantage*

Une façon de gérer cela est d'utiliser une logique inspirée du modèle Avellaneda–Stoikov.

L'idée centrale est simple : le prix acceptable doit changer en fonction de l'inventaire déjà détenu.

Une formule simplifiée est :

Prix de réservation = Prix équitable − Inventaire × Risque × Volatilité² × Temps

python
1def reservation_price(
2 fair_price,
3 inventory,
4 risk_aversion,
5 volatility,
6 time_remaining
7):
8 inventory_adjustment = (
9 inventory
10 * risk_aversion
11 * volatility ** 2
12 * time_remaining
13 )
14
15 return fair_price - inventory_adjustment
16
17quote = reservation_price(
18 fair_price=0.57,
19 inventory=0.40,
20 risk_aversion=0.80,
21 volatility=0.18,
22 time_remaining=0.25
23)
24
25print(f"Inventory-adjusted quote: {quote:.3f}")

Si le bot détient déjà trop de Up, il doit devenir moins disposé à acheter du Up supplémentaire.

En même temps, il peut devenir plus agressif lors de l'acquisition de Down pour réduire le déséquilibre.

Le type d'ordre compte également :

GTC

* reste actif jusqu'à exécution ou annulation *

GTD

* expire à une heure spécifiée *

FOK

* s'exécute complètement ou est annulé *

FAK

* exécute le montant disponible et annule le reste *

Post-only

garantit que l'ordre ajoute de la liquidité

Dans un marché de cinq minutes, la qualité d'exécution peut être plus importante que la prévision initiale.

Le modèle peut estimer la juste valeur correctement et quand même perdre de l'argent si la position est construite trop lentement ou à un prix moyen inefficace.

7. La dernière couche est le dimensionnement des positions et la protection du capital 🛡

Un avantage solide ne justifie pas d'allouer tout le capital disponible à un seul marché.

Il y a toujours une possibilité que :

*le modèle ait surestimé le signal le deuxième côté ne se remplisse pas la liquidité disparaisse l'exécution moyenne soit pire que prévu plusieurs positions corrélées perdent de la valeur ensemble*

Un point de départ courant pour le dimensionnement des positions est le critère de Kelly.

La formule est :

f = (b × p − q) ÷ b

\*

Où :

p

* est la probabilité de succès *

q = 1 − p

* est la probabilité d'échec *

b

* est le gain net par rapport au montant risqué *

f

\ est la fraction de capital Kelly complète*

En pratique, de nombreux systèmes n'utilisent qu'une fraction du résultat.

python
1def fractional_kelly(
2 win_probability,
3 entry_price,
4 fraction=0.25
5):
6 lose_probability = 1 - win_probability
7
8 net_odds = (
9 1 - entry_price
10 ) / entry_price
11
12 full_kelly = (
13 net_odds * win_probability
14 - lose_probability
15 ) / net_odds
16
17 return max(
18 full_kelly * fraction,
19 0
20 )
21
22allocation = fractional_kelly(
23 win_probability=0.61,
24 entry_price=0.50,
25 fraction=0.25
26)
27
28print(f"Allocation en capital : {allocation:.2%}")

Le Kelly fractionné réduit la probabilité qu'une seule estimation de modèle inexacte ou une mauvaise exécution cause des dommages importants à la stratégie.

Le système applique ensuite des limites strictes :

*taille maximale par position exposition maximale par actif limite sur le stock non couvert limite de perte quotidienne arrêt d'urgence lorsque les données deviennent peu fiables*

La corrélation compte aussi.

BTC 5m, BTC 15m, ETH 5m et SOL 5m peuvent sembler être des marchés séparés, mais lors d'un mouvement crypto généralisé, ils peuvent tous perdre de la valeur en même temps.

Le rôle du gestionnaire de risque n'est pas de maximiser la taille de chaque opportunité attrayante.

Son rôle est de s'assurer qu'un seul scénario ne peut pas priver le système de sa capacité à continuer à fonctionner.

8. À quoi ressemble la pile complète du bot ⚙️

Un bot Polymarket moderne n'est pas un simple script Python comparant Binance au prix Up.

Il fonctionne généralement sur plusieurs couches.

Couche 1 - Données de marché

Prix externes, flux de résolution officiel, carnets d'ordres en direct, exécutions récentes et statut des propres ordres du bot.

Couche 2 - Signaux

Mouvement des prix, volume, volatilité, déséquilibre du carnet d'ordres et écarts entre les marchés connexes.

Couche 3 - Probabilité

Le modèle met à jour la probabilité juste chaque fois que de nouvelles informations significatives arrivent.

Couche 4 - Logique de position

Le système choisit entre la rotation, l'arbitrage temporel, la gestion des stocks, une couverture directionnelle ou une exécution tardive de la résolution.

Couche 5 - Exécution et risque

Les ordres sont passés, annulés et ajustés tandis que les stocks et la taille des positions restent dans les limites prédéfinies.

Couche 6 - Recherche

Claude est utilisé pour analyser l'historique des transactions, identifier les structures récurrentes, rédiger des backtests et étudier les cycles de trading infructueux.

La boucle de haut niveau peut ressembler à ceci.

python
1async def run_bot():
2 while True:
3 state = await receive_market_update()
4
5 signal = build_signal(state)
6 probability = update_probability_model(
7 state,
8 signal
9 )
10
11 edge = scan_for_edge(
12 state,
13 probability
14 )
15
16 if not edge["tradable"]:
17 continue
18
19 position_plan = choose_position_model(
20 state,
21 edge
22 )
23
24 orders = build_execution_plan(
25 state,
26 position_plan
27 )
28
29 if risk_manager_approves(
30 orders,
31 state
32 ):
33 await send_orders(orders)

Claude peut aider à identifier les structures qui se répètent à travers des millions d'exécutions historiques.

Mais la boucle de trading à faible latence elle-même doit rester déterministe : recevoir les données, appliquer les règles, vérifier les limites et soumettre l'ordre.

Conclusion : les bots rentables font bien plus que choisir Up ou Down

Les marchés à courte durée semblent être des contrats directionnels simples.

Un système rentable effectue une séquence beaucoup plus longue :

*reçoit un nouveau signal le convertit en probabilité vérifie l'avantage net compare les marchés connexes sélectionne une structure de position gère l'exécution limite le risque*

Certains Bots alternent entre Up et Down plusieurs fois dans la même fenêtre. D'autres accumulent les deux côtés à des moments différents. Certains gèrent un stock important sur plusieurs échéances. D'autres maintiennent une base protégée avec une légère inclinaison directionnelle.

Un groupe distinct se concentre sur la capture de la différence de prix restante peu avant la résolution.

Mais la formule de base est généralement similaire :

*des données fiables une estimation de probabilité indépendante un avantage après les coûts la bonne structure de position une exécution précise un risque contrôlé*

Ces Bots ne savent pas où sera Bitcoin dans cinq minutes.

Ils sont simplement plus rapides pour calculer ce que chaque résultat possible devrait valoir maintenant.

Merci d'avoir consulté mon article, je vous serais reconnaissant pour vos retours !

Suivez-moi sur X✌️: https://x.com/Dan1ro0**

Rejoignez mon Telegram pour plus**✍️: https://t.me/+VDXq5wkZ2AIxMDBi

Enregistrer en un clic

Lire les articles viraux en profondeur avec l’IA de YouMind

Enregistrez la source, posez des questions ciblées, résumez l’argument et transformez un article viral en notes réutilisables dans un seul espace de travail IA.

Découvrir YouMind
Pour les créateurs

Transformez votre Markdown en un article 𝕏 impeccable

Quand vous publiez vos propres textes longs, la mise en forme 𝕏 des images, tableaux et blocs de code est pénible. YouMind transforme un brouillon Markdown complet en un article 𝕏 impeccable, prêt à publier.

Essayer Markdown vers 𝕏

D'autres patterns à décoder

Articles viraux récents

Explorer plus d'articles viraux