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

 
ifitstrue:

Question sur

Quel serait l'indice de la barre M1 initiale si je devais tracer une ligne de tendance sur le H1 passé ?

Et par l'heure de début et de fin de la ligne, il n'est pas clair comment la trouver.

Désolé, si je ne l'explique pas clairement.

C'est difficile pour moi.

Outre les indices, il y a aussi le temps...

 
//---
   for(int j=0;j<OrdersTotal();j++)
     {
      if(OrderSelect(j,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=MAGICZZ || OrderSymbol()!=Symbol()) continue;
   //--- check order type 
      if(OrderType()==OP_BUY)
        {
         //if(OrderProfit()>0.0)
           //{//Print("OrderProfitB()=",OrderProfit());
         if(iClose(NULL,PERIOD_CURRENT,1)-iOpen(NULL,PERIOD_CURRENT,1)>0.0)
           {if(iOpen(NULL,PERIOD_CURRENT,0)-iClose(NULL,PERIOD_CURRENT,0)>0.0)
              {Print("iCloseB()=",iClose(NULL,PERIOD_CURRENT,0));
               if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))
                  Print("OrderClose error ",GetLastError());
              }  
           }
        }
      if(OrderType()==OP_SELL)
        {
         //if(OrderProfit()>0.0)
           //{//Print("OrderProfitS()=",OrderProfit());
         if(iOpen(NULL,PERIOD_CURRENT,1)-iClose(NULL,PERIOD_CURRENT,1)>0.0)
           {if(iClose(NULL,PERIOD_CURRENT,0)-iOpen(NULL,PERIOD_CURRENT,0)>0.0)
              {Print("iCloseS()=",iClose(NULL,PERIOD_CURRENT,0));
               if(!OrderClose(OrderTicket(),OrderLots(),Ask,3,White))
                  Print("OrderClose error ",GetLastError());
              }
           }
Bonjour ! 2021.03.01_19:49 GMT+3. Je voulais améliorer les résultats de mon système de trading. Mais iOpen() et iClose() ne semblent pas fonctionner. Dans le testeur de stratégie, j'ai vérifié l'Expert Advisor, parmi 175 trades, seulement 81 d'entre eux semblent être fermés par les conditions décrites dans le code ci-dessus. Ce code ne fonctionne pas. Que pouvons-nous faire pour que cela fonctionne ? Pourquoi ne pas demander aux programmeurs de MetaQuotes ? Maintenant, je vais regarder les logs du testeur de stratégie et poster à quel point ces fonctions fonctionnent rarement. Je l'ai trouvé. 20210228.log . Heure 13:53:02.192, ouvert #155, iCloseB()=1.3434. Vous trouverez ci-joint le fichier journal. Maintenant j'espère que quelqu'un pourra me dire ce qu'il faut faire avec ces fonctions iClose() et iOpen() pour les faire fonctionner. Parce que le système commercial n'est pas assez efficace. C'est tout pour le moment. 2021.03.01_20:12 GMT+3.
Dossiers :
20210228.log  277 kb
 
Il arrive sur mt5 que sur un certain délai, il est temps qu'une nouvelle barre apparaisse (et les cotations semblent arriver), mais elle n'est toujours pas là. Qu'est-ce que c'est ? Précisions sur les prix ?
 
ifitstrue:

Question sur

Quel serait l'indice de la barre M1 initiale si je devais dessiner une ligne de tendance sur le H1 passé ?

Et par l'heure de début et de fin de la ligne, il n'est pas clair comment la trouver.

Désolé, si je ne l'explique pas clairement.

C'est difficile pour moi.

H1 a une heure d'ouverture de barre - c'est iTime()

Pour comprendre l'indice d'une barre avec ce temps sur M1 il y a iBarShift()

Il reste à connaître la barre minimale et maximale à M1 en utilisant iHighest() et iLowest()

 
Rebonjour ! 2021.03.01_20:24 GMT+3. J'ai écrit dans ce fil de discussion du forum à la page 1304 que mon testeur de la version 4 est lent. Et Vitaly Muzichenko m'a mal compris. J'écris l'heure à laquelle j'ai fini d'écrire le commentaire. Et je ne presse personne. Bien qu'il n'y ait pas de réponse à ma question, j'ai trouvé la réponse par hasard. Que dois-je faire avec le testeur de stratégie maintenant ? Je coche la case "optimiser" avant de tester le conseiller expert. Je l'optimise. Bien que je n'aie pas besoin d'optimisation pour le moment. Je l'optimise en une seconde environ. Ensuite, je décoche la case "optimiser". Je vérifie comment fonctionne le conseiller expert. Ensuite, le testeur de stratégie travaille rapidement. Il ne s'agit pas de quarante minutes ou d'une heure. Je me suis senti obligé d'écrire ceci. Peut-être que ça sera utile à quelqu'un. J'écris mon Expert Advisor dans la quatrième version du terminal parce que mon courtier a des comptes en roubles dans la version 4 du terminal et pas dans la version 5. Je ne veux pas jouer avec le dollar américain : le plafond de la dette nationale est énorme et mon courtier convertit mes dollars en roubles à un taux hors marché. c'est tout pour le moment. 20:39 GMT+3.
 
Николай Никитюк:
Bonjour ! 2021.03.01_19:49 GMT+3. Je voulais améliorer les résultats de mon système de trading. Mais il semble que les fonctions iOpen() et iClose() ne fonctionnent pas. Dans le testeur de stratégie, j'ai vérifié l'Expert Advisor, parmi 175 trades, seuls 81 d'entre eux semblent être fermés par les conditions décrites dans le code ci-dessus. Ce code ne fonctionne pas. Que pouvons-nous faire pour que cela fonctionne ? Pourquoi ne pas demander aux programmeurs de MetaQuotes ? Maintenant, je vais regarder les logs du testeur de stratégie et poster à quel point ces fonctions fonctionnent rarement. Je l'ai trouvé. 20210228.log . Heure 13:53:02.192, ouvert #155, iCloseB()=1.3434. Vous trouverez ci-joint le fichier journal. Maintenant j'espère que quelqu'un pourra me dire ce qu'il faut faire avec ces fonctions iClose() et iOpen() pour les faire fonctionner. Parce que le système commercial n'est pas assez efficace. C'est tout pour le moment. 2021.03.01_20:12 GMT+3.

Le code semble bon, mais je suis confus par le glissement... très petit, mettez plus de glissement et vérifiez...

 
Alexey Viktorov:
Grands dieux ! Est-ce que je voulais quelque chose ? J'ai demandé quelque chose ? Qui pensez-vous que je suis ?
Mon erreur, désolé. Mauvaise personne, mauvais endroit. )
 
Николай Никитюк:
Bonjour ! 2021.03.01_19:49 GMT+3. Je voulais améliorer les résultats de mon système de trading. Mais il semble que les fonctions iOpen() et iClose() ne fonctionnent pas. Dans le testeur de stratégie, j'ai vérifié l'Expert Advisor, parmi 175 trades, seuls 81 d'entre eux semblent être fermés par les conditions décrites dans le code ci-dessus. Ce code ne fonctionne pas. Que pouvons-nous faire pour que cela fonctionne ? Pourquoi ne pas demander aux programmeurs de MetaQuotes ? Maintenant, je vais regarder les logs du testeur de stratégie et poster à quel point ces fonctions fonctionnent rarement. Je l'ai trouvé. 20210228.log. Temps 13:53:02.192, ouvert #155, iCloseB()=1.3434. Vous trouverez ci-joint le fichier journal. Maintenant j'espère que quelqu'un pourra me dire ce qu'il faut faire avec ces fonctions iClose() et iOpen() pour les faire fonctionner. Parce que le système commercial n'est pas assez efficace. C'est tout pour le moment. 2021.03.01_20:12 GMT+3.

Essayez de le réécrire de cette façon, parce que c'est la même chose.

         if(Close[1]-Open[1]>0.0)
           {
            if(Close[0]-Open[0]>0.0)

Ou, c'est comme ça que je l'écris.

         if(Close[1]>Open[1])
           {
            if(Close[0]>Open[0])
              {
 
klub2003:

Bonjour à tous !

Voici le problème :
Le prix traverse la MA à la baisse ou à la hausse.
Je dois le mémoriser afin de l'utiliser plus tard pour calculer le nombre de points traversés.

C'est ainsi que je le comprends :

double FixPrice ; // variable

bool Fix=false ; // marqueur

si ( Fix==false) {

si ( Close[0] > MA_lo ) FixPrice = Close[0] ;
} // mesure jusqu'à ce que le prix traverse la MA

si ( Close[0] < MA_lo ) Fix=true ;

if ( Fix==true) FixPrice_L = FixPrice ;

Et voici le prochain problème - le prix n'est pas mémorisé !

Je vous serais très reconnaissant de votre aide!
//+------------------------------------------------------------------+
//|                                                         Test.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//---

double     FixPrice;        // переменная ТАК БУДЕТ ЗАПОМИНАТЬСЯ. ГЛОБАЛЬНАЯ ПЕРЕМЕННАЯ
bool       Fix = false;      // маркер
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(Fix == false)
     {
      if(Close[0] > MA_lo)
         FixPrice = Close[0];
     }                                                                              // делаем замер пока цена не пересечет МА
   if(Close[0] < MA_lo)
      Fix = true;
   if(Fix == true)
      FixPrice_L = FixPrice ;
//+------------------------------------------------------------------+
  }
//+------------------------------------------------------------------+

C'est ainsi que vous voulez qu'il soit mémorisé.

Mais gardez à l'esprit qu'à l'ouverture d'une bougie.

Close[0]=Open[0] 
и Close[0]=High [0] и Close[0]=Low[0]



Par conséquent, si vous avez besoin de données immédiates, en temps réel, il vaut mieux utiliser

double Bidd=NormalizeDouble(Bid,Digits); если цена сверху или
double Askk=NormalizeDouble(Askk,Digits); если цена снизу МА

double MA_lo=NormalizeDouble(MA_lo,Digits);

Il est préférable de normaliser tous les prix, qui seront comparés dans l'état, afin que vous ne soyez pas surpris :)

 
MakarFX:

Чтобы перевернуть ФИБО поменяй местами  р1 и р2

С алертом я не помогу(

MakarFX
:

Pour inverser le FIBO, échangez p1 et p2.

Je ne peux pas aider avec les alertes(

Bonjour, merci, j'ai deux solutions différentes, la vôtre est la plus simple....