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

 
scomoroh:
Oui, merci, tout est réglé, pas d'erreurs. Il ralentit, oui, beaucoup. Pouvez-vous nous conseiller sur la direction à prendre pour l'optimiser ou devrez-vous tout réécrire ?

Trop d'objets sont créés et supprimés à chaque tick, cela devrait être limité d'une certaine manière, par exemple, tous les objets ne sont pas supprimés, mais seulement ceux dessinés sur les 1-2 dernières barres.

Par exemple, dans un cas similaire, j'ai utilisé cette fonction au lieu deObjectsDeleteAll() dans start() :

void deletelast()
{
   for(int i=ObjectsTotal()-1;i>=0;i--)
   {
      string name=ObjectName(i);
      if(StringFind(name,"Shadows.",0)>-1)
      {
         datetime crtm=(datetime)ObjectGetInteger(0,name,OBJPROP_CREATETIME);
         if(crtm>=iTime(Symbol(),0,1))
         if(!ObjectDelete(name)) Print("ObjectDelete error# ",_LastError);
      }
   }
}
 

Pouvez-vous me dire s'il est possible de gérer l'autorisation de trading pour cet EA depuis l'EA ?

c'est-à-dire utiliser la variable MQL_TRADE_ALLOWED ?

Par exemple, si l'écart est important, il faut interdire la transaction (mais pas arrêter le conseiller expert).

Je ne sais pas comment définir cette variable. L'affectation directe de 1 ou 0 ne fonctionne pas.
 
harbor:

Pouvez-vous me dire s'il est possible de gérer l'autorisation de trading pour cet EA depuis l'EA ?

c'est-à-dire utiliser la variable MQL_TRADE_ALLOWED ?

Par exemple, si le spread est important, il faut interdire la transaction (mais pas arrêter l'EA).

Je ne sais pas comment définir cette variable. Je ne peux pas le régler directement sur 1 ou 0.

Cet état

https://www.mql5.com/ru/docs/runtime/tradepermission

Документация по MQL5: Программы MQL5 / Разрешение на торговлю
Документация по MQL5: Программы MQL5 / Разрешение на торговлю
  • www.mql5.com
Программы MQL5 / Разрешение на торговлю - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Mais il est possible de la contrôler.

Il suffit de faire un algorithme de programme.

À n'importe quel moment de l'algorithme et dans n'importe quelle condition, vous pouvez quitter le programme avec la commande

return(0);
 
Bonjour ! Je suis nouveau dans ce domaine difficile et je suis constamment confronté à de nouveaux obstacles. J'essaie d'écrire un EA, mais je ne peux pas résoudre le problème de l'horizon temporel de l'indicateur que mon EA utilise pour entrer. L'essence du problème est la suivante : Selon les conditions, j'ai besoin que sur le cadre temporel de 15 minutes, la ligne de signal de l'indicateur Stochasstic soit en dessous du niveau de 20. Exactement à 15 minutes. TF ! En fait, il s'avère que la ligne de signal traverse le niveau 20 dans d'autres cadres temporels (1 ; 5 ; 30 min.) et mon conseiller expert fonctionne faussement. J'ai besoin de filtrer tous les délais, et de ne laisser que le 15 min. Ce conseiller ne tiendrait pas compte des croisements dans d'autres périodes. J'apprécierais toute aide
 
TimBerg:
Bonjour ! Je suis nouveau dans ce domaine difficile et je rencontre constamment de nouveaux obstacles. J'essaie d'écrire un EA, mais je ne peux pas résoudre le problème de l'horizon temporel de l'indicateur que mon EA utilise pour entrer. L'essence du problème est la suivante : Selon les conditions, j'ai besoin que sur le cadre temporel de 15 minutes, la ligne de signal de l'indicateur Stochasstic soit en dessous du niveau de 20. Exactement à 15 minutes. TF ! En fait, il s'avère que la ligne de signal traverse le niveau 20 dans d'autres cadres temporels (1 ; 5 ; 30 min.) et mon conseiller expert fonctionne faussement. J'ai besoin de filtrer tous les délais, et de ne laisser que le 15 min. Cet EA n'a pas pris en compte les croisements sur d'autres TF. J'apprécierais votre aide.
Montrez un extrait de code sur la façon dont vous lisez le signal de l'indicateur dans votre EA.
 
Renat Akhtyamov:
Montrez-moi un fragment de code sur la façon dont vous lisez le signal de l'indicateur dans votre conseiller expert.
Je ne peux pas m'en souvenir de mémoire, je vous le montrerai quand je serai à la maison.
 
Renat Akhtyamov:

Mais il est possible de la contrôler.

Il suffit de faire un algorithme de programme.

À n'importe quel moment de l'algorithme et dans n'importe quelle condition, vous pouvez quitter le programme avec la commande

return(0);

alors le programme s'arrêtera de s'exécuter, mais j'ai besoin qu'il continue.

Je suppose que je devrais poser un tas de conditions.

 
harbor:

alors le programme arrêtera de s'exécuter, mais j'ai besoin qu'il continue.

Je suppose que je vais devoir faire un tas de conditions.

Que pouvons-nous continuer si le spread a augmenté ? Si vous devez continuer, qu'est-ce que la propagation a à voir avec ça ?

(c)puis interdire le trading (mais pas arrêter l'EA)= Si vous interdisez le trading, comment va-t-il continuer à fonctionner ? quel est l'intérêt ?

 
harbor:

alors le programme arrêtera de s'exécuter, mais j'ai besoin qu'il continue.

Je suppose que je vais devoir faire un tas de conditions.

C'est vrai, c'est un programme).