本文へ移動
Signal Pilot

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

  1. Discordでサーバー設定 → 連携サービス → ウェブフックと進みます
  2. 「New Webhook」をクリックします
  3. 名前とチャンネルを決めます
  4. Webhookのアドレスをコピーします(形式は https://discord.com/api/webhooks/...)

📸 スクリーンショットは準備中です

DiscordのWebhook作成画面

DiscordのWebhook作成画面のスクリーンショットを、連携サービスのパネルと設定手順がわかる形で追加します。

Telegramのボット

  1. Telegramで「@BotFather」を探します
  2. 次に/newbot を送信して、あとは指示どおりに進めます
  3. ボットのトークンを控えます
  4. 中継サービスか自前のサーバーを使って、TradingViewのWebhookをTelegramへ転送します

自前のサーバーやAPI

受け取り先は、次のようなプラットフォームで自分で用意できます。

  • Webhook.site:試すため。Webhookの中身を受け取って表示してくれます
  • Make.com(旧Integromat):複数のサービスをつなぐため
  • Zapier:一連の作業を自動で回すため
  • 自前のサーバー:PythonのFlask、Node.jsのExpressなど

手順2:TradingViewでアラートを設定する

  1. Signal Pilotのインジケーターを載せたチャートで、アラートのアイコン(+付きの時計)をクリックします
  2. アラートの設定画面で次のように指定します。
    • 条件:Signal Pilotのインジケーターと、見張りたい条件を選びます
    • オプション:足の途中で描き直されないよう「Once Per Bar Close」にします
    • 満期:必要に応じて決めます。多くは「Open-ended」です
  3. 下にスクロールして「Notifications」タブを開きます。
  4. 続いて「Webhook URL」の欄にチェックを入れます。
  5. 受け取り先のアドレスをそこに貼り付けます

📸 スクリーンショットは準備中です

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を試す

  1. アラートを作ったら、その設定画面で「Test」ボタンを押します。
  2. 受け取り先を見に行きます。Discordのチャンネル、webhook.site、指定したところなど
  3. メッセージが整った形で届いているか確かめます
  4. 何も届かないときは次を見直します。
    • 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が何も送らない場合はここを見ます
  1. アラートにアドレスを入れましたか → 入れていなければ入れます
  2. アラートは出ていますか → 出ていないなら、まずアラートを直します
  3. webhook.siteで試しましたか → まだならそこで試します。だめならアドレスを作り直します
  4. 書式は合っていますか → DiscordやTelegramが求める書式を確かめます
  5. JSONは正しいですか → JSONの検証ツールにかけて書き方を確かめます
  6. 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のチャンネルで受け取る

  1. 用意したもの: #trading-alertsチャンネルのDiscord Webhook
  2. 設定: BTCUSDTの15分足チャートにPentarch v1.0
  3. アラート:「Pentarch: Reversal Detected」の条件に設定
  4. 頻度:「Once Per Bar Close」
  5. 貼り付け:アラートの設定にDiscord Webhookのアドレス
  6. メッセージ:上に載せたDiscordの埋め込み書式で作成
  7. 確認:アラートを試し、Discordにメッセージが届いた
  8. 運用中:反転の形が出るたびにチームへ通知が届く

(実際の組み方の例で、学習目的のみに載せています。投資助言ではありません。結果は人によって変わります。)