Discussion de l'article "Guide étape par étape pour rédiger un conseiller expert en MQL5 pour les débutants" - page 7

 
Renat:

L'utilisation de variables non initialisées (ou incomplètes) (en particulier les structures) est une erreur très courante en programmation.

Bon sang, c'est la seule ressource en langue russe où (1) on vous lave le cerveau et (2) vous en êtes reconnaissant :))

Cela fait 1,5 an que je sais que les variables doivent être initialisées ; 1,5 an que j'utilise délibérément l'expression "variable de type structure" ; mais cela fait 1,5 an que j'assigne des valeurs uniquement à des champs séparés (obligatoires) de la variable de type Mqltraderequest, parce que le manuel de référence dit que "les champs obligatoires doivent être spécifiés pour chaque opération commerciale"....

 
papaklass:
Renat, ce serait bien que vous (MQ) publiiez un article ou une série d'articles sur "le travail avec la mémoire et les variables". En général, quelle est la bonne façon de travailler avec la mémoire et les variables ? Après la disqualification de plusieurs EA lors du Championnat en raison d'une forte consommation de mémoire, ces articles seraient appropriés. Rosh a écrit dans un fil de discussion que les utilisateurs devraient commander les articles qui les intéressent, mais je n'ai pas trouvé ce fil, alors j'écris ici.
Oui, il serait intéressant de lire un article sur ce sujet. Il est très intéressant de savoir pourquoi, lors du championnat, certains participants ont eu des experts qui utilisaient beaucoup de mémoire et comment on peut éviter une telle situation. Je n'ai pas eu ce genre de problème, mais c'est le fruit du hasard. Je ne sais pas pourquoi cela ne m'arrive pas, mais j'aimerais savoir ce qu'il faut faire si cela m'arrive.
 
Tout d'abord, la consommation de mémoire est liée aux appels d'indicateurs. Avant de créer des handles de dizaines d'indicateurs sur différents symboles/tpymframes, réfléchissez à ce que vous allez payer pour cela. Je vous recommande l'article Réduire la consommation de mémoire pour les indicateurs auxiliaires et de lire l'interview de l'un des participants disqualifiés - Interview with Atsushi Yamanaka (alohafx).
Интервью с Ацуси Яманака (alohafx) - Automated Trading Championship 2011
  • championship.mql5.com
Что общего между трейдингом, скайдайвингом, фьючерсами, Гавайями, переводами и шпионами? Мы тоже не знали, пока не пообщались с дисквалифицированным участником Ацуси Яманака (alohafx). Его кредо - ''Life is Good! - Жизнь прекрасна!'', и с этим трудно не согласиться. Было интересно узнать, что расстояние между разными континентами - не помеха в общении участников нашего Чемпионата.
 

Pourquoi lorsque l'on resserre le S/L à 5 (censé être 5 pips)

J'ai ce qui suit

Dossiers :
Capture.PNG  8 kb
 
statarb:

Pourquoi lorsque l'on resserre le S/L à 5 (censé être 5 pips)

J'ai ce qui suit

Vous devez vérifier les niveaux d'arrêt(SYMBOL_TRADE_STOPS_LEVEL) pour un symbole avant d'envoyer une demande de transaction. Le SL/TP ne doit pas être plus proche que cette distance du prix actuel pour clôturer. L'exemple pour obtenir cette propriété :

int StopLevel_Distance=(int)SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL);
double SL=... // obtenir le nouveau SL par calcul
//--- vérifier le niveau actuel de Stop Loss calculé
if(SL>SymbolInfoDouble(_Symbol,SYMBOL_ASK)-StopLevel_Distance*_Point) 
   SL=SymbolInfoDouble(_Symbol,SYMBOL_ASK)-StopLevel_Distance*_Point;
//... modifier SL pour la position
 

Merci, mais ni mon SL ni mon TP ne sont exécutés. Dans le compilateur "Terminal" ils sont listés comme "0.00" ou "0.0" De toute façon il est impossible de donner un stoploss général pour tous les ordres. Et je n'ai pas encore réussi à changer les valeurs des paramètres "de l'extérieur", c'est-à-dire sans modifier le code dans l'éditeur.

Sinon, cela fonctionne très bien ! Et les commentaires sont d'une grande aide !

Merci encore,

locan BBS

.locan.BBS:

 

Bonjour Olowsam,

Merci pour ce guide étape par étape. J'ai quelques questions, et j'espère que vous pourrez m'aider.

J'ai suivi vos instructions à la lettre, mais je n'ai pas réussi à atteindre le résultat souhaité. Tout d'abord, je travaille avec la dernière version de Meta Trader 5.00, Build 6.55 (6 juin 2012). J'ai noté plusieurs différences, la première étant que le modèle de l'assistant MQL5 a des options supplémentaires, par rapport à ce que vous montrez dans vos notes. Quoi qu'il en soit, je me suis assuré que le programme est exactement comme vous l'avez décrit. Je l'ai compilé. Aucun problème. Aucune erreur. J'ai réussi à insérer les 5 points d'arrêt de débogage suggérés dans vos notes dans la sous-routine OnTick. Je clique sur le bouton vert Run et il ne se passe RIEN. L'exécution du programme n'arrive pas à ce point. Pourquoi ? Que se passe-t-il ? Si j'insère les points d'arrêt de débogage au début du sous-programme OnInit, à la ligne adzHandle=iADX9Null,0,ADX_Period) par exemple, tout va bien. Les onglets STEP de débogage s'allument et je peux exécuter ce contrôle jusqu'à la fin du sous-système OnInit. Cependant, après cela, à nouveau rien. En bref, je ne peux pas atteindre le sous-système OnTick. Que se passe-t-il et pourquoi ? S'agit-il d'un bogue connu dans le fonctionnement du système Meta Trader ? Comment puis-je résoudre ce problème et aller de l'avant ?

J'espère que ce qui précède explique le problème que j'ai rencontré, et j'espère que vous verrez ce qui se passe et que vous pourrez m'aider.

Je vous remercie.

Meilleures salutations

Kishor

 

Hey Excellent article,

J'ai tapé tout le code au fur et à mesure et je n'ai pas eu d'erreur de compilation à la fin, donc j'ai dû être bien expliqué. Un bon exercice pour une première utilisation du système metatrader5/mql5.

Il faut peut-être faire quelques optimisations pour que le graphique aille dans une direction ascendante :D

Tous mes vœux de réussite, et merci !

Mike

 

Bonjour, j'ai beaucoup aimé le style de codage de cet article, très facile à lire et à suivre,

J'ai beaucoup aimé le style de codage de cet article, très facile à lire et à suivre. J'ai juste une demande, si cela ne vous dérange pas, pourriez-vous également donner un exemple de la façon de mettre en œuvre des stops suiveurs avec cet exemple ?

Je vous remercie de votre attention.

 
Merci beaucoup pour ce merveilleux guide !