Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1019

 
FiVik:

Je ne comprends pas. Comment ça, tu ne veux pas ?

Vous voulez le code entier ? Ok.

Le nom est en cyrillique, c'est pourquoi il est en hiéroglyphes.

C'était plus facile de tout refaire.

Dossiers :
 
Vinin:

C'était plus facile de tout refaire

Merci beaucoup d'avoir corrigé l'indicateur, mais j'aimerais savoir pourquoi mon code était si lent ?

Je ne pense pas que je serai toujours corrigée de cette manière. En outre, je dois étudier d'une manière ou d'une autre, et si je ne suis pas au courant des erreurs, je ne peux pas être sûr qu'elles ne se reproduiront pas.

 
FiVik:

Merci beaucoup d'avoir corrigé l'indicateur, mais j'aimerais savoir pourquoi mon code était si lent ?

Je ne pense pas que je serai toujours corrigée de cette manière. De plus, je dois apprendre d'une manière ou d'une autre, et si vous ne connaissez pas les erreurs, vous ne pouvez pas être sûr qu'elles ne se reproduiront pas.

L'erreur principale est de travailler avec le graphique (objet) dans la boucle. Bien que seule la dernière valeur calculée soit nécessaire.

Le premier développeur ne connaissait manifestement pas les fonctions standard et a implémenté les siennes. Il n'y a rien de mauvais dans tout cela, mais rien de bon non plus.

 
Vinin:

C'était plus facile de tout refaire

Pourquoi plus simple, juste deux réarrangements.

Juste

if(i==0)
{
   string Text =DoubleToStr(deviation,4);                   // Текст для отображения с указанием количества знаков ппосле запятой
      if(deviation<=(Averagedeviation*1.1)&&deviation>=(Averagedeviation*0.9))// Выбор цвета зависит от динамики
      Color_Day_Percent = Color_0;                             // Цвет для 0
      if(deviation>Averagedeviation*1.1)                       // Выбор цвета зависит от динамики
      Color_Day_Percent = Color_Up;                            // Цвет для +
      if(deviation<Averagedeviation*0.9)                       // Выбор цвета зависит от динамики
      Color_Day_Percent = Color_Dn; 
}

+

    
      i--;   
     }
   if(ObjectFind(Obj_Name)==-1)                             // Если объекта нет..
      {
      ObjectCreate(Obj_Name,OBJ_LABEL,0,0,0);                  // Создаём новый объект 
      ObjectSet    (Obj_Name,OBJPROP_CORNER,    1);            // Угол привязки            
      ObjectSet    (Obj_Name,OBJPROP_XDISTANCE,15);            // Координата Х
      ObjectSet    (Obj_Name,OBJPROP_YDISTANCE,15);            // Координата Y
      }
      ObjectSetText(Obj_Name,Text,10,"MS Sans Serif",Color_Day_Percent);// Текстовое описание объекта  
 
eevviill:

Pourquoi plus simple. Juste deux permutations.

Juste

+

Ma conscience ne me permet pas de donner un mauvais code.

 
Vinin:

Ma conscience ne me permet pas de donner un mauvais code.

Qu'est-ce qu'il y a de si mal à ça ?
 

Bon après-midi. Face à un problème. Besoin d'un naming dynamique qui n'a pas été répété. Vous trouverez ci-dessous un exemple de ce que j'ai fait, mais le problème est que dans une coche, on peut avoir besoin de plusieurs noms. Quel est votre conseil ?

string name=DoubleToStr(TimeCurrent(), 0);
 
abeiks:

Bon après-midi. Face à un problème. Besoin d'un naming dynamique qui n'a pas été répété. Vous trouverez ci-dessous un exemple de ce que j'ai fait, mais le problème est que dans une coche, on peut avoir besoin de plusieurs noms. Que conseillez-vous ?

TimeCurrent()+GetMicrosecondCount()

ou

int counter=1 ;

TimeCurrent()+=counter ;

 
eevviill:

TimeCurrent()+GetMicrosecondCount()

ou

int counter=1 ;

TimeCurrent()+=counter ;

Et l'autre solution ? Je travaille avec des fractales et là, les M1, M5, M15 peuvent être appariés dans le temps.

void OnTick(){
string name=DoubleToStr(TimeCurrent(), 0);
SetArrow(6, Red, name, FrakTime_M1, FrakPrice_M1, 3);
SetArrow(6, Yellow, name, FrakTime_M5, FrakPrice_M5, 3);
...
}
 
abeiks:

Et une autre solution ? Je travaille avec des fractales et là, les M1, M5, M15 peuvent se chevaucher dans le temps.

Temps[0]+Volume[0]