見出し画像

MT4/MQLソースサンプル:パラメータ設定した任意の時刻内か確認する

処理内容

パラメータで指定した時間帯かどうかを判定するコードです。
用途としては特定の時間にはエントリーしたくない、または逆に特定の時間帯しかエントリーしないなどの処理を実現するのに使います

ソースコード


パラメータ変数側、関数側のソースコードです。

//取引禁止時間帯設定
input string NoEntryStart="05:00";
input string NoEntryEnd="08:00";


//----------------------------
/特定の時間帯かを判定する
//----------------------------
int EntryTimeCheckstring stime,string etime) //いつから いつまでを渡す
  {
   int ret_flg=0;
   string startdate = TimeToStr(TimeCurrent(), TIME_DATE);
   datetime start_time = StrToTime(startdate +" " + stime);
   datetime end_time = StrToTime(startdate +" " + etime);
   if(stime < etime)
     {
      if(TimeCurrent() >= start_time && TimeCurrent() < end_time)
         ret_flg = true;
      else
         ret_flg = false;
     }
   else
     {
      if(TimeCurrent() >= end_time && TimeCurrent() < start_time)
         ret_flg = false;
      else
         ret_flg = true;
     }
   return(ret_flg);
  }


メイン内で使う関数呼び出し部分です。
オーダーロジックの直前や、オーダーロジックが発動する条件判定のif文内に"timeNoEntry==false"を追加し、if文直前に以下呼び出し文を設定しておく形です。

//呼び出し文 timeNoEntryが"true"なら指定した時間帯内
timeNoEntry=EntryTimeCheck(NoEntryStart,NoEntryEnd);

以上です。

この記事が気に入ったらサポートをしてみませんか?