TradingViewのアラートを外部システムへ送るとき、最初に考えるべきことは「どのURLへ送るか」だけではありません。
より重要なのは、送信するデータの構造です。
アラート本文が人間にとって読みやすくても、受け取るシステムにとって扱いやすいとは限りません。実行ワークフローに使う場合、メッセージは明確なJSONペイロードとして設計する必要があります。
なぜJSON構造が重要なのか
Webhookで送信されるデータは、次の処理の入力になります。
そのため、受信側は以下のような情報を明確に読み取れる必要があります。
- どのプラットフォームへ送るのか
- どの銘柄を使うのか
- buy / sell / close など、どのアクションか
- 数量はいくらか
- stop loss や take profit を使うのか
- どの戦略から来たシグナルか
この情報が曖昧だと、後続の処理でエラーが起きやすくなります。
Webhook JSONのフィールド設計については、次のガイドが参考になります。
最小限のペイロード例
たとえば、TradingViewアラートから注文ワークフローへデータを渡す場合、最小構成は次のようになります。
{
"platform_name": "metatrader5",
"ticker": "EURUSD",
"order_action": "buy",
"order_contracts": 0.10,
"comment": "strategy_alert"
}
この形式では、受信側が最低限必要な情報を読み取れます。
ただし、実際の運用では stop loss、take profit、trade type、symbol mapping なども必要になることがあります。
フィールド名は安定させる
JSONペイロードで重要なのは、フィールド名を毎回変えないことです。
たとえば、あるアラートでは ticker、別のアラートでは symbol、さらに別のアラートでは pair を使うと、受信側の処理が複雑になります。
フィールド名を統一すると、検証しやすくなります。
{
"platform_name": "metatrader5",
"ticker": "XAUUSD",
"order_action": "sell",
"order_contracts": 0.05,
"stop_loss": 2345.50,
"take_profit": 2320.00,
"trade_type": "reverse",
"comment": "gold_strategy"
}
このように同じ構造を使うことで、複数の戦略や複数の銘柄を扱いやすくなります。
シンボル名の違いに注意する
自動化でよくある問題の一つは、シンボル名の違いです。
TradingViewでは EURUSD と表示されていても、ブローカー側では EURUSD.r のような名前になっていることがあります。
Goldも XAUUSD、GOLD、またはブローカー独自の表記になる場合があります。
人間なら文脈で判断できますが、システムには明確なルールが必要です。
そのため、JSONペイロード設計では ticker をどう扱うか、また symbol mapping をどこで行うかを決めておく必要があります。
検証しやすいJSONにする
Webhookを受け取る側では、注文を送る前にペイロードを検証するべきです。
確認すべきポイントは次の通りです。
- 必須フィールドが存在するか
- 数量が空ではないか
- アクションが対応している値か
- 銘柄名がルールに合っているか
- 数値フィールドが正しい型か
- 実行先プラットフォームが指定されているか
この検証があると、誤った注文を送る前に処理を止められます。
Webhook tradingの全体像
Webhook tradingは、単にHTTPリクエストを送るだけではありません。
アラート、JSONペイロード、検証、ルーティング、実行、ログ確認まで含めたワークフローです。
Webhook tradingの考え方については、こちらのリソースも参考になります。
まとめ
TradingViewアラートを実行ワークフローへつなぐ場合、JSONペイロード設計は非常に重要です。
良いペイロードには、次の特徴があります。
- フィールド名が安定している
- 必須情報が明確である
- シンボル名の扱いが決まっている
- 数値と文字列の役割が分かれている
- 検証しやすい
- ログで追跡しやすい
Webhookは入口です。JSONペイロードは、その入口から実行ワークフローへ進むための構造です。
構造が明確であれば、アラートは単なる通知ではなく、検証可能な自動化データになります。