sOptimisationDates





//+------------------------------------------------------------------+
//|                                           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