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
Cuando cambie laf.
Si los indicadores tienen basura en sus búferes desde el antiguo marco temporal, puede afectar también a los temporizadores.
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Nueva versión de MetaTrader 4 build 1065
Sergey Klimov, 2017.04.14 16:34
Al pasar de una cuenta a otra, la variable _Digits del indicador no cambia.
Es más bonito.
Es más bonito.
Esto es para los que hablan de la consistencia adecuada en MT4.
Observa y entiende que no todo es tan bonito en MT4.
La cola es inequívoca.
Bueno, ¿dónde es inequívoco?
Prueba este ejemplo primitivo. Comprenderá la "singularidad" al cambiar el TF.
En este ejemplo, en OnInit se crea un objeto con las coordenadas de la hora y el precio actuales. En OnCalculate este objeto se mueve junto con el precio.
En OnDeinit simplemente se borra (lógicamente).
Cuando cambiamos el TF, el objeto aparece y luego desaparece.
¿Por qué ocurre esto?
Porque a veces OnDeinit de la antigua TF borra algo que ya ha sido creado en OnInit de la nueva TF. No es un error. ¿Qué debería pensar el programador que creó este ejemplo y no leyó esta rama?
Bueno, donde está ella sola.
Allí se mencionó el temporizador.
Cuál es la diferencia. Puedes poner EventSetTimer en Unite en lugar de la creación de objetos, y poner EventKillTimer en Deunite en lugar de la eliminación de objetos. Y esto no reducirá la incertidumbre, porque el temporizador establecido será asesinado por Deunite de la vieja TF, y a veces no lo hará. Y será aún peor, porque al menos puedes ver el objeto, pero no puedes ver el temporizador - si funciona o no.
Tal vez ya lo hayan inventado, no lo he leído entero. Si el indicador crea un panel, puede utilizar la variable global del terminal, aumentar su valor en 1 en el init y utilizarlo como aditivo a los nombres de los objetos gráficos.
Mi tarea era diferente - guardar los parámetros del panel, para ello creé variables globales del terminal en deinit. La solución es sencilla: crear variables globales del terminal en el inite y actualizar cada una de ellas a medida que cambian los parámetros en el panel gráfico. Sólo eliminar las variables en deinit si la desinicialización es causada por la eliminación del indicador.
Si el indicador crea un panel, se puede utilizar una variable global del terminal, aumentar su valor en 1 y utilizarlo como adición a los nombres de los objetos gráficos.
¿Qué debe pensar el programador que creó este ejemplo y no ha leído este hilo?
Estoy totalmente de acuerdo. Los no lectores no conocerán esta función y perderán el tiempo intentando descubrirla. Y eso sería cientos de personas... ...especialmente los que son principiantes.
Sólo hay que arreglar un error una vez y ya está.
Cuál es la diferencia. Puedes poner EventSetTimer en Unite en lugar de la creación de objetos, y poner EventKillTimer en Deunite en lugar de la eliminación de objetos. Esto no reducirá la incertidumbre, porque el temporizador establecido será asesinado por Deunite de la vieja TF, y a veces no lo hará. Y sería aún peor, porque al menos puedes ver el objeto, pero no puedes ver si el temporizador funciona o no.
Todo son muletas. Sólo tienes que hacer el pedido correcto en el terminal y ya está. Primero desinicie la instancia anterior, y sólo entonces inicialice la nueva.
Estoy totalmente de acuerdo. Los no lectores no conocerán esta función y perderán el tiempo intentando descubrirla. Y eso sería cientos de personas... especialmente para los principiantes.
Lo único que hay que hacer es arreglar el fallo una vez y ya está.
¡A eso me refiero!
Personalmente, estoy en racha, ya que creo que tengo ventaja sobre la mayoría, pues sé cómo afrontarlo todo, no sólo con palabras, sino también con hechos. Ya he hecho parches y he añadido muletas a mis programas.
No entiendo por qué los desarrolladores se niegan obstinadamente a considerar esta "característica" como un error.
Por ejemplo:
Los indicadores deben utilizarse para el fin al que están destinados.
En otras palabras, la secuencia de cumplimiento del indicador OnInit y OnDeinit cuando el símbolo-períododel gráfico ha cambiado no debería preocupar a nadie
Pero en mi ejemplo con el gif animado de arriba, ¡hay un claro error para un programador que no haya leído este tema! ¿Qué es lo que no se hace de acuerdo con su finalidad?