- Bot Python asinkron yang secara otomatis hanya membeli posisi ‘No’ di pasar ya/tidak non-olahraga Polymarket, disediakan untuk tujuan hiburan
- Membedakan mode paper trading dan live trading, dan untuk live trading diperlukan beberapa variabel lingkungan serta pengaturan private key
- Melalui antarmuka dashboard, status dapat dipantau, dan saat pengiriman order diaktifkan, status pemulihan real-time disimpan
- Menyertakan skrip deployment Heroku untuk mengotomatisasi pemeriksaan status aplikasi, melihat log, beralih ke live trading, dan menghentikan proses
- Termasuk alat pengujian dan pengelolaan data, sehingga dapat dijalankan dan diverifikasi dengan aman baik di lingkungan lokal maupun cloud
Ikhtisar
- Nothing Ever Happens adalah bot berbasis Python asinkron yang selalu membeli posisi ‘No’ di pasar ya/tidak non-olahraga pada platform Polymarket
- Disediakan untuk tujuan hiburan, dan dijalankan atas risiko pengguna sendiri tanpa jaminan atau tanggung jawab apa pun
- Repositori terdiri dari direktori
bot/, scripts/, dan tests/, yang masing-masing berisi logika trading, skrip operasional, dan kode pengujian
Struktur runtime
- Runtime memindai pasar independen dan melacak posisi dengan mencari item ‘No’ di bawah batas harga yang telah ditetapkan
- Menampilkan status melalui dashboard, dan menyimpan status pemulihan real-time jika pengiriman order diaktifkan
- Modul eksekusinya adalah
nothing_happens, dan pada mode nonaktif menggunakan PaperExchangeClient
Model keamanan
- Untuk mengirim order nyata, ketiga variabel lingkungan berikut harus semuanya disetel
BOT_MODE=live
LIVE_TRADING_ENABLED=true
DRY_RUN=false
- Jika salah satu kondisi di atas tidak ada, sistem akan beralih ke mode paper trading
- Dalam mode live trading, variabel lingkungan tambahan berikut juga diperlukan
PRIVATE_KEY
FUNDER_ADDRESS (untuk tipe tanda tangan 1, 2)
DATABASE_URL
POLYGON_RPC_URL (untuk persetujuan proxy wallet dan redemption)
Penyiapan dan konfigurasi
- Instalasi dilakukan dengan
pip install -r requirements.txt, lalu menyalin file konfigurasi contoh untuk digunakan sebagai konfigurasi lokal
config.json berisi konfigurasi runtime non-rahasia, sedangkan .env berisi kunci rahasia dan flag eksekusi
- Konfigurasi runtime berada di bawah
strategies.nothing_happens, dan file konfigurasi lain dapat ditentukan melalui variabel lingkungan CONFIG_PATH
Menjalankan secara lokal
- Di lokal, aplikasi dapat dijalankan dengan perintah
python -m bot.main
- Dashboard akan bind ke variabel lingkungan
$PORT atau DASHBOARD_PORT
Workflow deployment Heroku
- Di lingkungan Heroku, gunakan
HEROKU_APP_NAME atau berikan argumen nama aplikasi secara eksplisit
- Skrip yang disediakan:
alive.sh: memeriksa status aplikasi
logs.sh: melihat log
live_enabled.sh / live_disabled.sh: beralih mode live trading
kill.sh: menghentikan proses
- Prosedur deployment umum adalah sebagai berikut
- Menyetel variabel lingkungan (
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
- Proses
worker dirancang agar cepat gagal jika berjalan tanpa sengaja
Pengujian
- Pengujian menggunakan
pytest untuk melakukan verifikasi unit dan regresi
- Perintah:
python -m pytest -q
Skrip yang disertakan
-
scripts/db_stats.py
- Memeriksa jumlah tabel database real-time dan aktivitas terbaru
-
scripts/export_db.py
- Mengekspor tabel dari
DATABASE_URL atau dari aplikasi Heroku
-
scripts/wallet_history.py
- Melihat posisi, transaksi, dan saldo wallet yang dikonfigurasi
-
scripts/parse_logs.py
- Mengonversi log JSON Heroku ke format terminal atau HTML
Pengelolaan repositori
- Konfigurasi lokal, ledger, data yang diekspor, laporan, dan artefak deployment secara default dikecualikan dari git
- Repositori disusun untuk memisahkan dengan jelas lingkungan operasional dan lingkungan lokal
1 komentar
Komentar Hacker News
Jika melihat tweet ini, tertulis jelas bahwa tidak ada janji keuntungan atau pengembalian dana
Ini tampaknya sekadar proyek kode berbasis meme yang dibuat untuk lucu-lucuan
Rasanya lebih seperti eksperimen yang menggelitik daripada penipuan
Ada statistik bahwa sekitar 73% pasar di Polymarket memang berakhir dengan ‘No’
Jika tertarik pada analisis data, dataset Hugging Face layak dilihat
Karena bias optimisme manusia, sisi ‘Yes’ mungkin dinilai terlalu tinggi, tetapi Polymarket sudah diawasi para trader sehingga harga terbentuk secara cukup realistis
Kalau ada cara untuk bertaruh pada koin yang sedang turun mungkin akan menarik, tetapi pasar seperti itu pun pada akhirnya akan disesuaikan harganya secara efisien
Menarik bahwa proyek ini ditujukan untuk pasar non-olahraga
Dalam taruhan olahraga pun diketahui bahwa sisi ‘No’ sering kali memberi imbal hasil lebih tinggi. ‘Yes’ lebih menarik dan lebih banyak diminati orang
Pada akhirnya, ‘taruhan yang membosankan’ bisa saja memberi hasil lebih baik dalam jangka panjang
Wawasan ekonomi perilaku seperti ini yang terakumulasi dari taruhan olahraga tampaknya bisa juga diterapkan ke pasar non-olahraga
Pada akhirnya muncul feedback loop yang membuat harga kembali ke tempatnya
Jadi kalau menemukan strategi yang benar-benar menghasilkan, lebih bijak untuk tidak merilisnya sebagai open source dan menjalankannya diam-diam
Gagasan ‘selalu bertaruh pada No’ memang menarik, tetapi seberapa menguntungkannya dalam praktik masih perlu diverifikasi
Di dunia nyata, likuiditas rendah, dan satu kerugian bisa menghapus keuntungan dari beberapa kemenangan
Pasar olahraga justru lebih dapat diprediksi karena ada waktu berakhir yang jelas dan volume perdagangan yang besar
Bukan sekadar memasang No pada semua hal, tetapi memasang No pada item terkait tepat ketika berita baru mulai muncul sepertinya bisa memberi keuntungan yang cukup stabil
Saya menganggapnya sebagai arbitrase imajinasi manusia
Orang menyukai skenario yang sensasional, tetapi kenyataannya sebagian besar hal berjalan membosankan
Saya juga pernah memanfaatkan pola ini untuk mendapat keuntungan saat krisis keuangan dan pandemi COVID
Sekarang saya khawatir tentang bubble AI, tetapi rasanya lebih mungkin mendingin perlahan daripada jatuh mendadak, jadi saya menambah porsi obligasi dan kas
Ada yang berargumen bahwa bertaruh pada ‘No’ pada dasarnya sama dengan bertaruh ‘Yes’ pada semua hasil lainnya
Ada operasi terkait dalam dokumentasi Polymarket
Strategi seperti ini mirip memungut koin di depan kereta
Keuntungan kecil dikumpulkan berulang-ulang, lalu habis semua oleh satu kejadian berekor panjang
Ada riset terkait berjudul Prediction Market Microstructure
(Diskusi sebelumnya: tautan HN)
Saya rasa price discovery di pasar ini sudah selesai
Lihat tweet terkait
Tautan referensi
Pada akhirnya, realized volatility cenderung tampil lebih rendah daripada implied volatility seiring waktu
Tentu saja, kalau sampai meledak, kerugiannya juga bisa besar
Hanya karena ‘No’ muncul 70% bukan berarti pasti menghasilkan uang
Ini contoh khas matematika yang buruk. Strategi seperti ‘memungut koin di depan steamroller’
Hanya saja pasar tidak efisien seperti ini kecil dan jarang, sehingga kemungkinan besar akhirnya ‘yang dipungut memang cuma koin’
Bahkan jika mengikuti kriteria Kelly, bertaruh secara acak pada akhirnya besar kemungkinan akan menguras modal. Diperlukan analisis mendalam (DD) untuk tiap pasar