Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
La méthode la plus simple :
static datetime tlastbar=0 ;
datetime tnewbar=iTime(NULL,PERIOD_CURRENT,0) ;
bool isnewbar=tnewbar!=tlastbar ;
tlastbar=tnewbar ;
Voici ma version finale.
En fait, je suis un peu inquiet parce que c'est si facile.
Alain : Ce serait bien si tu publiais la bénédiction.
// -----------------------------------------------------------------------
if(MathMod(TimeCurrent(),PeriodSeconds()) < currPeriodProgress) iNewBar = true;bool NewBar(void)
{
bool iNewBar = false;
static double currPeriodProgress = 0;
currPeriodProgress = MathMod(TimeCurrent(),PeriodSeconds());
return(iNewBar);
}
// ------------------------------------------------------------------------
void OnTick()
{
if(NewBar()) PlaySound("tick.wav");
Salutations de Cologne
Willbur
Le problème est qu'elle ne peut être utilisée qu'à partir de OnTick(). A partir d'autres gestionnaires d'événements, vous n'êtes jamais sûr que TimeCurrent() est lié au symbole que vous voulez.
Et je vous suggère de ne jamais faire deux fois le même calcul :
Pour autant que je sache, le sujet est pour mql5. Votre code est uniquement pour mql4.
Je les ai utilisés dans MQL4
Que voulez-vous dire par là ? C'est juste un extrait et il peut être inclus où l'on veut, par exemple dans sa fonction NewBar(). Et c'est à mon avis la solution la plus simple, la plus rapide et la plus fiable. J'ai inclus ceci dans un dérivé de la classe CSymbolInfo pour toutes les échéances séparément et cela fonctionne parfaitement.
Il n'y a pas de fonction iTime() dans mql5.
MT5, vraiment ? Mais MQL5 n'est pas seulement MT5, c'est du moins ce que j'ai toujours compris, car MT4 utilise le compilateur MQL5. Mais en fait je ne le savais pas, j'utilise principalement MT4. Quoi qu'il en soit, merci pour l'information sur la restriction.
MQL4 iTime() est facile et compréhensible pour les traders, tout comme la plupart des autres fonctions de MQL4.
MQL5 est différent, il faut un diplôme en informatique pour le coder, et c'est ce qui rebute la plupart des gens.
Voici un exemple que j'ai rencontré la semaine dernière, lorsque j'ai voulu commencer et convertir mes EA de MT4 à MT5 et la solution que j'ai trouvée.
Non, mql4 est pour MT4, mql5 est pour MT5. Ils ont un sous-ensemble de fonctions en commun, mais ce sont deux langages différents.
Le langage est le même mais ils ont un petit sous-ensemble de fonctions qui ne sont pas communes ;) Quoi qu'il en soit, vous avez probablement raison avec cette définition. MQ a beaucoup fait pour générer de la confusion à ce niveau.
MT5, vraiment ? Mais MQL5 n'est pas seulement MT5, c'est du moins ce que j'ai toujours compris, car MT4 utilise le compilateur MQL5. Mais en fait je ne le savais pas, j'utilise principalement MT4. Quoi qu'il en soit, merci pour l'information sur la restriction.