1 poin oleh GN⁺ 8 hari lalu | 1 komentar | Bagikan ke WhatsApp
  • 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

 
GN⁺ 8 hari lalu
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

    • Benar. Bot ini sama sekali tidak punya manajemen risiko, dan di GitHub juga tertulis jelas bahwa ini adalah meme
      Ada statistik bahwa sekitar 73% pasar di Polymarket memang berakhir dengan ‘No’
      Jika tertarik pada analisis data, dataset Hugging Face layak dilihat
    • Kalau begitu, artinya ini memang bukan strategi trading yang benar-benar layak dipakai
      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
    • Jika orang menemukan strategi yang benar-benar menguntungkan, mereka biasanya tidak akan membagikannya
    • Ungkapan “kode berbasis meme” itu lucu sekali. Rasanya keisengan nerd seperti inilah yang membuat diskusinya meledak
    • Karena banyak pasar saling terhubung, wajar jika ‘No’ lebih sering muncul. Misalnya kalau ada 10 kandidat, 9 di antaranya akan berakhir sebagai ‘No’
  • 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

    • Karena struktur backend Polymarket, taruhan olahraga pun pada dasarnya berbentuk Yes/No, jadi batas pemisahannya agak samar
    • Strategi seperti ini mungkin punya expected value (EV) positif pada awalnya, tetapi begitu orang sadar, pasar akan menyesuaikan diri secara efisien
      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

    • Saya juga pernah melakukan backtest, dan meskipun terlihat seperti 100% APR, ada bagian yang seperti curang karena secara implisit sudah tahu waktu hasil akhirnya
      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
    • Saya juga suka pasar prediksi dan sudah mencoba berbagai strategi, dan timing adalah kuncinya
      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

    • Orang sering meremehkan peristiwa black swan, lalu bereaksi berlebihan saat itu benar-benar terjadi
      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
    • Tetapi jika bot seperti ini diterapkan pada peristiwa militer atau politik, bisa muncul insentif bagi seseorang untuk benar-benar mewujudkan ‘Yes’
    • Itulah sebabnya harga pasar tidak seragam secara merata
    • Masalahnya, logika ini dalam praktiknya tidak terlalu berhasil bekerja sebagai strategi nyata
  • Ada yang berargumen bahwa bertaruh pada ‘No’ pada dasarnya sama dengan bertaruh ‘Yes’ pada semua hasil lainnya
    Ada operasi terkait dalam dokumentasi Polymarket

    • Tetapi itu salah paham. Misalnya “Joe Dart menang pemilu presiden Y/N” dan “Cory Wong menang pemilu presiden Y/N” saling independen
    • Betul. Tiap hasil tidak saling berkaitan
  • Strategi seperti ini mirip memungut koin di depan kereta
    Keuntungan kecil dikumpulkan berulang-ulang, lalu habis semua oleh satu kejadian berekor panjang

    • Penulis tampaknya juga tidak mengajukannya sebagai strategi serius, melainkan sebagai proyek meme
    • Selama tidak bertaruh all-in pada satu peristiwa, kerugiannya terbatas pada jumlah taruhan
  • Ada riset terkait berjudul Prediction Market Microstructure
    (Diskusi sebelumnya: tautan HN)

  • Saya rasa price discovery di pasar ini sudah selesai

    • Penulis juga menyebut bahwa “dalam jangka panjang, harus membeli di bawah 0.73”
      Lihat tweet terkait
    • Tetapi fakta bahwa pasar itu ada sendiri bisa memicu availability heuristic, sehingga orang melebih-lebihkan probabilitasnya
      Tautan referensi
    • Ungkapan “tidak terjadi apa-apa” memang terasa sangat pas
    • Benjamin, penyebutan yang menarik
  • Pada akhirnya, realized volatility cenderung tampil lebih rendah daripada implied volatility seiring waktu

    • Orang membayar terlalu mahal untuk perlindungan skew, dan menjualnya bisa menghasilkan keuntungan secara konsisten
      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’

    • Rasanya tidak ada yang benar-benar tertipu. Penulis tampaknya memang membuatnya sebagai lelucon
    • Jika tidak memakai leverage, risiko strategi seperti ini tetap terbatas
      Hanya saja pasar tidak efisien seperti ini kecil dan jarang, sehingga kemungkinan besar akhirnya ‘yang dipungut memang cuma koin’
    • Untung atau tidak bergantung pada variabel seperti harga masuk, expected value, sisa waktu, dan lain-lain
      Bahkan jika mengikuti kriteria Kelly, bertaruh secara acak pada akhirnya besar kemungkinan akan menguras modal. Diperlukan analisis mendalam (DD) untuk tiap pasar