LoginSignup
1
1

More than 1 year has passed since last update.

【mt4/mql4】曜日によって稼働/停止を制御する

Posted at

はじめに

システムトレードプログラマのmt4/mql4のメモノートです。
初心者向けの簡単なトピックから公開していきます。
.noteでEAそのものも公開していますので良ければそちらも見てください。

目次

  1. 処理内容
  2. mql4ソースコード

処理内容

任意に指定した一定期間の最低価格を算出するコードです。
使うシーンとしては
現在値と最低値の剥離額でエントリーするかどうかを判断するとか
期間別に最低値を算出して、トレンドを解析するとか
色々なシーンで使えるコードだと思います。

ちなみに期間は時間足種の本数で指定します。何本前から何本前までという感じです。
なので、算出した時間は足種によって異なりますので注意してください。

使いたいシーンに挿入して使ってください。

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();
}

皆様の手助けになりますように。
間違いなどあればご指摘いただけると助かります。
以上です

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1