Errores, fallos, preguntas - página 2624

 
Михаил:

No suelo buscar los códigos de las flechas, ¡pero son increíblemente difíciles de encontrar en la ayuda!

Es una tabla con asteriscos, círculos, etc.

¡Y la búsqueda devuelve cualquier cosa menos el derecho!

Wingdings
 

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Bibliotecas: HistoryTicks

fxsaber, 2020.01.09 14:43

No me he dado cuenta de que la versión KB es antigua. Lamentablemente, no hay forma de actualizarlo. La máquina KB da esto
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(110,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(172,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(110,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(172,14) : error 165: 'ArrayResize_Real' - function already defined and has body
Todo compila en ME sin errores.
 
Stanislav Korotky:

Por qué en la línea 3:

¿Aviso de "falta de coincidencia de signos"?

La fecha se supone que es un número sin signo (8 bytes como ulong). Dame un ejemplo de una fecha negativa.

probablemente porque no hay un tipo de sello de tiempo separado y datetime también se utiliza para almacenar la diferencia de tiempo
 
¿Puede decirme qué evento (si lo hay) se genera en el probador cuando se pulsa el botón de parada?
 
Una vez más, ¡ayuda! No sé cómo recuperar una mejor conexión, cambiar de cuenta no ayuda
Archivos adjuntos:
Mc3FTItT2F8.jpg  18 kb
 

Al aplicarChartSetSymbolPeriod en elindicadorOnInit durante la depuración en los datos actuales hay una cosa extraña - en OnTick() rates_total de la antigua TF, y arrays de timeseries de la nueva:

datetime shift,arr[],arr2[];
void OnInit()
  {
 if (ChartPeriod()!=PERIOD_D1)
 {
     ChartSetSymbolPeriod(0,Symbol(),PERIOD_D1);
     CopyTime(Symbol(),PERIOD_D1,0,iBars(Symbol(),PERIOD_D1),arr);     
     ChartRedraw();
     Sleep(100);
  }  
 CopyTime(Symbol(),PERIOD_H1,0,iBars(Symbol(),PERIOD_H1),arr2); 
  }

Aquí vemos Time[x] de Daytime yrates_total de H1, con el TF del gráfico cambiado a Daytime en la ventana del depurador.


 
Aleksey Mavrin:

Al aplicarChartSetSymbolPeriod en elindicadorOnInit durante la depuración en los datos actuales hay una cosa extraña - en OnTick() rates_total de la antigua TF, y arrays de timeseries de la nueva:

Aquí vemos Time[x] de Daytime, yrates_total de H1, con el TF del gráfico cambiado a Daytime en la ventana del depurador.


Cuando se cambia de marco temporal, el indicador se recrea completamente. Es decir, se borra la manija del indicador anterior y se crea la nueva.
Pero hay un "pero". El indicador anterior sigue presente durante algún tiempo.

¿No es la razón...

 
Aleksey Mavrin:

Al aplicarChartSetSymbolPeriod en elindicadorOnInit durante la depuración en los datos actuales hay una cosa extraña - en OnTick() rates_total de la antigua TF, y arrays de timeseries de la nueva:

Aquí vemos Time[x] de Daytime, yrates_total de H1, con el TF del gráfico cambiado a Daytime en la ventana del depurador.

IndicadorLiberación

Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
  • www.mql5.com
//|                                        Test_IndicatorRelease.mq5 | //|                        Copyright 2010, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Expert initialization function                                   |...
 
Artyom Trishkin:

Cuando el marco temporal cambia, el indicador se recrea completamente. Significa que se elimina la manija del indicador anterior y se crea la nueva.
Pero hay un "pero". El indicador anterior sigue presente durante algún tiempo.

¿No es la razón...

Sí, según he entendido en mis experimentos, después deChartSetSymbolPeriod secompleta OnInit y una vez (en modo debug al menos) se ejecuta OnCalculate (en este momento se captura). Es decir, no interfiere con el funcionamiento en línea.

El hecho de que puedan llegar datos de diferentes plazos a OnCalculate es sólo un error, creo.

 
¿Es un defecto de ArraySwap?
void OnStart()
{
  int ArrayStatic[1];
  int ArrayDynamic[];
  
  ArrayResize(ArrayDynamic, ArraySize(ArrayStatic));
  
  Print(ArraySwap(ArrayStatic, ArrayDynamic)); // false
}
Razón de la queja: