//+------------------------------------------------------------------+ //| sOptimisationDates.mq4 | //| * | //| * | //+------------------------------------------------------------------+ #property copyright "http://dmffx.com" #property link "http://dmffx.com" #property show_inputs extern int Shift = 0; // Îòñòóï â áàðàõ îò ïðàâîãî êðàÿ ãðàôèêà int Step; extern int CheckBars = 300; // Êîëè÷åñòâî áàðîâ íà êîòîðûõ ýêñïåðò "òîðãóåò" ïîñëå îïòèìèçàöèè extern int OptimizationBars = 3000; // Êîëè÷åñòâî áàðîâ íà êîòîðûõ ýêñïåðò îïòèìèçèðóåòñÿ //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start(){ Step=CheckBars; int h=FileOpen(Symbol()+"_"+Period()+"_OptDates.txt",FILE_CSV|FILE_WRITE); int pt=86400*(Time[Shift]/86400); int pbs=-Step; for(int i=pt;i>Time[Bars-1];i-=86400){ int bs=fMyBarShift2(i); if(bs-pbs>=Step){ for(int j=i-86400;j>Time[Bars-1];j-=86400){ int bs2=fMyBarShift2(j); if(bs2-bs>=CheckBars){ for(int k=i-86400;k>Time[Bars-1];k-=86400){ int bs3=fMyBarShift2(k); if(bs3-bs2>=OptimizationBars){ FileWrite(h,TimeToStr(k,TIME_DATE)+" - "+TimeToStr(j,TIME_DATE)+" ("+(bs3-bs2)+"), "+TimeToStr(j,TIME_DATE)+" - "+TimeToStr(i,TIME_DATE)+" ("+(bs2-bs)+")"); break; } } break; } } pt=i; pbs=fMyBarShift2(pt); } } FileClose(h); return(0); } int fMyBarShift2(datetime aTime){ int t1=iBarShift(NULL,0,aTime,true); if(t1==-1){ return(iBarShift(NULL,0,aTime,false)-1); } return(t1); }
Sample
Analysis
Market Information Used:
Series array that contains open time of each bar
Indicator Curves created:
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Other Features:
Uses files from the file system
It writes information to file