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
Me falta algo aquí. Si abro dos gráficos para, por ejemplo, USDJPY H1, y añado una instancia del EA a cada uno de ellos, entonces ambos utilizan el número mágico 9999033.
Sí, esa opción no estaba incorporada porque nunca la he utilizado. La única posibilidad de distinguir entre dos gráficos idénticos (que yo pueda ver) sería hacer un hash en el mango de la ventana...
pero entonces se perdería la persistencia sobre los reinicios y el cierre de los gráficos, y por lo tanto las órdenes huérfanas pueden o serán creadas como resultado.
Entonces, ¿es la aplicación de terminal MT un 'contenedor' - con un solo hWnd para <todo el asunto>?
Sí, es una aplicación MDI bastante típica. Hay una ventana de nivel superior que contiene cosas como barras de herramientas, paneles y el área de cliente MDI. Esta última contiene cada gráfico, y cada gráfico consiste en realidad en dos ventanas: un contenedor con el área de dibujo dentro de él. Cada una de estas cosas tiene su propio manejador hWnd. La función WindowHandle() devuelve el manejador del área de dibujo, y por lo tanto usando la llamada a la API GetParent() tres veces se obtiene el hWnd de la ventana de nivel superior de MT4.
fwiw, yo uso abajo y nunca he tenido duplicados. El mismo EA en hasta 10 [cualquier tipo] gráficos.
No tengo ninguna respuesta a la basura masivamente real entregado a la función de hash. Acabo de empujado en todo, incluyendo el fregadero de la cocina. es decir, no soy una persona de matemáticas ..., sólo martillo 'n cincelado lejos hasta que nunca se repite - incluso en el inicio de la terminal con 10 perfil gráfico todo mismo EA ...
Obviamente, me gustaría tener un método mejor y más descriptible / lógica... así que empezar a romper en pedazos :O)
fwiw, yo uso abajo y nunca he tenido duplicados. El mismo EA en hasta 10 [cualquier tipo] gráficos.
No tengo ninguna respuesta a la basura masivamente real entregado a la función de hash. Acabo de empujado en todo, incluyendo el fregadero de la cocina. es decir, no soy una persona de matemáticas ..., sólo martillo 'n cincelado lejos hasta que nunca se repite - incluso en el inicio de la terminal con 10 perfil gráfico todo mismo EA ...
Obviamente, me gustaría tener un método mejor y más descriptible/lógico... así que empieza a destrozarlo :O)
Me gusta. Sobre todo el bueno de djb2 hash.
Impresionante, chicos :)
Los contenedores MDI me retrotraen <suspiro>.
Sigo diciendo que, en mi opinión, los números mágicos son demasiado importantes para aplicarlos al azar.
Estoy seguro de que CB confirmaría que la recuperación predecible en el reinicio es un elemento extremadamente importante en un sistema robusto..
FWIW
-BB-
Con este código un EA es capaz de reconocer sus propias órdenes si la plataforma se apaga. Utiliza Variables Globales por lo que si se quiere hacer que el EA sea "inmune" al cierre del PC se podría reescribir para utilizar archivos en lugar de Variables Globales. He adjuntado también un ejemplo que abre una posición justo en el momento de init y la cierra en la siguiente barra, puedes cargar el experto en 1M timeframe, apagar metatrader y volver a abrirlo, solo hay que esperar a la siguiente barra para ver como el EA cierra su orden. No se ha probado con múltiples gráficos ni se ha trucado con múltiples órdenes, pero ¿qué os parece?
Me gusta. Particularmente el buen djb2 hash.
gracias - pero realmente me siento avergonzado por un poco de codificación tan desinformada en makeexpertid...
Es pronto todavía, pero tal vez alguien se dará cuenta de la falla (s ) ... en caso de que estén presentes
Impresionante, chicos :)
Los contenedores MDI me retrotraen <suspiro>.
Sigo diciendo que, en mi opinión, los números mágicos son demasiado importantes para aplicarlos al azar.
Estoy seguro de que CB confirmaría que la recuperación predecible en el reinicio es un elemento extremadamente importante en un sistema robusto..
FWIW
-BB-
Sigo diciendo que, en mi opinión, los números mágicos son demasiado importantes para aplicarlos al azar.
por supuesto BB, datos vip. Pasé demasiado tiempo tratando de descubrir un dato único que múltiples instancias de un EA pudieran utilizar. Este dato tenía que ser repetible de tal manera que todos los archivos abiertos fueran mapeables en la recuperación/reinicio. Quería permitir la posibilidad de que cualquier número de instancias del mismo ccy+per chart EA abrieran "de alguna manera" un único nombre de archivo y al reiniciar volvieran a abrirlo mágicamente...
¿Los datos de la manilla de la ventana podrían ser ese "factor X"?
por supuesto BB, vip datums. Pasé demasiado tiempo intentando descubrir un dato único que varias instancias de un EA pudieran utilizar. Este dato tenía que ser repetible de tal manera que todos los archivos abiertos fueran mapeables en la recuperación/reinicio. Quería permitir la posibilidad de que cualquier número de instancias del mismo ccy+per chart EA abrieran "de alguna manera" un nombre de archivo único y al reiniciar volvieran a abrirse mágicamente...
No puedo ver cómo esto es posible sin que MT4 o el usuario asigne un ID a cada EA. O, más exactamente, no puedo ver nada que no implique algo muy desagradable como generar un ID único y luego modificar el archivo .chr del EA para almacenar el ID como parte de los parámetros externos del EA.
Y, para entretenimiento general, lo siguiente no avanza realmente la discusión de ninguna manera, pero reemplaza la entrada al hash djb2 con un valor que está garantizado para ser único (a costa de requerir llamadas DLL). No sé qué tan bueno es djb2 en cosas como GUIDs, pero acabo de intentar generar 1,000,000 IDs sin ninguna colisión. Pero sigue sin resolver el problema del reinicio.
Los datos de la manilla de la ventana podrían ser ese "factor X"?
¿Si no estuvieras cerrando parcialmente ninguna orden, podrías utilizar el comentario de la orden para almacenar la información del par/marco de tiempo de origen?
Así el EA, al reiniciar, podría averiguar si tenía alguna orden anterior y qué número mágico se supone que debe utilizar?
NB
Mantener los comentarios a < 25 y comprobar en el LEFT(OrderComments(), 24) de lo contrario las cosas [sl] o [tp] podrían afectar a las cosas
¡Asume que <todo el historial> se deja disponible en la pestaña del historial de la cuenta!
FWIW
-BB-