TradingViewでトレードシステムを作る ~ 第2回 移動平均線を描く

投資の始め方
記事内に広告が含まれています。

某デアゴスティーニ(隠れてない)のように少しずつトレードシステムを作っています。

ゴールは
投資苑2に書いてあるシステムをTradingViewで再現し、投資戦略を作り、バックテストを行う」
です。

前回の記事は、初回ということでインジケーターの基本の形を解説しました。

今回は移動平均線を描いていきたいと思います。

>>TradingViewのトップページへ行く

移動平均について

移動平均は一定期間の平均価格を示したもので、一番よく使われている指標のひとつです。
英語ではMoving Averageの頭文字をとってMAと表記されます。

上昇トレンドなのか下降トレンドなのかといったトレンドの確認と、
価格が割高であるか、割安であるかを判断するのに使えます。

ただし、ざっくりと移動平均といっても

  • 平均する期間はどれくらいなのか
  • 終値を平均するのか、その日の平均値を平均するのか
  • どうやって平均するのか

などをどうするかによって、まったく性格の違う移動平均線が生まれます。

作成する移動平均について

期間や平均のやり方に「正解」というものはなく、市場に合わせて機能する設定を探すものです。

期間をどうするかといったパラメーターの部分は、バックテストのところ(ずいぶん先になりそうですが)で考えようと思っています。

やり方さえわかってしまえば、自分の考えに合わせていくらでも調整できるので、
今の時点では、まずは自分の力で移動平均線を引くことができることを目標にします。

今回は、13と26の指数移動平均(EMA)を描いていきます。

日本では単純移動平均(SMA)のほうが使われている印象ですが、
海外では指数移動平均(EMA)のほうが一般的だそうです。

どのツールでも使い慣れれば問題ないと思いますが、投資苑2では、EMAが紹介されているので、EMAにします。

指数移動平均(EMA)について

単純移動平均(SMA)は過去の価格と新しい価格を平等に扱います。

それに対してEMAは新しい価格を重視する計算方法になります。

新しい価格を重視することで、SMAよりも現在の価格により反応する指標になっています。

EMAの計算式

N日間のEMAの計算式は次のようになります。

EMA(N) = 今日の価格 × 2 ÷ (N + 1) + 昨日の指数移動平均値 × (1 - 2 ÷ (N + 1)) 

13日のEMAならNに13を入れて計算すると、数値が出ます。
それを滑らかに結べば、手書きでもEMAを描くことができます。

移動平均線を実装する

ta.ema関数を使う

前の見出しで、EMAの計算式を書きました。

なので、そのままそれをプログラムとして書いても良いのですが、
TradingViewにはあらかじめEMAを使いやすいように関数が用意されています!

それがta.ema()です。

関数が用意されているものについては、積極的に関数を利用していきましょう。
わざわざ自分で書かなくても済みますし、関数を利用したほうがコードが短く、バグも少なくできます。
また、後から見直しやすく、修正もしやすいです。

関数はリファレンスで検索することができます。

ta.ema()は1番目の引数にデータ(終値など)、2番目の引数に期間を入れれば、指数移動平均を計算してくれます。

ta.ema(データ, 期間)

引数(ひきすう)は、関数に対して「この情報で計算してね!」と指定してあげる値のことです。
上のコードの場合「データ」と「期間」が引数です。

関数ごとにどういった引数が必要なのかは、リファレンスに書かれているので、気になる方は参照してみてください。

今回引く線は、終値で計算した期間が13と26のEMAなので、
次のようなコードになります。

ta.ema(close, 13)
ta.ema(close, 26)

前回も出てきましたが、closeは終値のデータです。
このままでは計算しただけで、何も描写されないので、同じく前回も使ったplot()を使います。

前回の記事
TradingViewでトレードシステムを作る ~ 第1回 テンプレート解説

plot(ta.ema(close, 13))
plot(ta.ema(close, 26))

後は先頭の2行にインジケーターのおまじないを追加すれば「チャートに追加」できるようになります。

>>TradingViewのチャートの画面

ta.ema()のtaは名前空間といってPineScriptのv5から必要になりました。
どういった関数かよりわかりやすくするための変更になります。
taはおそらくtechnical analysis(テクニカル分析)の頭文字で、テクニカル関係の関数にはtaがつきます。

出来上がったコード

//@version=5
indicator("マイ移動平均線")
plot(ta.ema(close, 13))
plot(ta.ema(close, 26))

せっかくなので、インジケーターの名前を「マイ移動平均線」にしてみました。
チャート左上に表示される名前が変わります。

作成したチャートを保存したら、Pineエディタのメニューにある「更新をチャートに反映」を押すと、適用することができます。

早速チャートを反映してみましょう!
どういう表示になるか楽しみですね!

・・・移動平均線は描けてるけど、全然思ってたのと違う!
ロウソク足と別々に表示されてるし、線の色一緒でどっちの期間の線なのかわからない!

・・・ということで、次回は、ロウソク足と移動平均線を重ねて表示させ、期間ごとに色分けしていきます。

>>TradingViewのトップページへ行く

コメント

タイトルとURLをコピーしました