TradingView(トレーディングビュー)のストラテジー「MACD Strategy」をチェック
今回は、TradingView(トレーディングビュー)のデフォルトで用意されているストラテジーの「MACD Strategy」のPineスクリプトを見ながら、ストラテジー型のPineスクリプトの構造をチェックしていきます。
MACD Strategyの売買戦略
MACD Strategyの売買戦略は、MACDとシグナルの差(一般的には「ヒストグラム」と呼ばれます)がプラスになったら買い、マイナスになったら売りというシンプルなものです。
MACD StrategyのPineスクリプト
MACD StrategyのPineスクリプトは次のようになります。
前半でMACDの各数値を算出し、後半で売買の条件を定義するシンプルな構造のスクリプトです。
//@version=5
strategy("MACD Strategy", overlay=true)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ta.ema(close, fastLength) - ta.ema(close, slowlength)
aMACD = ta.ema(MACD, MACDLength)
delta = MACD - aMACD
if (ta.crossover(delta, 0))
strategy.entry("MacdLE", strategy.long, comment="MacdLE")
if (ta.crossunder(delta, 0))
strategy.entry("MacdSE", strategy.short, comment="MacdSE")
最初に、「//@version=5」でPineスクリプトのバージョンを指定しています。
その後に、「strategy()」でストラテジーであることを宣言し、名前を「MACD Strategy」と指定し、メインチャート上にオーバーレイして表示させることを「overlay=true」で指定しています。
次に「input()」を使って、設定画面の「パラメーター」タブの項目を追加するとともに、デフォルト値を指定しています。
ここで追加しているのは、短期EMAの期間を設定する「fastLength」、長期EMAの期間を設定する「slowLength」、シグナルの算出に使用するEMAの期間を設定する「MACDLength」の3つです。
続いて、このパラメーターを用いて、MACDの構成要素である「MACD」「シグナル」「ヒストグラム」を計算し、それぞれ「MACD」「aMACD」「delta」という変数に代入しています。
なお、EMAの数値を算出する際には「ta.ema()」を使用しています。
「ta.ema()」は、「元となる価格データ」と「期間」を引数として指定することで、EMAの値を返してくれるビルトイン関数です。
MACDは2つのEMAの数値の差であるため、2つの「ta.ema()」で算出される数値を引き算することで算出しています。
この値が代入されるのは、変数の「MACD」です。
シグナルは、MACDの算出値をさらに「ta.ema()」を用いて移動平均化して求めます。
算出値は、変数の「aMACD」に代入されます。
ヒストグラムは、MACDからシグナルを引いた値です。
先ほどの2つの変数を使って「MACD – aMACD」により算出して、変数の「delta」に代入するように記述されています。
最後にエントリーに関するプログラムです。
「if()」で条件を定め、条件がtrueとなったタイミングで、売買を行う関数の「strategy.entry()」が動くように記述されています。
※TradingViewのプログラムは実際に自動売買を行うのではなく、この条件で売買を行なった場合のシミュレーションを行うためのものとなります。
上段の「if()」では、「ta.crossover()」という関数が使用されています。
ここでは「crossover(dalta, 0)」と記述されており、delta(ヒストグラム)が0を上回ったときにtrueを返すことになり、「strategy.entry()」が動くという仕組みです。
この「strategy.entry()」は、「strategy.long」で買いで入ること、チャート上に「MacdLE」と記載することなどが指定されています。
つまり、ヒストグラムが0を上回ったタイミングで、買いエントリーが行われることになります。
下段で記述されているのは、上段と逆のパターンです。
条件では、「ta.crossunder()」という関数を使って、delta(ヒストグラム)が0を下回ったときにtrueを返して、「strategy.entry()」が動くようになっています。
この「strategy.entry()」では、「strategy.short」で売りで入ること、チャート上に「MacdSE」と記載することなどが指定されています。
以上が、MACDのヒストグラムが0を上回ったら買い、0を下回ったら売りを行うストラテジー「MACD Strategy」のプログラム内容です。
ちなみに、バックテスト時における細かいシミュレーションの設定(初期資金や発注サイズなど)は、設定画面の「プロパティ」タブから調整することができます。
ストラテジーの設定画面の調整項目、検証結果の見方についてはこちらをご覧ください。
TradingViewのストラテジーをさらに読みたい方へオススメコンテンツ
OANDA証券では、TradingView(トレーディングビュー)の内蔵ストラテジーを活用した取引戦略に関するコンテンツを豊富に提供しています。
どんな相場なら通用しやすいのかや、相性の良い通貨ペアなど、具体的な運用方法を知ることができ、参考にしていただけます。
TradingView(トレーディングビュー)で使用する情報は、全てTradingView(トレーディングビュー)社に帰属するものであり、当社は、その正確性、完全性を保証するものではありません。同サイトで使用する情報に基づいて行った取引によって発生したいかなる損害・損失について、当社は一切責任を負いかねますのでご了承下さい。最終的な投資判断についてはお客様ご自身でお願い致します。
本ホームページに掲載されている事項は、投資判断の参考となる情報の提供を目的としたものであり、投資の勧誘を目的としたものではありません。投資方針、投資タイミング等は、ご自身の責任において判断してください。本サービスの情報に基づいて行った取引のいかなる損失についても、当社は一切の責を負いかねますのでご了承ください。また、当社は、当該情報の正確性および完全性を保証または約束するものでなく、今後、予告なしに内容を変更または廃止する場合があります。なお、当該情報の欠落・誤謬等につきましてもその責を負いかねますのでご了承ください。