適応的移動平均を作る。

移動平均なんてどれを使っても大差無いよ…。とは言うものの、その僅かな違いで勝敗が変わるとしたら拘らずにはいられません。^^;
期間が固定された移動平均は、値動きが早い時に追従できなくなったり、逆に期間が短いとノイズだらけになるという問題があって、それを解決するために、Kaufman's Adaptive Moving Average (KAMA) や、MESA Adaptive Moving Average(MESA 適応移動平均)、Fractal Adaptive Moving Average (FRAMA)が考案されています。ただ、どれもイマイチ使い辛いので、自分なりに理解できて使いやすそうな適応適当移動平均を作ってみました。

適応の原理は、

(1) 直前のBar の高値-安値の区間内に、直前のBarの移動平均値が含まれるように移動平均期間を短くする。
(2) 現在の移動平均期間が上記条件を満たす時は、移動平均期間を1つ長くする。

というものです。内部で計算に使う移動平均自体は、標準のSMA,EMA,SMMA,LWMA が選択可能で、その期間の長短を自動調整しているだけです。
レンジ相場が続けば、期間は、6,7,8,9,10... と徐々に長くなり、ブレイクアウトが起きると瞬時に 3,4 辺りに短くなります。
レンジ相場では移動平均が水平になるように、簡単なフィルターを入れていますが、トレードに使うにはもう少し工夫が必要だと思ってます。インジケータ/EA自作派の人向けにこちらに公開しますので、適宜カスタマイズしてみてください。おそらく、スプレッドに対してローソク足が十分に長い、30分足〜1時間足以上で検討するのが良いと思います。