Errores, fallos, preguntas - página 328

 
DenisR:
Al principio también era 15 505 1009, pero luego el terminal se actualizó a la última versión (408) y pasó a ser 5 505 1009. Pero en cualquier caso, el signo de fin de archivo no puede ser mayor que el tamaño del propio archivo. Eso es lo que más me preocupa ahora mismo.
Bueno, sí, es un poco raro...
 

Ejemplo ligeramente modificado de un indicador del servicio de ayuda:

//+------------------------------------------------------------------+
//|                                                      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);
  }

Tira por ejemplo el USDJPY (1h). Entonces, por ejemplo, ejecútalo en #C (30m). Todo esto se hace mientras el mercado de EE.UU. aún no se ha abierto. Y vemos que en cuanto llega un tick en el USDJPY, se dispara OnCalculate en #C, además, prev_calculated=0. Y en el propio USDJPY, prev_calculated != 0 antes de la nueva barra. A mí me parece un fallo evidente, aunque puede que se me escape algo. Construir 408

 
notused:

Lanza, por ejemplo, sobre el USDJPY (1h). Entonces, por ejemplo, lo iniciamos en #C (30m). Todo esto se hace mientras el mercado estadounidense aún no se ha abierto. Y vemos que en cuanto llega un tick al USDJPY, se dispara OnCalculate en #C, además, prev_calculated=0. Y en el propio USDJPY, prev_calculated != 0 antes de la nueva barra. A mí me parece un fallo evidente, aunque puede que se me escape algo. Construir 408

Este tipo de cosas ya se discutieron: https://www.mql5.com/ru/forum/3283/page2#comment_50176(últimos dos párrafos; también puedes ver el hilo completo).
Почему срабатывает OnCalculate по выходным, когда нет тиков?
Почему срабатывает OnCalculate по выходным, когда нет тиков?
  • www.mql5.com
Событие Calculate генерируется только для индикаторов сразу после посылки события Init и при любом изменении ценовых данных.
 
Yedelkin:
Esto ya se ha discutido: https://www.mql5.com/ru/forum/3283/page2#comment_50176(últimos dos párrafos; y puedes ver el hilo completo).
Gracias, es bueno saberlo
 
Pregunta. El búfer del indicador contiene números enteros o, por ejemplo, la hora. ¿Puedo hacer que los valores del buffer del indicador se muestren en el DataWindow como enteros o, por ejemplo, como tiempo?
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
Lizar:
Pregunta. El búfer del indicador contiene números enteros o, por ejemplo, la hora. ¿Puedo hacer que la DataWindow muestre los valores del buffer del indicador como enteros o, por ejemplo, como tiempo?

en su conjunto puede - reduciendo los INDICATOR_DIGITS


 
sergeev:

en su conjunto puede - reduciendo los INDICATOR_DIGITS

Entonces todos los dobles se convertirán también en enteros :(
 
Lizar:
Pregunta. El búfer del indicador contiene números enteros o, por ejemplo, la hora. ¿Puedo hacer que los valores del buffer del indicador se muestren en DataWindow como números enteros o, por ejemplo, como tiempo?
Por el momento, los búferes de los indicadores se colocan como matrices de tipo double. Por lo tanto, en DataWindow, los valores del buffer deben mostrarse como valores de tipo double. Sin los desarrolladores, probablemente no podremos resolver el problema por nuestra cuenta.
 
Yedelkin:
Actualmente индикаторные буферы se posiciona como un array de tipo double. En consecuencia, la DataWindow mostrará los valores del buffer como valores de tipo double. Aparentemente, no podemos resolver el problema por nuestra cuenta, sin desarrolladores.
Vaya...
 
Yedelkin:
Los búferes de los indicadores se colocan actualmente como matrices de tipo double. Respectivamente, los valores del buffer se muestran en DataWindow como valores de tipo double. Al parecer, no podremos resolver este problema sin los desarrolladores.
Que los buffers de los indicadores se posicionen como arrays del tipo double. Es posible hacer int y datatime a partir de double. Pero no puede mostrar el resultado convertido. Los indicadores son simplemente más potentes, mientras que la visualización de los resultados en la DataWindow sigue siendo la misma. Me gustaría escribir una solicitud al Servicio de Atención al Cliente.