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

 

Bonjour, ne me grondez pas trop s'il vous plaît, je suis juste en train d'apprendre le langage et la POO en général.

Pouvez-vous me dire pourquoi, lorsque j'essaie de multiplier la formule entière assignée à ExtATRBuffer[i]=.... Lorsque je multiplie par 1, la valeur réelle apparaît sur le graphique, mais lorsque je multiplie par une fraction de 0,5, certaines valeurs s'écartent de la ligne du zéro.

Que dois-je faire pour éviter les erreurs ?

J'ai besoin d'obtenir la valeur réelle du TAEG multipliée par une constante variable ...

merci à tous ceux qui ont répondu ! !!

//+------------------------------------------------------------------+
//| Average True Range                                               |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int i,limit;
//--- check for bars count
   if(rates_total<=ExtPeriodATR)
      return(0); // not enough bars for calculation
//--- preliminary calculations
   if(prev_calculated==0)
     {
      ExtTRBuffer[0]=0.0;
      ExtATRBuffer[0]=0.0;
      //--- filling out the array of True Range values for each period
      for(i=1;i<rates_total && !IsStopped();i++)
         ExtTRBuffer[i]=MathMax(high[i],close[i-1])-MathMin(low[i],close[i-1]);
      //--- first AtrPeriod values of the indicator are not calculated
      double firstValue=0.0;
      for(i=1;i<=ExtPeriodATR;i++)
        {
         ExtATRBuffer[i]=0.0;
         firstValue+=ExtTRBuffer[i];
        }
      //--- calculating the first value of the indicator
      firstValue/=ExtPeriodATR;
      ExtATRBuffer[ExtPeriodATR]=firstValue;
      limit=ExtPeriodATR+1;
     }
   else limit=prev_calculated-1;
//--- the main loop of calculations
   for(i=limit;i<rates_total && !IsStopped();i++)
     {
      ExtTRBuffer[i]=MathMax(high[i],close[i-1])-MathMin(low[i],close[i-1]);
      ExtATRBuffer[i]=ExtATRBuffer[i-1]+(ExtTRBuffer[i]-ExtTRBuffer[i-ExtPeriodATR])/ExtPeriodATR;

   // ExtATRBuffer[i]=(ExtATRBuffer[i-1]+(ExtTRBuffer[i]-ExtTRBuffer[i-ExtPeriodATR])/ExtPeriodA)*4;
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Merci à tous ! Aide à la compréhension : erreur de test : 2019.12.04 14:14:40.097 TestGenerator : unmatched data error (la valeur haute 0.71570 à 2019.01.21 23:30 n'est pas atteinte depuis la période la plus basse, le prix haut 0.71560 ne correspond pas)
 
Ilzadjan Akhmedov:
Merci à tous ! Aide à la compréhension : erreur de test : 2019.12.04 14:14:40.097 TestGenerator : unmatched data error (la valeur haute 0.71570 à 2019.01.21 23:30 n'est pas atteinte à partir de la période la plus basse, le prix haut 0.71560 ne correspond pas)

Charger l'historique de l'instrument en cours de test (F2)

 
Artyom Trishkin:

Charger l'historique de l'instrument en cours de test (F2)

Merci de votre attention ! Chargé mais maintenant le résumé est : 2019.12.04 16 : 00 : 20.408 TestGenerator : Erreur de données incohérentes (limite de volume 409 dépassée le 2016.03.30 23 : 45)

Dossiers :
 
Ilzadjan Akhmedov:

Merci de votre attention ! Téléchargé mais maintenant le résumé est : 2019.12.04 16 : 00 : 20.408 TestGenerator : erreur de données incohérentes (limite de volume 409 dépassée le 2016.03.30 23 : 45)

Pour chacune des périodes, téléchargez l'historique.

 
Artyom Trishkin:

Pour chacune des périodes, téléchargez l'historique.

Ce conseiller de 600 $, a fait un test encore ne traite pas. s'il vous plaît voir ce qui peut être fait. Je vous le donne si vous résolvez le problème, veuillez envoyer les paramètres !

Dossiers :
 
Artyom Trishkin:

Essayer d'ouvrir un fichier qui n'existe pas en utilisant FileOpen()...

J'ai lu à ce sujet. Le seul indice peut résider dans cette phrase"Le nom du fichier à ouvrir, peut contenir des sous-dossiers. Si le fichier est ouvert en écriture, les sous-dossiers spécifiés seront créés s'il n'y en a pas. "Mais même ici il est dit quelques sous-dossiers, peut-être que c'est une référence au fait que dans ce répertoire dans ces sous-dossiers le fichier sera créé, parce qu'il n'est pas écrit normalement. Vous pouvez écrire normalement, s'il n'y a pas de fichier, il sera créé. Ce n'est pas comme si j'étais un scientifique pour deviner tous les détails. Je ne comprends même pas le fonctionnement de nombreuses fonctions, car il n'y a pas de code de fonction ni de description appropriée. Vous savez, ils vous jettent un certain os, et vous comprenez par vous-même si c'est comestible ou non.

 
Bonjour, aidez-moi à résoudre ce problème. j'ai connecté les signaux, un mois tout allait bien, à la fin du mois mes trades n'ont pas été copiés correctement sur les signaux du fournisseur, maintenant la taille du lot n'est pas respectée. quel pourrait être le problème avec la taille du lot, et pourquoi les signaux n'ont pas fonctionné correctement, où puis-je voir ce qu'il faut cliquer ?
 
Seric29:

J'ai lu à ce sujet. Le seul indice peut résider dans cette phrase: "Le nom du fichier à ouvrir, peut contenir des sous-dossiers. Si le fichier est ouvert en écriture, les sous-dossiers spécifiés seront créés s'il n'y en a pas. "Mais même ici il est dit quelques sous-dossiers, peut-être que c'est une référence au fait que dans ce répertoire dans ces sous-dossiers le fichier sera créé, parce qu'il n'est pas écrit normalement. Vous pouvez écrire normalement, s'il n'y a pas de fichier, il sera créé. Ce n'est pas comme si j'étais un scientifique pour deviner tous les détails. Je ne comprends toujours pas le fonctionnement de nombreuses fonctions, car il n'y a pas de code de fonction ni de description appropriée. Tu sais, tu jettes une sorte d'os, et tu comprends si c'est comestible ou pas.

Comment rencontre-t-on le soleil le matin ? Avez-vous étudié toute l'astronomie ?

Les fonctions standard ne servent pas à comprendre leur fonctionnement interne. C'est pour les utiliser. Et la description se trouve dans la documentation.

Je vous ai dit d'utiliser FileOpen() pour créer un nouveau fichier. Mais non..., il faut faire un refrain de dix pages au lieu de simplement "prendre et utiliser". Eh bien, parfois vous pouvez dire "merci" à ceux qui vous aident.

 

Bonjour.

Personne ne va dire quoi que ce soit sur le post Bilder ?

Peut-être serait-il judicieux de le mettre dans un nouveau fil de discussion, afin que plus de personnes le voient ? Si c'est le cas, demandez aux modérateurs de l'afficher... Ou en créer un vous-même ?

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2019.11.09
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...