◎機能仕様
- 金曜の定時以降、または、土日はエントリーしない。
- 指定された時間以外はエントリーしない。
◎詳細仕様
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);
}