Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 581

 
Ihor Herasko:

Si vous voulez prendre une bougie M30 qui a fermé en même temps que la dernière bougie H1 fermée, il peut s'agir d'une bougie dont l'indice n'est pas seulement 1, mais aussi 2. De plus, il n'est pas clair pourquoi le prix de clôture de M30 est pris, si c'est le même prix de clôture pour la bougie H1 précédente. C'est-à-dire que dans ce cas, il est inutile de demander le prix de clôture d'une autre TF, car il est identique au prix de clôture de la TF actuelle.

Ce que nous devons savoir, c'est le prix de clôture de M30 à l'intérieur de H1.

J'ai trouvé la raison, le contrôle de l'ouverture du bar. Merci.

 

Comment dans l'indicateur comparer, dans la boucle, le prix High[i+1] +/-10*Point avec les fractales inférieures?

si égalité trouvée, mettre la flèche Buf_o[i+1]= High[i+1] ;.

 

Bonjour !

Je veux écrire un code de stratégie binaire simple pour le tester avec le testeur MetaTrader 4. Je sais que le testeur intégré ne teste pas complètement les stratégies binaires, mais j'ai juste besoin de connaître le pourcentage de transactions rentables pendant la période de test. Je ne parviens pas à définir le délai d'expiration d'une transaction. J'utilise l'opérateur OrderSend :

OrderSend(Symbol(),OP_BUY,1,Ask,10,0,0, "5",15167,Expiration,clrGreen) ;

Tout fonctionne bien lorsqu'on effectue des transactions automatisées, mais les conditions du courtier précisent la période d'expiration dans le commentaire de la position. Dans ce cas, mon commentaire est "5". C'est cinq minutes. Toutefois, le testeur ne considère évidemment pas ce commentaire comme une indication de la période d'expiration. Le testeur ne réagit pas du tout aux différentes valeurs du paramètre Expiration. Il ouvre d'abord des transactions en suivant les signaux de la stratégie, puis ferme toutes les transactions ouvertes au cours de la période de test au moment de l'expiration de celle-ci. Par conséquent, le résultat des tests est absolument incorrect.

Comment spécifier une période d'expiration compréhensible pour le testeur ? Je suis encore en train de maîtriser l'"ancienne" version du code.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
kirson-7:

Comment puis-je fixer une période d'expiration que le testeur peut comprendre ?

Fermez la position si l'heure actuelle = heure d'ouverture plus 5 minutes ou à l'ouverture d'une nouvelle barre si le cadre temporel est M5.
 

Comment faire pour queHigh[i+1] +/-10*Point ne soit pas exactement égal au prix de la fractale ?

 {
//---
   if(rates_total<2) return(0);

   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      limit=rates_total-2;
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }
   for(int i=limit; i>=0; i--)
     {
      // BufferUP[i+1]=EMPTY_VALUE;
      
      //
      for(int y=i+2;y<=i+100;y++)
        {
         if(low[i+1]==iFractals(Symbol(),0,MODE_HIGH,y))estb=true;
        }
      if(estb)
        {
         BufferUP[i+1]=low[i+1]-distance*Point;//НЕПРАВИЛЬНО СТАВИТ СТРЕЛКУ
        }
      estb=0;
      //==//
      for(int y=i+2;y<=i+100;y++)
        {
         if(high[i+1]==iFractals(Symbol(),0,MODE_LOWER,y))ests=true;
        }
      if(ests)
        {
         BufferDN[i+1]=high[i+1]+distance*Point;//ПРАВИЛЬНО СТАВИТ СТРЕЛКУ
        }
      ests=0;

      //Comment("");
     }
   return(rates_total);
  }
 
bij:

Comment faire pour queHigh[i+1] +/-10*Point ne soit pas exactement égal au prix de la fractale ?

La différence de valeurs est supérieure à 10*Point, mais nous devons déterminer si la différence sera positive ou négative.
 
bij:
Fermez la position si le temps actuel = le temps d'ouverture de la position plus 5 minutes ou à l'ouverture d'une nouvelle barre, si le cadre temporel est M5.
Et pourquoi la période d'expiration standard dans la liste des paramètres de l'opérateur OrderSend ne peut-elle pas fonctionner ? Il est marqué comme Expiration dans mon exemple.
 
kirson-7:
Pourquoi la période d'expiration standard dans la liste des paramètres de l'opérateur OrderSend ne peut-elle pas fonctionner ? Il est marqué comme Expiration dans mon exemple.
Ceci est pour les ordres en cours
 
Aidez-moi à écrire une fonction : fermer les ordres d'un grand lot vers un petit (string Symbol, int type, bool hand orders, int Magic).
C'est-à-dire la sélection des symboles, le type, la prise en compte ou non des ordres manuels, le nombre magique.


 
Bonjour à tous : Puis-je prescrire dans une fonction définie par l'utilisateur l'ouverture d'une position(par exemple acheter sur le marché), et appeler cette fonction lorsqu'il y a différents signaux pour acheter ? Par exemple, le MACD a été adressé à cette fonction - position ouverte, le signal _Muwings a été adressé à cette fonction - achat à nouveau.... etc. Ou dans chaque cas spécifique, lorsque le signal est élaboré, il est nécessaire d'écrire OrderSand(Symbol,OP_BAI, etc.) ;