TradingViewのMACDのPineスクリプトをチェック
今回はTradingView(トレーディングビュー)のMACDのPineスクリプトを見ながら、Pineスクリプトの内容をチェックしていきたいと思います。
MACDの計算方法
MACDは一般的に、MACD、シグナル、ヒストグラムの3つの数値を算出し、MACD、シグナルを曲線、ヒストグラムをヒストグラムで表示するインジケーターです。
それぞれの数値の計算方法は次の通りです。
MACD:短期のEMA – 長期のEMA
シグナル:MACDを移動平均化
ヒストグラム:MACD – シグナル
これらをTradingveiwのPineスクリプトで表示すると、次のようになります。
PineエディタでMACDのPineスクリプトをチェック
PingエディタでMACDのPineスクリプトを表示させると次のようなプログラムになります。
//@version=4
study(title="MACD", shorttitle="MACD", resolution="")
// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ?
col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
上から順にプログラムを見ていくと、最初にお決まりの「//@version=4」でPineスクリプトのバージョンを指定しています。
次に、study関数でインジケーターの名前(title)、略称(shorttitle)を指定しています。
続いて、「fastLength=」(短期のEMAの期間)、「slowLength=」(長期のEMAの期間)、「src=」で使用する価格の種類(デフォルトではclose(終値)を指定としています)、「signalLength=」(シグナルを算出するための移動平均線の期間)ではinput関数を使い、パラメーターを設定できるようにしています。
また、TradingveiwのMACDは単純移動平均線を使用したMACDを表示することもできる仕様としているため、MACD、シグナルを使用する際の移動平均線を単純移動平均線にするかというパラメータも「sma_source = 」「sma_signal =」で用意しています。
input関数は「title」で表示される文字、「type」でデータの種類(ここでは、integer(整数)やsource(価格の種類)、bool(trueかfalseの2つ)と指定し、「defval」でデフォルトの数値、「minval」で最小値、「maxval」で最大値を指定しています。
次に「col_grow_above = 」から「col_signal = 」まででMACDで使用する色を定義しています。
MACDの具体的な計算に移ります。
「fast_ma=」、「slow_ma=」では、単純移動平均線が選択された場合にsma関数を用いて単純移動平均線の値、選択されなかった場合は、ema関数を用いて一般的な指数平滑移動平均線を用いた移動平均線の数値を算出する式が書かれています。
続いて、「macd = 」では、この2つの移動平均の差からMACDの値を算出しています。
「signal = 」では、先ほどの「fast_ma=」、「slow_ma=」同様に単純移動平均線の選択の有無により、指定された種類の移動平均を用いて、シグナルを算出しています。
「hist = 」ではMACDの数値からシグナルの数値を引いたヒストグラムの値を計算しています。
最後にPlotでチャートに描画する命令を行っています。
最初にヒストグラムの数値を名前をHistgramで棒グラフ(style=plot.style_columns)で、色は、ヒストグラムの数値が0以上で1本前のヒストグラムよりも大きければ、「col_grow_above」、ヒストグラムが1本前より少ない数字であれば、「col_fall_above」、ヒストグラムの数値が0よりも少なく、1本前のヒストグラムよりも大きければ、「col_grow_below」、ヒストグラムが1本前より少ない数字であれば、「col_fall_below」でそれぞれ指定した色で表示すると命令しています。
続いて、MACDとシグナルのラインの名称、色、透明度(transp=)を指定しています。
Pine Script(Pineスクリプト)をさらに学びたい方へオススメのコンテンツ
![Pine Scriptとは?種類や関数などを初心者向けに詳しく解説](https://storage.googleapis.com/oanda-prod-asne1-oj-jp-wordpress/2022/08/AdobeStock_501184078.jpeg)
OANDA証券では、TradingViewのプログラミング言語である「Pine Script(Pineスクリプト)」に関する記事を豊富に提供しています。
プログラミング初心者の方でも、インジケーターやストラテジーの作成ができるよう、ソースコードをコピペ+少しの修正で組み上がる構成としています。
またOANDA証券とTradingViewのアカウントを連携させることで、「Tradingview」から直接トレードすることが可能です。
ぜひOANDA証券での口座開設をご検討下さい。
TradingView(トレーディングビュー)で使用する情報は、全てTradingView(トレーディングビュー)社に帰属するものであり、当社は、その正確性、完全性を保証するものではありません。同サイトで使用する情報に基づいて行った取引によって発生したいかなる損害・損失について、当社は一切責任を負いかねますのでご了承下さい。最終的な投資判断についてはお客様ご自身でお願い致します。
本ホームページに掲載されている事項は、投資判断の参考となる情報の提供を目的としたものであり、投資の勧誘を目的としたものではありません。投資方針、投資タイミング等は、ご自身の責任において判断してください。本サービスの情報に基づいて行った取引のいかなる損失についても、当社は一切の責を負いかねますのでご了承ください。また、当社は、当該情報の正確性および完全性を保証または約束するものでなく、今後、予告なしに内容を変更または廃止する場合があります。なお、当該情報の欠落・誤謬等につきましてもその責を負いかねますのでご了承ください。