Errores, fallos, preguntas - página 109

 

Hola a todos. Estoy tratando de escribir un indicador Pivot Point, los cálculos son correctos, pero la línea no se dibuja correctamente, por favor ayúdame a entender el problema en mi código o en la 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
Archivos adjuntos:
 

¿Puede decirme qué estoy haciendo 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 barra llega a un fractal, el valor es correcto. Pero si falla, devuelve el valor máximo de tipo doble 1,7976931348623158e+308

y se debe devolver el cero

 
Dmitriy2:

¿Puede decirme qué estoy haciendo mal?

Si la barra llega a un fractal, el valor es correcto. Pero si falla, devuelve el valor máximo de tipo doble 1,7976931348623158e+308

y se debe devolver el cero

EMPTY_VALUE se le da, puede leerlo aquí
 

¡Buenas tardes!

He empezado a estudiar MQL5, pero hasta ahora no se me da muy bien. ¿Cómo puedo convertir esta función en MQL5?

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

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

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

Ya veo, gracias.
 
abeiks:

¡Buenas tardes!

He empezado a estudiar MQL5, pero hasta ahora no se me da muy bien. ¿Cómo puedo convertir esta función en MQL5?

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

¿Conoce el artículo Migración de MQL4 a MQL5?
 
Interesting:
¿Ha leído ya el artículo "Migración de MQL4 a MQL5 "?

Estoy mirando este artículo, pero no todo me queda claro como no programador. Por eso me gustaría ver la función convertida en MQL5, para compararla con la que entiendo en MQL4.

 
Interesting:
¿Ha leído ya el artículo Migración de MQL4 a MQL5?

También tenía una simple función if(DayOfWeek()==5) {.

Pero ahora no sé cómo convertirlo a MQL5.

 

¿Alguien por casualidad ha hechouna biblioteca deeste tipo (russified stdlib.mqh) en MKL5? Quiero decir con nuevos códigos

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

¿Alguien por casualidad ha hechouna biblioteca deeste tipo (russified stdlib.mqh) en MKL5? Quiero decir con nuevos códigos

Para los códigos de error existe ErrorDescription.mqh