(1)概要
(2)plot関数
(3)change関数・iff関数
(4)input関数
(5)security関数、相関係数インジケータ
(6)fill関数
(7)bgcolor関数
(8)複数行を一括でコメントアウトできる?
(9)line.new関数・line.set関数、ピボット・インジケータ
(10)関数宣言(カスタム関数)、ピボット・ハイ・ロー・インジケータ
(11)ジグザグ(ZigZag)インジケータ
(12)平均足バー・マルチタイムフレーム(MTF)
(13)ストラテジー・バックテストの概要
(14)ストラテジー・サンプル「EMAクロス+固定TP/SL」
(15)ストラテジーの「最適化」をめぐるTradingViewとMetaTraderの違い
(16)Security関数のgapsとlookaheadとは?
(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のデッド・クロスでアラート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への通知」などがあります。
アラートを設定した結果、以下のようにアラートメニューで管理することができます。