1 ポイント 投稿者 GN⁺ 15 일 전 | 1件のコメント | WhatsAppで共有
  • Polymarketの非スポーツ型のYes/No市場で自動的に**「No」ポジションのみを購入**する非同期Pythonボットで、エンターテインメント目的で提供される
  • ペーパートレードと実取引モードを区別しており、実取引時には複数の環境変数と秘密鍵設定が必須
  • ダッシュボードインターフェースを通じて状態を監視し、注文送信が有効な場合はリアルタイムの復旧状態を保存する
  • Herokuデプロイスクリプトを含み、アプリ状態確認、ログ参照、実取引への切り替え、プロセス終了などを自動化する
  • テストとデータ管理ツールが含まれており、ローカル環境とクラウド環境の両方で安全に実行・検証できる

概要

  • Nothing Ever Happensは、Polymarketプラットフォームの非スポーツ型Yes/No市場で常に**「No」ポジションを購入**する非同期Pythonベースのボット
  • エンターテインメント目的で提供され、保証や責任なしに、利用者自身のリスクで実行される
  • リポジトリはbot/scripts/tests/ディレクトリで構成され、それぞれ取引ロジック、運用スクリプト、テストコードを含む

ランタイム構成

  • ランタイムは独立した市場をスキャンし、設定された価格上限以下の**「No」項目を探索**してポジションを追跡する
  • ダッシュボードを通じて状態を表示し、注文送信が有効な場合はリアルタイムの復旧状態を保存する
  • 実行モジュールはnothing_happensで、非アクティブモードではPaperExchangeClientを使用する

安全モデル

  • 実際に注文を送信するには、次の3つの環境変数をすべて設定する必要がある
    • BOT_MODE=live
    • LIVE_TRADING_ENABLED=true
    • DRY_RUN=false
  • 上記条件のいずれか1つでも欠けると、ペーパートレードモードに切り替わる
  • 実取引モードでは、追加で次の環境変数が必要
    • PRIVATE_KEY
    • FUNDER_ADDRESS(署名タイプ1、2用)
    • DATABASE_URL
    • POLYGON_RPC_URL(プロキシウォレットの承認および償還用)

セットアップと構成

  • インストールはpip install -r requirements.txtの後、サンプル設定ファイルをコピーしてローカル設定として使用する
  • config.json秘密ではないランタイム設定.env秘密鍵と実行フラグを含む
  • ランタイム設定はstrategies.nothing_happens配下にあり、CONFIG_PATH環境変数で別の設定ファイルを指定できる

ローカル実行

  • ローカルではpython -m bot.mainコマンドで実行可能
  • ダッシュボードは$PORTまたはDASHBOARD_PORT環境変数にバインドされる

Herokuデプロイワークフロー

  • Heroku環境ではHEROKU_APP_NAMEを使用するか、明示的なアプリ名引数を渡す
  • 提供されるスクリプト:
    • alive.sh: アプリ状態確認
    • logs.sh: ログ参照
    • live_enabled.sh / live_disabled.sh: 実取引モード切り替え
    • kill.sh: プロセス終了
  • 一般的なデプロイ手順は次のとおり
    • 環境変数を設定(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
  • workerプロセスは意図せず実行された場合にすぐ失敗するよう設計されている

テスト

  • テストはpytestを使用して単体および回帰検証を行う
  • コマンド: python -m pytest -q

含まれるスクリプト

  • scripts/db_stats.py

    • リアルタイムのデータベーステーブル数と最近のアクティビティを点検する
  • scripts/export_db.py

    • DATABASE_URLまたはHerokuアプリからテーブルをエクスポートする
  • scripts/wallet_history.py

    • 設定されたウォレットのポジション、取引、残高を照会する
  • scripts/parse_logs.py

    • HerokuのJSONログをターミナルまたはHTML形式に変換する

リポジトリ管理

  • ローカル設定、台帳、エクスポート済みデータ、レポート、デプロイ成果物などはデフォルトでgitから除外される
  • リポジトリは運用環境とローカル環境を明確に分離するよう構成されている

1件のコメント

 
GN⁺ 15 일 전
Hacker Newsの意見
  • このツイートを見ると、収益や払い戻しを約束しないと明記されている
    単なるミームベースのコードとして、面白半分で作られたプロジェクトのようだ。詐欺というより、笑える実験という感じだ

    • その通り。ボットにはリスク管理がまったくなく、GitHubにも明確にミームだと書かれている
      Polymarketの約73%が実際に「No」で終わるという統計がある
      データ分析に興味があるなら、Hugging Faceデータセットを参考にするとよさそうだ
    • それなら、実際に使えるトレーディング戦略ではないという意味だ
      人間の楽観バイアスのせいで「Yes」側が過大評価されることはあるかもしれないが、Polymarketはすでにトレーダーたちに監視されていて、価格は現実的に形成されている
      もし下落するコインに賭けられるなら面白そうだが、そうした市場も結局は効率的に価格調整されるだろう
    • 人は本当に儲かる戦略を見つけても、そう簡単には共有しない
    • 「ミームベースのコード」という表現が面白すぎる。こういうオタクっぽい悪ふざけが議論を爆発させたのだと思う
    • 複数の市場がつながっているのだから、「No」が多くなるのは当然だ。たとえば候補者が10人いれば、9人は「No」で終わる
  • このプロジェクトが非スポーツ市場向けだという点が興味深い
    スポーツベッティングでも、たいていは「No」側のほうがリターンが高いと知られている。「Yes」のほうが面白く、人が集まりやすいからだ
    結局、こうした「退屈な賭け」のほうが長期的にはより高い収益を生む可能性がある
    スポーツベッティングで蓄積されたこうした行動経済学的な知見は、非スポーツ市場にも適用できるかもしれない

    • Polymarketのバックエンド構造上、スポーツベッティングも実質的にはYes/No形式なので、区別は曖昧だ
    • こうした戦略は初期には正の期待値(EV)を持つかもしれないが、人々が気づけば市場は効率的に再調整される
      結局、価格が本来の位置に戻る
      フィードバックループ
      が生まれる
      だから本当に儲かる戦略を見つけたなら、絶対にオープンソースで公開せず、黙って回すのが賢明だ
  • 「常にNoに賭けろ」というアイデアは面白いが、実際にどれだけ収益が出るのかは検証が必要だ

    • 私もバックテストしてみたが、100% APRのように見えても、結果時点を事前に知っている形でチートしている部分があった
      現実には流動性が低く、一度の損失で何度分もの利益が吹き飛ぶことがある
      スポーツ市場のほうが、むしろ明確な終了時点と大規模な取引量のおかげで予測しやすい
    • 私も予測市場が好きでいろいろな戦略を試してきたが、タイミングが重要だ
      単にすべての項目でNoに張るのではなく、ニュースが出始めた時点で関連項目にNoを張るようにすれば、かなり安定した収益が得られるかもしれない
  • 人間の想像力アービトラージだと思う
    人は刺激的なシナリオを好むが、現実はたいてい退屈だ

    • 人はブラックスワン事象を過小評価し、いざ起きると過剰反応する
      私も金融危機やコロナのとき、このパターンを利用して利益を得た
      今はAIバブルが気がかりだが、急落というより徐々にしぼむ形になりそうなので、債券と現金の比率を増やしている
    • だが、こうしたボットが軍事や政治的事件に適用されるなら、誰かが実際に「Yes」を現実化しようとするインセンティブが生まれるかもしれない
    • だから市場は一様には価格付けされないのだ
    • 問題は、この論理が実際の戦略としてはうまく機能しないことだ
  • 「No」に賭けるのは、実質的に他のすべての結果に「Yes」を賭けるのと同じだと主張している
    Polymarketドキュメントに関連する計算がある

    • だが、それは誤解だ。たとえば「Joe Dartが大統領に当選する Y/N」と「Cory Wongが大統領に当選する Y/N」は互いに独立している
    • そう。各結果は互いに関連していない
  • こうした戦略は、まるで列車の前で硬貨を拾うようなものだ
    小さな利益を積み重ねても、一度のロングテール事象ですべて失う可能性がある

    • 投稿者もこれを真面目な戦略として提示したわけではなく、ミーム系プロジェクトとして作ったようだ
    • ひとつのイベントに全額を賭けない限り、損失は賭け金に限定される
  • 関連研究として Prediction Market Microstructure がある
    (以前の議論: HNリンク

  • 市場にはすでに価格織り込みが済んでいると見る

    • 投稿者も「長期的には0.73未満で買うべきだ」と述べている
      関連ツイートを参照
    • だが、市場が存在するという事実そのものが利用可能性ヒューリスティックを刺激し、人々に確率を過大評価させる可能性がある
      参考リンク
    • 「何も起こらない」はまさに言い得て妙だ
    • Benjaminとは、興味深い言及だ
  • 結局、実現ボラティリティは時間がたつとインプライド・ボラティリティより低くなる傾向がある

    • 人はスキュー保護に過大なコストを支払い、それを売れば継続的に利益を得られる
      もちろん、一度吹き飛べば大きく損をすることもある
  • 単に「No」が70%出るからといって儲かるわけではない
    これは典型的な悪い数学だ。いわば「蒸気ローラーの前で硬貨を拾う」ような戦略だ

    • だまされる人はいないだろう。投稿者も単なる冗談として作ったようだ
    • レバレッジを使わないなら、この種の戦略のリスクは限定的だ
      ただし、こうした非効率な市場は規模が小さく希少で、結局「硬貨は拾えても硬貨止まり」になりがちだ
    • 収益になるかどうかは、エントリー価格、期待値、残存期間などの変数次第だ
      Kelly基準に従っていても、無作為に賭ければ結局は資本を使い果たす可能性が高い。各市場ごとの**綿密な分析(DD)**が必要だ