Questions des débutants MQL4 MT4 MetaTrader 4 - page 86

 
smart_man:

Comment faire pour que les données de toutes les variables globales soient sauvegardées même après la fermeture du terminal en mode normal et anormal ?

La question concerne les variables déclarées au début du code comme ceci :

#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

extern double  VAR1 = 1;

double VAR2[1000];

J'ai besoin de ne pas perdre les valeurs de VAR1 et VAR2 (le tableau est rempli de données pendant le fonctionnement de l'Expert Advisor). Jusqu'à présent, la seule idée est d'écrire des données dans un fichier (global.txt) à chaque tick, puis, lorsque le terminal est lancé, de lire le fichier (global.txt) et de recréer les variables, puis de les écrire à nouveau à chaque tick. Quelles sont les autres options ?

Soit vers le global du terminal, soit vers une ressource.
 
Arseniy Barudkin:

Merci pour votre aide ! Je l'ai laissé comme ça pour l'instant, maintenant j'ai décidé de changer un peu les conditions dans lesquelles la fonction est appelée. Et en général, vous m'avez beaucoup aidé))

Vous avez raison de ne pas obtenir de réponse. Vous devez poser le problème, sinon il ne peut être résolu.

Jetons un coup d'œil au cahier des charges original :

"Arseniy Barudkin2017.05.23 19:56 RU

Salutations Messieurs ! Je ne veux pas le prendre pour une inondation, mais je ne peux pas me passer de cette fonctionnalité. Alors les gars, est-ce que quelqu'un peut m'aider avec une fonction qui passe par tous les ordres et supprime deux ordres simultanément, l'un avec le plus petit lot et un profit négatif d'exister sur le graphique, et le second avec le plus grand lot et un profit positif également d'exister. "

Que voyons-nous dans le code que vous nous avez montré ?

1. Tous les ordres ont été ouverts par le conseiller expert et ont un Magic unique.

2. Le bénéfice total des ordres que nous recherchons est positif.

3. les ordres sont opposés.

4. La taille du lot avec un profit positif est strictement plus grande que la taille du lot avec un profit négatif.

Où cela apparaît-il dans les RPT présentées ?

En outre : nous pouvons voir dans le code que vous ne savez pas comment fermer les ordres opposés, en perdant au moins le spread.

 
fxtz:

Question Puis-je écrire un programme dans Metatrader 4 pour ouvrir de 2 à 250 positions de mon choix avec un stoploss et un profit définis en un clic ? Ainsi, je n'ai pas besoin d'en ouvrir manuellement un à la fois.

Si les limitations de votre courtier sont trop importantes, le langage de programmation est conçu pour écrire des scripts automatiquement.
 
Mislaid:

Vous avez raison de ne pas obtenir de réponse. Vous devez poser le problème, sinon il ne peut être résolu.

Jetons un coup d'œil au cahier des charges original :

"Arseniy Barudkin2017.05.23 19:56 RU

Salutations Messieurs ! Je ne veux pas le prendre pour une inondation, mais je ne peux pas me passer de cette fonctionnalité. Alors les gars, est-ce que quelqu'un peut m'aider avec une fonction qui passe par tous les ordres et supprime deux ordres simultanément, l'un avec le plus petit lot et un profit négatif de l'existant sur le graphique, et le second avec le plus grand lot et un profit positif également de l'existant. "

Que voyons-nous dans le code que vous nous avez montré ?

1. Tous les ordres ont été ouverts par le conseiller expert et ont un Magic unique.

2. Le bénéfice total des ordres que nous recherchons est positif.

3. les ordres sont opposés.

4. La taille du lot avec un profit positif est strictement plus grande que la taille du lot avec un profit négatif.

Où cela apparaît-il dans les RPT présentées ?

De plus : le code montre que vous ne savez pas comment fermer les contre-ordres, en perdant au moins le spread.


Je ne discute pas de beaucoup de défauts ! Je commence juste à m'intéresser à ce type d'activité. J'écris sur ce fil pour obtenir de l'aide ou pour signaler les erreurs ! Je pense que c'est à ça que ça sert. Maintenant pour le code. 1) Peut-être, je ne comprends pas quelque chose, mais qu'est-ce qui ne va pas avec le fait que tous les ordres dans le Conseiller Expert ont une Magie unique ? 2) Cette condition et en général toute cette fonction est conçue pour fermer au moins deux ordres opposés en cas de forte charge de marge et ne pas passer dans le rouge, les 3ème et 4ème points font référence à la même chose. Et je ne sais vraiment pas comment fermer correctement les contre-ordres.
 
Arseniy Barudkin:

Je ne discute pas de beaucoup de défauts ! Je commence tout juste à travailler dans ce domaine. Et j'écris dans ce fil pour obtenir de l'aide ou signaler des erreurs ! À mon avis, c'est à cela qu'il sert. Maintenant pour le code. 1) Peut-être, je ne comprends pas quelque chose, mais qu'est-ce qui ne va pas avec le fait que tous les ordres dans le Conseiller Expert ont une Magie unique ? 2) Cette condition et en général, toute cette fonction a pour but de fermer au moins deux ordres opposés en cas de forte charge de marge et de ne pas passer dans le rouge, les 3ème et 4ème points font référence à la même chose. Je ne sais pas comment clôturer correctement les ordres opposés.
Si tu étais mon élève, je te donnerais un "bien" pour avoir soumis le code. Et, si dans le processus de communication, vous pouvez montrer que vous êtes capable de générer des idées, alors "excellent". D'après votre réponse, je vois que vous pensez correctement.
 

Bonjour ... EA écrit en MQL4, négocie des ordres de marché Achat, Vente avecTrailing... J'ai décidé d'ajouter un BuyStop et un SellStop en attente... et j'ai rencontré un problème inattendu = dès qu'unordre en attente apparaît dans la fenêtre de MT4, leTrailing cesse de fonctionner(le SL n'est pas défini, la fonctionModifier n'est pas présente)... Je ne comprends pas quel est le problème, la fonction detrailing est standard avec le backtracking de la bibliothèque, deux pp sélectionnés.... ou ce n'est pas la fonction qui compte ? Peut-être que quelqu'un a rencontré quelque chose comme ça ?

int TralFunck(int Ticket)

 {   double TralPrice=0,Punkt=0;

   chk=OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES);

for(Ticket=OrdersTotal()-1; Ticket>=0; Ticket--)  

  { if (OrderProfit()<=0)       continue;

    if (OrderType()==4)		 continue;

    if (OrderType()==5) 	 continue;

   if (OrderType()==0)  {   Punkt=(Bid-OrderOpenPrice())/Point;TralPrice=NormalizeDouble((Bid-Tral*D*Point),Digits);  }

   if (OrderType()==1)  {   Punkt=(OrderOpenPrice()-Ask)/Point;TralPrice=NormalizeDouble((Ask+Tral*D*Point),Digits);   }

   if (Punkt<MarketInfo(Symbol(),MODE_STOPLEVEL))       continue;

   if(Punkt<(Tral+TP)*D)        continue;

   if(OrderType()==0 && TralPrice<=NormalizeDouble(OrderStopLoss(),Digits))     continue;

   if(OrderType()==1 && TralPrice>=NormalizeDouble(OrderStopLoss(),Digits) && OrderStopLoss()!=0)       continue;

   ModifyOrder(OrderTicket(),OrderOpenPrice(),TralPrice,OrderTakeProfit());     continue;

   }   return(0);

 }


 
Yaroslav Nykula:

Bonjour ... EA écrit en MQL4, négocie des ordres de marché Achat, Vente avecTrailing... J'ai décidé d'ajouter un BuyStop et un SellStop en attente ... et j'ai rencontré un problème inattendu = dès qu'unordre en attente apparaît dans la fenêtre de MT4, leTrailing cesse de fonctionner(le SL n'est pas défini, la fonctionModifier n'est pas présente)... Je ne comprends pas quel est le problème, la fonction detrailing est standard avec le backtracking de la bibliothèque, deux pages sélectionnées ont été ajoutées . ... ou ce n'est pas la fonction qui compte ? Peut-être que quelqu'un a rencontré quelque chose comme ça ?



Remplacez return(0) ; par continue ; afin de ne pas sortir de la boucle. À la fin de la fonction, laissez-la telle quelle.

Utilisez le bouton SRC dans l'éditeur pour insérer le code

 
Victor Nikolaev:


Remplacez return(0) ; par continue ; afin de ne pas sortir de la boucle. À la fin de la fonction, laissez-la telle quelle.

Utilisez le bouton SRC dans l'éditeur pour insérer le code


Merci... Je l'ai réparé... Je vais tenir compte du bouton SRC dans l'éditeur, désolé ... Mais le problème reste le même,Trailing etModify ne veulent pas travailler avec les éléments suivantslescommandes en cours.
 
J'ai récemment commencé à trader sur mt4. J'ai décidé de tester ma stratégie, mais dans le testeur de stratégie, je n'ai pas la fonction de visualisation ni le bouton de pause.
 
vsmutew7:
J'ai récemment commencé à trader sur mt4. J'ai décidé de tester ma stratégie, mais mon testeur de stratégie n'a pas de fonction de visualisation ni de bouton de pause.

Il faudrait probablement une fenêtre plus large, en particulier celle qui comporte le bouton "Démarrer".

Raison: