Discussion de l'article "Présentation de MQL5 : Comment écrire un simple Expert Advisor et un indicateur personnalisé" - page 4
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
Cet ExpertAdvisor ne fonctionne pas sur MT5 build 712, du moins pas pour moi.
Il y a un message d'erreur "Cant't copy indicator buffer".
De plus, l'indicateur ne se compile pas sans avertissement,
"possible loss of data due to type conversion" à la ligne 53,
"possible use on uninitialized varaiable 'day_n'" sur la ligne 54
"possible use on uninitialized varaiable 'h_day'" à la ligne 62
"psosible use on uninitialized varaiable 'l_day'" à la ligne 63
Pouvez-vous corriger ces problèmes, s'il vous plaît ?
Sinon, c'est un bon exemple pour nous qui avons de l'expérience dans d'autres logiciels que MT5.
C'est un excellent article, pour les débutants et les personnes qui viennent de mql4, avec en prime un bon exemple de stratégie de trading.
Il y a quelques petites lacunes dans le code (vérification des erreurs pas toujours implémentée), mais l'EA fonctionne très bien si on l'utilise sur un timeframe minute comme le recommande l'auteur. Les avertissements lors de la compilation de l'indicateur ne sont que des avertissements, et ne vous empêchent pas de l'utiliser et d'utiliser l'EA.
Merci.
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 s'il y en a, ils se comptent sur les doigts d'une main.
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.
Vous avez raison de dire que les programmeurs ne sont pas de bons enseignants en général.
Mais je ne suis pas d'accord quand vous dites que MQL5 est si difficile à apprendre, surtout pour un programmeur qui a expérimenté plus de 10 langages.
Dans la pratique, si je me souviens bien, il est possible de modifier l'un des niveaux (SL ou TP) d'une position tout en laissant les autres niveaux inchangés, même dans les cas où le niveau dont la valeur reste inchangée est plus proche du prix actuel que celui spécifié dans le paramètre SYMBOL_TRADE_STOPS_LEVEL. Lors de la création de programmes, je ne recommande pas de modifier les paramètres de position (niveaux) de telle sorte que les nouveaux paramètres de position (niveaux) ne répondent pas aux exigences de contrôle de l'exactitude des données de position, car cette situation n'est pas documentée et un résultat différent pourrait être obtenu à l'avenir.
Bonjour à tous !
Tout fonctionne bien pour moi seulement quand
request.type_filling=ORDER_FILLING_IOC ;
request.type_time = ORDER_TIME_DAY;
Situation similaire avec https://www.mql5.com/ru/forum/1156/page9#comment_2359257
Est-ce une particularité de mon courtier FxPro ?
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 ?
Je ne suis pas sûr que le programme soit capable d'assigner une valeur à la variable day_n car 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 ! !!!