Oui, merci, ça a aidé... Mais je veux comprendre pourquoi ObjectSet(object_name,OBJPROP_TIMEFRAMES,PERIOD_H1) ne fonctionne pas (comme il devrait) ? S'agit-il de lacunes dans la langue elle-même ?
De fait, PERIOD_H1 et OBJ_PERIOD_H1 ne sont qu'une substitution alpha d'une valeur numérique.
OBJ_PERIOD_H1 = 0x0010 (pour la construction actuelle) = 0001 0000 (binaire)
PERIOD_H1 = 60 (pour cette construction) = 0011 1100 (binaire)
Comme il est facile à remplacer, vous avez accidentellement mis 4 délais au lieu d'un - H4, H1, M30 et M15.
Et au lieu d'appeler ObjectSet(object_name,OBJPROP_TIMEFRAMES,0x0010) (ce que vous vouliez faire) vous avez appelé
datetime last_time; // глобальная переменнаяint xBost_b;
int xBost_s;
double hi=High[1];
double op=Open[1];
double cl=Close[1];
double lo=Low[1];
int Sum_xb;
int Sum_xs;
if (last_time != Time[0])
{
// Ура, новый бар!
last_time = Time[0]; // запоминаем новый барif(Close[1]>Open[1])
xBost_b=(hi-cl)*10000;
Sum_xb=Sum_xb+xBost_b;<---------не плюсует,выдает такое же число как и xBostif(Close[1]<Open[1])
xBost_s=(cl-lo)*10000;
Sum_xs=Sum_xs+xBost_s;
Comment("\n kolvo_b=",xBost_b,"\n Sum_xb=",Sum_xb,"\n kolvo_s=",xBost_s,"\n Sum_xs=",Sum_xs);
}
comment faire pour qu'il vous donne un plus à chaque fois ?
Comment puis-je utiliser des barres synthétiques(https://www.mql5.com/ru/articles/1353) pour que la fonction dans l'EA ne fonctionne que sur les prix ouverts ? Sur les barres normales, cela se faisait par le temps d'ouverture de la barre actuelle, comme ceci if (Time[0] == prevtime4) return ;
prevtime4=Time[0] ; mais les barres synthétiques sont sans temps...en théorie vous pouvez écrire ici si le bid est le prix d'ouverture, mais je ne sais pas comment le faire.
c'est-à-dire que pendant que la barre[0] actuelle est construite, la précédente est définie.
En option :
Oui, merci, ça a aidé... Mais je veux comprendre pourquoi ObjectSet(object_name,OBJPROP_TIMEFRAMES,PERIOD_H1) ne fonctionne pas (comme il devrait) ? S'agit-il de lacunes dans la langue elle-même ?
De fait, PERIOD_H1 et OBJ_PERIOD_H1 ne sont qu'une substitution alpha d'une valeur numérique.
OBJ_PERIOD_H1 = 0x0010 (pour la construction actuelle) = 0001 0000 (binaire)
PERIOD_H1 = 60 (pour cette construction) = 0011 1100 (binaire)
Comme il est facile à remplacer, vous avez accidentellement mis 4 délais au lieu d'un - H4, H1, M30 et M15.
Et au lieu d'appeler ObjectSet(object_name,OBJPROP_TIMEFRAMES,0x0010) (ce que vous vouliez faire) vous avez appelé
ObjectSet(object_name,OBJPROP_TIMEFRAMES,0x3C).
qu'est-ce que Time[0] et comment affecte-t-il 1 temps plus ? ! je suis un peu perdu...
qu'est-ce que Time[0] et comment affecte-t-il 1 temps plus ? ! je suis un peu perdu...
Time[0] est l'heure d'ouverture de la barre la plus récente (actuelle). Dès qu'une nouvelle barre arrive, elle change.
Tapez Time dans MetaEditor et appuyez sur F1 pour obtenir des détails.
Time[0] est l'heure d'ouverture de la barre la plus récente (actuelle). Dès qu'une nouvelle barre arrive, elle change.
Tapez Time dans MetaEditor et appuyez sur F1 pour obtenir des détails.
Je vais le lire maintenant ! Merci beaucoup !
Alors n'oubliez pas de regarder iTime()
comment faire pour que ça s'additionne à chaque fois ? ??
comment faire pour qu'il s'ajoute à chaque fois ? ??