Discussion de l'article "Présentation de MQL5 : Comment écrire un simple Expert Advisor et un indicateur personnalisé" - page 5
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
Ce n'est pas une façon facile d'expliquer mql5 aux gens. (C'est comme avec les livres de programmation, 90% des gens n'ont aucune idée de comment commencer. Ils ouvrent ce livre par exemple sur la programmation en C et le premier "exemple facile" est long d'une page entière et écrit dans des polices minuscules. Dans toute ma vie, je n'ai lu qu'un seul bon livre de programmation qui pourrait enseigner la programmation à n'importe qui. La raison en est qu'ils sont écrits par d'excellents programmeurs, mais malheureusement de très mauvais enseignants. La programmation peut être vraiment facile et je vous le prouverai en faisant un tutoriel simple pour le langage de programmation MQL4 quand j'aurai un peu plus de temps que maintenant. Il s'adresse à tout le monde, même aux débutants. La plus grande erreur est d'enseigner aux gens les détails du langage - la plupart de leur travail devrait être ctrl+C et ctrl+v et utiliser Google pour les commandes et le plus important - garder tout TRÈS SIMPLE. Je connais plus de 10 langages de programmation (je programme depuis l'âge de 7 ans) et je suis toujours effrayé par la façon dont cet "exemple facile" sur 11kb ( !!!) est expliqué. J'aimerais savoir s'il y a un vrai débutant en programmation qui a appris MQL5 à partir de cet exemple ;D. J'en doute et si c'est le cas, ces personnes se comptent sur les doigts d'une main.
Ibrahim Melssen:
I have copy paste the Expert Advisor and try to test it with Strategytester. But it doesn't make any trades. I am new to MQL5 and programming so maybe I just made a stupid mistake. It compiled without any errors. I'd really like the strategy! Anyone ideas why it doesn't run on strategytester..?
Même chose pour les hommes, je n'arrive pas à savoir pourquoi.
Je suis novice en programmation mql5.
J'ai essayé d'apprendre à travers cet exemple, mais je suis un peu perdu avec la boucle à la fin de la construction de l'indicateur. Où exactement a-t-il assigné une valeur à la variable day_n ?
En effet, la boucle vérifie que day_n<day_t. Comment le programme peut-il connaître la valeur de day_n ?
Et comment est-elle calculée ? Supposons que rate_total = 10 et qu'il n'y a pas encore de barre calculée. Donc prev_calculated = 0
day_t=time[0] (AUJOURD'HUI ! puisqu'il compte à rebours)/PeriodSeconds... puisqu'il commence à compter à partir de 1970, supposons qu'il commence à compter à partir d'il y a 10 jours. il devrait donc donner 10, n'est-ce pas ?
Donc day_t=10. Maintenant, il vérifie si dayt > dayn. Je ne connais pas dayn, mais je sais que dayt=10. Je vais supposer que dayn est zéro, puisqu'il n'y a pas de valeur.
Alors dayn devient également 10. D'accord.
Deuxième lancer de la boucle. prev_calculated + 1= 1.
DayT=time[1] (hier)/period... rappelez-vous, on commence à compter à partir d'il y a 10 jours... mais seulement jusqu'à hier. cela devrait donner une valeur de 9, non ?
mais maintenant, dayN < dayT est faux. Il commence alors à exécuter les expressions else. D'accord. Je comprends.
Il calcule ensuite tous les bu[] et bd[]. Ok. La boucle se termine lorsque prev < total rate est faux.
Mais quand une nouvelle barre arrive, et qu'elle redevient vraie, je recommence à zéro ? Ou bien la boucle commencera à 10 et passera directement à la partie else ?
Merci ! !!!
Il faut diviser en deux parties :
1 Au premier indicateur de temps appliqué au graphique : prev_calculated =0 , i = 0, i++ jusqu'à ce que i = rates_total, il sort de la boucle (time[0] est du passé et non du présent).
2 Une nouvelle barre est démarrée : prev_calculated sera inférieur à rates_total, la condition est donc vraie, la boucle ne s'exécutera que sur cette nouvelle barre.
Bonjour @Guin,
Je ne pense pas que la réponse à votre question soit correcte. Si vous avez utilisé le code de l'exemple, vous vous retrouvez probablement avec un indicateur invisible qui n'a aucun sens et que vous ne pouvez pas voir sur le graphique. C'est parce que le code ne passe jamais par ce bloc :
if(day_n < day_t){ day_n = day_t; h_day = high[i]; l_day = low[i] }La raison en est que day_n n'est pas fixé manuellement à une valeur par défaut et que la comparaison day_n < day_t aboutira toujours à false. Selon le débogueur, la valeur de day_n lorsqu'elle n'est pas explicitement définie est "2076449103".
Il suffit de modifier la définition de day_n en quelque chose comme "" :
J'espère que cela vous aidera.
Je suis nouveau dans la programmation mql5.
J'ai essayé d'apprendre à travers cet exemple, mais je suis un peu perdu avec la boucle à la fin de la construction de l'indicateur. Où a t'il assigné une valeur à la variable day_n ?
Parce que la boucle vérifie que day_n<day_t. Comment le programme peut-il connaître la valeur de day_n ?
Excellent article,
Merci pour le partage