错误、漏洞、问题 - 页 328

 
DenisR:
起初也是15 505 1009,但后来终端更新到最新版本(408),就变成了5 505 1009。但在任何情况下,文件末尾的标志不能大于文件本身的大小。这就是我现在最担心的事情。
嗯,是的,这有点奇怪...
 

略加修改的帮助台的指标实例。

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2010, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
//---- plot Line
#property indicator_label1  "Line"
#property indicator_type1   DRAW_LINE
#property indicator_color1  DarkBlue
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- indicator buffers
double         LineBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,LineBuffer,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[])
  {
//--- получим количество доступных баров для текущих символа и периода на графике
   if(prev_calculated<=0) 
     {
      int bars=Bars(Symbol(),0);
      Print("Bars = ",bars,", rates_total = ",rates_total,", prev_calculated = ",prev_calculated);
      Print("time[0] = ",time[0]," time[rates_total-1] = ",time[rates_total-1]);
      //--- return value of prev_calculated for next call
     }
   return(rates_total);
  }

举例来说,USDJPY(1h)。然后,例如,在#C(30米)上运行。这一切都在美国市场尚未开放时完成。我们看到,只要USDJPY上有一个刻度,#C处的OnCalculate就会触发,此外,prev_calculated=0。而在USDJPY本身,prev_calculated !=0之前的新条。在我看来是一个明显的错误,尽管我可能错过了什么。建立408

 
notused:

抛出,例如,在USDJPY(1h)。然后,例如,我们在#C(30米)上启动它。所有这些都是在美国市场尚未开放时进行的。我们看到,只要USDJPY出现一个刻度,#C的OnCalculate就会触发,而且,prev_calculated=0。而在USDJPY本身,prev_calculated !=0之前的新条。在我看来是一个明显的错误,尽管我可能错过了什么。建立408

这种事情已经讨论过了:https://www.mql5.com/ru/forum/3283/page2#comment_50176(最后两段;你也可以看到整个主题)。
Почему срабатывает OnCalculate по выходным, когда нет тиков?
Почему срабатывает OnCalculate по выходным, когда нет тиков?
  • www.mql5.com
Событие Calculate генерируется только для индикаторов сразу после посылки события Init и при любом изменении ценовых данных.
 
Yedelkin:
这个问题已经讨论过了:https://www.mql5.com/ru/forum/3283/page2#comment_50176(最后两段;而且你可以看到整个主题)。
谢谢你,很高兴知道
 
问题。指示器缓冲区 包含了整数或,例如,时间。我可以让指标缓冲区的值在数据窗口中显示为整数,或者,例如,显示为时间?
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
Lizar:
问题。指示器缓冲区 包含了整数或,例如,时间。我能否让DataWindow将指标缓冲区的值显示为整数,或者,例如,显示为时间?

作为一个整体,你可以 - 通过减少INDICATOR_DIGITS


 
sergeev:

作为一个整体,你可以 - 通过减少INDICATOR_DIGITS

那么所有的双数也会变成整数 :(
 
Lizar:
问题。指示器缓冲区 包含了整数或,例如,时间。我能否让指标缓冲区的值在DataWindow中显示为整数,或者,例如,显示为时间?
目前,指标缓冲区被定位为double类型的数组。因此,在DataWindow中,缓冲区的值应该显示为double类型的值。如果没有开发商,我们可能将无法自行解决这个问题。
 
耶德尔金
目前индикаторные буферы ,被定位为一个双数类型的数组。相应地,DataWindow将把缓冲区的值显示为double类型的值。显然,没有开发商,我们无法自行解决这个问题。
哇...
 
Yedelkin:
指示器缓冲区 目前被定位为double类型的数组。分别来说,缓冲区的值在DataWindow中显示为double类型的值。显然,如果没有开发人员,我们将无法解决这个问题。
让指标缓冲区被定位为双倍类型的数组。可以用double制作int和datatime。但你不能显示转换后的结果。指标只是更加强大,而在数据窗口中显示结果的方式保持不变。我想给服务台写一个请求。