Discusión sobre el artículo "Consejos de un programador profesional (parte II): Organizando el almacenamiento y el intercambio de parámetros entre el experto, los scripts y los programas externos" - página 2
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
...
Como usted sabe, el controlador OnInit de un Asesor Experto se activa no sólo cuando se pone en marcha, sino también cuando se cambia el marco de tiempo. De hecho, cada vez que se cambia el marco de tiempo, las variables se restablecen y se inicializan de nuevo, a excepción de los parámetros del Asesor Experto.
...
Incorrecto. Esto es lo que ocurre en el indicador. Cuando se cambian los parámetros y el símbolo/marco temporal del gráfico, el Asesor Experto no se reinicializa.
Ahora, en cuanto a la transferencia de información entre Asesores Expertos/indicadores/servicios, etc.
Eso deja sólo EventChartCustom(...), con todas sus desventajas.
Por lo tanto, marque la casilla para permitir la importación de dll y empezar a hacer lo correcto, o, mejor, de ninguna manera.
1) El artículo está mal desarrollado.
1) Fui elogiado por el moderador.
2) para no ejecutar el análisis de barras repetidamente
3) el tiempo de vida del archivo es mayor que el tiempo de vida de la variable global
4) Mostré una de las formas de embalaje
5) yo no los uso
...
a) Incorrecto. Esto es lo que ocurre en el indicador. Cuando se cambian los parámetros y el símbolo/marco de tiempo del gráfico, el Asesor Experto no se reinicia.
Ahora, en cuanto a la transferencia de información entre Asesores Expertos/indicadores/servicios, etc.
b) Así que, marca la casilla para permitir la importación de dlls y empieza a hacerlo bien, o, mejor, no lo hagas.
a) Estoy de acuerdo en que la reinicialización de las variables del Asesor Experto no se hace
1-2) estamos hablando de intercambio entre tu EA y los scripts. Si quieres, puedes encriptar la información ;-)
3) el DC puede añadir algo al final en MT4. No hay tal cosa en MT5, al menos para mí ;-)
4) Bueno, yo suelo usar la bandera FILE_SHARE_READ.
b) si lo haces para ti, pues como se suele decir "bandera en tus manos....".
Si lo haces para el mercado, las DLL no pasan por ahí.
(a) Acepta que no se reinicialicen las variables EA
1-2) estamos hablando del intercambio entre el Asesor Experto y los scripts. Puede cifrar la información si lo desea ;-)
3) añadir algo al final en MT4. No hay tal cosa en MT5, al menos para mí.
4) Bueno, yo suelo utilizar la bandera FILE_SHARE_READ
b) si lo haces para ti mismo, entonces como se suele decir "flag in your hands....".
Si lo haces para el mercado, las DLL no pasan por ahí.
1-2) Así que encriptar o no encriptar, pero aún puedes cambiarlo/borrarlo)))))
3) Si no se indica explícitamente que no se puede, entonces ... Personalmente, no estoy seguro de que voy a ser capaz de hacerlo.
4) No estoy hablando de eso, estoy hablando de la situación de "carreras" de datos cuando se comparte un recurso desde diferentes hilos. Ejecuta los dos scripts adjuntos en gráficas diferentes. Ejecute primero la escritura. Esta es la respuesta a mi vieja pregunta sobre las metacitas. Y, de nuevo, en el contexto del resultado de la prueba, al que finalmente llegué (gracias a TC) y la pregunta a ellos: ¿dónde están las primitivas de sincronización nativas?
Esta es también la respuesta por qué es de alguna manera mauvais para un profesional para hacer tal cosa en el mercado sin previo aviso enormes cartas a los clientes.
....
Todos los ejemplos de mis artículos, funcionan bien para mí (en mi EA y scripts)
Todos los ejemplos de mis artículos, los tengo trabajando bien para mí (en mi EA y scripts)
Mi post no es sobre lo que no funciona, sino sobre el hecho de que la seguridad e integridad de los datos no están garantizadas. Al utilizar todos los métodos anteriores de transferencia de datos, la fiabilidad del mecanismo no está garantizada. Además, no está relacionada con posibles bugs de sistemas de terceros (Terminal, SO, bugs de hardware), sino con el propio método: colisión de nombres o acciones de usuario en caso de variables globales del terminal, las mismas + funciones de borrado para objetos gráficos, falta de sincronización para operaciones de lectura y escritura en un fichero desde diferentes hilos.
Sí, la probabilidad de esto se puede reducir a valores muy bajos, pero no a 0. Eso es lo que debes tener en cuenta)
Mi post no trata de lo que no funciona, sino de no garantizar la seguridad e integridad de los datos. Al utilizar todos los métodos de transferencia de datos mencionados, no se garantiza la fiabilidad del mecanismo. Además, no está relacionado con posibles bugs de sistemas de terceros (Terminal, SO, bugs de hardware), sino con el propio método: colisión de nombres o acciones de usuario en caso de variables globales del terminal, las mismas funciones + borrado para objetos gráficos, falta de sincronización para operaciones de lectura y escritura en un fichero desde diferentes hilos.
Sí, la probabilidad de esto se puede reducir a valores muy bajos, pero no a 0. Eso es lo que debes tener en cuenta)
El almacenamiento de parámetros en ficheros proporciona una fiabilidad del 100%. Todas tus "colisiones" se solucionan con los prefijos de los nombres de los objetos, incluyendo las variables globales.
Por ejemplo, los parámetros de nivel se almacenan en Files\Cayman\Params\128968168864101576\exp_05_Lev607A160E_H4.txt. Donde 128968168864101576 es ChartID. Nadie conoce este archivo excepto el analizador de este nivel en particular. Coge cualquier trozo de código del artículo e intenta "romperlo" ;-) Si lo rompes, te mostraré dónde cometiste un error ;-)
Algo como este script en cualquier EA/indicador/script/servicio ejecutado por un usuario curioso, y tienes semanas de diversión buscando un bug irreproducible que no existe)))))