スポンサーリンク

Pine Script(Pineスクリプト)入門解説(17)アラート条件の設定:alertcondition

はじめに

今回はPineScript入門ガイドの17回目です。今回は、Pineスクリプトのアラート条件設定機能をまとめておきたいと思います。

特定の条件になったらアラート音が鳴ったりSMSを受け取れると、チャートに張り付く必要がなくなるので、アラート機能はとても便利ですね!

「EMAクロスでエントリー」のサンプル・スクリプト(改変前)

ここでは、第14回目で紹介したストラテジー「EMAクロスでエントリー、固定pipsの利確とストップ」のサンプルスクリプトを改変するかたちで、アラート機能を紹介していきたいと思います。

まず、第14回目の「EMAクロスでエントリー、固定pipsの利確とストップ」のサンプル・ストラテジーのロジック、およびスクリプトは、以下の通りです。

  • 短期EMA(25期間)と長期EMA(75期間)のゴールデン・クロスで買いエントリー
  • 短期EMA(25期間)と長期EMA(75期間)のデッド・クロスで売りエントリー
  • 利確は70pips固定、ロスカット(損切り)は、50pis固定
//@version=4
strategy("EMA cross & fixed TP/SL", overlay=true)

startyear = input(2019) //-----(A)
startmonth = input(1)
endyear = input(2020)
endmonth = input(1)

backtestStart = timestamp(startyear, startmonth, 1, 00, 00) //-----(B)
backtestEnd   = timestamp(endyear, endmonth, 1, 00, 00)
isBacktest = backtestStart <= time and  time <= backtestEnd //-----(C)

fastEMAperiod = input(25)
slowEMAperiod = input(75)
takeProfit = input(700)
stopLoss = input(500)

fastEMA = ema(close, fastEMAperiod)
slowEMA = ema(close, slowEMAperiod)
p1 = plot(fastEMA,color=color.red)
p2 = plot(slowEMA,color=color.blue)

longCondition = crossover(fastEMA, slowEMA) //-----(D)
if (isBacktest) 
    if (longCondition)
        strategy.entry("My Long Entry Id", strategy.long) //-----(E)
        strategy.exit("ExitLong", "My Long Entry Id", profit = takeProfit, loss = stopLoss) //-----(F)

shortCondition = crossunder(fastEMA, slowEMA)
if (isBacktest)
    if (shortCondition)
        strategy.entry("My Short Entry Id", strategy.short)
        strategy.exit("ExitShort", "My Short Entry Id", profit = takeProfit, loss = stopLoss

「EMAクロスでアラート」のサンプル・スクリプト(改変後)

上記のスクリプトは、「短期EMAと長期EMAのゴールデン・クロスで買いエントリー、同じくデッド・クロスで売りエントリー」というものでしたが、これを以下のように改変したいと思います。

アラートを出す代わりに、売買エントリーの指示はなくなります。

短期EMAと長期EMAのゴールデン・クロスでアラート1
短期EMAと長期EMAのデッド・クロスでアラート2

改変したサンプルスクリプトは、以下の通りです。
ストラテジーのバックテストや売買指示に関連する部分は、「//」でコメントアウトして残しています。

//@version=4
//strategy("EMA cross & fixed TP/SL", overlay=true)
study("EMA Cross Alert", overlay=true)
//startyear = input(2019)
//startmonth = input(1)
//endyear = input(2020)
//endmonth = input(1)

//backtestStart = timestamp(startyear, startmonth, 1, 00, 00) 
//backtestEnd   = timestamp(endyear, endmonth, 1, 00, 00)
//isBacktest = backtestStart <= time and  time <= backtestEnd 

fastEMAperiod = input(25)
slowEMAperiod = input(75)
//takeProfit = input(700)
//stopLoss = input(500)

fastEMA = ema(close, fastEMAperiod)
slowEMA = ema(close, slowEMAperiod)
p1 = plot(fastEMA,color=color.red)
p2 = plot(slowEMA,color=color.blue)

alertcondition(crossover(fastEMA, slowEMA), "EMA Golden Cross") //-----(A)
alertcondition(crossunder(fastEMA, slowEMA), "EMA Dead Cross") //-----(B)

//longCondition = crossover(fastEMA, slowEMA)
//if (isBacktest) 
//    if (longCondition)
//        strategy.entry("My Long Entry Id", strategy.long)
//        strategy.exit("ExitLong", "My Long Entry Id", profit = takeProfit, loss = stopLoss)

//shortCondition = crossunder(fastEMA, slowEMA)
//if (isBacktest)
//    if (shortCondition)
//        strategy.entry("My Short Entry Id", strategy.short)
//        strategy.exit("ExitShort", "My Short Entry Id", profit = takeProfit, loss = stopLoss)ついかした

(A)(B)の部分が、アラート条件の設定です。

(A) alertcondition(crossover(fastEMA, slowEMA), “EMA Golden Cross”, “EMA Golden Cross”)
(B) alertcondition(crossunder(fastEMA, slowEMA), “EMA Dead Cross”, “EMA Dead Cross”)

alertcondition関数の引数は、以下の通りです。
alertcondition(condition, title, message)

「alertcondition関数」は、アラート作成ダイアログで利用できるアラート条件を設定します。alertcondition は直接アラートを作成しない点に注意してください。alertconditionは、アラート作成ダイアログで、より多くの選択肢を提供する機能です。また alertcondition の動作は、チャートには表示されない点にも注意してください。

Pineスクリプトで設定するのは、「アラート条件」の設定です。「アラート」自体の設定ではありません。
アラート自体の設定は、TradingViewの以下の機能を使います。

TradingViewのアラート設定

TradingViewの画面右サイドの「目覚まし時計」アイコンが、アラート機能のメニューです。↓


新規のアラートを設定する画面で、上記のサンプルスクリプトで設定した「EMA Cross Alert」を選択することができます。アラートの時間や方法などの詳細を、設定できます↓

TradingViewのアラートの通知方法には、「TradingViewアプリでの通知」、「ポップアップ通知」、「Eメール」、ブラウザの「サウンド通知」、「SMSでの通知」、「EメールからSMSへの通知」などがあります。

「SMSでの通知」は、TradingViewのプレミアムプランのみで使えます。「EメールからSMSへの通知(Send Email-to-SMS)」は、Docomo(@docomo.ne.jp)などのキャリアメールに対して通知を送付する機能です。キャリアメール以外のアドレスを入力してもメール通知は行われません。

アラートを設定した結果、以下のようにアラートメニューで管理することができます。

 

 

タイトルとURLをコピーしました