//+------------------------------------------------------------------+ //| TimeTrack.mq4 | //| Copyright © 2006, Katydid Software, Inc. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, Katydid Software, Inc." #property link "http://www.metaquotes.net" //+------------------------------------------------------------------+ //| defines | //+------------------------------------------------------------------+ // #define MacrosHello "Hello, world!" // #define MacrosYear 2005 //+------------------------------------------------------------------+ //| DLL imports | //+------------------------------------------------------------------+ // #import "user32.dll" // int SendMessageA(int hWnd,int Msg,int wParam,int lParam); // #import "my_expert.dll" // int ExpertRecalculate(int wParam,int lParam); // #import //+------------------------------------------------------------------+ //| EX4 imports | //+------------------------------------------------------------------+ // #import "stdlib.ex4" // string ErrorDescription(int error_code); // #import //+------------------------------------------------------------------+ #define MAX_TIME_ITEMS 50 string timeDescriptions[MAX_TIME_ITEMS]; datetime timeStop[MAX_TIME_ITEMS]; datetime timeResume[MAX_TIME_ITEMS]; int timeItems = 0; bool isTimeToStop(datetime testTime) { for(int i = 0;i < timeItems;i++) { if ((testTime >= timeStop[i]) && (testTime <= timeResume[i])) { Alert("Execution Halted From " + TimeToStr(timeStop[i]) + " Until " + TimeToStr(timeResume[i]) + " Because " + timeDescriptions[i]); Print("Execution Halted From " + TimeToStr(timeStop[i]) + " Until " + TimeToStr(timeResume[i]) + " Because " + timeDescriptions[i]); return(true); } } return(false); } bool loadTimeArrays(int fileHandle) { string tempString; int err; while(!FileIsEnding(fileHandle)) { tempString = FileReadString(fileHandle); /* err = GetLastError(); if (err != 0) { Alert("TimeTrack Description Invalid Because:" + ErrorDescription(err)); return(false); }*/ timeDescriptions[timeItems] = tempString; tempString = FileReadString(fileHandle); /* err = GetLastError(); if (err != 0) { Alert("TimeTrack TimeStop Invalid Because:" + err); return(false); }*/ timeStop[timeItems] = StrToTime(tempString); tempString = FileReadString(fileHandle); /*err = GetLastError(); if (err != 0) { Alert("TimeTrack TimeResume Invalid Because:" + err); return(false); }*/ timeResume[timeItems] = StrToTime(tempString); timeItems++; } return(true); } bool loadTimeItems() { int fileHandle = FileOpen((Symbol() + ".csv"),FILE_CSV | FILE_READ,","); if (fileHandle == -1) { Alert("TimeTrack File Cannot Be Opened Because:" + GetLastError()); return(false); } bool isOK = loadTimeArrays(fileHandle); FileClose(fileHandle); if (!isOK) { return(false); } return(true); }