Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Нет времени торговать самому? Подпишись на сигнал!
MadRob
10
MadRob 2016.04.26 20:29 

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

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

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

Алексей Тарабанов
7220
Алексей Тарабанов 2016.04.26 21:08  
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
10
MadRob 2016.04.27 08:36  

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

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

Alexey Viktorov
5192
Alexey Viktorov 2016.04.27 12:23  
MadRob:

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

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

Есть. ObjectsDeleteAll(); и HideTestIndicators();
MadRob
10
MadRob 2016.04.28 09:34  
AlexeyVik:
Есть. ObjectsDeleteAll(); и HideTestIndicators();
отличные варианты. Спасибо!
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий