はじめに
システムトレードプログラマのmt4/mql4のメモノートです。
初心者向けの簡単なトピックから公開していきます。
.noteでEAそのものも公開していますので良ければそちらも見てください。
目次
処理内容
任意に指定した一定期間の最低価格を算出するコードです。
使うシーンとしては
現在値と最低値の剥離額でエントリーするかどうかを判断するとか
期間別に最低値を算出して、トレンドを解析するとか
色々なシーンで使えるコードだと思います。
ちなみに期間は時間足種の本数で指定します。何本前から何本前までという感じです。
なので、算出した時間は足種によって異なりますので注意してください。
使いたいシーンに挿入して使ってください。
mql4ソースコード
こちらがソースコードです。
変数・関数側
呼び出し側の前に記述されている必要があります。
test.mq4
//稼働対象曜日 true:可能、false-:不可
input bool Entry_Mon=true;
input bool Entry_Tue=true;
input bool Entry_Wed=true;
input bool Entry_Thu=true;
input bool Entry_Fri=true;
input bool Entry_Sat=false;
input bool Entry_Sun=false;
//稼働対象曜日判定
int EntryWeekdayRunCheck()
{
int ret=-1;
int weekday = DayOfWeek();
if(Entry_Mon==true && weekday == 1)
ret = 1;
if(Entry_Tue==true && weekday == 2)
ret = 1;
if(Entry_Wed==true && weekday == 3)
ret = 1;
if(Entry_Thu==true && weekday == 4)
ret = 1;
if(Entry_Fri==true && weekday == 5)
ret = 1;
if(Entry_Sat==true && weekday == 6)
ret = 1;
if(Entry_Sun==true && weekday == 0)
ret = 1;
return(ret);//-1は禁止、1は許可
}
呼び出し側
呼び出したいタイミングに合わせてOnTick()、OnInit()とかOnTimer()の中で記述してみてください。
↓こちらは設定した曜日に対して稼働停止するコードサンプルです。
test.mq4
if(-1 == EntryWeekdayRunCheck())
{
void ExpertRemove();
}
皆様の手助けになりますように。
間違いなどあればご指摘いただけると助かります。
以上です