![見出し画像](https://assets.st-note.com/production/uploads/images/79629469/rectangle_large_type_2_eaf5b1f0be890d862109c916d619be65.png?width=1200)
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);
以上です。