Polymarket (予測市場) で自動取引する AI bot。Claude が全市場をリサーチし、edge (情報優位) がある市場を見つけて自動で売買する。
スポーツやエンタメのギャンブルはしない。マクロ経済、地政学、暗号通貨など、AI の分析力で勝てる分野だけに賭ける。
- 8時間ごとに Polymarket の全市場 (~49,000) をスキャンし、mispriced な市場を探す
- Claude Opus が確率を推定し、市場価格との乖離 (edge) を計算する
- edge がある市場に自動で注文を出す。edge がなければ何もしない
- 30分ごとに保有ポジションを再評価し、売るべきタイミングで自動で売る
- ダッシュボードで残高、ポジション、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 から取得 | なし |
コマンドプロンプト (またはターミナル) を開いて、以下を実行:
cd C:\Users\あなたのユーザー名\projects
git clone <このリポジトリのURL> polymarket-bot
cd polymarket-bot
uv がインストールされていない場合は先にインストール:
pip install uv
その後:
uv sync
これで必要なライブラリが全てインストールされる。
- https://console.anthropic.com にアクセスしてアカウントを作成
- 左のメニューから「API Keys」を開く
- 「Create Key」をクリックしてキーを作成
- 表示されたキー (
sk-ant-...で始まる文字列) をコピーして安全な場所に保存
- https://newsapi.org/register にアクセスしてアカウントを作成
- 登録完了後、ダッシュボードに API キーが表示される
- キーをコピーして安全な場所に保存
- MetaMask ブラウザ拡張をインストール (https://metamask.io)
- MetaMask でウォレットを作成 (シードフレーズを安全に保管すること)
- https://polymarket.com にアクセス
- 「Connect Wallet」から MetaMask を接続
- USDC を入金する (次のステップで説明)
Polymarket で取引するには USDC (ステーブルコイン) が必要。以下の手順で用意する。
おすすめは Bitget (手数料が安い)。
Bitget の場合:
- Bitget でアカウントを作成: https://share.bitget.com/u/QE93Y8HL
- 日本円を入金するか、クレジットカードで USDC を購入
- Bitget の「出金」画面で以下を設定:
- 通貨: USDC
- ネットワーク: Polygon (必ず Polygon を選ぶこと。ERC-20 を選ぶと届かない)
- 送金先アドレス: Polymarket の deposit アドレス (Polymarket のサイトで「Deposit」をクリックすると表示される)
- 出金を実行して、Polymarket 側で残高が反映されるのを待つ (通常 1-5 分)
MEXC の場合:
- MEXC でアカウントを作成: https://promote.mexc.com/r/bZqyd8Sq
- USDC を購入
- 出金画面でネットワーク Polygon を選んで、Polymarket の deposit アドレスに送金
注意:
- ネットワークは必ず Polygon を選ぶ。Ethereum (ERC-20) を選ぶと Polymarket に届かず、資金を失う可能性がある
- 最初は少額 ($10-$20) で試すこと
- 出金手数料は取引所によって異なる (Bitget は比較的安い)
- MetaMask の拡張アイコンをクリック
- 右上の三点メニュー、「アカウントの詳細」
- 「秘密鍵をエクスポート」をクリック
- MetaMask のパスワードを入力
- 表示された秘密鍵 (
0xで始まる長い文字列) をコピー
重要: この秘密鍵は絶対に他人に見せないこと。これがあればウォレットの全資金を操作できる。
bot を動かす前に、Polymarket のウェブサイトで手動で1回取引してみること。
- https://polymarket.com で気になる市場を開く
- YES または NO のボタンをクリック
- 金額を入力 (例: $1)
- 「Buy」をクリック
- MetaMask の確認画面が出たら「確認」を押す
- 取引が完了したら、「Portfolio」で保有ポジションを確認する
これで Polymarket の仕組みを理解してから bot を動かす。
- Polymarket のウェブサイトにログイン
- 右上のアカウントアイコンから Settings を開く
- 「Proxy Wallet Address」が表示される (0x... の形式)
- これが
POLYMARKET_FUNDER_ADDRESSになる - MetaMask のウォレットアドレスとは別物なので注意
プロジェクトフォルダ内に .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
コマンドプロンプトで以下を実行して、キーが正しく読み込まれるか確認:
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 ファイルの中身を確認する。
まず dry-run で全体が動くことを確認する。リサーチパイプラインは動くが、注文は出さない:
set POLYMARKET_LIVE=1
.venv\Scripts\python -m scripts.run_autonomous --once --dry-run
2-3分で結果が表示される。「balance=」「positions=」「actionable=」などが見えれば成功。
dry-run で問題なければ、1回だけ実注文を出してみる:
set POLYMARKET_LIVE=1
.venv\Scripts\python -m scripts.run_autonomous --once
edge がある市場が見つかれば自動で注文が出る (金額は残高の10%以下)。見つからなければ何もしない。
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: ON / OFF | bot が動いているかどうか |
| Wallet + Positions | ウォレットの現金 + ポジション評価額の合計 |
| LLM today / API credit | 今日使った AI コスト / API クレジットの残り |
| Last cycle | 最後にリサーチした時刻 |
| Next: pos / research | 次のポジションチェック / リサーチの予定時刻 |
実際に保有しているポジションの一覧。side (YES/NO)、買値、保有時間が見える。
戦略別の損益推移グラフ。
プロジェクトフォルダに KILL_SWITCH という空ファイルを作る:
cd C:\Users\あなたのユーザー名\projects\polymarket-bot
type nul > KILL_SWITCH
これだけで全ての注文が即座に停止される。ファイルが存在する限り、bot は一切注文を出さない。リサーチは動くが、発注だけがブロックされる。
再開するにはファイルを削除する:
del KILL_SWITCH
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 以上に増やす |
個人利用のみ。