ライブダッシュボード
StormBot 統計
次を通じて公開されるリアルタイムのテレメトリ /api/state。すべての内部サーフェス — 発見された市場、モデル予報、シグナル、Claude分析、ソケットの健全性、オープンポジションと約定履歴 — は、ダッシュボードが読み取るのと同じExpress APIを通じて利用できます。
API エンドポイント RESTルート: /api/state、/api/scan、/api/trade、/api/bot/start、/api/bot/stop、/api/wallet/connect、/api/ai/analyze など
気象モデル GFS(NOAA)、ECMWF(欧州)、UKMO(英国気象局)、NWS(米国)、HKO(香港天文台、香港の確定ソース) — Promise.all() を介して並列に取得
対応都市 NYC、ロンドン、東京、パリ、ベルリン、ソウル、ドバイ、シドニー、ムンバイ、イスタンブール、サンパウロ、ほか56都市
追跡対象のトップトレーダー data-api.polymarket.com から取得したリーダーボードのウォレット — 損益、勝率、ポジション、活動
edge のしきい値 Dynamic: max(0.03, min(0.08, σ × 0.02)) — tighter when forecast is confident
予報の更新 バックグラウンドインターバルですべての天気 API を再取得し、新しいデータで StreamEngine を再読み込みします
AI 分析サイクル Claude Sonnetが、完全な予報+トレード履歴のコンテキストとともに上位15市場を再分析
過去データの参照 同一暦日のNOAA NCEI GHCND観測所データ — ベイズ事前分布を提供します
エンジンモジュール
StormBot エンジン
プラットフォームは6つの小さなエンジンファイルで構成され、それぞれがパイプラインの1つのステージを担っています。Node.js 上の純粋な ES モジュールで、ビルドステップも UI フレームワーク依存もありません。
StreamEngine stream.js
次へのリアルタイム WebSocket 接続: wss://ws-subscriptions-clob.polymarket.com。すべての天気トークンIDを購読し、price_change/last_trade_price/bookイベントを処理します。すべてのティックで:インラインの正規CDFを介してエッジを再計算し、オープンポジションの5つの出口条件をチェックし、取引シグナルを発火します。
コア WebSocket
AIAnalyzer ai.js
各マーケットを完全なコンテキストとともにClaude Sonnetへ送信します: 設問、YES/NO価格、4つすべての予報、コンセンサス気温、モデルの一致度、解決までの時間、過去データ、エッジ分析、直近の取引履歴。構造化されたJSONを返します: decision、outcome label、confidence、reasoning、edge_pct、suggested_size_pct。
コア Claude API
EdgeCalculator edge.js
本番用の確率エンジン。calculateSigma()は予報ホライズンを不確実性(0.8°〜5.5°)にマッピングします。calculateConsensus()は外れ値検出を伴う加重ブレンドを行います。calculate()は各結果タイプについて正規分布のCDFを実行し、ベイズ的な過去データのブレンドを適用し、エッジ、シグナル、確信度、ケリー割合、EVを出力します。
コア 数学
ForecastEngine forecast.js
最大6つの実ソースから取得します: Open-Meteo経由のGFS(16日間1時間ごと)、Open-Meteo経由のECMWF(10日間)、Open-Meteo経由のUKMO(7日間)、api.weather.gov経由のNWS(米国のみ1時間ごと+警報)、Hong Kong Observatory Open Data API経由のHKO(香港のみ — 公式の解決ゲージ、9日間予報+ライブの実行最大値)、そしてNOAA NCEI CDO(10年分の過去TMAX)。すべて並列で取得します。
コア 気象 API
トレーダー trader.js
ethers.jsウォレットを用いて@polymarket/clob-client経由でPolymarket CLOBに接続します。APIキーを導出し、Exchange、NegRiskExchange、NegRiskAdapterの各コントラクト上でpUSDおよびCTFトークンを自動承認します。まずFOK成行注文を実行し、署名エラー時には2%のスリッページでGTC指値にフォールバックします。
コア Polygon
MarketDiscovery markets.js
気象タグ付きイベント(ページネーション経由で最大400件)についてPolymarket Gamma APIに照会します。キーワード検索にフォールバックします。マーケットのタイトルを解析して都市(67都市マップ)、日付(4つの正規表現パターン)、気温単位、マーケットタイプを抽出します。結果を範囲、閾値、正確な値に解析します。
コア Gamma API
ドキュメント
StormBot ドキュメント
完全なオペレーターマニュアル:セットアップ、環境、すべての API ルート、すべての設定スイッチ、そして市場ディスカバリーからオンチェーン決済までのエンドツーエンドの実行経路。
クイックスタート
git clone <repo>
cd stormbot
npm install # express, ethers, @polymarket/clob-client, viem, ws, @anthropic-ai/sdk
npm start # starts Express server on port 3778
# Open http://localhost:3778 in your browser
環境変数
ANTHROPIC_API_KEY=sk-ant-... # Claude API key for AI analysis
NOAA_CDO_TOKEN=XRHLdkB... # NOAA CDO token for historical data
PORT=3778 # Server port (default 3778)
API エンドポイント
メソッド ルート 説明
GET /api/state ボットの全状態:マーケット、シグナル、ログ、ストリーミング統計、AI分析、ポジション
POST /api/scan マーケット発見 + 予報取得 + edge 計算をトリガーします
POST /api/wallet/connect Polygonウォレットを接続すると、pUSD + CTFトークンを自動承認します
POST /api/wallet/disconnect ウォレットを切断し、Store から認証情報を消去
POST /api/trade トレードを実行: tokenId、side、amount、negRisk、tickSize、kellyFraction
POST /api/bot/start フルパイプラインを開始: スキャン → ストリーム → AI サイクル → 自動取引
POST /api/bot/stop ストリーミングを停止、タイマーをクリア、WebSocket を切断
POST /api/config bankroll、maxPerTrade、minEdge、autoExecute、anthropicApiKey を更新
POST /api/ai/analyze Claude で単一のマーケットを分析(marketId を渡す)
POST /api/ai/analyze-top 上位 N マーケットを一括分析(デフォルト 15)
GET /api/traders PnL、ポジション、アクティビティを含む天気トレーダートップ10リーダーボード
設定オプション
設定 デフォルト 説明
バンクロール $500 取引に利用可能な総資本
maxPerTrade $50 単一取引の最大サイズ。bankroll でキャップされる
minEdge 5% シグナル発火に必要な最小の絶対 edge
autoExecute true エッジを検出するか、AI が推奨した時に取引を自動執行します
aggressiveMode false 閾値を引き下げ:最小エッジ3%、11¢超でBUY_NO、MEDIUM許容
scanIntervalSec 300 バックグラウンドでのマーケット再スキャン間隔(秒)
マルチユーザーアーキテクチャ
Store モジュール(store.js)は、ユーザーごとの状態を以下の単一のJSONファイルに保持します: /data/users.json。各レコードは以下を保持します:ハッシュ化された認証情報と認証トークン、ウォレットブロック(暗号化されたPKとプロキシアドレス)、ユーザーのリスク設定、カウンター、AI分析、約定履歴とログ。BotManagerは、基盤となる市場データレイヤーを共有しながら、ユーザーごとに専用のStreamEngine、Trader、AIサイクルを立ち上げます。
トップトレーダー
トレーダー リーダーボード
エンジンは、Polymarket 上で最も収益を上げている10の天気ウォレットを次の方法で常時監視しています: /api/traders。データはdata-apiリーダーボード、Gammaプロフィールエンドポイント、そしてポジション/アクティビティフィードからライブでハイドレートされます。
追跡の仕組み
各ウォレットについて、 /api/traders endpoint hits four upstream data sources in parallel: Polymarket's leaderboard API (the authoritative source for PnL and volume), the Gamma profile endpoint (username and avatar), the positions API (all resolved and active positions with cashPnL), and the activity API (the trailing 30 trades). The merged result is sorted by total PnL, descending.
ウォッチリスト上のウォレット
エンジンは、Polymarket 上で最も収益を上げている10の天気ウォレットを追跡しており、これは次の場所にハードコードされています: cities.js。リストは累積PnLと天気市場の勝率によってキュレーションされています — 単なる生のボリュームではありません。
トレーダーごとのデータポイント
プロフィール — ユーザー名、プロフィール画像(リーダーボードまたは Gamma から)
損益 — total profit/loss from leaderboard API
出来高 — USD建ての合計取引出来高
勝率 — calculated from positions: (winning / total) × 100
アクティブなポジション — size > 0 の現在のオープンポジション
PnL 履歴 — cumulative chart from sorted resolved positions
最近の取引 — last 5 trades with market title, side, size, price
AI強化コピーシグナル
自動実行モードでは、Claudeはこれらのトップウォレットが活動しているまさにそのオーダーブックを評価します。モデルは完全な予報ブリーフィング、当社のエッジ計算、そして直近の約定履歴を受け取ります — エンジンがすでにそのポジションを保有しているかどうかのフラグも含まれ、二重エントリーを防ぎます。その結果として、最良のトレーダーたちの活動とClaudeの独立した気象学的推論の両方に基づいたコピーシグナルのレイヤーが得られます。
回転売買防止ガードレール
Claudeのプロンプトには、レビュー対象の市場の直近の約定履歴が常に含まれます。モデルには、エンジンがちょうど同じアウトカムを利益で手仕舞いし価格が動いていない場合はSKIPすること、損失後はインプットが意味のある形で変化しない限り再エントリーには慎重になること、そして同じアウトカムへの出入りを繰り返さないことが明示的に指示されています。
技術的ディープダイブ
StormBot ホワイトペーパー
完全な数学的仕様:確率コア、アンサンブル加重、シグマのダイナミクス、ベイズ的取り込み、四半ケリーサイジング — すべてのステップを検証したいトレーダー向けに記述されています。
1. コンセンサス気温アルゴリズム この EdgeCalculator.calculateConsensus() function computes a quality-weighted forecast temperature from up to 5 models. Base weights: ECMWF 0.35 (best global model), GFS 0.25, UKMO 0.20, NWS 0.20 — and for Hong Kong, HKO 0.50 (the resolution gauge), tapered by lead time. Outlier penalization: if a model's forecast deviates more than 1.5× the standard deviation from the raw mean, its weight is halved.
Model agreement is scored in 5 tiers based on inter-model standard deviation: VERY_HIGH (<0.5°), HIGH (<1.0°), MODERATE (<2.0°), LOW (<3.5°), VERY_LOW (≥3.5°).
2. 動的シグマ(σ)の計算 予報の不確実性σは最も重要なパラメータです。予報リードタイムに基づく基準σ:0.8°(≤6h)、1.0°(≤12h)、1.3°(≤24h)、1.8°(≤48h)、2.2°(≤72h)、3.0°(≤120h)、3.8°(≤168h)、4.5°(≤240h)、5.5°(それ以降)。モデル数によるペナルティ:1.0×(≥4)、1.1×(3)、1.25×(2)、1.5×(1)。ばらつきによるペナルティ:1.0 + (stdDev / 5.0)。最終的なσは [0.5, 8.0] にクランプされます。
3. ベイズによる過去ブレンド NOAA NCEIの過去データが利用可能な場合、予報は同じ暦日の10年間の過去分布とベイズ的に結合されます。結合精度 = forecast_precision + historical_precision、ここで precision = 1/σ² です。予報と過去データが historical_σ の1.5倍を超えて食い違う場合、異常な条件を考慮して結合σは30%拡大されます。
4. 確率の計算 各マーケットの結果に対し、正規 CDF(Abramowitz-Stegun 近似)が実際の気温が結果のレンジに収まる確率を計算します:
正確な値 :±0.5°のビンを使用して P = CDF(52.5) − CDF(51.5)範囲 :P = CDF(53.5) − CDF(51.5)"or higher" :P = 1 − CDF(54)"or lower" :P = CDF(50)エッジ = forecastProb − marketPrice。|edge|が次を超えたときにトレードがシグナルされます: max(0.03, min(0.08, σ × 0.02)).
5. ケリー基準でのサイジング BUY_YES の場合: kellyFraction = edge / ((1/marketPrice) − 1)。BUY_NOの場合: |edge| / ((1/noPrice) − 1)。クォーターKellyを適用(×0.25)し、[0, 0.15]にクランプします。ボットは単一の取引で資金の15%を超えるリスクを取ることは決してありません。典型的なポジションは1〜5%です。
6. 取引の執行 Trader クラスは、署名タイプ2(POLY_GNOSIS_SAFE)で @polymarket/clob-client 経由で接続します。主:即時約定のための FOK(Fill-Or-Kill)成行注文。フォールバック:最良アスク/ビッド+2%のスリッページでの GTC 指値、ティックサイズに丸め。死んだ板(404)はキャッシュされてスキップされます。同一 tokenId での同時実行は Set ロックによって防止されます。
7. Claude AI のプロンプトエンジニアリング 各市場は、構造化されたプロンプトでClaude Sonnetによって分析されます。市場の質問、YES/NO価格、すべてのモデル予報(香港は5つで、HKOが解決ソースとして明示されています)、コンセンサス気温、モデルの一致度、解決までの時間、過去平均、アウトカムごとのエッジ分析、そして直近のボットのトレード履歴です。2つのルールセット: BALANCED(最小エッジ5%、5〜40¢でBUY_YESを優先)とAGGRESSIVE(最小エッジ3%、11¢超でBUY_NO)。出力は厳密なアウトカムラベル付きのJSONとして強制されます。
セキュリティ & アーキテクチャ
StormBot セキュリティ
エンジンがあなたのキーをどう扱い、どのコントラクトに触れ、ルーティングするすべての注文を統制する多層的なリスク管理がどうなっているか。
ウォレットと秘密鍵の取り扱い ウォレットの取り扱いはすべてクライアント側で完結します。あなたの秘密鍵はローカルでアドレスを導出し、ClobClientを通じてPolymarket APIの認証情報3点(キー、シークレット、パスフレーズ)に署名するために使用されます。署名タイプ2(POLY_GNOSIS_SAFE)が、プロキシアドレスをファンダーとして使用されます。秘密鍵がネットワークを越えることは決してなく、当社が運用するいかなるサーバーにも保存されることはありません。
自動承認されるコントラクト
コントラクト アドレス 承認
pUSD 0xC011a7E12a19f7B1f670d46F03B03f3342E82DFB ERC20 approve(MAX) — V2担保
CTF 0x4D97DCd97eC945f40cF65F87097ACe5EA0476045 ERC1155 setApprovalForAll
Exchange 0x4bFb41d5B3570DeFd03C39a9A4D8dE6Bd8B8982E pUSD + CTF
NegRiskExchange 0xC5d563A36AE78145C45a50134d48A1215220f80a pUSD + CTF
NegRiskAdapter 0xd91E80cF2E7be2e162c6513ceD06f1dD0dA35296 CTFのみ
残高モニタリング ウォレット接続時、ボットはPolygon RPC経由でPOL残高(ガス代用)とpUSD残高(プロキシアドレス上)を確認します。POLが0.01未満、またはpUSDが$1未満の場合は警告します。各取引の前に、ボットは取引額が利用可能なpUSDを超えないことを検証し、各約定後にローカルで残高を追跡します。
リスク管理スタック クォーターケリーのサイジング — never risks more than 25% of the optimal bet size最大割合 15% — bankroll に対する単一ポジションのハードキャップmaxPerTrade のキャップ — 取引ごとの設定可能なドル上限(デフォルト$50)消滅したオーダーブックの検出 — skips tokens that return 404同時実行ロック — prevents double-ordering on same tokenId価格レンジフィルター — skips markets where YES is below 2¢ or above 98¢時間フィルター — skips markets resolving within 2 hoursAI アンチチャーン — Claude receives recent trade history5 階層のエグジットシステム — profit, convergence, trailing, drawdown, time
免責事項 StormBotは実験的なソフトウェアです。Polymarketでの取引には現実の金融リスクが伴います — 賭けた金額の一部または全部を失う可能性があります。予報は確率的なものであり、約束ではありません。AIの分析は出力であって、アドバイスではありません。ウォレット操作はクライアント上で実行されるため、鍵がサーバーに届くことはありません。お住まいの地域に適用される規制の遵守はあなた自身の責任であり、過去の結果が将来の結果を保証することは決してありません。
法的情報
プライバシー ポリシー
StormBotがあなたのウォレットデータ、取引活動、そしてプラットフォームに触れるあらゆる情報をどう扱うか。
1. プラットフォームが扱うデータ StormBotはクライアントサイドで動作します。私たちは秘密鍵、ウォレットの認証情報、個人データをいかなるサーバーにも保存しません。以下のデータはあなたのブラウザ内、またはあなたが管理するインフラ上にローカルで保持されます:
ウォレットデータ — Polygon wallet address and proxy address used to sign and route on-chain orders. Private keys never leave the device.取引データ — fill history, AI analyses, open positions, edge detections and risk config live locally.テレメトリ — scan/trade/tick/edge counts kept locally for the session.
2. そのデータの利用方法 ウォレットの認証情報がPolygon上でPolymarketの注文に署名し、ルーティングします。 リスク設定がポジションサイズ、エッジのしきい値、自動化の範囲を左右します。 直近の約定履歴はコンテキストとしてClaudeに渡され、過剰取引を防ぎます。 ログとカウンターはライブ監視のためにダッシュボードへ描画されます。
3. データの保存 すべてのデータはクライアント側で処理されます。StormBotはリモートサーバーやクラウドデータベースにユーザーデータを保存しません。サードパーティの分析はなく、ボットの動作に必要なAPI以外への外部データ送信もありません。
4. サードパーティのサービス Polymarket — CLOB, Gamma, WebSocket, Data APIs for market discovery, trading, streaming.Open-Meteo — Weather forecast API for GFS, ECMWF, UKMO. No auth required.NOAA / NWS — US weather (api.weather.gov) and historical climate (ncei.noaa.gov).香港天文台(HKO) — Open Data API (data.weather.gov.hk) for Hong Kong forecasts and the live resolution-gauge reading. No auth required.Anthropic — Claude API for market analysis. Your API key is used; market data sent.Polygon RPC — Public Polygon node for balance checks and approvals.
5. データの保持 ログはユーザーごとに最大200件まで(古いものから破棄)。取引履歴は最大100件。AI分析は20件。ライブエッジ検出は50件。サーバーのデータディレクトリが手動でクリアされるまで保持されます。
6. セキュリティ StormBotはクライアントサイドで動作します — あなたの秘密鍵がいかなるサーバーにも送信・保存されることはありません。すべての署名と取引執行はあなたのデバイス上でローカルに行われます。
7. あなたの権利 ウォレットはダッシュボードからいつでも切断できます。切断すると、関連するすべてのセッションデータが消去されます。
8. 本ポリシーの変更 このプライバシーポリシーは、StormBot の進化に伴い更新されることがあります。変更はこのページに反映されます。
最終更新: 2026 年 3 月