[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 612

 
Fox_RM:

Il s'est avéré que ce n'était pas si simple. J'ai ajouté un numéro au nom, 3 (par exemple) lignes sont créées, mais elles ne se déplacent nulle part :( Il s'avère que je dois faire une boucle fermée et assigner un nouveau numéro à chaque fois, mais ici la situation est identique avec l'assignation de

nom de la ligne de temps. C'est juste horrible...


Regardez cet indicateur
Dossiers :
_linestat.mq4  6 kb
 
alsu:
indiquer au début du programme
Merci beaucoup.
 
void flatline(string labebe,datetime time1,double price1,datetime time2,double price2,color colir, int W)
  {
     ObjectCreate(labebe, OBJ_TREND, 0,time1,price1,time2,price2);
   ObjectSet(labebe, OBJPROP_COLOR, colir);
   ObjectSet(labebe, OBJPROP_STYLE,0);
   ObjectSet(labebe, OBJPROP_RAY,0);
   ObjectSet(labebe, OBJPROP_WIDTH,W);   
   ObjectSet(labebe, OBJPROP_BACK, true);
   }
Code de fonction pour le dessin de lignes. Merci beaucoup à tous ceux qui ont répondu.
 

Les gars, aidez-moi,

Le problème est le suivant : il existe un indicateur graphique personnalisé, mais le problème est le suivant : à partir d'un certain moment, disons l'heure actuelle, il y a un risque d'erreur.

if ((k>=15 && k<16) || (Hour()>=15)) // где k- по прошлым дням (для рисования не только в одном дне, но и по всей истоии)

Il devrait dessiner un extremum lors d'une ancienne session de trading (c'est pratique pour déterminer où se trouve le trade maintenant), mais le problème est que l'indicateur ne dessine pas le graphique, seulement si vous changez de cadre temporel dans les deux sens ...

Voici un morceau de code de dessin

if (Close[iHighest(NULL,0,MODE_CLOSE,8*p_t,i-15*p_t)]> Open[iHighest(NULL,0,MODE_OPEN,8*p_t,i-15*p_t)])
{

max_eu=Close[iHighest(NULL,0,MODE_CLOSE,8*p_t,i-15*p_t)];
Name="max2";
ObjectCreate(Name,OBJ_TREND,0,Time[iHighest(NULL,0,MODE_OPEN,8*p_t,i-15*p_t)],max_eu,Time[i]+l,max_eu);
ObjectSet(Name, OBJPROP_COLOR, Navy);
ObjectSet(Name,OBJPROP_RAY,false);
ObjectSet(Name, OBJPROP_TIMEFRAMES, OBJ_PERIOD_H1 | OBJ_PERIOD_M30| OBJ_PERIOD_M15 | OBJ_PERIOD_M5);
ObjectSet(Name, OBJPROP_WIDTH, 1);

Label="надпись2";
ObjectCreate(Label,OBJ_TEXT,0,Time[i]+l,max_eu);
ObjectSetText(Label,"Max Европа ", 8, "Arial", Navy);
ObjectSet(Label, OBJPROP_TIMEFRAMES, OBJ_PERIOD_H1 | OBJ_PERIOD_M30| OBJ_PERIOD_M15 | OBJ_PERIOD_M5);

WindowRedraw();
}

Je suis confus...

 

DOCTORS:

fait maison

c'est juste


Je suis confus...

Pour démêler, vous pouvez mettre Print() après if(...) et voir si la condition inclut même
 
alsu:
c'est la bonne chose à faire


Pour démêler, vous pouvez mettre Print() après if(...) et voir si la condition est même incluse
Il y a plusieurs conditions... C'est l'une des options. Je vais mettre l'empreinte...
 

Dites-moi s'il existe des programmes similaires pour collecter des statistiques ?

}
 
Fox_RM:
Code de fonction pour le dessin de lignes. Merci beaucoup à tous ceux qui ont répondu.
void flatline(string nm,datetime t1,double p1,datetime t2,double p2,color clr, int W){
   ObjectDelete(nm);// это не обязательно.
   ObjectCreate(nm, OBJ_TREND, 0,0,0,0,0);
   ObjectSet(nm, OBJPROP_PRICE1,p1);
   ObjectSet(nm, OBJPROP_TIME1,t1);
   ObjectSet(nm, OBJPROP_PRICE2,p2);
   ObjectSet(nm, OBJPROP_TIME2,t2);
   ObjectSet(nm, OBJPROP_COLOR, clr);
   ObjectSet(nm, OBJPROP_STYLE,0);
   ObjectSet(nm, OBJPROP_RAY,false);
   ObjectSet(nm, OBJPROP_WIDTH,W);   
   ObjectSet(nm, OBJPROP_BACK, true);
   WindowRedraw();// если обновлять на каждом тике, лучше поставить в самом конце старта
   return;   
}
 

Alert ("nombre de barres haussières = ", vverh, " - ", vverh/(Konec/100), " % " ) ;


Pouvez-vous me dire pourquoi j'obtiens un nombre entier sans virgule dans l'expression vverh/(Konec/100) ? Après la virgule, les chiffres devraient aller jusqu'au quatrième chiffre, mais il s'agit simplement d'un nombre entier. =(

Alert ("nombre de barres de zéro = ", nul, " - ", DoubleToStr(nul/(Konec/100),2), " % " ) ; cette expression ne fonctionne pas non plus.

 
ChAnton:

Alert ("nombre de barres haussières = ", vverh, " - ", vverh/(Konec/100), " % " ) ;


Pouvez-vous me dire pourquoi j'obtiens un nombre entier sans virgule dans l'expression vverh/(Konec/100) ? Après le point décimal, les chiffres devraient aller jusqu'au quatrième chiffre, mais il s'agit d'un nombre entier. =(

caché quelque part