Errores, fallos, preguntas - página 984

 

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

Bichos, errores, preguntas

tol64, 2013.05.05 19:21

Lo he entendido, pero no he resuelto mi problema. Todavía no lo he solucionado, ocurre en contadas ocasiones y en fines de semana (cuando los ticks no llegan) al cambiar de timeframe/símbolo. En ocasiones, la serie de indicadores no se muestra ni en el navegador de la ventana de datos ni en el gráfico, pero los datos pueden recuperarse mediante programación. Se ve así:

...

//---

Primero pensé que si la subventana no se muestra y en el navegador de la ventana de datos también, significa que los buffers están vacíos(empty_value) y al comprobarlo puede llamar a OnCalculate() para actualizar. Pero no funcionó porque los melones están en los topes.

¿Es un error?

Manualmente se arregla rápidamente si se cambia de horario. Por supuesto, me gustaría no tener que explicárselo a los usuarios, sino resolverlo de forma ordenada mediante programación. ¿Alguien se ha encontrado con este problema?

Si no es un error, entonces necesitamos una forma de determinar que las series gráficas del indicador no se muestren en la subventana (y en la ventana de Datos, también). El modo de hacerlo no está claro, ya que es posible obtenerlos mediante programación. A continuación, tras determinar que no hay nada en la subventana, llamamos a OnCalculate() en el temporizador para recalcular poniendo a cero la variable prev_calculado.

Lo siguiente está escrito en la Ayuda:

Para ello, suele bastar con devolver el valor del parámetro rates_total, que contiene el número de barras de la llamada a la función actual. Si desde la última llamada de OnCalculate() los datos del precio fueron cambiados (se bombeó un historial más profundo o se llenaron los espacios en blanco del historial), entonces el valor del parámetro de entrada prev_calculado será puesto a cero por la terminal.

Nota: si la funciónOnCalculate devuelve cero, los valores del indicador no se muestran en la DataWindow del terminal cliente.

En mi caso se han realizado todos los cálculos (sólo pueden iniciarse después de todas las comprobaciones) y OnCalculate() devuelve un valor distinto de cero, por lo que los datos pueden obtenerse mediante programación. Pero esto no es coherente con lo que está escrito en la Ayuda.


 
Pregunta para la dirección. ¿Tiene un servidor de demostración para MT5, donde 1 lote = 10 000 (no 100 000 USD), lote mínimo = 0,01, paso = 0,01? Me gustaría optimizar mi EA para las cuentas cent. En esas cuentas de centavos de MT5 que encontré de brokers el lote mínimo = 0.1, mientras que yo estoy buscando una con 0.01.
 

En el código fuente de la biblioteca estándar encontré la siguiente construcción

//+------------------------------------------------------------------+
//| Constructor ||
//+------------------------------------------------------------------+
void CMoneyFixedLot::CMoneyFixedLot(void) : m_lots(0.1)
{

}

¿Qué es esto? :)

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
ns_k:

En el código fuente de la biblioteca estándar encontré la siguiente construcción

//+------------------------------------------------------------------+
//| Constructor ||
//+------------------------------------------------------------------+
void CMoneyFixedLot::CMoneyFixedLot(void) : m_lots(0.1)
{

}

¿Qué es esto? :)

¿Qué quieres decir?
 
uncleVic:
¿Qué quieres decir?
Lo que hace, lo entiendo. Más bien, me refiero a dónde en la documentación se dice que hay que usar este tipo de sintaxis, cómo se llama, por ejemplo
 
ns_k:
Lo que hace, lo entiendo. Más bien, me refiero a dónde en el doc dice que se use este tipo de sintaxis, cómo se llama, por ejemplo
es
 
uncleVic:
allí
lo encontré, ¡gracias!
 

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

Bichos, errores, preguntas

tol64, 2013.05.06 02:38

...

En mi caso, todos los cálculos se han realizado (es posible hacerlos sólo después de todas las comprobaciones) y OnCalculate() devuelve un valor distinto de cero, por lo que los datos se pueden obtener mediante programación. Pero esto no concuerda con lo que está escrito en la Ayuda.

Solicitud #740856.

Por lo tanto, hay alguna otra razón por la que los valores de los indicadores pueden no mostrarse, incluso si los búferes se han llenado y OnCalculate ha devuelto un valor distinto de cero.


 
Descubierto accidentalmente. Si hace doble clic en un espacio vacío de la ventana de órdenes, el gráfico de ticks se oculta. ¿Es un error o una característica? )
 
ns_k:
Descubierto accidentalmente. Si hace doble clic en un espacio vacío de la ventana de órdenes, el gráfico de ticks se oculta. ¿Es un error o una característica? )
Un error. Por supuesto, sería mejor tener un botón para encontrar esta característica no por accidente.
Razón de la queja: