FOREX TESTER
Pineスクリプト

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)などのキャリアメールに対して通知を送付する機能です。キャリアメール以外のアドレスを入力してもメール通知は行われません。

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

 

 

スポンサーリンク
海外のFX会社おすすめ・ベスト3
XM

運営歴10年、口座数3.5百万、196か国対応、Tier1ライセンス所有
最大レバレッジ888倍、最小入金5ドル、追証なし、口座開設ボーナス3,000円、入金ボーナスも多彩
多彩な教育・リサーチコンテンツ
ボーナスで有名な大手ブローカーですが、最大の強みは約定力、信頼度もトップクラスです。

>> XMのウェブサイトはこちら

HotForex

2010年から運営、Tier1ライセンス所有のグローバル大手ブローカーが日本人向けサービスを拡大中
口座数2百万、27か国言語、業界表彰歴35件
最小入金5ドル、レバレッジ1000倍、追証なし
多彩なボーナス、多彩なコンテスト
FXだけなく、仮想通貨、米国株・アジア株・欧州株、ETF、各国の株式指数、VIX指数、原油、商品などの投資もあわせて研究したければ、HotForexがイチオシの品ぞろえです。

>> HotForexのウェブサイトはこちら

Exness

運営歴12年、HotForex・XMに劣らないグローバル大手、Tier1ライセンス・ブローカーが日本向けサービスにも注力展開中。
最小入金1ドルで、レバレッジは無限大(条件あり)、追証なし、通貨ペアの数は、驚異の107ペア!
月次の口座数、取引高、デロイトの監査もすべて開示。レアルマドリッドのスポンサー
老舗巨大ブローカー、ユニークさは抜群です。

>> Exnessのウェブサイトはこちら

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