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
Для каждой выполняющейся mql5-программы поддерживается ряд предопределенных переменных, которые отражают состояние текущего ценового графика на момент запуска программы - эксперта, скрипта или пользовательского индикатора. Значение предопределенным переменным устанавливает клиентский терминал перед запуском mql5-программы на выполнение...
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.
Amigos, perdón por la pregunta tonta. En el terminal mt4 muestra el beneficio incluyendo comisiones, swaps, etc. En mt5 se muestra "desnudo". No lo encuentro, ¿hay alguna configuración para que mt5 lo muestre como mt4? ¿O no es capaz de hacerlo?
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?
Compruebe la disponibilidad de la línea por su nombre. Si no la hay, cree una. Estos son los aspectos básicos 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ó.
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
intObjectFind(
long chart_id, // идентификатор графика string name // имя объекта
);
¡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