Skip to content

bonbon0033/polymarket-bot

Repository files navigation

polymarket-bot

Polymarket (予測市場) で自動取引する AI bot。Claude が全市場をリサーチし、edge (情報優位) がある市場を見つけて自動で売買する。

スポーツやエンタメのギャンブルはしない。マクロ経済、地政学、暗号通貨など、AI の分析力で勝てる分野だけに賭ける。

何をする bot か

  1. 8時間ごとに Polymarket の全市場 (~49,000) をスキャンし、mispriced な市場を探す
  2. Claude Opus が確率を推定し、市場価格との乖離 (edge) を計算する
  3. edge がある市場に自動で注文を出す。edge がなければ何もしない
  4. 30分ごとに保有ポジションを再評価し、売るべきタイミングで自動で売る
  5. ダッシュボードで残高、ポジション、LLM コストをリアルタイムに確認できる

必要なもの

  • Windows 10/11 (Mac/Linux でも動くが、このガイドは Windows 向け)
  • Python 3.11 以上
  • MetaMask (ブラウザ拡張)
  • Polymarket アカウント (要 MetaMask 接続)
  • 以下の API キー:
キー 用途 取得場所 費用
Anthropic API Key AI リサーチ (Claude) https://console.anthropic.com ~$1/日
NewsAPI Key ニュース取得 https://newsapi.org/register 無料 (100件/日)
Polymarket 秘密鍵 注文の署名 MetaMask から取得 なし

セットアップ手順

1. リポジトリをダウンロード

コマンドプロンプト (またはターミナル) を開いて、以下を実行:

cd C:\Users\あなたのユーザー名\projects
git clone <このリポジトリのURL> polymarket-bot
cd polymarket-bot

2. Python のパッケージをインストール

uv がインストールされていない場合は先にインストール:

pip install uv

その後:

uv sync

これで必要なライブラリが全てインストールされる。

3. Anthropic API キーを取得

  1. https://console.anthropic.com にアクセスしてアカウントを作成
  2. 左のメニューから「API Keys」を開く
  3. 「Create Key」をクリックしてキーを作成
  4. 表示されたキー (sk-ant-... で始まる文字列) をコピーして安全な場所に保存

4. NewsAPI キーを取得

  1. https://newsapi.org/register にアクセスしてアカウントを作成
  2. 登録完了後、ダッシュボードに API キーが表示される
  3. キーをコピーして安全な場所に保存

5. Polymarket アカウントを作成して MetaMask を接続

  1. MetaMask ブラウザ拡張をインストール (https://metamask.io)
  2. MetaMask でウォレットを作成 (シードフレーズを安全に保管すること)
  3. https://polymarket.com にアクセス
  4. 「Connect Wallet」から MetaMask を接続
  5. USDC を入金する (次のステップで説明)

5b. USDC を用意して Polymarket に入金する

Polymarket で取引するには USDC (ステーブルコイン) が必要。以下の手順で用意する。

おすすめは Bitget (手数料が安い)。

Bitget の場合:

  1. Bitget でアカウントを作成: https://share.bitget.com/u/QE93Y8HL
  2. 日本円を入金するか、クレジットカードで USDC を購入
  3. Bitget の「出金」画面で以下を設定:
    • 通貨: USDC
    • ネットワーク: Polygon (必ず Polygon を選ぶこと。ERC-20 を選ぶと届かない)
    • 送金先アドレス: Polymarket の deposit アドレス (Polymarket のサイトで「Deposit」をクリックすると表示される)
  4. 出金を実行して、Polymarket 側で残高が反映されるのを待つ (通常 1-5 分)

MEXC の場合:

  1. MEXC でアカウントを作成: https://promote.mexc.com/r/bZqyd8Sq
  2. USDC を購入
  3. 出金画面でネットワーク Polygon を選んで、Polymarket の deposit アドレスに送金

注意:

  • ネットワークは必ず Polygon を選ぶ。Ethereum (ERC-20) を選ぶと Polymarket に届かず、資金を失う可能性がある
  • 最初は少額 ($10-$20) で試すこと
  • 出金手数料は取引所によって異なる (Bitget は比較的安い)

6. MetaMask から秘密鍵を取得

  1. MetaMask の拡張アイコンをクリック
  2. 右上の三点メニュー、「アカウントの詳細」
  3. 「秘密鍵をエクスポート」をクリック
  4. MetaMask のパスワードを入力
  5. 表示された秘密鍵 (0x で始まる長い文字列) をコピー

重要: この秘密鍵は絶対に他人に見せないこと。これがあればウォレットの全資金を操作できる。

7. Polymarket で手動取引を1回やる

bot を動かす前に、Polymarket のウェブサイトで手動で1回取引してみること。

  1. https://polymarket.com で気になる市場を開く
  2. YES または NO のボタンをクリック
  3. 金額を入力 (例: $1)
  4. 「Buy」をクリック
  5. MetaMask の確認画面が出たら「確認」を押す
  6. 取引が完了したら、「Portfolio」で保有ポジションを確認する

これで Polymarket の仕組みを理解してから bot を動かす。

8. Funder Address を確認

  1. Polymarket のウェブサイトにログイン
  2. 右上のアカウントアイコンから Settings を開く
  3. 「Proxy Wallet Address」が表示される (0x... の形式)
  4. これが POLYMARKET_FUNDER_ADDRESS になる
  5. MetaMask のウォレットアドレスとは別物なので注意

9. 設定ファイルを作成

プロジェクトフォルダ内に .env というファイルを作成する。

メモ帳を開いて、以下の内容を書く。= の右側をあなたのキーに置き換えること:

ANTHROPIC_API_KEY=sk-ant-あなたのキーをここに貼り付け
NEWSAPI_API_KEY=あなたのキーをここに貼り付け
POLYMARKET_PRIVATE_KEY=0xあなたの秘密鍵をここに貼り付け
POLYMARKET_FUNDER_ADDRESS=0xあなたのFunderAddressをここに貼り付け

「ファイル」から「名前を付けて保存」を選んで、以下の設定にする:

  • 保存場所: polymarket-bot フォルダの直下
  • ファイル名: .env (ドットから始まる。env ではなく .env)
  • ファイルの種類: 右のドロップダウンを「すべてのファイル」に変更する (テキストファイルのままだと .env.txt になって認識されない)
  • 文字コード: UTF-8

10. 動作確認

コマンドプロンプトで以下を実行して、キーが正しく読み込まれるか確認:

cd C:\Users\あなたのユーザー名\projects\polymarket-bot
.venv\Scripts\python -c "from polymarket_bot.config.settings import get_settings; s=get_settings(); print('Anthropic:', bool(s.anthropic_api_key)); print('NewsAPI:', bool(s.newsapi_api_key)); print('Private Key:', bool(s.polymarket_private_key))"

3つとも True と表示されれば OK。False があったら、.env ファイルの中身を確認する。

起動方法

Step 1: dry-run (お金は動かない)

まず dry-run で全体が動くことを確認する。リサーチパイプラインは動くが、注文は出さない:

set POLYMARKET_LIVE=1
.venv\Scripts\python -m scripts.run_autonomous --once --dry-run

2-3分で結果が表示される。「balance=」「positions=」「actionable=」などが見えれば成功。

Step 2: 実注文 (1回だけ)

dry-run で問題なければ、1回だけ実注文を出してみる:

set POLYMARKET_LIVE=1
.venv\Scripts\python -m scripts.run_autonomous --once

edge がある市場が見つかれば自動で注文が出る (金額は残高の10%以下)。見つからなければ何もしない。

Step 3: 常駐モード

24時間自動で動かす。コマンドプロンプトを閉じても動き続ける:

set POLYMARKET_LIVE=1
start /B .venv\Scripts\pythonw -m scripts.run_autonomous --loop --enable-news

ログは logs\autonomous.log に書かれる。確認するには:

type logs\autonomous.log

ダッシュボードも起動

start /B .venv\Scripts\pythonw -m streamlit run dashboard\app.py --server.headless true --server.port 8501

ブラウザで http://localhost:8501 を開く。

よく使うオプション

オプション 説明
--dry-run 注文を出さない (分析だけ) --dry-run
--enable-news NewsAPI からニュースを取得 --enable-news
--once 1回だけ実行して終了 --once
--loop ずっと動き続ける --loop
--news "テキスト" 手動でニュースを注入 --news "Fed cut rates by 50bp"
--bet-fraction 0.10 残高の何%を使うか --bet-fraction 0.20 (20%)
--edge-threshold 0.05 最低 edge % --edge-threshold 0.10 (10%)

ダッシュボードの見方

http://localhost:8501 を開くと Overview タブが表示される。

上段: Bot ステータス

表示 意味
Bot: ON / OFF bot が動いているかどうか
Wallet + Positions ウォレットの現金 + ポジション評価額の合計
LLM today / API credit 今日使った AI コスト / API クレジットの残り
Last cycle 最後にリサーチした時刻
Next: pos / research 次のポジションチェック / リサーチの予定時刻

中段: Live Positions

実際に保有しているポジションの一覧。side (YES/NO)、買値、保有時間が見える。

下段: P&L チャート

戦略別の損益推移グラフ。

緊急停止

方法 1: KILL_SWITCH ファイルを作る (推奨)

プロジェクトフォルダに KILL_SWITCH という空ファイルを作る:

cd C:\Users\あなたのユーザー名\projects\polymarket-bot
type nul > KILL_SWITCH

これだけで全ての注文が即座に停止される。ファイルが存在する限り、bot は一切注文を出さない。リサーチは動くが、発注だけがブロックされる。

再開するにはファイルを削除する:

del KILL_SWITCH

方法 2: プロセスを強制終了

bot もダッシュボードも全部止める:

taskkill /F /IM pythonw.exe

コスト目安

項目 1日あたり 月あたり
Claude API (リサーチ 3回 + ポジション管理 48回) ~$1.07 ~$32
NewsAPI $0 (無料枠) $0
Polygon ガス代 (注文ごと) ~$0.01 ~$0.30
合計 ~$1.08 ~$32

Claude API クレジットは https://console.anthropic.com/settings/billing で購入できる。

注意事項

リスクについて

  • 元本割れのリスクがある。 bot が間違った判断をすれば損失が出る
  • Polymarket は予測市場であり、規制が変わる可能性がある。 自国の法律を確認すること
  • bot は「edge がなければ賭けない」設計だが、edge の判断自体が間違う可能性がある
  • 小さい金額 ($10-$50) から始めて、bot の判断を数日間観察してから増額すること
  • 1回の注文は残高の10%以下に制限されている (設定で変更可能)

秘密鍵の管理

  • .env ファイルには秘密鍵が含まれる。絶対に git にコミットしないこと
  • .gitignore.env が含まれていることを確認する
  • .env ファイルのバックアップは暗号化して保存する
  • 他人のPCでは .env を作成しない。自分のPCだけで使う

トラブルシューティング

症状 原因 対処
POLYMARKET_LIVE is not set 環境変数が未設定 set POLYMARKET_LIVE=1 を毎回実行する
not enough balance ウォレットの USDC が不足 Polymarket に USDC を入金する
429 Too Many Requests NewsAPI の1日100件の上限に到達 翌日のリセットを待つ、または --enable-news を外して動かす
KILL_SWITCH file exists 緊急停止ファイルがある del KILL_SWITCH で解除する
ダッシュボードが開けない Streamlit が起動していない ダッシュボード起動コマンドを再実行する
bot が動いていない pythonw がクラッシュした 常駐モードのコマンドを再実行する
invalid amounts 注文金額が小さすぎる 残高を $10 以上に増やす

ライセンス

個人利用のみ。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages