Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 674
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
No consigo imprimir algo() en el registro del probador. ¿Cómo se hace?
Aquí está el código de OnInit() del Asesor Experto:
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SymbolSelect("EURJPY",true);
Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
SymbolSelect("USDJPY",true);
//---
return(INIT_SUCCEEDED);
}
A continuación, establezco un punto de interrupción (paso 1) y ejecuto la prueba en el historial (paso 2):
y en el probador obtengo el resultado:
Vladimir Karputov:
A continuación, establezco un punto de interrupción (paso 1) y ejecuto una prueba histórica (paso 2):
Hay restricciones en la operación de algunas funciones en el probador de estrategias del terminal del cliente.
Funciones Print() y PrintFormat()
Para aumentar el rendimiento al optimizar los parámetros de EA, las funcionesPrint() yPrintFormat() no se ejecutan. La excepción es el uso de estas funciones dentro del manejadorOnInit(). Esto nos permite facilitar la búsqueda de las causas de los errores cuando éstos se producen.
¿por qué las funcionesPrint() dentro del manejadorOnInit() no funcionan como siempre?
¿Y en general, sobre otras funciones definidas por el usuario en init() en modo de optimización?Curiosamente, mi botón azul, que señalas con "2", no está activo. ¿Será porque estoy en MT4?
Sí, por eso puedo probar libremente cualquier EA en el HISTÓRICO, es decir, elegir un marco temporal, digamos del 2016.06.20 al 2016.11.11 y tranquilamente, paso a paso, depurar y observar los cambios en las variables, mientras que tú no puedes hacerlo.
Entonces, ¿merece la pena seguir sentado en un viejo terminal cuyo soporte ha terminado? ¿O tal vez debería utilizar el moderno MetaTrader 5? De hecho, MetaTrader 5 ya dispone decobertura: La plataforma comercial MetaTrader 5 dispone de cobertura.
Sí, por eso puedo probar libremente cualquier EA en el HISTÓRICO, es decir, elegir un marco temporal, digamos del 2016.06.20 al 2016.11.11 y tranquilamente, paso a paso, depurar y observar los cambios en las variables, mientras que tú no puedes hacerlo.
Entonces, ¿merece la pena seguir sentado en un viejo terminal cuyo soporte ha terminado? ¿O tal vez debería utilizar el moderno MetaTrader 5? Después de todo, MetaTrader 5 ya tienecobertura: La plataforma comercial MetaTrader 5 tiene cobertura.
¿Por qué puedo depurar en MT4, y tranquilamente, paso a paso, depurar y ver cómo cambian las variables? ¿Qué estoy haciendo mal?
Pregunta de fondo:
¿Por qué la funciónPrint() dentro del manejadorOnInit() no funciona como siempre? Y en general, ¿qué pasa con otras funciones personalizadas en init() en modo de optimización?
¡¡¡¡Estimado!!!!
Pregunta de fondo:
¿Por qué la funciónPrint() dentro del manejadorOnInit() no funciona como siempre? Y en general, ¿qué pasa con otras funciones definidas por el usuario en init() en modo de optimización?
Todo está explicado arriba. Funcionó y funciona. Te mostré un ejemplo.
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Preguntas de los principiantes
Vladimir Karputov, 2016.11.23 12:07
Aquí está el código de OnInit() de EA:
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SymbolSelect("EURJPY",true);
Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
SymbolSelect("USDJPY",true);
//---
return(INIT_SUCCEEDED);
}
Además, pongo un punto de interrupción (paso 1) y empiezo a probar el historial (paso 2):
Y en el probador obtengo el resultado:
Lo anterior ya se ha explicado. Funcionó y funciona. Y te he dado un ejemplo.
Permítanme repetirlo:
1. ¿Por qué la funciónPrint() dentro del manejadorOnInit() no funciona como siempre?
2. ¿Cómo funcionan las otras funciones de usuario en init() en modo de optimización?
Vladimir, en tu ejemplo con el breakpoint y el inicio de las pruebas desde el MetaEditor, y no desde el tester en la terminal no es estándar.
Otra vez:
1. ¿Por qué la funciónPrint() dentro del manejadorOnInit() no funciona como siempre?
2. ¿Cómo funcionan las otras funciones de usuario en init() en modo de optimización?
Tengo la sensación de que nunca has encendido el terminal.
Aquí está el código del OnInit() del Asesor Experto:
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
SymbolSelect("EURJPY",true);
Print(__FUNCTION__,", ",TimeToString(TimeCurrent()));
SymbolSelect("USDJPY",true);
//---
return(INIT_SUCCEEDED);
}
Paso a paso. Primer paso: iniciar el probador desde el terminal (una sola pasada), probando en el historial, con visualización:
En el probador de estrategias, obtenemos los siguientes resultados: