1 points par GN⁺ 20 일 전 | 1 commentaires | Partager sur WhatsApp
  • Bot Python asynchrone qui n’achète automatiquement que des positions « No » sur les marchés Polymarket binaires non sportifs, fourni à des fins de divertissement
  • Distingue le mode de trading simulé du mode réel ; en mode réel, plusieurs variables d’environnement et paramètres de clé privée sont indispensables
  • Permet de surveiller l’état via une interface de tableau de bord et, lorsque l’envoi d’ordres est activé, enregistre l’état de reprise en temps réel
  • Inclut des scripts de déploiement Heroku pour automatiser la vérification de l’état de l’application, la consultation des logs, le basculement en mode réel et l’arrêt des processus
  • Comprend des outils de test et de gestion des données, permettant une exécution et une validation sûres en environnement local comme dans le cloud

Aperçu

  • Nothing Ever Happens est un bot asynchrone en Python qui achète toujours des positions « No » sur les marchés Polymarket binaires non sportifs
  • Il est fourni à des fins de divertissement et s’exécute aux risques et périls de l’utilisateur, sans garantie ni responsabilité
  • Le dépôt est structuré en répertoires bot/, scripts/, tests/, qui contiennent respectivement la logique de trading, les scripts d’exploitation et le code de test

Architecture d’exécution

  • À l’exécution, le bot analyse des marchés indépendants et repère les entrées « No » sous un plafond de prix défini afin de suivre les positions
  • Il affiche l’état via un tableau de bord et, si l’envoi d’ordres est activé, enregistre l’état de reprise en temps réel
  • Le module d’exécution est nothing_happens et, en mode inactif, il utilise PaperExchangeClient

Modèle de sécurité

  • Pour envoyer de vrais ordres, les trois variables d’environnement suivantes doivent toutes être définies
    • BOT_MODE=live
    • LIVE_TRADING_ENABLED=true
    • DRY_RUN=false
  • Si l’une de ces conditions manque, le bot bascule en mode de trading simulé
  • En mode réel, les variables d’environnement supplémentaires suivantes sont aussi requises
    • PRIVATE_KEY
    • FUNDER_ADDRESS (pour les types de signature 1 et 2)
    • DATABASE_URL
    • POLYGON_RPC_URL (pour l’approbation du portefeuille proxy et le rachat)

Installation et configuration

  • L’installation se fait avec pip install -r requirements.txt, puis en copiant le fichier de configuration d’exemple pour l’utiliser comme configuration locale
  • config.json contient la configuration d’exécution non secrète, tandis que .env contient les clés secrètes et les drapeaux d’exécution
  • La configuration d’exécution se trouve sous strategies.nothing_happens, et la variable d’environnement CONFIG_PATH permet d’indiquer un autre fichier de configuration

Exécution en local

  • En local, le lancement se fait avec la commande python -m bot.main
  • Le tableau de bord est lié à la variable d’environnement $PORT ou DASHBOARD_PORT

Workflow de déploiement Heroku

  • En environnement Heroku, on utilise HEROKU_APP_NAME ou on passe explicitement le nom de l’application en argument
  • Scripts fournis :
    • alive.sh : vérifie l’état de l’application
    • logs.sh : affiche les logs
    • live_enabled.sh / live_disabled.sh : bascule le mode de trading réel
    • kill.sh : arrête les processus
  • Procédure de déploiement typique :
    • définir les variables d’environnement (BOT_MODE, DRY_RUN, LIVE_TRADING_ENABLED, PRIVATE_KEY, FUNDER_ADDRESS, POLYGON_RPC_URL, DATABASE_URL)
    • git push heroku <branch>:main
    • heroku ps:scale web=1 worker=0
  • Le processus worker est conçu pour échouer rapidement s’il est lancé par inadvertance

Tests

  • Les tests utilisent pytest pour les vérifications unitaires et de régression
  • Commande : python -m pytest -q

Scripts inclus

  • scripts/db_stats.py

    • vérifie le nombre de tables de la base de données en temps réel et l’activité récente
  • scripts/export_db.py

    • exporte les tables depuis DATABASE_URL ou depuis une application Heroku
  • scripts/wallet_history.py

    • affiche les positions, transactions et soldes du portefeuille configuré
  • scripts/parse_logs.py

    • convertit les logs JSON Heroku en format terminal ou HTML

Gestion du dépôt

  • Les configurations locales, registres, données exportées, rapports, artefacts de déploiement, etc. sont exclus de git par défaut
  • Le dépôt est organisé de manière à séparer clairement l’environnement de production et l’environnement local

1 commentaires

 
GN⁺ 20 일 전
Avis sur Hacker News
  • Ce tweet précise qu’aucun rendement ni remboursement n’est garanti
    Cela ressemble simplement à un projet fait pour le fun avec du code inspiré d’un mème. Plus qu’une arnaque, ça donne l’impression d’une expérience amusante

    • Oui. Le bot n’a absolument aucune gestion du risque, et le GitHub indique clairement qu’il s’agit d’un mème
      Il existe une statistique selon laquelle environ 73 % des marchés Polymarket se terminent effectivement par « No »
      Si vous vous intéressez à l’analyse de données, le dataset Hugging Face vaut le détour
    • Dans ce cas, cela veut dire que ce n’est pas vraiment une stratégie de trading exploitable
      À cause du biais d’optimisme humain, le camp du « Yes » peut être surévalué, mais Polymarket est déjà surveillé par des traders, donc les prix restent globalement réalistes
      S’il était possible de parier contre des coins en baisse, ce serait intéressant, mais même ce type de marché finirait par être ajusté efficacement
    • Quand des gens trouvent une stratégie vraiment rentable, ils ne la partagent généralement pas
    • L’expression « code inspiré d’un mème » est vraiment hilarante. Ce genre de blague de nerd semble avoir mis le feu aux discussions
    • Comme plusieurs marchés sont liés entre eux, il est normal qu’il y ait plus de « No ». Par exemple, s’il y a 10 candidats, 9 finiront par « No »
  • Le fait que ce projet vise les marchés non sportifs est intéressant
    Dans les paris sportifs aussi, on dit souvent que le côté « No » offre généralement un meilleur rendement, parce que le « Yes » est plus excitant et attire davantage de monde
    Au final, les « paris ennuyeux » ont peut-être plus de chances d’offrir de meilleurs rendements sur le long terme
    Ce type d’enseignements de l’économie comportementale accumulés dans les paris sportifs pourrait aussi s’appliquer aux marchés non sportifs

    • Avec l’architecture backend de Polymarket, même les paris sportifs sont en pratique sous forme Yes/No, donc la distinction est floue
    • Ce genre de stratégie peut avoir une espérance de valeur positive (EV) au début, mais dès que les gens s’en rendent compte, le marché se réajuste efficacement
      Il se crée alors une boucle de rétroaction où les prix reviennent à leur niveau d’équilibre
      C’est pourquoi, si l’on découvre une stratégie réellement rentable, il vaut mieux ne jamais la publier en open source et la faire tourner discrètement
  • L’idée de « toujours parier sur No » est amusante, mais il faut vérifier dans quelle mesure elle est réellement rentable

    • J’ai aussi fait un backtest, et même si cela semblait afficher 100 % d’APR, il y avait une part de triche consistant à connaître à l’avance le moment du résultat
      Dans la réalité, la liquidité est faible, et une seule perte peut effacer plusieurs gains
      Les marchés sportifs sont au contraire plus prévisibles grâce à une échéance claire et à de gros volumes d’échange
    • J’aime aussi les marchés prédictifs et j’ai essayé plusieurs stratégies ; le timing est essentiel
      Plutôt que de miser simplement sur No partout, on pourrait obtenir des gains assez stables en misant sur No sur des éléments liés à une actualité au moment même où elle commence à émerger
  • J’y vois une forme d’arbitrage sur l’imagination humaine
    Les gens aiment les scénarios sensationnels, mais la réalité est la plupart du temps ennuyeuse

    • Les gens sous-estiment les événements de type cygne noir, puis sur-réagissent quand ils se produisent effectivement
      J’ai moi-même profité de ce schéma pendant la crise financière et le Covid
      Aujourd’hui, je m’inquiète de la bulle IA, mais je pense qu’elle se dégonflera lentement plutôt que de s’effondrer brutalement, donc j’ai augmenté ma part d’obligations et de liquidités
    • Mais si un tel bot était appliqué à des événements militaires ou politiques, cela pourrait inciter quelqu’un à faire en sorte qu’un « Yes » se réalise dans le monde réel
    • C’est aussi pour cela que le marché n’est pas valorisé de manière uniforme
    • Le problème, c’est que cette logique fonctionne mal en tant que stratégie réelle
  • Certains soutiennent que parier sur « No » revient en fait à parier « Yes » sur tous les autres résultats
    La documentation Polymarket contient des calculs liés à ce point

    • Mais c’est une mauvaise compréhension. Par exemple, « Joe Dart élu président Y/N » et « Cory Wong élu président Y/N » sont indépendants l’un de l’autre
    • Oui. Chaque résultat n’est pas lié aux autres
  • Cette stratégie ressemble à ramasser des pièces devant un train
    On répète de petits gains jusqu’à ce qu’un seul événement de longue traîne fasse tout perdre

    • L’auteur ne semble pas l’avoir présentée comme une stratégie sérieuse, mais plutôt comme un projet-mème
    • Tant qu’on ne mise pas tout sur un seul événement, la perte reste limitée au montant misé
  • Il existe aussi l’étude Prediction Market Microstructure
    (discussion précédente : lien HN)

  • À mon avis, le pricing est déjà entièrement intégré par le marché

    • L’auteur mentionne lui-même qu’« il faut acheter en dessous de 0,73 sur le long terme »
      Voir ce tweet associé
    • Mais le simple fait qu’un marché existe peut lui-même activer l’heuristique de disponibilité, ce qui pousse les gens à surestimer la probabilité
      Lien de référence
    • La formule « il ne se passe rien » est parfaitement juste
    • Benjamin, voilà une mention intéressante
  • Au final, la volatilité réalisée tend avec le temps à ressortir plus bas que la volatilité implicite

    • Les gens paient trop cher pour se protéger contre le skew, et vendre cette protection peut rapporter régulièrement
      Bien sûr, quand ça explose, les pertes peuvent être importantes
  • Le simple fait que « No » sorte dans 70 % des cas ne signifie pas qu’on gagne de l’argent
    C’est une forme classique de mauvais raisonnement mathématique. Une stratégie du type « ramasser des pièces devant un rouleau compresseur »

    • Il est peu probable que quelqu’un se fasse piéger ; l’auteur semble l’avoir fait surtout comme une blague
    • Sans levier, le risque d’une telle stratégie reste limité
      Cela dit, ce genre de marché inefficace est petit et rare, donc on risque au final de « ramasser des pièces, mais seulement des pièces »
    • La rentabilité dépend de variables comme le prix d’entrée, l’espérance de gain et le temps restant
      Même en suivant le critère de Kelly, parier au hasard finit souvent par épuiser le capital. Une analyse approfondie (DD) est nécessaire pour chaque marché