Rien ne se passe jamais : un bot qui achète toujours « No » sur les marchés Polymarket non sportifs
(github.com/sterlingcrispin)- 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_happenset, 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=liveLIVE_TRADING_ENABLED=trueDRY_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_KEYFUNDER_ADDRESS(pour les types de signature 1 et 2)DATABASE_URLPOLYGON_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.jsoncontient la configuration d’exécution non secrète, tandis que.envcontient 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’environnementCONFIG_PATHpermet 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
$PORTouDASHBOARD_PORT
Workflow de déploiement Heroku
- En environnement Heroku, on utilise
HEROKU_APP_NAMEou on passe explicitement le nom de l’application en argument - Scripts fournis :
alive.sh: vérifie l’état de l’applicationlogs.sh: affiche les logslive_enabled.sh/live_disabled.sh: bascule le mode de trading réelkill.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>:mainheroku ps:scale web=1 worker=0
- définir les variables d’environnement (
- Le processus
workerest conçu pour échouer rapidement s’il est lancé par inadvertance
Tests
- Les tests utilisent
pytestpour 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_URLou depuis une application Heroku
- exporte les tables depuis
-
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
Aucun commentaire pour le moment.