Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 139

 
nikelodeon:

Quelqu'un peut-il expliquer pourquoi, pendant la période d'optimisation, il apparaît des paramètres de l'EA où il n'y a pas de rentabilité. Qu'est-ce que cela signifie ? ? ???

Peu de transactions, 8 maximum. Passez-le à l'histoire.
 
Forexman77:
Pouvez-vous me dire comment trouver le maximum et le minimum absolu sur l'historique avec le testeur de stratégie ?
Maximum et minimum de quoi ?
 
paladin80:
Maximum et minimum de quoi ?

Dans l'historique de l'EURUSD, les prix maximum et minimum de la journée. Le moment de leur formation.
 
Forexman77:

Historique des prix maximum et minimum de l'EURUSD pour la journée. Le moment de leur formation.
Lire iHighest et iLowest
 
paladin80:
Lire iHighest et iLowest

La recherche par iHighest et iLowest n'est pas un problème. Comment intégrer cela dans le testeur pour qu'il donne des informations sur le temps de formation, sur un historique particulier.
 
Forexman77:

La recherche par iHighest et iLowest n'est pas un problème. Comment intégrer cela dans le testeur pour qu'il donne des informations sur le moment de la formation, sur une histoire particulière.

Vous pouvez essayer de cette façon :

 for (int i=0; i<iBars(Symbol(),PERIOD_D1); i++) {
  double HistoryMaximum=iHigh(Symbol(),PERIOD_D1,i);
  double HistoryMinimum=iLow(Symbol(),PERIOD_D1,i);
  Print("Дата ",TimeToStr(iTime(Symbol(),PERIOD_D1,i),TIME_DATE)," Максимум=",DoubleToStr(HistoryMaximum,Digits)," Минимум=",DoubleToStr(HistoryMinimum,Digits));
 }

 
Forexman77:

La recherche par iHighest et iLowest n'est pas un problème. Comment faire entrer cela dans le testeur, pour qu'il donne des informations sur le moment de la formation, sur un historique particulier.

double High_price=-1.0;
double Low_price=10000000000.0;
double Time_high_price, Time_low_price;
//+------------------------------------------------------------------+
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
int start()
  {
//----
   if (iHigh(NULL,PERIOD_M1,0)>High_price)
   {
     High_price=iHigh(NULL,PERIOD_M1,0);
     Time_high_price=iTime(NULL,PERIOD_M1,0);
   }
   
   if (iLow(NULL,PERIOD_M1,0)<Low_price)
   {
     Low_price=iLow(NULL,PERIOD_M1,0);
     Time_low_price=iTime(NULL,PERIOD_M1,0);
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+
int deinit()
  {
//----
   Print("Highest price = ",DoubleToStr(High_price,Digits)," on ",TimeToStr(Time_high_price,TIME_DATE|TIME_SECONDS));
   Print("Lowest price = ",DoubleToStr(Low_price,Digits)," on ",TimeToStr(Time_low_price,TIME_DATE|TIME_SECONDS));
//----
   return(0);
  }
 
Sepulca:

Vous pouvez essayer de cette façon :


Comment puis-je faire en sorte que les temps minimum et maximum soient édités séparément ? Ou plutôt, ce n'est pas un problème. Il y a plusieurs lignes pour chaque temps dans le carnet de bord.

Quel pourrait être le problème ? Comment faire une sortie d'une ligne par valeur. Idéalement, vous voulez une heure en chiffres qui peut être copiée dans excel et comparée par

match.


 
Veuillez m'envoyer un lien vers un article expliquant comment configurer les signaux pour MetaTrader 4.
 

Encore une fois, ma fonction de suppression des ordres en attente ne supprime pas tout. De plus, il ne supprime pas tout dans le testeur. Aidez-moi à comprendre ce qui ne va pas.

void DeletePendingOrders()
{
    int numberOfTry = 0,
        err,
        ticket;

   for (int i=OrdersTotal()-1; i>=0; i--)
   {
      if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
      if (OrderMagicNumber() != i_magic) continue;
      if (OrderSymbol() != Symbol()) continue;
      if (OrderType() > 1 && OrderType() < 6)
      {
         ticket = OrderTicket();
         numberOfTry = 0;
      
         while (numberOfTry < 3)
         {
            while (!IsTradeAllowed()) Sleep(5000);
                err = 0;

           if (OrderDelete(ticket, Red))
            {
                numberOfTry = 3;
            }
            else
            {
                err = GetLastError();
                Print("err = ", err);
            }
      
            if (err > 0)
            { 
              Print(numberOfTry," #",ticket," Error modifing order: (", err , ") ");
              Sleep(5000); RefreshRates(); numberOfTry++;
            }
         }
      }
   }
}