【MT4】任意のバーの別の時間枠上の位置を検索する


例えば「この15分足は、どの1時間足に該当するのか?」を知りたかったとします。
この位は簡単そうに見えるのですが、意外なことに用意されている関数ではこれができません。

なので、簡易的に作ってみました。

Time、iTime、iBarShiftあたりを使えば出来そうな気がしてたんですが、できないものですね・・・

もし出来たとしてもテスター実行時には使えなそうなので、いっそのこと作ることにしました。
(テスターを実行している時間枠以外ではシミュレーションできないため)

datetime MTFTime(int TimeFrame, int i){

  datetime NowOpenTime;
  datetime MTFOpenTime;

  double dMod;
  double dAns;

  NowOpenTime = Time[i];
  dAns = NowOpenTime * 1.0 / (TimeFrame * 1.0 * 60);
  dMod = dAns - MathFloor(dAns);

  if(dMod>0){
    MTFOpenTime = NowOpenTime - NormalizeDouble(dMod * TimeFrame * 60, 0);
  }else{
    MTFOpenTime = NowOpenTime;
  }

  return(MTFOpenTime);

}

 
「* 1.0 」としているのは、double型にキャストさせるためです。
この型キャストでドツボにハマってしまいました^^;

日足まではこれで対応できると思います。

もし必要であれば使って下さい~


コメントを残す