Questions des débutants MQL5 MT5 MetaTrader 5 - page 1440

 
Aleksey Vyazmikin #:

Je pense que ce qu'OnTick voulait dire, c'est que

Oui, c'est vrai, c'est flou.

 
Alexey Viktorov #:

C'est pour cela que de nombreuses personnes commencent à apprendre un langage de programmation. Il s'avère donc que pour que vous puissiez tester votre idée illusoire, il faut que quelqu'un s'assoie pour écrire. Bien sûr, vous pouvez trouver un tel enthousiaste qui peut écrire pour le plaisir de s'entraîner à écrire, par ennui ou pour toute autre raison... Mais si vous acceptez et obtenez une stratégie par LS, en réalisant que cela ne fonctionnera pas, refusez d'écrire, alors vous aurez le soupçon d'avoir été trompé, d'avoir une stratégie rentable et de vous enfoncer dans les buissons. Et qui a besoin d'une telle attitude ? Si vous publiez une stratégie et que quelqu'un s'y intéresse, vous aurez de la chance. Et donc, pour votre argent, n'importe quel caprice....

Vous êtes une personne intéressante.

Vous avez donc suffisamment d'enthousiasme pour un tel indicateur) https://c.mql5.com/1/237/vgif-ru-19978.gif.

Et vous ne voulez pas insérer deux lignes de code dans le RSI pour le plaisir d'écrire, par ennui ou pour d'autres raisons...

 
FYFRX #:

Vous êtes un homme intéressant.

Vous avez donc suffisamment d'enthousiasme pour un tel indicateur) https://c.mql5.com/1/237/vgif-ru-19978.gif

Et vous ne voulez pas insérer deux lignes de code dans RSI pour le plaisir d'écrire, par ennui ou pour d'autres raisons...

Si vous savez qu'il s'agit de deux lignes, vous devriez savoir de quelles lignes il s'agit et où les insérer.

 

Bonjour et bonne humeur à tous !

Hier, il y a eu une confusion avec mon Expert Advisor. Jusqu'à hier, il avait été testé pendant près d'un mois sans aucun problème, mais vers le soir, le calcul du risque en fonction de la marge libre a soudainement cessé de fonctionner correctement et l'EA a commencé à ouvrir des positions avec le lot maximum possible. J'ai décidé d'écrire une fonction de contrôle pour autoriser le trading sous certaines conditions afin d'exclure de tels "cadeaux". Je l'ai écrite et ajoutée au code de l'EA. Je ne sais pas si cette fonction a aidé ou si quelque chose d'autre s'est produit pendant son écriture, mais le travail de l'Expert Advisor s'est normalisé.

Demande à la communauté respectée !

Veuillez examiner le code et indiquer ce qui devrait être ajouté à la fonction pour exclure de tels "cadeaux" pour le trading sur un compte réel ?

bool Check_Trading()
  {
   bool canTrade=false;
   if(!AccountInfoInteger(ACCOUNT_TRADE_ALLOWED))
     {
      Print("Ошибка разрешения торговли для текущего счёта!", GetLastError());
      canTrade=false;
     }
   if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
     {
      Print("Ошибка разрешения торговли для эксперта!", GetLastError());
      canTrade=false;
     }
   if(!AccountInfoInteger(ACCOUNT_MARGIN_MODE)==ACCOUNT_MARGIN_MODE_RETAIL_HEDGING)
     {
      Print("Ошибка при проверке режима расчёта маржи для счёта с режимом хэдж!", GetLastError());
      canTrade=false;
     }
   if(!AccountInfoDouble(ACCOUNT_MARGIN_FREE))
     {
      Print("Ошибка при получении размера свободных средств для открытия позиции!", GetLastError());
      canTrade=false;
     }
   if(!SymbolInfoInteger(_Symbol,SYMBOL_TRADE_CALC_MODE)==SYMBOL_CALC_MODE_FOREX)
     {
      Print("Ошибка способа расчета прибыли и маржи для рынка Форекс по текущему символу!", GetLastError());
      canTrade=false;
     }
   if(!SymbolInfoDouble(_Symbol,SYMBOL_MARGIN_HEDGED))
     {
      Print("Ошибка расчета маржи для позиций по текущему символу для счёта с режимом хэдж!", GetLastError());
      canTrade=false;
     }
   if(!SymbolIsSynchronized(_Symbol))
     {
      Print("Ошибка синхронизации данных по текущему символу!", GetLastError());
      canTrade=false;
     }
   canTrade=true;
   return(canTrade);
  }

Cordialement, Vladimir.

 

Je n'arrive pas à comprendre comment et de quoi il a besoin, il prend et lit un fichier du dossier Tester\Agent... dans TERMINAL_DATA_PATH, mais j'ai besoin de le lire dans TERMINAL_PATH et je ne peux pas utiliser le chemin absolu.


 
mwwm #:

Je n'arrive pas à comprendre comment et de quoi il a besoin, il prend et lit un fichier du dossier Tester\Agent... dans TERMINAL_DATA_PATH, mais j'ai besoin de le lire dans TERMINAL_PATH et je ne peux pas utiliser le chemin absolu.

Si vous devez travailler avec des fichiers pendant les tests, il est plus pratique d'utiliser un dossier commun à tous les terminaux et agents à cette fin. Pour ce faire, il suffit d'ajouter le drapeau FILE_COMMON aux opérations d'ouverture de fichiers.

Vous pouvez accéder à ce dossier pour y placer les fichiers nécessaires à partir du menu principal de MetaEditor : FichierOuvrir le dossier de données commun

 
Yuriy Bykov #:

S'il est nécessaire de travailler avec des fichiers pendant les tests, il est plus pratique d'utiliser un dossier commun à tous les terminaux et agents. Pour ce faire, il suffit d'ajouter l'indicateur FILE_COMMON dans les opérations d'ouverture de fichiers.

Vous pouvez accéder à ce dossier pour y placer les fichiers nécessaires à partir du menu principal de MetaEditor : FichierOuvrir le dossier de données commun

Merci de votre compréhension)

 
FYFRX #:

Vous êtes un homme intéressant.

Vous avez donc suffisamment d'enthousiasme pour un tel indicateur) https://c.mql5.com/1/237/vgif-ru-19978.gif

Et vous ne voulez pas insérer deux lignes de code dans RSI pour le plaisir d'écrire, par ennui ou pour d'autres raisons...

Ce n'est pas ma création. Vous souvenez-vous de la Monna Lisa dans le film "Office Romance" ?

Quant aux deux lignes, je vous l'ai expliqué.

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading.

Questions des débutants MQL5 MT5 MetaTrader 5

Alexey Viktorov, 2023.01.30 07:17 AM

C'est la raison pour laquelle de nombreuses personnes commencent à apprendre un langage de programmation. Et il s'avère que pour pouvoir tester votre idée illusoire, quelqu'un va s'asseoir pour écrire. Bien sûr, vous pouvez trouver un tel enthousiaste qui peut écrire pour le plaisir de s'entraîner à écrire, par ennui ou pour une autre raison... Mais si vous acceptez et passez à travers la stratégie LS, en réalisant que cela ne fonctionnera pas de refuser d'écrire, alors vous aurez un soupçon que vous avez été trompé, avez une stratégie rentable et dans les buissons. Et qui a besoin d'une telle attitude ? Si vous publiez une stratégie et que quelqu'un s'y intéresse, vous aurez de la chance. Mais pour votre argent, n'importe quel caprice...

Écrivez ces désirs dans n'importe quel sujet sur l'écriture de code libre et quelqu'un répondra sûrement. Probablement moi aussi. Bien que ce soit peu probable, je ne serai pas là avant 2 ou 3 jours...
 
MrBrooklin autoriser le trading sous certaines conditions afin d'exclure de tels "cadeaux". Je l'ai écrite et ajoutée au code de l'EA. Je ne sais pas si cette fonction a aidé ou si quelque chose d'autre s'est produit pendant que je l'écrivais, mais le travail de l'Expert Advisor a été normalisé.

Demande à la communauté respectée !

Veuillez examiner le code et indiquer ce qui devrait être ajouté à la fonction pour exclure de tels "cadeaux" pour le trading sur un compte réel ?

Cordialement, Vladimir.

Vladimir, comment avez-vous

   if(!AccountInfoDouble(ACCOUNT_MARGIN_FREE))

converti en type bool

MARGE_COMPTE_LIBRE

Le montant des fonds libres sur le compte dans la devise de dépôt disponible pour l'ouverture d'une position.

double


C'est ce sur quoi mon œil est tombé. Je ne veux même pas regarder le reste...

 
Alexey Viktorov #:

Vladimir, comment avez-vous converti ce type de données en un type bool ?

MARGE_COMPTE_LIBRE

Montant des fonds libres sur le compte dans la devise de dépôt disponible pour l'ouverture d'une position

double


Voici ce sur quoi je suis tombé. Je ne veux même pas regarder le reste....

Bonjour Alexey, je pensais comme ceci : si les fonds libres sur le compte dans la devise de dépôt disponible pour ouvrir une position sont suffisants, alors c'est vrai.Je me rends compte maintenant que cette valeur ne sert qu'à des fins de calcul. Je vous remercie pour votre conseil.

Cordialement, Vladimir.

Raison: