まずボラを使ったストラテジーとして大変動があった後にある程度の戻りを確認し、かつ、移動平均線に到達するかどうか確認してから、売りか買いの判断を行うというストラテジーを書いてバックテストしてみます。
目次
ストラテジーの概要 絶対値(AbsValue)を使う
- 現在の終値と過去10本の終値の最安値との差が過去10本で終値の最高値と最安値の幅の3倍に達していない、あるいは達している
- 現在の終値が5日移動平均線より上にある、あるいは下にある
今回新しく学んだコーディング
AbsValue は絶対値を返します。
バックテストの結果
銘柄はTOPIXインデックス日足、初期資金100万円、同方向に1ポジション制限、ビルトインストップ、トレーリングによる利確を行いました。
プロフィットファクターは1より大きく、損益率もいいです。ただ勝率は約36%と低く、最大連続負けが12ですので継続運用がきついことが予想されます。しかも初期資金からの最大ドローダウンが35000円なのに対し総損益額が9400円とリスクとリターンのバランスがいかがなものかとも思います。期間で見てみると2017年に入ってからの調子が悪いことが分かります。
ストラテジーの概要 株価の10%以上の下落後、5日線を陽線で超えてきたら買いエントリー
- 過去10足の終値の最大と最低の幅が現在株価の20%以上あった
- 現在の終値が5日移動平均線より上に抜けた
- 以上の条件が満たされたら買いエントリー
バックテストの結果
PF>1,ドローダウン0、過去2年間2回しか取引きしない。勝率100%でした。
ストラテジーの概要 トレンド転換点のサインとしてボラを利用する TrueRange と AvgTrueRange 関数
上昇トレンドの最後は大きな陽線がついたりしてトレンド転換のサインとなったりします。では、ボラティリティの表現に過去足の最大幅の平均値(AvgTrueRange/ATR)と現在足のボラ(TrueRange)を使った表現をしたらどうなるでしょう?
シグナル条件です。
- 過去5本の1本の最大幅の平均より現在足の最大幅が大きい
- 過去20日間トレンドが上昇してきた
- 上記の条件がそろったときに売り
今回新たに学んだコーディング
TrueRange は現在足の最大幅を返します。
AvgTrueRange は期間の最大幅の平均を返します。
バックテストの結果
PF>1、損益率良好、年間取引数約30回、最大ドローダウン61000円でした。最大ドローダウンが厳しいことになっています。