Как очистить график после завершения теста советника?

 

Много раз видел следующую фишку, после завершения теста советника, график полностью очищается. Не остается ни значков сделок, ни используемых индикаторов, ничего.

Я думаю, что это делают для того чтобы не спалить какие индикаторы используются при открытии сделок.

Вопрос, как это сделать? Как полностью очистить график после завершения теста советника? 

 
MadRob:

Много раз видел следующую фишку, после завершения теста советника, график полностью очищается. Не остается ни значков сделок, ни используемых индикаторов, ничего.

Я думаю, что это делают для того чтобы не спалить какие индикаторы используются при открытии сделок.

Вопрос, как это сделать? Как полностью очистить график после завершения теста советника? 

По-разному. Можно так: 

 

// Удаление созданных графических объектов
void ClearScreen(){
   int Dimension=2*TypesTotal;
   string Name, Pref[];
   Comment("                                                       "+
           "                                                       "+
           "                                                       ");
   ArrayResize(Pref,Dimension);
   Pref[ 0]=NameTangent[0];
   Pref[ 1]=NameTangent[1];
   Pref[ 2]=NameTrend[0];
   Pref[ 3]=NameTrend[1];
   Pref[ 4]=NameBaseLevel[0];
   Pref[ 5]=NameBaseLevel[1];
   Pref[ 6]=NameTrace[0];
   Pref[ 7]=NameTrace[1];
   Pref[ 8]=NameLevel12[0];
   Pref[ 9]=NameLevel12[1];
   Pref[10]=NameLevel22[0];
   Pref[11]=NameLevel22[1];
   Pref[12]=NameBorder[0];
   Pref[13]=NameBorder[1];
   Pref[14]=NameLevel2[0];
   Pref[15]=NameLevel2[1];
   Pref[16]=NameMainLevel12[0];
   Pref[17]=NameMainLevel12[1];
   Pref[18]=NameMainLevel22[0];
   Pref[19]=NameMainLevel22[1];
   Pref[20]=NameSpiralBorder[0];
   Pref[21]=NameSpiralBorder[1];
   Pref[22]=NameMainLevel2[0];
   Pref[23]=NameMainLevel2[1];
   Pref[24]=NameAttention[0];
   Pref[25]=NameAttention[1];
   Pref[26]=NameLevel1[0];
   Pref[27]=NameLevel1[1];
   Pref[28]=NameMainLevel1[0];
   Pref[29]=NameMainLevel1[1];
   Pref[30]=NameSpiral[0];
   Pref[31]=NameSpiral[1];
   Pref[32]=NameSpan[0];
   Pref[33]=NameSpan[1];
   Pref[34]=NameMainLevel0[0];
   Pref[35]=NameMainLevel0[1];
   Pref[36]=NameMainLevel5[0];
   Pref[37]=NameMainLevel5[1];
   Pref[38]=NameMainLevel6[0];
   Pref[39]=NameMainLevel6[1];
   Pref[40]=Name123[0];
   Pref[41]=Name123[1];
   int i, k=ObjectsTotal()-1;
   while( k>=0 ){
      Name=ObjectName(k);
      i=Dimension-1;
      while( i>=0 ){
         if( StringSubstr(Name,0,StringLen(Pref[i]))==Pref[i] ){
            if( !ObjectDelete(Name) ) {
               if( !РежимОтладки ) PlaySound("alert.wav");
               Print("***** "+Name+": ошибка удаления "+GetLastError()+" при очистке экрана");
         }  }
         i--;
      }
      k--;
   }
   return;
}
 

Что-то ккой-то прям слишком блинный код для такой задачи? 

А есть еще ккие-нибудь варианты? 

 
MadRob:

Что-то ккой-то прям слишком блинный код для такой задачи? 

А есть еще ккие-нибудь варианты? 

Есть. ObjectsDeleteAll(); и HideTestIndicators();
 
AlexeyVik:
Есть. ObjectsDeleteAll(); и HideTestIndicators();
отличные варианты. Спасибо!
Причина обращения: