週末、あるいは、設定した時間以外はエントリーしない実装方法

スポンサーリンク

◎機能仕様

  1. 金曜の定時以降、または、土日はエントリーしない。
  2. 指定された時間以外はエントリーしない。

◎詳細仕様

1、変数を宣言する。

//エントリー開始時間
extern int EntryStartHour=18;
//エントリー終了時間(32まで設定可能)
extern int EntryEndHour=32;
//週末終了時間
extern int WeekendHour=20;
//MT4が動いているローカルPCのGMTOffset時間
extern int LocalGMTOffset = 9;
//MT4サーバのGMTOffset時間
extern int ServerGMTOffset = 2;
//ローカルPC時間
int LocalHour;

2、関数を定義する。

int CheckTradeOffTime(){

//ローカルタイムを取得
datetime LocalDateTime = TimeLocal();

//ローカルタイムから曜日を取得
int LocalWeek=TimeDayOfWeek(LocalDateTime);
if(WeekendHour==0){
//土日はトレードしない
if(LocalWeek==6 || LocalWeek==0){
return(1);
}
}
else{
//金曜の定時以降、または、土日はトレードしない
if((LocalWeek==5 && LocalHour > WeekendHour) || LocalWeek==6 || LocalWeek==0){
return(1);
}
}

//ローカルタイムから時間を取得
LocalHour=TimeHour(LocalDateTime);
if(IsTesting() == true){
//テストモードの場合、LocalHourには、ローカルタイムではなくサーバタイムが入るのでローカルタイムに変換する。
LocalHour=LocalHour + (LocalGMTOffset-ServerGMTOffset);
}
//エントリー終了時間を24時以降に設定した場合、ローカル時間を変換する。
if(LocalHour <= (EntryEndHour-24)){
LocalHour=LocalHour+24;
}

//EntryStartHour〜EntryEndHourまでしかトレードしない
if((LocalHour < EntryStartHour) || (LocalHour > EntryEndHour)){
return(1);
}

return(0);
}

3、Start関数の中に記述する。

//TRADE OFF
ret = CheckTradeOffTime();
if(ret == 1){
return(0);
}

スポンサーリンク

コメントを残す