Как открыть и закрыть графики для всех инструментов.

 

#include <Charts\Chart.mqh>

void CloseAllCharts()

  {

   int totalCharts = WindowsTotal()  ;

   for(int i = totalCharts - 1; i >= 0; i--)

     {

      long chartID = ChartID(i);

      ChartClose(chartID);

     }

  }


Скрипт закрытия всех графиков. Не работает. Такое в Errors - https://i.imgur.com/XbdlncD.png

Хотя взято из документации. 

'WindowsTotal' - undeclared identifier

 
Лучше всего закрыть терминал и почистить папку одну. Тогда терминал стартанет без советников и графиков.
set Terminal=C:\Users\komandaa\AppData\Roaming\MetaQuotes\Terminal\FB4FF8BAB032FF837E76B3D23E62799B
del /f /s /q %Terminal%\MQL5\Profiles\Charts\Default\*.chr
TIMEOUT /T 30
start C:\FINAM_IIS\terminal64.lnk

Если нужно при открытом терминале. То вот пример скрипта закрывающего все графики без советников.

//+------------------------------------------------------------------+
//| Закрываем Графики без советников.                                |
//+------------------------------------------------------------------+
int CloseAllChartBezSovetnikov()
  {
   long FirstChart=ChartFirst();
   if( FirstChart == -1 )
     {
   //   Print("Ф CloseAllChartBezSovetnikov Графиков нет.");
      return 0; // Чартов нет.
     }
   int ZakritoChatClose=0; 
   int NeSmogliZakritChartov=0;
   long NextChart=FirstChart;  
   for(int i=0;i<10000;i++)
     {
   //--- Закрываем чарт если на нем нет советников.      
      if( StringLen(ChartGetString(NextChart,CHART_EXPERT_NAME)) < 3 && !ChartGetInteger(NextChart,CHART_IS_MAXIMIZED) ) 
        {
         ResetLastError();
         if( ChartClose(NextChart) ) ZakritoChatClose++;
         else
           {
            Print("Не удалось закрыть пустой график. ",GetLastError());
            NeSmogliZakritChartov++;           
           }                        
        }          
      NextChart=ChartNext(NextChart);
      if(NextChart == -1 ) break;  
     }    
   if( ZakritoChatClose > 0 || NeSmogliZakritChartov > 0 ) Print("ZakritoChatClose=",ZakritoChatClose," NeSmogliZakritChartov=",NeSmogliZakritChartov);  
   return ZakritoChatClose;       
  }  
 
int GetCharts( long &Charts[] )
{
  ArrayFree(Charts);
  
  for (long Chart = ChartFirst(); Chart != -1; Chart = ChartNext(Chart))
    Charts[ArrayResize(Charts, ArraySize(Charts) + 1) - 1] = Chart;

  return(ArraySize(Charts));
}

// Если не удалось закрыть все чарты, то основной чарт не закрывается.
bool CloseAllCharts( void )
{
  bool Res = true;

  long Charts[];
  
  for (uint i = GetCharts(Charts); (bool)i--;)
    if (Charts[i] != ChartID())
      Res |= ChartClose(Charts[i]);
      
  return(Res && ChartClose());
}

void OnStart()
{
  Alert(CloseAllCharts());
}