TradingViewの使い方

Pine Script(Pineスクリプト)で移動平均線の装飾とアラート機能を組み込む方法


前回は3本の移動平均線を表示するインジケーター「3MA」の作成を行ってきました。

前回記事:Pine Script(Pineスクリプト)を作成してTradingviewのチャートに表示する方法

今回はこのインジケーターが実用的なものになるように機能追加をしていきます(移動平均線を以降MAと表記します)。
スクリプトの行数は80行以下です。
とてもシンプルですが、色々な機能が実装されています。
完成図は以下のようになります。

インジケーターが実用的なものになるように機能を追加する
(※画像をクリックすると大きな画像が表示されます。)

それでは具体的な内容を見ていきます。
この3本のMAの動きを観察することで以下の特徴が分かりました。
(ここでは相場の動きの一例ですので、必ずしも下記の様に動く訳ではありませんのでご留意下さい。)

  • a.3本のMAが収束した後から、相場が大きく動き出す特徴が有りそう。
  • b.3本のMAが収束した後の相場の方向性は、中期MA、長期MAの並びの方向に動いて行っているように見える。
  • c.以上のことを組み合わせると、相場の動き出しを捉える上昇サイン、下降サインが作れる可能性がある。

このa.b.c.の特徴を機能化してより便利なものにしていきます。
機能追加の内容は以下の通りです。

  • 1.MAが集まったときに視覚的に判別出来る機能
    →背景の塗り分け機能の組み込み。
  • 2.MAが収束したとき、拡大したときにメッセージで通知してくれる機能
    →アラート機能の組み込み。
  • 3.中期MAと長期MAの方向を視覚的に判別出来る機能
    →MAの位置関係から塗り分けてくれる機能の組み込み。
    (MAリボン)
  • 4.上昇、下降サインの表示機能の組み込み。

※3.4.の機能をインジケーターに組み込んでいますが、 本章では簡単な説明となります。
別の章で詳しく解説致します。

1.背景の塗り分け機能

MAが収束してきたときにチャートの背景を塗り分けます。

  • 使用する関数:bgcolor
  • 機能:指定した色でバーの背景を塗りつぶします。
  • MAが収束したことを判定する判定式から作成して行きます。

MAが収束してきたときにチャートの背景を塗り分け
(※画像をクリックすると大きな画像が表示されます。)

1-1.MAの収束判定式作成前の変数の準備

3本のMAの最大値、最小値、そして収束判定値を定義しています。

3本のMAの最大値、最小値、収束判定値を定義
(※画像をクリックすると大きな画像が表示されます。)

1-2.背景色の準備です。

背景色の準備をする方法
(※画像をクリックすると大きな画像が表示されます。)

1-3.MAが収束したことを判定する判定式の準備です。

MAが収束したことを判定する判定式の準備方法
(※画像をクリックすると大きな画像が表示されます。)

★1 [0]の便利な役目 (今後必ず使用する機能です)

[0]の便利な役目
(※画像をクリックすると大きな画像が表示されます。)

ここまでで、MAが収束したときに背景を塗り分けることが出来るようになりました。

2.MAが収束時、拡大時のアラート機能の追加

MAの収束状態、拡大状態が成立している時にロウソク足が変わる度にアラートが出てしまわないよう「拡大状態から収束状態になったときのみ」「収束状態から拡大状態になったときのみ」の判定式の作成も行います。

  • 使用する関数:alertcondition
  • 機能:アラート作成ダイアログで利用できるアラートを作成します。
  • 注意:アラートを使うには、ダイアログで設定する必要があります。
    ダイアログを使うことでアラートに多くの機能の選択肢を使うことが出来るようになります。
   

「収束状態から拡大状態になったときのみ」の判定式の作成
(※画像をクリックすると大きな画像が表示されます。)

ここで作成したアラートを使用するには、次の設定が必要です。

作成したアラートを使用するための設定
(※画像をクリックすると大きな画像が表示されます。)

以上の設定が完了すると下図のようにアラートが届くようになります。

アラートを使用する為の設定が完了
(※画像をクリックすると大きな画像が表示されます。)

アラートが届きます
(※画像をクリックすると大きな画像が表示されます。)

3.中期MAと長期MAの方向を視覚的に判別出来る機能

MAの上下関係から移動平均線の中を塗り分けます。

  • 使用する関数:fill
  • 機能:2つのプロットの間の背景を指定された色で塗りつぶします。

中期MAと長期MAの方向を視覚的に判別出来る機能を設定
(※画像をクリックすると大きな画像が表示されます。)

これで下図のように、長期MAよりも中期MAが上にあるときに青く塗りつぶせるように出来ました。

長期MAよりも中期MAが上にあるときに青く塗りつぶすことが可能
(※画像をクリックすると大きな画像が表示されます。)

4.上昇サイン、下降サイン表示機能の組み込み

これまで作成してきた判定式を組み合わせて上昇サイン、下降サインを表示させてみます。

ここでは3本のMAが収束から拡大する条件と、長期MAと中期MAの位置関係の条件を下図のように組み合わせてみます。

上昇サイン、下降サインを表示
(※画像をクリックすると大きな画像が表示されます。)

アラートは、「2.MAが収束時、拡大時のアラート機能の追加」と同様です。

アラートは、「MAが収束時、拡大時のアラート機能」と同様
(※画像をクリックすると大きな画像が表示されます。)

上昇サイン、下降サインを表示します。

  • 使用する関数:plotshape
  • 機能:チャート上に視覚的な図形(サイン)を描画します。

上昇サイン、下降サインを表示
(※画像をクリックすると大きな画像が表示されます。)

これで以下の様にチャート上に上昇サイン、下降サインも表示することが出来るようになりました。

チャート上に上昇サインが表示
(※画像をクリックすると大きな画像が表示されます。)

チャート上に下降サインも表示
(※画像をクリックすると大きな画像が表示されます。)

またこのインジケーターの設定画面は下図の通りで、各種設定の変更が出来ます。
また各設定項目はグルーピング(スクリプト説明部分に記載)することで機能毎に見易くまとめることが出来ます。

インジケーターの各種設定の設定画面
(※画像をクリックすると大きな画像が表示されます。)

80行に満たない短いスクリプトですが、Pineスクリプトに用意されている機能を活用することで、簡潔に機能を実装することが出来ます。
また次回以降で、幾つかのインジケーターの作成方法などをご紹介していきます。

5.参考スクリプト

  • インジケーター名:3MA_Signal
  • 機能:
  • 3本のMAを表示出来る。
  • MAの種類はSMAとEMAが選択出来る。
  • MAの期間は自由に設定出来る。
  • 3本のMAが収束した状態の背景を色分け出来る。
  • 上記が収束したとき、拡大したときにアラートが設定出来る。
  • 2本のMAの方向性をリボンで表示出来る。
  • 上昇、下降のサインを表示しアラートが設定出来る。
//@version=5 indicator('3EMA_Signal', overlay=true, format=format.price, precision=2) //設定画面表示グループの設定======================== var GrpRbn = "リボン" var GrpCon = "収束" //MAを描画する======================== price = input(close) MAMethod = input.string(title='MAの種類', defval='EMA', options=['EMA', 'SMA']) ma_plt1 = input.int(title='短期MA', defval=20, minval=1, maxval=1000) ma_plt2 = input.int(title='中期MA', defval=75, minval=1, maxval=1000) ma_plt3 = input.int(title='長期MA', defval=215, minval=1, maxval=1000) ma1 = MAMethod == 'EMA' ? ta.ema(close, ma_plt1) : ta.sma(close, ma_plt1) ma2 = MAMethod == 'EMA' ? ta.ema(close, ma_plt2) : ta.sma(close, ma_plt2) ma3 = MAMethod == 'EMA' ? ta.ema(close, ma_plt3) : ta.sma(close, ma_plt3) plt1 = plot(ma1, color=color.new(#32cd32, 0),title='MA 短期', linewidth=2) plt2 = plot(ma2, color=color.new(#0000ff, 0),title='MA 中期', linewidth=2) plt3 = plot(ma3, color=color.new(#ff0000, 0),title='MA 長期', linewidth=2) //MAの間を塗り潰す======================== color_up = input.color(color.blue, title="上昇リボン色", group=GrpRbn) color_dn = input.color(color.red, title="下降リボン色", group=GrpRbn) color_transp = input.int( 85, minval=0, title="リボン透明度", group=GrpRbn) flag_UD = ma2 > ma3 fill_colorUp = color.new( color_up, transp=color_transp ) fill_colorDn = color.new( color_dn, transp=color_transp ) fill(plt2,plt3, flag_UD ? fill_colorUp : fill_colorDn ) //MAの収束状態を判定======================== ma_max = math.max(ma1, ma2, ma3) ma_min = math.min(ma1, ma2, ma3) ma_Wide = input.float(title='MAの収束判定幅(通貨単位)', defval=0.3, minval=0.1, maxval=10000,group=GrpCon) color_Con = input.color(color.new(#dda0dd, 80), title="MA 収束背景色", group=GrpCon) int Concent = 0 if (ma_max - ma_min) < ma_Wide Concent := 1 else Concent := 0 bgcolor(Concent[0] == 1 ? color_Con : na ,title='MA 収束背景色') //収束拡大アラート======================== alertcondition(Concent[1] == 0 and Concent[0] == 1, title='MAが収束', message='MAが収束,' + '{{ticker}}') alertcondition(Concent[1] == 1 and Concent[0] == 0, title='MAが拡大', message='MAが拡大,' + '{{ticker}}') //上昇下降状態を判定======================== Signal_Up = false if Concent[2] == 1 and Concent[1] == 0 and flag_UD[0] == true Signal_Up := true Signal_Dn = false if Concent[2] == 1 and Concent[1] == 0 and flag_UD[0] == false Signal_Dn := true //上昇下降サインアラート======================== alertcondition(Signal_Up, title='上昇サイン', message='上昇サイン,' + '{{ticker}}') alertcondition(Signal_Dn, title='下降サイン', message='下降サイン,' + '{{ticker}}') //上昇下降サイン表示======================== plotshape(Signal_Up ? low : na, title='上昇サイン', location=location.belowbar, style=shape.triangleup, size=size.small, color=color.new(color.blue, 0)) plotshape(Signal_Dn ? high : na, title='下降サイン', location=location.abovebar, style=shape.triangledown, size=size.small, color=color.new(color.red, 0))

6.追加情報

Pineエディタに新機能が加わりました。
日々進化していて使い易くなりました。

6-1.ソース全体が見れて、表示出来る機能。

Pineエディタに新機能が加わりました
(※画像をクリックすると大きな画像が表示されます。)

6-2.スクリプトがより見やすくなる機能

スクリプトがより見やすくなる機能
(※画像をクリックすると大きな画像が表示されます。)

Pine Script(Pineスクリプト)をさらに学びたい方へオススメのコンテンツ

Pine Scriptとは?種類や関数などを初心者向けに詳しく解説

OANDA証券では、TradingViewのプログラミング言語である「Pine Script(Pineスクリプト)」に関する記事を豊富に提供しています。
プログラミング初心者の方でも、インジケーターやストラテジーの作成ができるよう、ソースコードをコピペ+少しの修正で組み上がる構成としています。
またOANDA証券とTradingViewのアカウントを連携させることで、「Tradingview」から直接トレードすることが可能です。
ぜひOANDA証券での口座開設をご検討下さい。


TradingView(トレーディングビュー)で使用する情報は、全てTradingView(トレーディングビュー)社に帰属するものであり、当社は、その正確性、完全性を保証するものではありません。同サイトで使用する情報に基づいて行った取引によって発生したいかなる損害・損失について、当社は一切責任を負いかねますのでご了承下さい。最終的な投資判断についてはお客様ご自身でお願い致します。
本ホームページに掲載されている事項は、投資判断の参考となる情報の提供を目的としたものであり、投資の勧誘を目的としたものではありません。投資方針、投資タイミング等は、ご自身の責任において判断してください。本サービスの情報に基づいて行った取引のいかなる損失についても、当社は一切の責を負いかねますのでご了承ください。また、当社は、当該情報の正確性および完全性を保証または約束するものでなく、今後、予告なしに内容を変更または廃止する場合があります。なお、当該情報の欠落・誤謬等につきましてもその責を負いかねますのでご了承ください。

この記事をシェアする

ホーム » TradingViewの使い方 » Pine Script(Pineスクリプト)で移動平均線の装飾とアラート機能を組み込む方法