![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
¡Este es el día completo de GBPAUD H4 3.12.2018! Y no he saltado hasta el final esta vez.
¿Puede ser que la función de impresión pierda algunos informes cuando tiene mucho que imprimir?
Supongo que otro problema podría ser porque los ticks de estos 3 instrumentos salen en diferentes milisegundos por lo que cuando usamos la función start/OnTick en GBPAUD, sólo hace la función de inicio cada vez que sale el tick de GBPAUD. Y supongo que su código podría decir para devolver todos los 3 pares de precios cuando no de ellos son 0. Si es así, lo hace volver cada vez que todos los precios de compra / venta de todos los instrumentos salen al mismo tiempo exacto.
Los datos parecen estar bien...
Tienes razón sobre la función de impresión... Yo también veo muchas líneas perdidas en mis pruebas. Pero cuando imprimo todo al archivo, no falta nada.
Aquí tienes algo de información sobre el código: la hora de cada tick de GBPAUD se utilizará para obtener los ticks más recientes de los otros pares (hasta la misma hora), por lo que siempre devolverá algo, no será cero.
He decidido poner la función en una clase, que debería ser más ordenada. Ver adjunto. Colóquelo en su carpeta de expertos, junto con su EA. Siéntase libre de modificarla.
El siguiente ejemplo muestra una forma de utilizarlo (las líneas resaltadas son esenciales):
Así que la clave realmente, es sólo esta línea:ticksInfo.getTick(<SYMBOL String>,<MqlTick Struct>). Si devuelve false, tendrás que buscar en el diario el mensaje de error.
Los datos parecen estar bien...
Tienes razón sobre la función de impresión... Yo también veo muchas líneas perdidas en mis pruebas. Pero cuando imprimo todo al archivo, no falta nada.
Aquí tienes algo de información sobre el código: la hora de cada tick de GBPAUD se utilizará para obtener los ticks más recientes de los otros pares (hasta la misma hora), por lo que siempre devolverá algo, no será cero.
He decidido poner la función en una clase, que debería ser más ordenada. Ver adjunto. Colóquelo en su carpeta de expertos, junto con su EA. Siéntase libre de modificarla.
El siguiente ejemplo muestra una forma de utilizarla (las líneas resaltadas son esenciales):
La clave es esta línea:ticksInfo.getTick(<SYMBOL String>,<MqlTick Struct>). Si devuelve false, tendrás que buscar en el diario el mensaje de error.
Gracias por tu ayuda,
He copiado todas estas líneas en todas las áreas apropiadas. Pero como no entiendo el código, por favor aconséjame cómo poner el Ask y Bid de SecondPair en Ask2,Bid2 y lo mismo para ThirdPair.
Aquí está mi área global:
Y esta parte devuelve 2 errores al compilar. ¿Qué debo hacer con ellos?
SecondPair' - expresión constante requerida MyEA!.mq4
ThirdPair' - expresión constante requerida MyEA!.mq4
Gracias por su ayuda,
He copiado todas estas líneas en todas las áreas apropiadas. Pero como no entiendo el código, por favor aconséjeme como poner el Ask y Bid de SecondPair en Ask2,Bid2 y lo mismo para ThirdPair.
Aquí está mi área global:
Y esta parte devuelve 2 errores al compilar. ¿Qué debo hacer con ellos?
SecondPair' - expresión constante requerida MyEA!.mq4
ThirdPair' - expresión constante requerida MyEA!.mq4
Entonces declara tu otherPairs de la misma manera que allPairs. Y en OnInit, haz esto:
Y para asignar valores en Ask2, Bid2, Ask3, Bid3, haga esto en OnTick:
Entonces declare su otherPairs de la misma manera que allPairs. Y en OnInit, haga esto:
Y para asignar valores en Ask2, Bid2, Ask3, Bid3, haga esto en OnTick:
Me da 00 de nuevo :(
Mi área global:
OnInit:
OnDeinit:
OnTick:
Journal:
2019.05.14 17:37:14.686 2018.01.03 23:36:58 ¡Mi área global! GBPAUD,H4: Error GBPCAD
2019.05.14 17:37:14.686 2018.01.03 23:36:58 ¡MYEA! GBPAUD,H4: GBPUSD Error
2019.05.14 17:37:14.686 2018.01.03 23:36:58 ¡MiEA! GBPAUD,H4: GBPAUD número de tick 221179, a 2018.01.03 23:36:58 000 Ask = 1.72479 Bid = 1.72459
2019.05.14 17:37:14.686 2018.01.03 23:36:58 ¡MiEA! GBPAUD,H4: === Ahora procesa el tick 221179
En qué me he equivocado?
Lo siento por mi nivel cero de habilidad :D
Me da 00 de nuevo :(
Mi área global:
OnInit:
OnDeinit:
OnTick:
¿En qué me estoy equivocando?
Lo siento por mi nulo nivel de habilidad :D
Lo siento por mi nivel cero de habilidad :D
OnInit - las 3 nuevas líneas deben ir antes de todo.
Lo he hecho. Pero es muy extraño: el temporizador para esos dos pares extra no funciona...
Lo he hecho. Pero es muy extraño: el temporizador para esos dos pares adicionales no funciona...
Historial de descargas en el EA MQL4 - MQL4 y MetaTrader 4 - Foro de programación MQL4
Corregido
La función vinculada, abre un gráfico oculto para el símbolo/TF en cuestión (si no está ya abierto,) actualizando así el historial, y colocando temporalmente el símbolo en Market Watch (si no está ya allí,) para que SymbolInfoDouble(símbolo, SYMBOL_BID ) o MarketInfo(símbolo, MODE_BID ) no devuelvan también cero la primera llamada.
Historial de descargas en el EA MQL4 - MQL4 y MetaTrader 4 - Foro de programación MQL4
Corregido
La función enlazada, abre un gráfico oculto para el símbolo/TF en cuestión (si no está ya abierto,) actualizando así el historial, y colocando temporalmente el símbolo en Market Watch (si no está ya allí,) para que SymbolInfoDouble(símbolo, SYMBOL_BID ) o MarketInfo(símbolo, MODE_BID ) no devuelvan también cero la primera llamada.
Tienes razón. Pero no te preocupes, porque lo único que hacemos en OnInit, aquí, es inicializar las matrices para almacenar los nombres de los símbolos, y preparar algunos manejadores de archivo para leer nuestros propios archivos de datos. En cuanto a los precios de las ofertas y demandas (es decir, los datos de los "ticks"), sólo estamos accediendo a ellos en OnTick, y en su mayoría desde nuestros propios archivos de datos, ya que el probador de estrategias MT4 siempre devuelve ceros cuando se consultan dichos datos de otros símbolos (tenga en cuenta que este comportamiento difiere de la recuperación de los datos OHLC, con los que la gente está más familiarizada).