Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1076
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
¿Cómo puedo leer un archivo grande en una sola línea?
FileReadString()
Cuando se lee de un archivo bin, se debe especificar la longitud de la cadena a leer. Cuando se lee de un archivo txt no se requiere la longitud de la cadena, y la cadena se leerá desde la posición actual hasta el carácter de avance de línea "\r\n". Cuando se lee de un archivo csv, la longitud de la cadena tampoco es necesaria, la cadena se leerá desde la posición actual hasta el delimitador más cercano o hasta el carácter final de la cadena de texto.
No me refiero a eso.
"Y con un NOT lógico para resolver - invertir los bits, pero no tengo un terminal - no puedo recordar cómo hacer un NOT a nivel de bits en MQL, y no quiero leer la ayuda en línea".
Quiero decir que o me das una prueba o no enturbias las aguas ))))
"Cualquiera puede cometer un error. Sólo los fuertes pueden admitir un error". Si nadie lo ha expresado aún, esa es mi sabiduría ))). Si alguien ya lo ha dicho - he repetido la sabiduría de un sabio ))))
Sigo sin entender sus afirmaciones. ¿Sugieres que te demuestre algo? - ¿Por qué? ))))
Aquí he reproducido mediante NOT y he comprobado todas las variantes discutidas:
La variante NOT funciona con cualquier TF, pero se rellena en función de (~TF_ por debajo de la cual mostramos & TF_uno mayor que el TF requerido)-1;
¡Buenos días a todos! Una pregunta más...
Hay un programa MQL5, tiene un ajuste (mucho) de "Parámetros de entrada". El programa realiza cálculos y crea/borra y gestiona objetos gráficos según sea necesario.
Tras el cambio de los parámetros de entrada desde la ventana de configuración se genera eleventoInit, que lleva a la inicialización del programa y a "recalcular" y "redibujar" los objetos, que es, en principio, lo que se necesita, peroel eventoInittambién se genera cuando se cambia el periodo del gráfico (y otros), como resultado el proceso se repite cada vez, incluso cuando no es necesario.
Pregunta:¿Cómo puedo excluir la inicialización del programa en el eventoInit sino se cambian los parámetros de entrada pero se deja la inicialización al inicio del programa (terminal)?
Posible variante: recordar los valores establecidos y compararlos cuando se produzca el evento Init y si son diferentes permitir la inicialización, pero hay muchos parámetros de entrada...
¡Buenos días a todos! Una pregunta más...
Hay un programa MQL5, tiene un ajuste (mucho) de "Parámetros de entrada". El programa realiza cálculos y crea/borra y gestiona objetos gráficos según sea necesario.
Tras el cambio de los parámetros de entrada desde la ventana de configuración se genera eleventoInit, que lleva a la inicialización del programa y a "recalcular" y "redibujar" los objetos, que es, en principio, lo que se necesita, pero el eventoInit también se genera cuando se cambia el periodo del gráfico (y otros), como resultado el proceso se repite cada vez, incluso cuando no es necesario.
Pregunta:¿Cómo puedo excluir la inicialización del programa en el eventoInit si no se cambian los parámetros de entrada pero se deja la inicialización al inicio del programa (terminal)?
Posible variante: recordar los valores establecidos y compararlos cuando se produzca el evento Init y si son diferentes permitir la inicialización, pero hay muchos parámetros de entrada...
He aquí algunos consejos para otro problema similar
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Funciona en el EA, pero no es correcto en el indicador, la música cuando el indicador se inicia
Ihor Herasko, 2019.06.17 14:12
Sí.
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Funciona en Expert Advisor, pero no es correcto en el indicador, la música en el inicio del indicador
Taras Slobodyanik, 2019.06.17 16:25
5. También puede dejar un objeto en el gráfico y comprobar su estado de presencia cuando se inicie.He aquí algunos consejos para otro problema similar
Gracias por la respuesta, parece que en nuestro caso tendremos que seguir el estado de un par de docenas de cambios de correspondencias describiéndolo a través de un "espacio en blanco" en el gráfico para seguir sus cambios, o aguantar una inicialización innecesaria mientras no haya tantos objetos...
Pero la pregunta que hiciste fue.
¡Buenos días a todos! Una pregunta más...
Hay un programa MQL5, tiene ajustes (mucho) "Parámetros de entrada". El programa realiza cálculos y crea/borra y gestiona objetos gráficos según sea necesario.
Tras el cambio de los parámetros de entrada desde la ventana de configuración se genera eleventoInit, que lleva a la inicialización del programa y a "recalcular" y "redibujar" los objetos, que es, en principio, lo que se necesita, pero el eventoInittambién se genera cuando se cambia el periodo del gráfico (y otros), como resultado el proceso se repite cada vez, incluso cuando no es necesario.
Pregunta:¿Cómo puedo excluir la inicialización del programa en el eventoInit si no se cambian los parámetros de entrada pero se deja la inicialización al inicio del programa (terminal)?
Posible variante: recordar los valores establecidos y compararlos cuando se produzca el evento Init y si son diferentes permitir la inicialización, pero hay muchos parámetros de entrada...
Y en tu situación, uno de esos consejos evitará estos redibujos innecesarios de los objetos. Y si estos objetos se eliminan en OnDeinit(), debería prohibir la eliminación allí también al cambiar el gráfico.
Este es un foro para el comercio, los sistemas automatizados de comercio y las pruebas de estrategia.
¿Cómo borrar la variable global del terminal al cierre del gráfico?
Alexey Viktorov, 2019.06.29 08:40
Preste atención a esta tabla
PROGRAMA_DE_RAZONES
0
Expert ha dejado de funcionar al llamar a ExpertRemove()
REASON_REMOVE
1
Programa eliminado de la carta
REASON_RECOMPILE
2
Programa recompilado
CAMBIO_DE_CARTA_DE_RAZÓN
3
El símbolo del gráfico o el periodo se ha modificado
REASON_CHARTCLOSE
4
El gráfico está cerrado
PARÁMETROS_DE_RAZÓN
5
Los parámetros de entrada fueron modificados por el usuario
REASON_ACCOUNT
6
Se ha activado otra cuenta o se ha vuelto a conectar al servidor comercial porque se ha modificado la configuración de la cuenta
PLANTILLA_DE_RAZÓN
7
Se aplicó otro modelo de gráfico
REASON_INITFAILED
8
El controlador OnInit() devuelve un valor distinto de cero
REASON_CLOSE
9
La terminal estaba cerrada
y en esta línea de su código
Pero si recuerdo bien el principio de tu problema, es mejor poner la condición así
Pero en su pregunta era
En tu situación, uno de esos consejos evitará estos redibujos innecesarios de objetos. Y si estos objetos se eliminan en OnDeinit(), entonces debería prohibir la eliminación allí también al cambiar el gráfico.
No he encontrado ningún ejemplo de EA en Codebase en el que se pueda establecer una condición de cierre, no sólo el SL/TP estándar. ¿Puede alguien darme una pista?
¿Cuál es la diferencia entre la condición de apertura y la de cierre?
No he encontrado en Codebase un ejemplo de EA donde se pueda escribir la condición de cierre de una posición, y no sólo el SL/TP estándar. ¿Puede alguien decirme?
Vladimir Karputov tenía estas condiciones en sus códigos, pero tienes que aprender a leer su código por ti mismo)