10 31, 2019

アラートに変数を導入!

アラートに対する最新の変更と改善をご紹介できることを嬉しく思います — メッセージで変数がサポートされました!価格やインジケーターの値、バーの時間などを変数として使用できます。アラートがトリガーされて通知が送られる時にこの最新機能をご覧いただけます。

変数の値を返す為には特定のプレースホルダーを利用する必要があります。プレースホルダーの一覧を以下でご確認下さい。プレースホルダーはアラート作成/編集時のダイアログのメッセージ部分で指定します。アラートがトリガーした際にメッセージで対応する値を受信する事ができます。

例えば NASDAQ:AAPL のティッカーシンボルでアラートを作成してメッセージ欄に以下の様に入力します:

{{exchange}}:{{ticker}}, 価格 = {{close}}, 出来高 = {{volume}}

アラートがトリガーされると入力したプレースホルダーに代わりにそれらの値を確認できます。

利用可能なプレースホルダーの一覧は以下の通りです:

1. {{ticker}} — ティッカーを返します(AAPL, BTCUSDなど)。

2. {{exchange}} — シンボルの取引所(NASDAQ, NYSE, TSE
など)。遅延データの場合は DL や DLY のパラメーターを含みます。例. NYMEX_DL。

3. {{close}}, {{open}}, {{high}}, {{low}}, {{time}}, {{volume}} — アラートがトリガーされたバーに対応する値。インジケーターや非標準チャート、描画に対するアラートは時間足に依存します。一方単純な価格アラート(例.価格が特定の値を交差)は常に1分足で計算されます。{{time}}はUTCで yyyy-MM-ddTHH:mm:ssZ の形式でフォーマットされます。例.2019-08-27T09:56:00Z。他の値は、整数部分と小数部分を区切る小数点がある固定小数点数です。例.1245.25。

4. {{timenow}} —  アラートがトリガーされた正確な日時。{{time}}と同じ形式でフォーマットされます。時間足に関わらず最も近い秒の時間を戻します。

5. {{plot_0}}, {{plot_1}}, … {{plot_19}} — アラートの設定に用いられたインジケーターの対応する系列。インジケーターの系列はチャートでご覧頂いている値です。例えば内蔵の出来高インジケーターには、出来高と出来高のMAの2つのアウトプット系列があります。出来高インジケーターにアラートを作成して、メッセージ欄に以下の様に入力すると:

出来高: {{plot_0}}, 出来高の平均: {{plot_1}}

アラートがトリガーされた時に対応する値を確認する事ができます。

注: plotは0からナンバリングされます。

Pineで書いたスクリプトにも同じルールが適用されます。系列はコード内の呼び出し順に基づいてカウントされます。以下の関数の一覧をご覧ください。以下の系列を通知で利用することができます:

  • plot
  • plotshape
  • plotchar
  • plotarrow
  • plotbar
  • plotcandle

こうした関数の引数の系列にBoolean値が含まれる場合、通知メッセージでは0または1に置き換えられます。特定の関数 – plotcandle と plotbar – はそれぞれ4つの系列を表示しますが、それら4つの系列のひとつずつすべてがナンバリングのロジックで考慮される事にご注意ください。

しかしplotにアクセスするこの方法は必ずしも便利とは言えません。そこでより簡潔にする為に、それぞれの名称でplotを呼び出す事をサポートしています。これを行うにはプレースホルダーの {{plot(“Name”)}} を使用します。ここで Name は系列の名前です。

内蔵インジケーターの場合、サポートされる名前は英語版で使用される名前のみです。以下は出来高インジケーターで名前を利用して系列にアクセスする例です。メッセージは以下の様になります:

Volume: {{plot(“Volume”)}}, Volume average: {{plot(“Volume MA”)}}

同様にPineスクリプトで系列にアクセスするには、対応する関数のタイトル引数の名前を指定する必要があります(plotcandle と plotbar を除くすべてのplot関数でサポートされています)。この場合言語の限定はありません。スクリプトのコードにアクセスできない場合には名前をスタイル設定で確認することができます。

例えばこのスクリプトの値にアクセスするには:

//@version=4
study("My script")
plot(close, title="series")

アラートのメッセージに {{plot(“series”)}} を含めます。

スクリプトの設定でも同じ名前を確認することができます:

一つのアラートで複数のインジケーターを利用する場合、最初のインジケーターの値(最初のドロップダウンリストで指定されたインジケーター)が参照可能です。以下の例をご覧ください。

このアラートの設定の場合、MAの値のみ参照可能です。スクリプト “My script” の値にアクセスするには、最初のドロップダウンリストで “My script” を選択する必要があります。

alertcondition関数のメッセージ引数でこの新たなプレースホルダーを指定することもできます。例:

//@version=4
study("My script")
alertcondition(close>open, message="price {{ticker}} = {{close}}")

alertcondition関数の引数のメッセージは、アラート作成ダイアログのメッセージ欄に自動的に取り込まれます。

alertcondition関数で条件付きのアラートを作成する場合、値の置換はPine v4以降のスクリプトでのみ動作する事にご注意ください。

トリガーされたアラートの値は、メッセージの変数値を目的のアドレスに送信することによって、Webhookと一緒に使用できます。これによりアラートを使用するユーザーにとってさらなる可能性が広がります。