How to scan Symbol, laod new symbol, and pause ?

 

Hello,


This part scans some symbols

void OnTimer()
  {
   if(FirstRun)
     {
      FirstRun=false;
      Print("Changing Symbol");
      if( Minute()==00 || Minute()==30){ChartSetSymbolPeriod(0,Pair01,PERIOD_H1);}
      if( Minute()==01 || Minute()==31){ChartSetSymbolPeriod(0,Pair02,PERIOD_H1);}
      if( Minute()==02 || Minute()==32){ChartSetSymbolPeriod(0,Pair03,PERIOD_H1);}
      if( Minute()==03 || Minute()==33){ChartSetSymbolPeriod(0,Pair04,PERIOD_H1);}
      if( Minute()==04 || Minute()==34){ChartSetSymbolPeriod(0,Pair05,PERIOD_H1);}
      if( Minute()==05 || Minute()==35){ChartSetSymbolPeriod(0,Pair06,PERIOD_H1);}
      if( Minute()==06 || Minute()==36){ChartSetSymbolPeriod(0,Pair07,PERIOD_H1);}
      if( Minute()==07 || Minute()==37){ChartSetSymbolPeriod(0,Pair08,PERIOD_H1);}
      if( Minute()==08 || Minute()==38){ChartSetSymbolPeriod(0,Pair09,PERIOD_H1);}
      if( Minute()==09 || Minute()==39){ChartSetSymbolPeriod(0,Pair10,PERIOD_H1);}
      if( Minute()==10 || Minute()==40){ChartSetSymbolPeriod(0,Pair11,PERIOD_H1);}
      if( Minute()==11 || Minute()==41){ChartSetSymbolPeriod(0,Pair12,PERIOD_H1);}
      if( Minute()==12 || Minute()==42){ChartSetSymbolPeriod(0,Pair13,PERIOD_H1);}
      if( Minute()==13 || Minute()==43){ChartSetSymbolPeriod(0,Pair14,PERIOD_H1);}
      if( Minute()==14 || Minute()==44){ChartSetSymbolPeriod(0,Pair15,PERIOD_H1);}
      if( Minute()==15 || Minute()==45){ChartSetSymbolPeriod(0,Pair16,PERIOD_H1);}
      if( Minute()==16 || Minute()==46){ChartSetSymbolPeriod(0,Pair17,PERIOD_H1);}
      if( Minute()==17 || Minute()==47){ChartSetSymbolPeriod(0,Pair18,PERIOD_H1);}
      if( Minute()==18 || Minute()==48){ChartSetSymbolPeriod(0,Pair19,PERIOD_H1);}
      if( Minute()==19 || Minute()==49){ChartSetSymbolPeriod(0,Pair20,PERIOD_H1);}
      if( Minute()==20 || Minute()==50){ChartSetSymbolPeriod(0,Pair21,PERIOD_H1);}
      if( Minute()==21 || Minute()==51){ChartSetSymbolPeriod(0,Pair22,PERIOD_H1);}
      if( Minute()==22 || Minute()==52){ChartSetSymbolPeriod(0,Pair23,PERIOD_H1);}
      if( Minute()==23 || Minute()==53){ChartSetSymbolPeriod(0,Pair24,PERIOD_H1);}
      if( Minute()==24 || Minute()==54){ChartSetSymbolPeriod(0,Pair25,PERIOD_H1);}
      if( Minute()==25 || Minute()==55){ChartSetSymbolPeriod(0,Pair26,PERIOD_H1);}
      if( Minute()==26 || Minute()==56){ChartSetSymbolPeriod(0,Pair27,PERIOD_H1);}
      if( Minute()==27 || Minute()==57){ChartSetSymbolPeriod(0,Pair28,PERIOD_H1);}
     }
   else
     {
      // EventKillTimer();
      Print("Taking screenshot");
      ChartScreenShot(0,"Screenshot.png",1024,768);
      FirstRun=true;
     }  
  }

The timer is set to 20 seconds. So it takes 40 seconds to perform the change Pair + taking screenshot

=> This ugly way, (the scanner is able to scan 28 pairs twice/hour)


But it is too slow... I can get 30mins delay to get the signals.


How to include a better code that will directly by itself scan watchlist ?

How to avoid freeze while using code below when we change Symbol with the function?


The pb is that changing symbol will init once again and the loop is gone.

     int mSymboNumber = SymbolsTotal(true);
 
    
    for(int i = 28; i < mSymboNumber; i++)
    {
    
       string symbol = SymbolName(i, true);
       
        // Print("symbol = ",symbol); // great it's working
       
       
       ChartSetSymbolPeriod(0,symbol,PERIOD_H1);
       
       
            
       
       Print("symbol = ",symbol); // great it's working

       
       }



How to implement such a scanner?

Please help.



Cheers

Reason: