Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 42

 

Artyom Trishkin:

...lo hizo bien, pero desde el bar equivocado. Hay que conocerlo y tenerlo en cuenta.

Es decir, en la adquisición de datos multitiempo, hay que basarse en la hora, y recalcularla al número de barra en el marco temporal adecuado.

Gracias por su aclaración.

Entonces, si llamamos al indicador en el EA así

ozy_verh=NormalizeDouble(iCustom(NULL, 240, "Ozy", Amplitude, 3, 1), Digits);

y ejecutar el EA en H1, el indicador no leerá desde H4 de la primera barra.

¿Cuáles serán entonces las lecturas del indicador, y cómo hacerlo correctamente para obtener las lecturas correctas del H4?

int TimeFrame = 240;

ozy_verh=NormalizeDouble(iCustom(NULL, TimeFrame, "Ozy", Amplitude,3,iBarShift(Symbol(),TimeFrame,iTime(Symbol(),TimeFrame,1)) ), Digits);


Entonces, ¿los valores del indicador serán correctos a partir de H4?



 
mila.com:

Gracias por la aclaración.

Resulta que si llamo al indicador en el EA así

ozy_verh=NormalizeDouble(iCustom(NULL, 240, "Ozy", Amplitude, 3, 1), Digits);

y ejecutar el EA en H1, el indicador no leerá desde H4 de la primera barra.

¿Qué lecturas del indicador obtengo entonces, y cómo debo hacerlo correctamente para obtener lecturas correctas del TF superior?

int TimeFrame = 240;

ozy_verh=NormalizeDouble(iCustom(NULL, TimeFrame, "Ozy", Amplitude,3,iBarShift(Symbol(),TimeFrame,iTime(Symbol(),TimeFrame,1)) ), Digits);


Entonces, ¿los valores del indicador serán correctos a partir de H4?



Si llamas al indicador de la manera que escribiste:

ozy_verh=NormalizeDouble(iCustom(NULL, 240, "Ozy", Amplitude, 3, 1), Digits);

entonces los datos del indicador se obtendrán del símbolo actual, del periodo PERIOD_H4, del cuarto buffer y de la primera barra del marco temporal H4.

Debes haber entendido mal lo que te decía.

Esto es lo que quiero decir: si el EA se está ejecutando en M5 y obtiene datos de la barra 1 en M5, entonces si quiere ver lo que está sucediendo en una barra superior, digamos de H1, entonces si obtiene el valor de la barra superior H1 también de la barra 1, no obtendrá el valor actual, que ahora está en H1, sino el valor que había en la última hora. Porque la barra 1 de M5 está dentro de la barra 0 de H1.

Esto es lo que hay que tener en cuenta y a esto me refería.

 
Vitaly Muzichenko:

Me refiero al registro en el probador

Añadido: Montar el código a su estado normal, revisarlo, luego ejecutarlo en el probador y leer los errores en el registro. Estás dando trozos de código aquí.

Aquí. Entiendo lo de los cheques pero no entiendo de dónde viene.

Archivos adjuntos:
count.mq4  17 kb
 
Artyom Trishkin:

Esto es lo que hay que tener en cuenta, y a esto me refería.

Si pongo el EA en M 5 y quiero obtener el valor del indicador de H1, desde la primera barra, entonces la siguiente entrada es correcta?

ozy_verh=NormalizeDouble(iCustom(NULL, 60, "Ozy", Amplitude, 3, 1), Digits);
 
mila.com:

Si coloco el Asesor Experto en M 5 y quiero obtener el valor del indicador de H1, desde la primera barra, entonces la siguiente entrada es correcta?

ozy_verh=NormalizeDouble(iCustom(NULL, 60, "Ozy", Amplitude, 3, 1), Digits);

No. En lugar de 1:

datetime _time1 = iTime(Symbol(), PERIOD_H1, 1);
int      _n     = iBarShift(Symbol(), PERIOD_CURRENT, _time1);
// ваша формула
ozy_verh=NormalizeDouble(iCustom(NULL, 60, "Ozy", Amplitude, 3, _n), Digits);
Sólo si utiliza el EA en el servidor o por su cuenta, pero no tiene el gráfico H1 abierto también, entonces tiene que hacer una comprobación extra.
 

Oksana Berenko:

... pero tampoco tendrás un gráfico H1 abierto, entonces tienes que hacer una comprobación extra.

Gracias.

Tengo un gráfico M5 abierto, y tengo un EA en él que llama al indicador H1, tal y como has escrito.

¿Qué otros controles necesito?

 
mila.com:

Si pongo el Asesor Experto en M 5 y quiero obtener el valor del indicador de H1, desde la primera barra, entonces la siguiente entrada es correcta?

ozy_verh=NormalizeDouble(iCustom(NULL, 60, "Ozy", Amplitude, 3, 1), Digits);

Sí. Depende de la primera barra de la que necesites datos...

Parece que sigues sin entender lo que decía...

 
Hola, ¿podríais decirme cuáles son las principales diferencias entre mt4 y mt5? ...no veo ninguna diferencia importante.
 

Por la tarde...

if (OrderType()==OP_SELL) CloseOpBuySell("BUY");

if (OrderType()==OP_BUY) CloseOpBuySell("SELL");

esta es la condición que necesito para cerrar una posición de venta cuando abro una posición de compra y viceversa, ¿se activará?

Sólo me interesa la parte izquierda OrderType()==OP_SELL

el lado derecho funciona cuando se empuja cualquier señal allí

Pregunta: "¿Funcionará este cierre?

 
elektrik777:
Hola, ¿podríais decirme cuáles son las principales diferencias entre mt4 y mt5? No veo ninguna diferencia importante.
Las diferencias están en el lenguaje de programación para los EAs, scripts e indicadores, todo lo demás es igual, excepto que MT5 puede operar en las bolsas de valores, MT4 no.
Razón de la queja: