Errores, fallos, preguntas - página 163

 
stringo:
¿Puedes justificar de forma práctica la expresión x = x++; ¿Qué quieres decir? Por qué no utilizar el incremento sin asignación posterior de x++; Como se suele utilizar.
Salió por accidente - no todos los días se escribe en lenguajes tipo C, olvidé que sólo existe x++. Esperaba x = x + 1. El resultado es divertido...
 
GODZILLA:

¡No, no lo es! Bueno, no hay datos, pregunté de nuevo... ¡¡¡Lo conseguí en la quinta petición y fui, pero es silencioso y ya está!!!

Para los Asesores Expertos y los indicadores personalizados es mejor utilizar elmodelo de procesamientobasado en eventos. Si el procesamiento de los eventos OnTick() o OnCalculate() no ha logrado obtener todos los datos requeridos, se debe salir del manejador de eventos, esperando tener acceso a los datos la próxima vez que se llame al manejador.

Yo también leí esto y lo pensé, pero esto es lo que da este código, por ejemplo:

int handle;
datetime inittime;
void OnInit(){

  
  handle = iCustom( "GBPUSD", PERIOD_M2, "examples\ATR", 14 );
  Print("Handle=", handle);
  inittime = TimeCurrent();
}
bool isfirst = true;
void OnTick()
  {
    double val[1];
    int start_pos = 1;
    if( isfirst || TimeCurrent()-5*60 > inittime ){
      int n = CopyBuffer( handle, 0, start_pos , 1, val );
      Print("Получено n=", n, 
        (n==-1)?" ошибка при получении данных из индикатора, ":" нет ошибки при получении данных из индикатора",
        " значение ", val[0] );
    }
    isfirst = false; 
  }

Espero 5 minutos, después de eso obtengo el valor del indicador en cada tic (recorto parte de los registros):

2010.10.14 15:47:09 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:47:03 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:47:02 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:47:02 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:47:01 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:47:01 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:46:59 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:46:59 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:46:58 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:46:58 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:45:11 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:45:11 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:45:10 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:45:05 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:45:03 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:45:03 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:45:02 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:45:01 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:45:00 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:44:58 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:44:56 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:44:56 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:44:54 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:44:08 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:44:05 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:44:05 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:43:27 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:43:25 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:43:24 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:43:23 23 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:43:04 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:43:01 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:42:59 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:42:58 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:42:58 tstincl (EURJPY,M1) n=1 no recibió ningún error al recibir los datos del valor del indicador 0.0006792857142856462
2010.10.14 15:42:51 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:42:47 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:42:43 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:42:04 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0006792857142856462
2010.10.14 15:41:25 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007028571428570865
2010.10.14 15:41:22 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007028571428570865
2010.10.14 15:41:05 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007028571428570865
2010.10.14 15:41:05 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007028571428570865
2010.10.14 15:41:01 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007028571428570865
2010.10.14 15:40:59 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007028571428570865
2010.10.14 15:40:57 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007028571428570865
2010.10.14 15:40:54 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007028571428570865
2010.10.14 15:40:41 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007028571428570865
2010.10.14 15:40:40 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007028571428570865
2010.10.14 15:40:38 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007028571428570865
2010.10.14 15:40:36 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007028571428570865
2010.10.14 15:40:26 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007028571428570865
2010.10.14 15:40:21 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007028571428570865
2010.10.14 15:40:21 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007028571428570865
2010.10.14 15:40:18 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007364285714285289
2010.10.14 15:40:14 tstincl (EURJPY,M1) n=1 no recibió ningún error al recibir los datos del valor del indicador 0.0007364285714285289
2010.10.14 15:40:13 tstincl (EURJPY,M1) n=1 no recibió ningún error al recibir los datos del valor del indicador 0.0007364285714285289
2010.10.14 15:40:07 tstincl (EURJPY,M1) n=1 no recibió ningún error al recibir los datos del valor del indicador 0.0007364285714285289
2010.10.14 15:40:04 tstincl (EURJPY,M1) n=1 no recibió ningún error al recibir los datos del valor del indicador 0.0007364285714285289
2010.10.14 15:40:02 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007364285714285289
2010.10.14 15:40:02 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007364285714285289
2010.10.14 15:39:59 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007364285714285289
2010.10.14 15:39:56 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007364285714285289
2010.10.14 15:39:54 tstincl (EURJPY,M1) n=1 no recibió ningún error al recibir los datos del valor del indicador 0.0007364285714285289
2010.10.14 15:39:52 tstincl (EURJPY,M1) n=1 no recibió ningún error al recibir los datos del valor del indicador 0.0007364285714285289
2010.10.14 15:39:51 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007364285714285289
2010.10.14 15:39:50 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007364285714285289
2010.10.14 15:39:49 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007364285714285289
2010.10.14 15:39:46 tstincl (EURJPY,M1) n=1 no recibió ningún error al recibir los datos del valor del indicador 0.0007364285714285289
2010.10.14 15:39:45 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007364285714285289
2010.10.14 15:39:45 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007364285714285289
2010.10.14 15:39:43 tstincl (EURJPY,M1) n=1 no recibió ningún error al recibir los datos del valor del indicador 0.0007364285714285289
2010.10.14 15:39:42 tstincl (EURJPY,M1) n=1 no recibió ningún error al recibir los datos del valor del indicador 0.0007364285714285289
2010.10.14 15:39:40 tstincl (EURJPY,M1) n=1 no recibió ningún error al recibir los datos del valor del indicador 0.0007364285714285289
2010.10.14 15:39:40 tstincl (EURJPY,M1) n=1 no recibió ningún error al recibir los datos del valor del indicador 0.0007364285714285289
2010.10.14 15:39:39 tstincl (EURJPY,M1) n=1 no recibió ningún error al recibir los datos del indicador el valor 0.0007364285714285289
2010.10.14 15:34:38 tstincl (EURJPY,M1) Recibido n=1 ningún error al recibir datos del valor del indicador 0.0007357142857142544
2010.10.14 15:34:35 tstincl (EURJPY,M1) Handle=10

que debería cambiar cada dos minutos, como ves a partir de unos 45 minutos no hay nuevas barras en m2, ni después de la primera, ni después de la segunda ni después de la décima llamada a ellas.

¿Tal vez tengas algo similar?

Pregunta a los desarrolladores: ¿Cómo llamar correctamente a CopyBuffer? Cada vez antes de su llamada para sincronizar las series de tiempo... Entonces usted necesita saber qué series de tiempo y qué carácter se refiere al iniciador de la manija, para saber esto, usted necesita en algún lugar para almacenar y transmitir esta información a todos los lugares donde se llama CopyBuffer: el código se complica y desordenado.

 

Pregunta sobre el probador.

¿Con qué frecuencia se almacenan los resultados de los pases de los probadores?

El registro muestra que si los resultados están almacenados en la caché, se toman de ahí sin recalcular, ahorrando tiempo. Me enfrenté a una situación en la que un ordenador se estrelló durante una larga ejecución de optimización (la razón no es importante). La siguiente ejecución de optimización con el mismo Asesor Experto y los mismos parámetros reveló que no se había ahorrado nada: el tiempo se había perdido. Por supuesto, existe una medida de seguridad: detener y reiniciar la optimización de vez en cuando, pero no es muy conveniente. Construye 342.

 
Ashes:

Pregunta sobre el probador.

¿Con qué frecuencia se almacenan los resultados de los pases de los probadores?

El registro muestra que si los resultados están almacenados en la caché, se toman de ahí sin recalcular, ahorrando tiempo. Me enfrenté a una situación en la que un ordenador se estrelló durante una larga ejecución de optimización (la razón no es importante). La siguiente ejecución de optimización con el mismo Asesor Experto y los mismos parámetros reveló que no se había ahorrado nada: el tiempo se había perdido. Por supuesto, existe una medida de seguridad, es decir, parar y reiniciar periódicamente la optimización, pero no es muy conveniente. Construye 342.

Los resultados de la optimización se escriben en el archivo al finalizar la optimización. En caso de parada de emergencia, los resultados no se recuerdan.

Estudiaremos qué se puede hacer.

Документация по MQL5: Файловые операции / FileWrite
Документация по MQL5: Файловые операции / FileWrite
  • www.mql5.com
Файловые операции / FileWrite - Документация по MQL5
 
stringo:

Los resultados de la optimización se escriben en un archivo cuando la optimización ha finalizado. Los resultados no se recuerdan en caso de una parada de emergencia.

Estudiaremos qué se puede hacer.

Sería una buena idea.

Por cierto, me gustaría guardar los resultados de la optimización en alguna forma utilizable, no sólo imágenes. ¿O tal vez no he encontrado el botón correcto?

 
Ashes:

Esto sería una buena idea.

Por cierto, me gustaría guardar los resultados de la optimización en alguna forma adecuada para su procesamiento, no sólo imágenes. ¿O tal vez no he encontrado el botón correcto?

tester\cache<ea_name>.<symbol>.<period>.< mode>.xml
 
Ashes:

Esto sería una buena idea.

Por cierto, me gustaría guardar los resultados de la optimización en alguna forma adecuada para su procesamiento, no sólo imágenes. ¿O tal vez no he encontrado el botón correcto?

Y tengo una pregunta también, cómo continuar la optimización después de una parada forzada, no encontré nada al respecto en la ayuda.
 

sergey1294:
и у меня вопрос тоже есть, как продолжить оптимизацию после принудительного останова, в справке что-то не нашел по этому поводу ни чего.

Basta con pulsar el botón de inicio.
 
stringo:
tester\cache<ea_name>.<symbol>.<period>.<mode>.xml

Y otro artículo de MQL5: Expert Advisor Testing and Optimization Guide:

Una vez finalizada la optimización, puede buscar en la carpeta "MQL5\Tester\cache" donde encontrará el archivo cci_ma_ea.EURUSD.H1.2.xml que contiene los valores numéricos de todos los parámetros y características obtenidos como resultado de la optimización.

Los resultados de la optimización se guardan en el archivo: ExpertName.SYMBOL.PERIOD.GenerationMode.xml, donde:

  • ExpertName - nombre del Asesor Experto a optimizar;
  • SÍMBOLO - símbolo;
  • PERIODO - marco temporal (M1,H1,...);
  • GenerationMode - modo de generación de ticks (0 - "Every tick", 1 - "OHLC on M1", 2 - "Opening prices only".

Este archivo puede abrirse en Excel para su posterior análisis.

 
stringo:
Basta con pulsar el botón de inicio.
Entonces, ¿el comprobador debería cargar automáticamente la lista de ejecuciones anteriores en la pestaña"Resultados de optimización" y continuar optimizando desde donde lo dejó?