ストラテジー開発でよく登場する概念として「トゥルーレンジ(TrueRange)」と「ATR」があります。
トゥルーレンジは直訳すると「真の値幅」になりますが、これはそもそも一体何なのか?実際にどのような場面で使われるのか?またEasyLanguageに用意されている命令や関数があるか?についてご紹介します。
目次
トゥルーレンジとは?
「トゥルーレンジ(TrueRange)」は、値幅(Range)を拡張した概念です。今日の値幅は高値から安値を引くことで計算できますが、トゥルーレンジは前日の終値も考慮した値幅になります。
トゥルーレンジの説明は文章だと分かり辛いことが多いです。例えばトレステの公式ヘルプでは以下のように記載されていますが、少し直感的に分かり辛いと思います。
TrueRange は、次のいずれか大きい方として定義されます。
•今日の High と今日の Low の距離。
•今日の High と昨日の Close の距離。
•今日の Low と昨日の Close の距離。
これについては以下のように考えることで、トゥルーレンジのことがイメージしやすくなります。
トゥルーレンジとは、
今日の値幅(高値-安値)に前日終値からの”ギャップ(窓)”を加えた値幅である
具体的に3つのパターンがあるので、それぞれ画像で見ていきましょう。
(1) 当日の値幅が、前日終値より上にある時
「当日の株価が、前日終値まで下がらなかった」と言い換えることもできます。
この場合、トゥルーレンジは当日の値幅に、前日終値と当日安値の間にあるギャップ幅を加えたものとなります。
(2) 当日の値幅が、前日終値より下にある時
「当日の株価が、前日終値まで上がらなかった」と言い換えることもできます。
この場合、トゥルーレンジは当日の値幅に、前日終値と当日高値の間にあるギャップ幅を加えたものとなります。
(3) 当日の値幅内に、前日終値が収まっている時
「当日の株価が、前日終値を挟んで上下に動いた」と言い換えることもできます。
この場合、通常の「値幅」と「トゥルーレンジ」は同じになります。
このように、トゥルーレンジとは前日終値を考慮した価格の上下変動幅を計算するものとなります。
ATRとは?
さて、このトゥルーレンジですが、実際には単独で使われるよりも「ATR」として利用される場合がほとんどです。
ATRとは「Average True Range(アベレージ・トゥルー・レンジ)」の略で、その名の通りトゥルーレンジの平均であり、移動平均線などと同様に「直近●日のトゥルーレンジの平均」を計算したものになります。
トレステには標準インジケーターとして「アベレージ・トゥルー・レンジ」が用意されているので、これをチャートに挿入すればすぐに確認できます。
以下、実際にトレステでATRを表示させた例です。一番下にある黄色のグラフが「アベレージ・トゥルー・レンジ」をパラメータ「20」で設定したものです。(比較のため、その上に「通常の値幅の直近20日平均」をインジケーターとして作成し水色グラフで表示させています)
ATRで何が分かるのか?
ATRは主に「ボラティリティ(価格の変動率)」を把握するために用いられます。
ATRが大きくなっているということは、1日ごとの価格変動が激しくなっているという事なので、相場が過熱していることになります。逆に小さくなっていれば、相場が落ち着いていてあまり値動きがない局面になっていると判断できます。
例えば先ほどの画像を再掲しますが、年末ごろ(真ん中あたり)は1日の値動きもギャップも少なかったのでATRはかなり下の方で推移していますが、直近2月半ば(右端あたり)は1日の値動きが激しくギャップが発生することも多かったので、ATRも上の方で推移しています。
RSIなどのように特定の値を超えるかどうかで見るのではなく、過去のATR値と比べて今どうなっているか、という風に見るのに向いている指標といえます。
またこのように最近の変動率を数値化できる特性を活かして、システムトレードにおいては売買ルールの資金管理で利用されることも多いです。例えばATRが大きくなってくるとエントリー後の価格変動リスクが高くなるため、取引する株数を減らす・・といった使い方なども考えられます。
関連するEasyLanguageの命令や関数、書き方など
以下、EasyLanguageでトゥルーレンジやATRを扱う方法についてご紹介します。
Range
トゥルーレンジでなく純粋な当日値幅(高値-安値)を取得できる命令です。
TrueRange
こちらがトゥルーレンジを取得できる命令です。前日終値と当日値幅を元に自動計算してくれます。
TrueHigh/ TrueLow
トゥルーレンジにおける高値と安値だけを取得したい時は、この2つの命令を使います。
TrueHigh – TrueLow = TrueRange です。
AverageTrueRange
ATR(アベレージ・トゥルー・レンジ)を求めたい時は、専用関数AverageTrueRangeが用意されています。引数には直近何足の平均を計算するか設定します。
【例:直近20足のATRを取得したい時】
AverageTrueRange( 20 )
応用:指数平滑移動平均でATRを計算
標準インジケーター「アベレージ・トゥルー・レンジ」や関数「AverageTrueRange」は、単純移動平均による計算となります。
ATRは指数平滑移動平均で計算したいという方もいると思うので、その場合は標準インジケーター「指数平滑移動平均」のパラメータにTrueRangeを用いるか、関数XAverageを使ってみてください。
おわりに
今回はトゥルーレンジとATRについて、その仕組みや活用例、関連するEasyLanguageなどをご紹介しました。
EasyLanguageでストラテジーなどを作成されている方は、売買ルールに組み込む指標の1つとしてぜひ参考にしてみてください。