Webhook(TradingView → ボット)¶
Webhookを使うと、TradingViewのアラートを外部サービスやボット、自作のAPIへ送って処理を自動化できます。このガイドでは、Signal Pilotのインジケーターと組み合わせた設定と使い方を説明します。
教育目的について
このガイドは、学習と自動化を目的にWebhookの連携を説明したものです。自動売買には大きなリスクがあります。投資助言ではありません。
📡 Webhookとは¶
Webhookとは、アラートが発生した瞬間にTradingViewが指定のアドレスへ自動で送るHTTP POSTリクエストのことです。よくある使い道は次のとおりです。
- 通知する:アラートをDiscordやTelegram、Slackへ送る
- 記録する:アラートをデータベースや表計算シートに残す
- 自動化する:自作のAPI経由で処理を走らせる
- 確かめる:アラートがどのくらいの頻度で、どんな条件で出るのかを追う
✅ 先に用意するもの¶
Webhookを設定する前に、たいてい次のものが必要になります。
- TradingViewのPro、Pro+、Premiumのいずれか:無料アカウントではWebhookを使えません
- 受け取り先のアドレス:HTTP POSTリクエストを受け取れるもの。DiscordのWebhook、自前のサーバー、自動化プラットフォームなど
- Signal Pilotのインジケーター:設定を済ませてチャートに載せた状態
- JSONの基礎知識:メッセージを自分で組み立てたいときに役立ちます。必須ではありません
🔧 手順¶
手順1:Webhookのアドレスを用意する¶
必要なアドレスは、アラートをどこへ送るかで変わります。
DiscordのWebhook
- Discordでサーバー設定 → 連携サービス → ウェブフックと進みます
- 「New Webhook」をクリックします
- 名前とチャンネルを決めます
- Webhookのアドレスをコピーします(形式は
https://discord.com/api/webhooks/...)
📸 スクリーンショットは準備中です
DiscordのWebhook作成画面
DiscordのWebhook作成画面のスクリーンショットを、連携サービスのパネルと設定手順がわかる形で追加します。
Telegramのボット
- Telegramで「@BotFather」を探します
- 次に
/newbotを送信して、あとは指示どおりに進めます - ボットのトークンを控えます
- 中継サービスか自前のサーバーを使って、TradingViewのWebhookをTelegramへ転送します
自前のサーバーやAPI
受け取り先は、次のようなプラットフォームで自分で用意できます。
- Webhook.site:試すため。Webhookの中身を受け取って表示してくれます
- Make.com(旧Integromat):複数のサービスをつなぐため
- Zapier:一連の作業を自動で回すため
- 自前のサーバー:PythonのFlask、Node.jsのExpressなど
手順2:TradingViewでアラートを設定する¶
- Signal Pilotのインジケーターを載せたチャートで、アラートのアイコン(+付きの時計)をクリックします
- アラートの設定画面で次のように指定します。
- 条件:Signal Pilotのインジケーターと、見張りたい条件を選びます
- オプション:足の途中で描き直されないよう「Once Per Bar Close」にします
- 満期:必要に応じて決めます。多くは「Open-ended」です
- 下にスクロールして「Notifications」タブを開きます。
- 続いて「Webhook URL」の欄にチェックを入れます。
- 受け取り先のアドレスをそこに貼り付けます
📸 スクリーンショットは準備中です
TradingViewのアラート設定画面とWebhook URLの欄
TradingViewのアラート設定画面のスクリーンショットを、「Notifications」の中にWebhook URLの入力欄が見える形で追加します。
手順3:メッセージを組み立てる(任意)¶
この「Message」欄で、どのデータを送るかを決められます。TradingViewでは次のプレースホルダーが使えます。
{
"indicator": "{{ticker}}",
"price": "{{close}}",
"time": "{{time}}",
"signal": "Pentarch Reversal Detected",
"timeframe": "{{interval}}"
}TradingViewでよく使うプレースホルダー
{{ticker}}:銘柄名。たとえば「BTCUSDT」{{close}}:その時点の終値{{time}}:アラートが出た時刻{{interval}}:時間足。たとえば「15」や「1D」{{exchange}}:取引所の名前
手順4:Webhookを試す¶
- アラートを作ったら、その設定画面で「Test」ボタンを押します。
- 受け取り先を見に行きます。Discordのチャンネル、webhook.site、指定したところなど
- メッセージが整った形で届いているか確かめます
- 何も届かないときは次を見直します。
- Webhookのアドレスが正しいか
- TradingViewのアカウントがWebhookを使えるか、つまりPro+かPremiumか
- 受け取り先に届くか、ファイアウォールに止められていないか
📸 スクリーンショットは準備中です
Discordに届いたテストメッセージ
DiscordのチャンネルにWebhookからのテストメッセージが届き、Signal Pilotのアラート情報が整った形で表示されている様子のスクリーンショットを追加します。
💬 書式の例¶
Discord向けの書式のメッセージ
{
"content": "🔔 **Signal Pilot Alert**",
"embeds": [{
"title": "Pentarch Reversal",
"description": "Reversal pattern detected on {{ticker}}",
"color": 65280,
"fields": [
{"name": "Price", "value": "{{close}}", "inline": true},
{"name": "Timeframe", "value": "{{interval}}", "inline": true},
{"name": "Time", "value": "{{time}}", "inline": false}
]
}]
}ただのテキストメッセージ
Signal Pilot: {{ticker}} - Harmonic Oscillator cross detected at {{close}} on {{interval}} timeframe自前のAPI向けの構造化JSON
{
"alert_type": "signal_pilot",
"indicator": "janus_atlas",
"symbol": "{{ticker}}",
"exchange": "{{exchange}}",
"timeframe": "{{interval}}",
"price": "{{close}}",
"timestamp": "{{time}}",
"condition": "Level Break Alert"
}🌐 よく使われるプラットフォーム¶
| プラットフォーム | 使いどころ | 設定の手間 |
|---|---|---|
| Discord | チームへの通知と記録 | とても簡単 |
| Telegram | スマートフォンへの通知 | ふつう。ボットと中継が必要 |
| Make.com | 複数サービスの連携 | 簡単。流れを画面上で組める |
| Zapier | 5000を超えるアプリと接続 | 簡単。流れを画面上で組める |
| Webhook.site | 動作確認と不具合探し | とても簡単 |
| 自前のサーバー | すべて自分の思いどおり、処理も自由 | 難しい。プログラミングが要る |
🔍 うまくいかないとき¶
- アラートにアドレスを入れましたか → 入れていなければ入れます
- アラートは出ていますか → 出ていないなら、まずアラートを直します
- webhook.siteで試しましたか → まだならそこで試します。だめならアドレスを作り直します
- 書式は合っていますか → DiscordやTelegramが求める書式を確かめます
- JSONは正しいですか → JSONの検証ツールにかけて書き方を確かめます
- TradingViewのPro+以上ですか → 無料アカウントではWebhookを使えません
手早い確認:最初の確認は必ず webhook.site で行ってください。そこには届くのにDiscordやTelegramに届かないなら、原因は受け取り側の設定です。
Webhookが届かない
- TradingViewのプランを確かめる:無料アカウントではWebhookを使えません
- アドレスを見直す:余計な空白がないか、プロトコルがhttps://になっているか
- 受け取り先を試す:webhook.siteを使って、TradingViewからアドレスに届くか確かめます
- アラートは出ましたか:TradingViewのアラート履歴を見て、実際に出たかどうかを確かめます
メッセージの中身が違う
- プレースホルダーの書き方:正しい書き方は
{{ticker}}です。誤りは{ticker} - JSONの書式:構造化した形を使うなら、jsonlint.comで検証します
- 引用符のエスケープ:
\"を、JSON文字列の中で引用符が要るときに使います
Webhookが多すぎる
- アラートの頻度:「Once Per Bar」から「Once Per Bar Close」に変えます
- 条件の絞り込み:条件を狭めて、出る回数を減らします
- 間隔:Webhookのサービスによっては、受け付ける件数に上限があります
🔒 安全のために¶
安全について押さえておくこと
- Webhookのアドレスは大事な情報です:パスワードと同じ扱いにして、どこにも公開しないでください
- ときどき作り直します:大事な処理がぶら下がっているなら、なおさらです
- 届いたものを確かめます:自前のサーバーなら、リクエストが本当にTradingViewから来ているか確かめます
- できるかぎりHTTPSにします:暗号化されていないHTTPしか受けない受け取り先は危険です
📋 組み方の例¶
想定: Pentarchの反転アラートをDiscordのチャンネルで受け取る
- 用意したもの: #trading-alertsチャンネルのDiscord Webhook
- 設定: BTCUSDTの15分足チャートにPentarch v1.0
- アラート:「Pentarch: Reversal Detected」の条件に設定
- 頻度:「Once Per Bar Close」
- 貼り付け:アラートの設定にDiscord Webhookのアドレス
- メッセージ:上に載せたDiscordの埋め込み書式で作成
- 確認:アラートを試し、Discordにメッセージが届いた
- 運用中:反転の形が出るたびにチームへ通知が届く
(実際の組み方の例で、学習目的のみに載せています。投資助言ではありません。結果は人によって変わります。)