Errori, bug, domande - pagina 109

 

Ciao a tutti! Sto cercando di scrivere un indicatore Pivot Point, i calcoli sono corretti, ma la linea non è disegnata correttamente, per favore aiutatemi a capire il problema nel mio codice o nel terminale

#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
File:
 

Puoi dirmi cosa sto sbagliando?

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]);
  }

Se la barra colpisce un frattale, il valore è corretto. Ma se manca, restituisce il valore massimo di tipo doppio 1.7976931348623158e+308

e zero dovrebbe essere restituito

 
Dmitriy2:

Puoi dirmi cosa sto sbagliando?

Se la barra colpisce un frattale, il valore è corretto. Ma se manca, restituisce il valore massimo di tipo doppio 1.7976931348623158e+308

e zero dovrebbe essere restituito

EMPTY_VALUE è dato a voi, potete leggerlo qui
 

Buon pomeriggio!

Ho iniziato a studiare MQL5, ma finora non sono molto bravo. Come posso convertire questa funzione in MQL5?

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

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

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

Capisco, grazie.
 
abeiks:

Buon pomeriggio!

Ho iniziato a studiare MQL5, ma finora non sono molto bravo. Come posso convertire questa funzione in MQL5?

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

Conoscete l'articolo Migrazione da MQL4 a MQL5?
 
Interesting:
Avete già letto l'articolo "Migrazione da MQL4 a MQL5 "?

Sto guardando questo articolo, ma non tutto è chiaro per me come non programmatore. Ecco perché vorrei vedere la funzione convertita in MQL5, per confrontarla con quella che capisco in MQL4.

 
Interesting:
Avete già letto l'articolo Migrazione da MQL4 a MQL5?

Avevo anche una semplice funzione if(DayOfWeek()==5) {.

Ma ora non so come convertirlo in MQL5.

 

Qualcuno ha per caso fattouna tale libreria (stdlib.mqh russificata) su MKL5? Intendo con nuovi codici

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

Qualcuno ha per caso fattouna tale libreria (stdlib.mqh russificata) su MKL5? Intendo con nuovi codici

Per i codici di errore c'è ErrorDescription.mqh
Motivazione: