「投資苑2に書いてあるシステムをTradingViewで再現し、投資戦略を作り、バックテストを行う」
これを目標に少しずつトレードシステムを作っています。
前回はバーチャートと移動平均線を重ねて表示させる方法と線の色分けをやりました。
応用すれば、すでに独自のシグナルを作ることもできるようになりました。
今回は投資苑2の続きにあるチャネル(オートエンベロープ)を作っていきます。
>>TradingViewのトップページへ行くオートエンベロープとは?
エンベロープは、移動平均を中心として上下に線を引いたものです。
上の画像ではEMA(26)に対応した線が上下同じ間隔で引かれています。
オートエンベロープは、一定期間の約95%の価格が、上の線(上側チャネルライン)と下の線(下側チャネルライン)の間に含まれるように自動で線の幅を調整するようにしたものです。
同じようなものにボリンジャーバンドがあります。
ボリンジャーバンドの2σも一定期間の約95%の価格が含まれる線です。
オートエンベロープはボリンジャーバンドよりも幅の変動が安定するように、
幅の調整頻度を少なくします。
今回は5日間に1回の割合で調整するようにします。
オートエンベロープを使う理由
幅の変動を小さくする理由は、オートエンベロープを価格目標やトレードの評価に利用するためのツールとして追加するためです。
上側のチャネルラインは、買い方(ブル)の限界を示し、
下側のチャネルラインは、売り方(ベア)の限界を示します。
EMAの近辺で仕掛け、チャネルラインで手仕舞うようにトレードするのが基本になります。
トレードの評価にも使用
トレードを終えたときに、そのトレードが良かったどうかを計る指標にチャネルを使います。
チャネル幅の何%の値幅を取ることができたかが、評価方法です。
投資苑にはチャネル幅の30%をとることができればA評価のトレードであると書いてあります。
オートエンベロープの計算方法について
オートエンベロープの計算式は一回で書くと複雑です。
ざっくりと書くと次のようになります。
上側のチャネル = EMA + EMA × チャネル係数
下側のチャネル = EMA - EMA × チャネル係数
チャネル係数とは何かという話になりますが、価格の約95%を含むような係数です。
どれくらいの期間の価格の95%を含むようにするかを書いていませんでしたが、
投資苑の中には日足の場合、最低3か月以上という記述があったので、過去3か月の価格に合わせるように計算します。
この係数の計算には標準偏差を使います。
チャネル係数の計算
実はチャネル係数の計算式について、投資苑と投資苑2には書いていません。
2標準偏差チャネルを計算すれば良いということは書いてあったので、標準偏差を計算していきます。

これが標準偏差の計算式です(め、めまいが)。
nはデータの個数、つまり営業日数です。
約3か月分の日足バーにしたいので、おおよその営業日を計算します。
90日÷7(1週間)×5(平日の日数)=64営業日
n=64とします。
xiはそれぞれの価格です。
どの価格を入れるかという問題があります。
終値で計算すれば楽なのですが、
せっかく作るので、高値と安値で中心からの絶対値が大きいほうを合計していくようにします。
xの上に棒がついている文字(エックスバー)は平均を表します。
平均値は26日EMAを使用します。
あとは計算式にそって、合計して平方根を計算すれば標準偏差が出てきます。
問題は、この計算式をプログラムに変換しないといけないところですね。
プログラムに落とし込む前に変数を定義
まずは価格からやっていこうと思うのですが、今後のことも踏まえて今までできたコードを少し変更します。
//@version=5
indicator("マイ移動平均線", overlay=true)
long_ema = ta.ema(close, 26)
plot(ta.ema(close, 13), color = color.red)
plot(long_ema, color = color.blue)
少し長くなってきたので、次回に続きます。
次回は今までと比べるとプログラムの量が増えてきます。
コメント