Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1265
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
¡Buenos días a todos!
Pregunta: ¿cuál es la forma más fácil de determinar los tiempos máximos y mínimos de una barra?
Lahora de apertura/cierre del bar no es interesante.
En MT4.
Gracias.
hizo esto
publicado en KBhttps://www.mql5.com/ru/code/25897
Por favor, dime, en MT4 había una variable predefinida doble Ask, y según tengo entendido, dentro de void OnTick() sin forzar
RereshRates su valor NO cambiaría.
En MT5, Ask se sustituye por MqlTick last_tick; SymbolInfoTick(_Symbol,last_tick); double Ask=last_tick.ask ; su valor se actualiza siempre con un nuevo tick.
Mi problema es que necesito establecer la coordenada de la línea por el valor de Ask + X pero no puedo hacerlo en MT5 porque la línea cambia sus coordenadas después de que el valor cambia
Ask=último_tick.ask. ¿Cuál es su consejo?
Por favor, dime, en MT4 había una variable predefinida doble Ask, y según tengo entendido, dentro de void OnTick() sin forzar
RereshRates su valor NO cambiaría.
En MT5, Ask se sustituye por MqlTick last_tick; SymbolInfoTick(_Symbol,last_tick); double Ask=last_tick.ask ; su valor se actualiza siempre con un nuevo tick.
Mi problema es que necesito establecer la coordenada de la línea por el valor de Ask + X pero no puedo hacerlo en MT5 porque la línea cambia sus coordenadas después de que el valor cambia
Ask=último_tick.ask. ¿Cuál es su consejo?
¿Cómo no ha cambiado? Cambiaba con cada tic. Pero en el bucle, no cambió. ¿Quizás te has confundido un poco con él?
Pero en mql5 puedes determinar el precio actual antes del bucle y no cambiará hasta que salgas del bucle.
¿Hay alguna forma de medir la anchura en píxeles del texto escrito en OBJ_TEXT?
¿Cómo no ha cambiado? Cambiaba con cada tic. Pero en el ciclo, sí, no lo hizo. Tal vez, ¿te confundiste un poco con eso?
Pero en mql5 puedes determinar el precio actual antes del bucle y no cambiará hasta que salgas del bucle.
Sí, gracias, mi suposición resultó ser errónea, pero la pregunta es ligeramente diferente. Tengo un código, igualpara MT4 y MT5:
La cuestión es que en MT4 la línea creada se fijará en el precio al que fue creada, pero en MT5 cada vez que se produzca un nuevo tick la línea se dibujará con un nuevo valor de LastAsk y su posición cambiará junto con el precio. ¿Cómo puedo evitarlo en MT5?
Sí, gracias, mi suposición resultó ser errónea, pero la pregunta es un poco diferente. Hay un código,igual para MT4 y MT5:
La cuestión es que en MT4 la línea creada será estacionaria en el precio en el que fue creada, pero en MT5 cada vez en un nuevo tick la línea se dibujará en un nuevo valor de LastAsk y su posición cambiará junto con el precio. ¿Cómo puedo evitarlo en MT5?
Busca una línea por su nombre. Si no hay ninguna línea, cree una. Esto es lo básico en general.
Gracias, ¿qué más puedo leer sobre estos fundamentos de lógica de programación? Parece elemental, pero es difícil de entender desde cero.
Añadí una condición y todo funcionó.
Gracias, ¿qué más puedo leer sobre estos fundamentos de lógica de programación? Parece elemental, pero es difícil de entender desde cero.
Añadí una condición y todo funcionó.
De repente (como siempre) ObjectGetInteger(0,objectName,OBJPROP_TYPE) funciona más rápido.
ObjectFind es un comando sincrónico, es decir, espera a que se actualicen completamente (y estén disponibles) los objetos del gráfico.
Si trabajas con tus propios objetos (es decir, creados en tu propio stock), no deberías usar ObjectFind - ya sabes en qué ventana se creó el objeto y que muy probablemente existe y es del tipo correcto.
Lo peor que puede pasar es que el usuario borre el objeto o cambie la propiedad
Sí, gracias, mi suposición era errónea, pero la pregunta es un poco diferente. Hay un código,igual para MT4 y MT5:
La cuestión es que en MT4 la línea creada será estacionaria en el precio en el que fue creada, pero en MT5 cada vez en un nuevo tick la línea se dibujará en un nuevo valor de LastAsk y su posición cambiará junto con el precio. ¿Cómo puedo evitarlo en MT5?
No lo recuerdo, tengo que comprobarlo pero no quiero hacerlo. Tal vez, en mql4 cuando se intentaba crear un objeto con el nombre de uno ya existente, simplemente se devolvía un error, mientras que en mql5 no es un error sino una modificación de parámetros, si las coordenadas son diferentes.
Como dijo Artem, comprueba la existencia del objeto