错误、漏洞、问题 - 页 109

 

大家好!我试图写一个枢轴点指标,计算是正确的,但线 没有正确画出来,请帮助我了解我的代码或终端的问题。

#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
附加的文件:
 

你能告诉我我做错了什么吗?

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

如果条形图击中了分形图,那么这个值就是正确的。但如果它错过了,就会返回双倍 类型的最大值 1.7976931348623158e+308

并应返回0

 
Dmitriy2:

你能告诉我我做错了什么吗?

如果条形图击中了分形图,那么这个值就是正确的。但如果它错过了,就会返回双倍 类型的最大值 1.7976931348623158e+308

并应返回0

EMPTY_VALUE是给你的,你可以在这里 阅读它
 

下午好!

我已经开始学习MQL5,但到目前为止我还不是很擅长。我如何将此函数转换为MQL5?

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

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

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

我明白了,谢谢你。
 
abeiks:

下午好!

我已经开始学习MQL5,但到目前为止我还不是很擅长。我如何将此函数转换为MQL5?

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

您是否熟悉从MQL4迁移到MQL5 的文章?
 
Interesting:
您是否已经读过"从MQL4迁移到MQL5"这篇文章?

我正在看这篇文章,但作为一个非程序员,不是所有的东西都清楚。这就是为什么我想看看MQL5中的转换函数,以便与我所理解的MQL4中的函数进行比较。

 
Interesting:
您是否已经阅读了从MQL4迁移到MQL5 的文章?

我也有一个简单的函数if(DayOfWeek()==5) {.

但现在我不知道如何将其转换为MQL5。

 

有没有人在MKL5上做过这样的 库(russified stdlib.mqh)? 我是说用新的代码

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

有没有人在MKL5上做过这样的 库(russified stdlib.mqh)? 我是说用新的代码

对于错误代码,有ErrorDescription.mqh