Erreurs, bugs, questions - page 109

 

Bonjour à tous ! J'essaie d'écrire un indicateur Pivot Point, les calculs sont corrects, mais la ligne n'est pas dessinée correctement, s'il vous plaît aidez-moi à comprendre le problème dans mon code ou dans le terminal.

#property indicator_chart_window

#property indicator_buffers 1
#property indicator_plots   1
#property indicator_type1   DRAW_LINE
#property indicator_color1  Orange

double PBuffer[];

double H[1];
double L[1];
double C[1];
datetime Time[2];

MqlDateTime str1;
MqlDateTime str2;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,PBuffer,INDICATOR_DATA);
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
//---
//--- return value of prev_calculated for next call
//int    limit=Bars(_Symbol,PERIOD_CURRENT)-1;
   //int    limit=rates_total-1;
   int n=0;

   ArraySetAsSeries(H,true);
   ArraySetAsSeries(L,true);
   ArraySetAsSeries(C,true);
   ArraySetAsSeries(Time,true);

   CopyHigh(_Symbol,PERIOD_D1,1,1,H);
   CopyLow(_Symbol,PERIOD_D1,1,1,L);
   CopyClose(_Symbol,PERIOD_D1,1,1,C);

//for(int i=10; i>=0;i--)
   for(int i=0;i<24;i++)
     {
      //Print(i," - й проход");
      //Print("Н[0] = ",H[0],", L[0] = ",L[0],", C[0] = ",C[0]);
      CopyTime(_Symbol,PERIOD_CURRENT,i+1,2,Time);
      TimeToStruct(Time[0],str1);
      TimeToStruct(Time[1],str2);
      //Print("str1.day = ",str1.day,", str2.day = ",str2.day);
      if(str1.day!=str2.day)
        {
         //Print("Сработало условие str1.day!=str2.day");
         n++;
         CopyHigh(_Symbol,PERIOD_D1,n+1,1,H);
         CopyLow(_Symbol,PERIOD_D1,n+1,1,L);
         CopyClose(_Symbol,PERIOD_D1,n+1,1,C);
         //Print("Получили новые данные для Н[0] = ",H[0],", L[0] = ",L[0],", C[0] = ",C[0]);
        }
      PBuffer[i]=(H[0]+L[0]+C[0])/3;
      //Print("PBuffer[",i,"] = ",PBuffer[i]);
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования - Документация по MQL5
Dossiers :
 

Pouvez-vous me dire ce que je fais mal ?

Alert(" фрактал нижний=",Фракталы(Symbol(),PERIOD_CURRENT,1,4)," фрактал верхний=",Фракталы(Symbol(),PERIOD_CURRENT,0,4));



double Фракталы(string символ,ENUM_TIMEFRAMES период,int буфер,int бар)
  {          //Номера буферов: 0 - UPPER_LINE, 1 - LOWER_LINE.
   double ЗначениеФрактал[1];
   int Fractals=iFractals(символ,период);
   CopyBuffer(Fractals,буфер,бар,1,ЗначениеФрактал);
   return(ЗначениеФрактал[0]);
  }

Si la barre touche une fractale, la valeur est correcte. Mais s'il échoue, il renvoie la valeur maximale du type double 1.7976931348623158e+308.

et un zéro devrait être retourné

 
Dmitriy2:

Pouvez-vous me dire ce que je fais mal ?

Si la barre touche une fractale, la valeur est correcte. Mais s'il échoue, il renvoie la valeur maximale du type double 1.7976931348623158e+308.

et un zéro devrait être retourné

EMPTY_VALUE vous est donné, vous pouvez le lire ici
 

Bonjour !

J'ai commencé à étudier MQL5, mais jusqu'à présent, je ne suis pas très bon. Comment convertir cette fonction en MQL5 ?

val1=(Low[iLowest(NULL,PERIOD_M15,MODE_LOW,3,1)]

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков - Документация по MQL5
 

mql5:
Вам отдаётся EMPTY_VALUE, прочитать можно тут

Je vois, merci.
 
abeiks:

Bonjour !

J'ai commencé à étudier MQL5, mais jusqu'à présent, je ne suis pas très bon. Comment convertir cette fonction en MQL5 ?

val1=(Low[iLowest(NULL,PERIOD_M15,MODE_LOW,3,1)]

Connaissez-vous l'article Migration de MQL4 vers MQL5?
 
Interesting:
Avez-vous déjà lu l'article "Migration de MQL4 vers MQL5 " ?

Je regarde cet article, mais tout n'est pas clair pour moi qui ne suis pas programmeur. C'est pourquoi j'aimerais voir la fonction convertie dans MQL5, afin de la comparer avec celle que je comprends dans MQL4.

 
Interesting:
Avez-vous déjà lu l'article Migration de MQL4 vers MQL5?

J'avais aussi une fonction simple if(DayOfWeek()==5) {.

Mais maintenant, je ne sais pas comment le convertir en MQL5.

 

Quelqu'un aurait-il par hasard réaliséune telle bibliothèque (stdlib.mqh russifié) sur MKL5 ? Je veux dire avec de nouveaux codes

Русифицированная и немного переделанная stdlib.mqh - может кому пригодится. . . - MQL4 форум
  • www.mql5.com
Русифицированная и немного переделанная stdlib.mqh - может кому пригодится. . . - MQL4 форум
 
Dmitriy2:

Quelqu'un aurait-il par hasard réaliséune telle bibliothèque (stdlib.mqh russifié) sur MKL5 ? Je veux dire avec de nouveaux codes

Pour les codes d'erreur, il y a ErrorDescription.mqh
Raison: