TradingView(トレーディングビュー)のATRのPineスクリプトをチェック
プログラム初心者の方は、最初は一からプログラムを作成するよりもデフォルトで用意されているインジケーターに変更を加えながらプログラムを学んでいくという方法がお勧めです。
今回は、TradingView(トレーディングビュー)に内蔵されているAverage True Range(ATR)のPineスクリプトを見ながら、Pineスクリプトの基本的な構造を見てみたいと思います。
TradingView(トレーディングビュー)のATRのPineスクリプトを分解
Pineエディタでデフォルトのインジケーターのスクリプトを表示する場合は、「開く」→「内蔵スクリプト」と進み、ポップアップから表示したいインジケーター名を選択します。
Pingエディタに選択したインジケーターのスクリプトが表示されます。
今回はAverage True Range(ATR)のスクリプトを見てみましょう。
ちなみに、ATRは「高値-安値」、「高値-前日終値」、「前日終値-安値」の3つの数値のうち、一番大きな数値であるトゥルー・レンジを移動平均化した数値です。
【Average True Rangeのスクリプト】
ATRのスクリプトは次の通りです。
//@version=5
indicator(title="Average True Range", shorttitle="ATR", overlay=false, timeframe="", timeframe_gaps=true)
length = input.int(title="Length", defval=14, minval=1)
smoothing = input.string(title="Smoothing", defval="RMA", options=["RMA", "SMA", "EMA", "WMA"])
ma_function(source, length) =>
switch smoothing
"RMA" => ta.rma(source, length)
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
=> ta.wma(source, length)
plot(ma_function(ta.tr(true), length), title = "ATR", color=color.new(#B71C1C, 0))
最初の「//@version=5」でPineスクリプトのバージョンを指定しています。
次の「indicator()」でインジケーターの名前やタイプを指定しています。
「title」でインジケーター名を指定し、「shorttitle」で略称を指定し、「overlay」ではチャート上の価格部分にオーバーレイするタイプのインジケーターかどうかを指定しています。
「false」と指定するとオーバーレイせずにチャートの下部にサブチャートを表示するタイプのインジケーターとなります。
この「overlay」の部分を「true」に変更すると、次のチャートのようにチャートの価格上にオーバーレイで表示されます。
なお、「timeframe」「taimeframe_gaps」はマルチタイムフレーム機能に関する指定です。
次に「length =」は計算の対象期間が代入される変数です。
input関数を使うことで設定の「パラメーター」タブに項目を追加し、ユーザーが任意に数値を設定できるようにしています。
ここでは、デフォルトの数値(このATRの例では14)、最小値(このATRの例では1)と指定しています。
「smoothing =」は、ATRを算出する際の移動平均の方法として、ユーザーが設定した値(RMA/SMA/EMA/WMA)が代入される変数です。
その次の「ma_function()」は、この「smoothing」に代入される値によって、種類の異なる移動平均値を返すように定義された関数です。
例えば、ユーザーが「RMA」と設定した場合には、修正移動平均(RMA)の値を返します。
最後の「plot()」は、指定した値をチャート上に描画する関数です。
ここでは、先ほどの「ma_function()」を使って、「length」で指定した期間における「ta.tr(true)」の移動平均を算出し、指定した色や透明度でチャートに表示させています。
ちなみに、「ta.tr(true)」はトゥルー・レンジの数値を返すビルトイン関数。
つまり、「ta.tr(true)」の移動平均値はトゥルー・レンジの移動平均値のことで、ATRの値がチャートに表示されることになります。
TradingViewで使えるビルトイン関数とは?
ビルトイン関数とは、よく使われる数値を簡単に算出できるように、あらかじめ用意されている関数のことです。
Pineスクリプトでは、さまざまな「ビルトイン関数」があり、スクリプトをスムーズに作成できます。
今回のスクリプトでは、次の5つのビルトイン関数が用いられていました。
- ・ta.rma():修正移動平均の値を返す
- ・ta.sma():単純移動平均(SMA)の値を返す
- ・ta.ema():指数平滑移動平均(EMA)の値を返す
- ・ta.wma():加重移動平均(WMA)の値を返す
- ・ta.tr():トゥルー・レンジの値を返す
ビルトイン関数の一覧はTradingViewのサイトで確認をすることができます。
また、ATRの値を直接返してくれる「ta.atr()」という関数が用意されているため、移動平均線の種類を指定しない場合は、次のようなプログラムで、より簡単にATRを描画することもできます。
//@version=5
indicator(title="Average True Range", shorttitle="ATR", overlay=false)
plot(ta.atr(14))
Pine Script(Pineスクリプト)をさらに学びたい方へオススメのコンテンツ
OANDA証券では、TradingViewのプログラミング言語である「Pine Script(Pineスクリプト)」に関する記事を豊富に提供しています。
プログラミング初心者の方でも、インジケーターやストラテジーの作成ができるよう、ソースコードをコピペ+少しの修正で組み上がる構成としています。
またOANDA証券とTradingViewのアカウントを連携させることで、「Tradingview」から直接トレードすることが可能です。
ぜひOANDA証券での口座開設をご検討下さい。
TradingView(トレーディングビュー)で使用する情報は、全てTradingView(トレーディングビュー)社に帰属するものであり、当社は、その正確性、完全性を保証するものではありません。同サイトで使用する情報に基づいて行った取引によって発生したいかなる損害・損失について、当社は一切責任を負いかねますのでご了承下さい。最終的な投資判断についてはお客様ご自身でお願い致します。
本ホームページに掲載されている事項は、投資判断の参考となる情報の提供を目的としたものであり、投資の勧誘を目的としたものではありません。投資方針、投資タイミング等は、ご自身の責任において判断してください。本サービスの情報に基づいて行った取引のいかなる損失についても、当社は一切の責を負いかねますのでご了承ください。また、当社は、当該情報の正確性および完全性を保証または約束するものでなく、今後、予告なしに内容を変更または廃止する場合があります。なお、当該情報の欠落・誤謬等につきましてもその責を負いかねますのでご了承ください。