TradingView Webhook 連携
最終更新日: 2026年10月
TradingView のアラートを自動でライブ注文に変換します。アラートが発動すると TradingView が etrink に webhook を送信し、当社の EtrinkAgent があなたの MT5 口座で買い/売りを執行します。パソコンの電源が切れていても24時間365日稼働します。
仕組み
TradingView アラート → etrink webhook(キー、シンボル、数量の上限を検証) → コマンドキュー → MT5 ターミナル上の EtrinkAgent → ブローカー。すべてのシグナルはパネルに記録されます。
ステップごとの設定
- パネルで Webhook を開き、紐付ける口座を選んで + 新しいキー をクリックします。
- 一度だけ表示される webhook URL をコピーします(注文を出せるため、秘密にしてください):
https://api.etrink.com/hooks/etrk_xxxxxxxxxxxxxxxx- TradingView でアラートを作成します。Webhook URL を有効にし、上記の URL を貼り付けます。
- 以下の JSON をアラートの Message(メッセージ)欄に貼り付けます:
{
"action": "buy",
"symbol": "EURUSD",
"volume": 0.01,
"sl": 0,
"tp": 0,
"id": "{{time}}"
}- 保存します。アラートが発動すると、紐付けた口座で注文が執行されます。
メッセージ形式
| フィールド | 必須 | 説明 |
|---|---|---|
action | はい | buy · sell · close。close は決済のみを行い、新規注文は決して出しません。 |
symbol | はい | ブローカーのシンボル(例:EURUSD、XAUUSD) |
volume | いいえ | ロットサイズ。buy/sell では必須。口座ごとの数量上限が適用されます。 |
sl / tp | いいえ | ストップロス / テイクプロフィットの価格(0 = なし) |
magic | いいえ | 注文の MT5 マジックナンバー(0以上の整数)。戦略ごとに1つ使用してください。close で指定すると、このマジックのポジションのみ決済されます。指定しない場合、そのシンボルのすべてのポジションが決済されます。 |
closeOpposite | いいえ | true = 新規注文の前に、同じシンボルの反対方向を決済します(buy なら sell を、sell なら buy を決済)。magic を指定した場合は同じマジックのポジションのみ。反対方向を決済できない場合、新規注文は出されません。 |
allowDuplicate | いいえ | 既定値は true。false = そのシンボルで同じ方向(指定時は同じマジック)のポジションをすでに保有している間は、新規注文を出しません。シグナルはパネルにスキップと表示されます。これはエラーではありません。closeOpposite と併用した場合は、まず反対方向を決済し、その後にこのチェックを行います。 |
comment | いいえ | MT5 で新規注文に書き込まれるコメント。最大31文字まで使用されます。トルコ語の文字はラテン文字に変換され(ç → c)、引用符と絵文字は削除されます。 |
id | いいえ | 冪等性キー — 同じ id は二度と執行されません |
test | いいえ | true = 検証のみで、実際の注文は出しません |
別の表記も受け付けます:close_opposite、closeopposite、magicNumber、 magic_number、allow_duplicate。また "true"、"false"、"1001" のような文字列値も使えます。
例
売り(sell)
{ "action": "sell", "symbol": "XAUUSD", "volume": 0.05 }保有ポジションを決済する
{ "action": "close", "symbol": "EURUSD" }1つの戦略のポジションのみを決済する(magic)
{ "action": "close", "symbol": "XAUUSD", "magic": 1001 }動的な値(TradingView のプレースホルダー)
TradingView は送信時に {{ticker}}、{{strategy.order.action}}、 {{close}} などを置き換えます:
{ "action": "{{strategy.order.action}}", "symbol": "{{ticker}}", "volume": 0.01 }戦略のドテン(ロングとショートを1つのアラートで)
1つの戦略アラートで、MT5 上でもチャートどおりに追従します。戦略がロングに転じるとマジック 1001 の sell が決済されて buy が建てられ、ショートに転じるとその逆になります。同じ方向に2つ目のポジションが建つことはありません。
{
"action": "{{strategy.order.action}}",
"symbol": "{{ticker}}",
"volume": 0.01,
"magic": 1001,
"closeOpposite": true,
"allowDuplicate": false,
"comment": "TV strateji A",
"id": "{{timenow}}"
}Pine Script の例
条件が満たされたときにメッセージ(JSON)が webhook に送信されるよう、alert() 呼び出しを使用します:
//@version=5
strategy("etrink signal", overlay=true)
fast = ta.sma(close, 10)
slow = ta.sma(close, 30)
if ta.crossover(fast, slow)
strategy.entry("Long", strategy.long)
alert('{"action":"buy","symbol":"EURUSD","volume":0.01}',
alert.freq_once_per_bar_close)
if ta.crossunder(fast, slow)
strategy.close("Long")
alert('{"action":"close","symbol":"EURUSD"}',
alert.freq_once_per_bar_close)安全にテストする
任意のメッセージに "test": true を追加します(またはパネルの テストシグナル ボタンを使用します)。すべてのチェックが実行され、 イベントは test として記録されますが、実際の注文は出されません。
トラブルシューティング
- 「symbol not allowed」(シンボルが許可されていない) — シンボルが許可リストにないか、ブローカーでの名称が異なります(例:
EURUSD.m)。 - 「no running instance」(稼働中のインスタンスがない) — 紐付けた口座が停止しています。自動的に再起動されるので、その後に再送してください。
- 数量が拒否された — 口座ごとの上限を超えています。
volumeを下げるか、上限を引き上げてください。 - シグナルが「スキップ」 —
allowDuplicate: falseで、同じ方向のポジションがすでにありました。想定どおりの動作です。 - すべての呼び出しはパネルの シグナル ページに、ステータス、結果(チケット番号またはエラー)、生の JSON とともに表示されます。まずはそちらをご確認ください。
お困りの際は [email protected] までご連絡ください。