Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1284
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
utilicehttps://www.mql5.com/ru/docs/dateandtime/timecurrent
segunda versión de la llamada a la función
en general eshttps://www.mql5.com/ru/docs/dateandtime/timetostructMuchas gracias por la valiosa información.
Entiendo cuál es la estructura y cómo funciona, pero aún no he comprendido todos los detalles.
Todavía no he comprendido del todo las sutilezas asociadas a ella. Estoy aprendiendo el nuevo material mucho mejor con la ayuda de ejemplos claros.
Les agradecería mucho que me mostraran cómo escribir el código de la siguiente condición en mql5
He aprendido a abrir una orden utilizando la estructura
if(Hora()==10)
para abrir un pedido.
No es necesario escribir el patrón para abrir la orden.... sólo la escritura de la condición.
Gracias de nuevo por su ayuda.
debe ser la forma de determinar el precio y la hora de la barra:
O más bien son las coordenadas del clic del ratón en los valores de tiempo + precio en el gráfico, la barra necesita ser definida a través de iBarShift()Sí, eso es, como se entiende más adelante. Gracias)
Muchas gracias por la valiosa información.
Entiendo cuál es la estructura y cómo funciona, pero aún no he comprendido los entresijos
Aprendo mejor el material nuevo con ejemplos. Estoy aprendiendo material nuevo mucho mejor con la ayuda de ejemplos claros.
Les agradecería mucho que me mostraran cómo escribir el código de la siguiente condición en mql5
He aprendido a abrir una orden utilizando la estructura
if(Hora()==10)
para abrir un pedido.
No es necesario escribir el patrón para abrir la orden.... Sólo un registro de la condición.
Gracias de nuevo por su ayuda.
Muchas gracias por su ayuda. Ahora todo es claro y comprensible.
Buenos días a todos!
Estoy tratando de mql4 a mql5. He creado un código simple que abre órdenes para probar. En el probador, el EA abre órdenes. He colocado la función Print() al principio de la función void OnTick() y mi Asesor Experto entraría en esta función en cada tick y la imprimiría en cada tick del diario. Y en el quinto tick el Asesor Experto no entra en ninguna de las funciones Print() y no imprime nada en el Diario de Registro de Vehículos. La visualización y la optimización están desactivadas en el Asesor Experto.
Por favor, indíquenos cómo cambiar el código para que Print() se imprima en el diario en cada tic, como en el 4.
Muchas gracias de antemano a los que me ayuden.
Este es mi código
He aumentado el depósito de EA hasta 100 000. Como resultado, en cada tick se imprime Print() en el diario.... Pero no se ha abierto ni una sola operación.
Pero necesito que se abran los tratos y se imprima Print().
Buenos días a todos!
Estoy tratando de mql4 a mql5. He creado un código simple que abre órdenes para probar. En el probador, mi EA abre órdenes. He colocado la función Print() al principio de la función void OnTick() y mi Asesor Experto entraría en esta función en cada tick y la imprimiría en cada tick del diario. Y en el quinto tick el Asesor Experto no entra en ninguna de las funciones Print() y no imprime nada en el Diario de Registro de Vehículos. La visualización y la optimización están desactivadas en el Asesor Experto.
Por favor, indíquenos cómo cambiar el código para que Print() se imprima en el diario en cada tick, como en el 4.
Muchas gracias de antemano a los que me ayuden.
Este es mi código
He aumentado el depósito de EA hasta 100 000. Como resultado, en cada tick se imprime Print() en el diario.... Pero no se ha abierto ni una sola operación.
Pero necesito que las operaciones se abran y se imprima Print().
Mira los registros, mira lo que se imprime, la información se introduce allí en cada paso. Lo más probable es que algo esté mal con la apertura de las órdenes y que el EA no funcione.
C:\Users\....\AppData\Roaming\MetaQuotes\Terminal\99193835FC75DE8874B99F9A3B93F15E\MQL5\Logs
Ya hemos discutido si es necesario acceder repetidamente a los datos del terminal desde MQL4, entonces OrderSelecthttps://www.mql5.com/ru/forum/342989#comment_16743716
creo que también es posible utilizarlo 100500 veces por tick, porque la salida se incrementará millones de veces por segundo
cuantos más símbolos haya en la ventana de observación del mercado, mayor será la carga en el propio terminal, y respectivamente, si llama a los datos de un montón de símbolos diferentes, entonces también obtendrá retrasos
es decir, si se utiliza el terminal con sensatez, nada se congelará - en la ventana de vigilancia del mercado hay diez símbolos que se utilizan
No he comprobadocuántos gráficos puedes abrir al mismo tiempo, pero creo que si limitas el historial a 1000 barras, entonces creo que el terminal probablemente abrirá un par de docenas de ventanas de gráficos sin ningún problema
100
Mira los registros para ver lo que imprime, hay información registrada en cada paso. Lo más probable es que haya algún problema con la apertura de órdenes y que el EA no funcione.
C:\Users\....\AppData\Roaming\MetaQuotes\Terminal\99193835FC75DE8874B99F9A3B93F15E\MQL5\Logs
Gracias por el consejo.
Realmente no funciona. Dice.
2020.10.27 06:40:45.311 Tester EURUSD: los datos del historial comienzan a partir de 2018.01.02 00:00
2020.10.27 06:40:45.312 Core 1 conectándose a 127.0.0.1:3000
2020.10.27 06:40:45.312 Core 1 conectado
2020.10.27 06:40:45.320 Core 1 autorizado (agente build 2650)
2020.10.27 06:40:45.323 Tester EURUSD,M1 (Alpari-MT5-Demo): prueba de experts\GRAAL.ex5 desde 2020.09.01 00:00 hasta 2020.09.03 00:00
2020.10.27 06:40:45.327 Core 1 sincronización común completada
2020.10.27 06:40:45.328 Probador la calidad del historial analizado es del 100%.
2020.10.27 06:40:45.348 Core 1 test experts\GRAAL.ex5 on EURUSD,M1 thread finished
2020.10.27 06:40:45.348 Core 1
2020.10.27 06:40:45.348 Core 1 login (build 2650)
2020.10.27 06:40:45.348 Core 1 información de la cuenta encontrada con la moneda USD
2020.10.27 06:40:45.348 Core 1 1482 bytes de parámetros de comprobación cargados
2020.10.27 06:40:45.348 Core 1 1724 bytes de parámetros de entrada cargados
2020.10.27 06:40:45.348 Core 1 calcular el beneficio en pips, depósito inicial 10000, apalancamiento 1:100
2020.10.27 06:40:45.348 Core 1 inicializado con éxito
2020.10.27 06:40:45.348 Core 1 731 bytes de datos de inicialización totales recibidos
2020.10.27 06:40:45.348 Core 1 Intel Core i5-6400 @ 2.70GHz, 7883 MB
2020.10.27 06:40:45.348 Core 1 EURUSD: símbolo a sincronizar
2020.10.27 06:40:45.348 Core 1 EURUSD: símbolo sincronizado ya, 18 bytes recibidos
2020.10.27 06:40:45.348 Core 1 EURUSD,M1: historial almacenado en caché desde 2019.01.02 06:00
2020.10.27 06:40:45.348 Core 1 EURUSD,M1 (Alpari-MT5-Demo): cada tick genera
2020.10.27 06:40:45.348 Core 1 EURUSD,M1: prueba de experts\GRAAL.ex5 desde 2020.09.01 00:00 hasta 2020.09.03 00:00 iniciada con entradas:
2020.10.27 06:40:45.348 Core 1 StopLoss=30
2020.10.27 06:40:45.348 Core 1 TakeProfit=100
2020.10.27 06:40:45.348 Core 1 Lot=0.1
2020.10.27 06:40:45.348 Core 1 saldo final 10000.00 pips
2020.10.27 06:40:45.348 Core 1 EURUSD,M1: 111967 ticks, 2880 barras generadas. Prueba superada en 0:00:00.019.
2020.10.27 06:40:45.348 Núcleo 1 270 Mb de memoria utilizada incluyendo 35 Mb de datos históricos, 64 Mb de datos de tick
2020.10.27 06:40:45.348 Core 1 archivo de registro "C:\sers\a1960\AppData\Roaming\MetaQuotes\Tester36A64B8C79A6163D85E6173B54096685\Agent-127.0.0.1-3000\logs\201027.log" escrito
2020.10.27 06:40:45.371 Core 1 conexión cerrada
Lo estoy probando durante un periodo de un día. Significa que el Asesor Experto debe abrir 1440 órdenes. Puede que sea un problema. Tal vez, hay algunas limitaciones en el número de órdenes abiertas al mismo tiempo.
Si lo he comprobado, puede ser porque cuando tenía 10 000 en el depósito de mi EA, sólo abría 300 órdenes y se perdía el resto por alguna razón relacionada con el dinero (según entendí en los asientos). Más tarde, aumenté el depósito de EA a 100 000 y ya no tenía derecho a saltar. Y dejó de abrir pedidos por completo.
Pero luego volví a disminuir el depósito del EA a 10 000. Sin embargo, mi Asesor Experto sigue sin abrir nada y siempre escribe los valores que he indicado anteriormente.
He creado otro EA. He descargado el mismo código en él. Tengo un depósito de 10 000. Tengo el mismo problema: no he abierto pedidos.
Por favor, aconseja cómo hacer que mi EA funcione correctamente. Envía el mismo mensaje, sólo que mi línea amarilla resaltada tiene 271 en lugar de 270 mb
Tengo Windows 10. Tengo un sistema operativo de 64 bits y 8 GB de RAM.
Gracias.
Gracias por el consejo.
Realmente no funciona. Dice.
2020.10.27 06:40:45.348 Core 1 EURUSD,M1: 111967 ticks, 2880 barras generadas. Prueba superada a las 0:00:00.019.
2020.10.27 06:40:45.348 Núcleo 1 270 Mb de memoria utilizada incluyendo 35 Mb de datos históricos, 64 Mb de datos de tick
2020.10.27 06:40:45.348 Core 1 archivo de registro "C:\sers\a1960\AppData\Roaming\MetaQuotes\Tester36A64B8C79A6163D85E6173B54096685\Agent-127.0.0.1-3000\logs\201027.log" escrito
2020.10.27 06:40:45.371 Core 1 conexión cerrada
Lo estoy probando durante un periodo de un día. Significa que el Asesor Experto debe abrir 1440 órdenes. Puede que sea un problema. Tal vez, hay algunas limitaciones en el número de órdenes abiertas simultáneamente.
Si lo he comprobado, puede ser porque cuando tenía 10 000 en el depósito de mi EA, sólo abría 300 órdenes y se perdía el resto por alguna razón relacionada con el dinero (según entendí en los asientos). Más tarde, aumenté el depósito de EA a 100 000 y ya no tenía derecho a saltar. Y dejó de abrir pedidos por completo.
Por favor, aconseja cómo hacer que mi EA funcione normalmente.
Siempre intentaré que funcione como antes.
Si hay 1440 órdenes por día, el Asesor Experto debe comprobar el comienzo del minuto o, más fácilmente, la aparición de la barra de un minuto. Y se abre en este momento. No lo tiene y por lo tanto el EA abre una posición en cada tick, lo cual es una condición dura en sí misma según nuestro símbolo en la cotización actual. Esta condición puede no cumplirse, y las garrapatas se perderán. Y en algún momento, se producirá un error crítico.
También el tipo de ejecución de la orden (orden de realizar una operación para crear una posición) Todo o nada.
Por favor, aconséjeme.
¿Por qué no se actualiza la hora del servidor cuando llegan nuevos ticks?
En el momento en que el EA se inicia, todo funciona como debería, pero luego el tiempo pasa, pero el nuevo valor del minuto actual no entra en la variable.
Es decir, el Asesor Experto trabaja en función del número obtenido en la variable int M = TimeMinute(TimeCurrent());
En realidad esta línea de código es de la referencia y no funciona.
Por ejemplo, lo pongo en marcha a las 12-la horaactual devuelta por el servidor corresponde a la hora de la variable, pero entonces la variable permanece en las 12, aunque ya son 15-20 minutos en el reloj