NRTR_ATR_STOP へのAlert 追加とMTF化。

ネット散策していて見つけた動画がこれです。fai-alpha というEAのバックテストの様子らしいですが、私とは一切関係無いので念のため。。^^;
ソースコードが非公開のEAでは、バックテストの結果なんていくらでも操作できてしまうので、資産増加グラフだけでは意味が無いと思うんですけどね..。
例えば、適当に勝ったり負けたりするEAのコードが手に入ったら、1回バックテストしてみて、負けが発生した時刻を調べて、その時刻を売買禁止にするフィルターを追加してしまえば、誰でもバックテストでは無敗のEAができてしまいます。特に SLが大きく勝率の高いEAなら、滅多に負けないので、たまに大負けするところだけでもフィルターで潰してしまえば、いかにも良好そうなEAが出来上がります。


(この種のトリックを見破るのは簡単で、2009年のヒストリカルデータをCSVで取得して、その日付を2001に一括置換してから、MT4 に取り込んで 2001年のバックテストを行えば良いのです。もちろん、過去の重大指標発表時刻を考慮したEAでは話は別ですけど、どんな基準で指標時刻を選んで避けているのかと一悶着…




話を表題に戻しまして、、今日は TASK さんの依頼で、 NRTR_ATR_STOP にアラートをつけてMTF化してみます。



アラートの追加は、直前のバッファの値とその前のバッファの値を調べるだけなので、NRTR_ATR_STOP.mq4 の場合は、(Up[2]==0 && Up[1]!=0 )のような条件判定でアラート追加ができます。追加したコードが、NRTR_ATR_STOP_Alert.mq4 で、特別なことは何もしていません。


次に、MTF化ですが、MTF化については、Forex-TSDのスレッド Multi Timeframe Indicators が参考になります。http://www.forex-tsd.com/224530-post2319.html の#MTF Set Updated.zip をダウンロードすれば、#MTF_BollinderBands.mq4 #MTF_CCI.mq4 #MTF_Juice.mq4 #MTF_LBP.mq4 #MTF_MACD.mq4 #MTF_MovingAverage.mq4 #MTF_Price.mq4 #MTF_PSar.mq4 #MTF_RSI.mq4 #MTF_Stochastic.mq4 が一度に手に入るのでお得です。


これらのコードを見ると、Keris2112氏の考案したもっとも簡単なMTF化のやり方がわかりますので、それに従ってMTF化したのが、NRTR_ATR_STOP_MTF.mq4 です。
注意すべきは、コード内に

ExtMapBuffer1[i]=iCustom(NULL,TimeFrame,"NRTR_ATR_STOP",ATR,Coeficient,0,y);
ExtMapBuffer2[i]=iCustom(NULL,TimeFrame,"NRTR_ATR_STOP",ATR,Coeficient,1,y); 

という記述がある部分です。これは、内部で NRTR_ATR_STOP.ex4 を呼び出しているので、必ず、MTF化前の正しい名前のインジケータが必要です。
適当にダウンロードした #MTF_系のインジケータが上手く表示されない場合は、この部分を調べると良いかもしれません。




MTF化の前後でインジケータを比較したのが下図で、1分足に表示されたMTF(M5)のインジケータは 5分足の元のインジケータと一致して見えます。



これを拡大してみると、下図のようになり、5分足では、ローソク足1本だけで重なっていた赤と青のラインが、1分足では5分間重なっています。




重なるのは 当然のことなのですが、Alert を追加するときは、どのタイミングで出すことが出来るのか? よく考えないと上手く機能しません。

今回の場合は上図のような関係になるので、赤ラインの終端を検出して Alert を出すようにしました。ダウンロードはNRTR_ATR_STOP_Alert_MTF.mq4 からどうぞ。MTF化してAlert を付けようと考えている人は参考に(?)してみてください。




追記:
インジケータのMTF化には、00(ダブル・オー)氏謹製の 00-MTFizer_v102.mq4 も便利です。こちらはかなり汎用性のある作り方をされていて、#property や extern で定義された部分の書換えだけでMTF化が出来る優れものです。
プログラミングの初心者か、MTFizerをカスタマイズして使えるレベルの人にはお勧めです。



追記2:
Keris2112氏と00氏の方法では、MTF化インジケータと元のインジケータの2つセットで動作するようになっていますが、NRTR_Rosh_v2eAlert_mtf.mq4は、iCustom で自分自身を呼び出す(!)ことで、1つのファイルで動いています。
有名な VQ.mq4 では、計算式を工夫することで、iCustomを使うことなくMTF対応をしています。自作のインジケータをMTF化する場合には、これらも参考にすると良いかもです。(MTF化の方法にこだわったところで、トレードには全く関係が無いのですが...^^;;;