¡Pide! - página 45

 
majlisb:
HI, profesional

en un ejemplo En un Ea obtenemos una señal y queremos colocar una orden BUYSTOP/SellStop en la altura de la barra de señal,

Debemos esperar a que se abra una nueva barra para encontrar la altura de la barra de señal, ¿Cómo podemos hacer esto? (cualquier artículo, post, EA, , , )

Gracias

Si usted cuenta 3bars para la señal ahora cuenta 4bars simplemente sí? Codersguru tiene un buen artículo sobre otra manera en el sitio mql4

 

Tengo una pregunta:

Esto puede requerir alguna programación adicional que no se puede hacer en MT. No estoy seguro. Básicamente, tengo un EA que tanto backtests como forward tests bien en MT con datos de Alpari. En los datos de otros corredores, a menudo hay una discrepancia entre las operaciones. A veces, si se abre una operación en Alpari, puede que no se abra con otro broker o viceversa. ¿Es posible escribir algún tipo de script que ejecute las operaciones en la plataforma de mi broker justo después de que se ejecute una operación en la plataforma de Alpari?

Por ejemplo, recibo una señal para comprar 2 lotes de cable a 1,9450 en Alpari. La operación se ejecuta. Esa misma orden se introduce en la plataforma de mi corredor en vivo una fracción de segundo después. Cuando se alcanza un nivel de stop o t/p en Alpari y se cierra la operación, esa misma operación se cierra en la plataforma de mi broker en vivo.

Este no es un sistema de scalping, así que si hay una discrepancia de 2 pips entre los dos precios, no es un gran problema. ¿Alguien sabe si esto es posible, y si es así, cómo puedo hacerlo? Gracias.

 

Ayuda con MTF xpMA

Codersguru,

¿Puedes comprobar las capacidades MTF de xpMA?

Muchas gracias,

Pippt

Por favor, vea el post #364 en:

https://www.mql5.com/en/forum/173574

 

una pregunta simple pero no puedo entenderla. ¿qué función matemática en mql se utiliza para redondear un valor doble?

digamos por ejemplo, que tengo 0.69 y quiero que el resultado sea .70. o si el valor es .63 y el resultado sería .60.

el mathceiling() y el mathfloor() no hacen el truco.

 

Pregunta para principiantes

Hola a todos...

Gracias a CodersGuru y su excelente curso, estoy intentando aprender MQL4

convirtiendo un indicador que escribí en MQL3.

Me he encontrado con un inconveniente y agradecería algo de ayuda... si alguien pudiera decirme qué estoy haciendo mal en el siguiente código.

El problema está en las 2 sentencias If... en la línea 78 y 79

//+------------------------------------------------------------------+

//| First_Indicator.mq4 |||||||||||

/ /| https://www.mql5.com/en/forum

//+------------------------------------------------------------------+

#property copyright "Codersguru"

#property link "https://www.forex-tsd.com"

#property indicator_chart_window

#property indicator_buffers 8

#property indicador_color1 Rojo

//---- buffers

double ExtMapBuffer1[];

//----------------- Declaraciones de variables ----------------------+

int pos=0;

double Punto_de_pivote = 0;

double new_Pivot_Point =0;

double prev_Pivot_Point=0;

double Factor_Pivote=0;

double LastClose=0;

//+------------------------------------------------------------------+

//| Función de inicialización del indicador personalizada ||.

//+------------------------------------------------------------------+

int init()

{

//---- indicadores

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);

SetIndexBuffer(0,ExtMapBuffer1);

string short_name = "Pivot Line";

IndicatorShortName(short_name);

return(1);

}

//+------------------------------------------------------------------+

//| Función de desinicialización del indicador de Custor ||.

//+------------------------------------------------------------------+

int deinit()

{

return(0);

}

//+------------------------------------------------------------------+

//| Función de iteración del indicador personalizada ||.

//+------------------------------------------------------------------+

int inicio()

{

int counted_bars=IndicatorCounted();

//---- comprobar posibles errores

if (counted_bars<0) return(-1);

//---- se vuelve a contar la última barra contada

if (counted_bars>0) counted_bars--;

int cnt=Barras_contadas;

//---- bucle de cálculo principal

while(cnt >= 0)

{

LastClose = Close[cnt];

If (LastClose > Pivot_Point) //Línea 78

If(nuevo_punto_de_pivote > prev_punto_de_pivote) //Línea 79

{

prev_Pivot_Point = new_Pivot_Point;

Punto_de_pivote = nuevo_punto_de_pivote;

}

ExtMapBuffer1[cnt]= Pivot_Point ;

cnt--;

}

return(0);

}

Estos son los mensajes del compilador -

---------------------------------------------------------------

'If' - la función no está definida .....(78,10)

'If' - se espera un punto y coma .....(79,13)

'If' - la función no está definida ...(79,13)

'{' - se espera un punto y coma ....(80, 13)

----------------------------------------------------------------

Haga lo que haga, no consigo dar con el problema... Sé que es muy sencillo, pero se me escapa...

Gracias a todos los que puedan ayudar en esta pregunta básica....

Jefe

P.D. Feliz, saludable y próspero año nuevo para TODOS

 

MQL distingue entre mayúsculas y minúsculas: utilice "if" en lugar de "If".

 

WOW ... que era Fast....

Muchas gracias por la rápida respuesta... lo solucioné...

su respuesta es muy apreciada ... tener un gran año nuevo ...

Jefe

 

MathRound

BluePearl:
una pregunta simple pero no puedo entenderla. ¿qué función matemática en mql se utiliza para redondear un valor doble?

digamos, por ejemplo, que tengo 0,69 y quiero que el resultado sea 0,70. o si el valor es 0,63 y el resultado sería 0,60.

las funciones mathceiling() y mathfloor() no sirven.

Existe "MathRound(double x)" que redondea un valor a su entero más cercano; lo mismo que "MathFloor(x+0.5)", supongo. Para obtener el redondeo a un decimal puedes utilizar una expresión de desplazamiento/desplazamiento decimal como "MathRound(x*10)/10".

 

¿Cómo puedo añadir flechas al adjunto para que aparezca arriba y abajo en la cruz?

Archivos adjuntos:
mtf_cross.mq4  5 kb
 

Histograma

Bueno, aquí hay otra pregunta mientras sigo aprendiendo cómo convertir de MQL3 a MQL4....

Me gustaría pintar una sección del gráfico que se encuentra entre dos líneas, superior e inferior. No sé si hay alguna función para pintar una sección de la pantalla o no, así que decidí intentar usar el "Draw_Histogram" en la sentencia SetIndexStyle(). Pero, no entiendo muy bien cómo funciona. Cuando lo uso, no pasa nada.

Ej:

SetIndexStyle(7,DRAW_HISTOGRAM,0,1);

ExtMapBuffer8[cnt]= (Pivot_Point-(Short_Line*Point));

Print("Cnt = ",cnt," Histo = ",ExtMapBuffer8[cnt]," Calc = ",(Pivot_Point+(Short_Line*Point));

La salida en el diario produce el cnt adecuado, el calc adecuado pero el valor de Histo es cero.

He examinado el código en el indicador MACD, en vano, y en el indicador Heiken-Ashi, y no entiendo cómo funciona. El indicador Heiken-Ashi parece utilizar 4 buffers para crear cada vela, pero no estoy seguro de ello.

El MACD parece utilizar una línea de base de cero, a partir de la cual se dibuja la barra del histograma, ¿hay una línea de base de la que parte? Si es así, ¿cómo se hace para establecerla?

¿Podría alguien explicar cómo funciona esta función, para que pueda aprender a codificarla correctamente? Si existe una función que pinte una sección específica de la pantalla, también agradecería cualquier información al respecto.

Gracias a todos por su amable ayuda....

Sinceramente,

Jefe