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
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)]) {
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;
}
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.
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. =(
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
indiquer au début du programme
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
Je suis confus...
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 incluseDites-moi s'il existe des programmes similaires pour collecter des statistiques ?
}Code de fonction pour le dessin de lignes. Merci beaucoup à tous ceux qui ont répondu.
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.
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. =(