Ayuda a la codificación - página 427

 
AtApi:
Gracias mladen aunque no es exactamente lo que busco...el doblezigzag no se repinta (ambos zigzag alineados) porque se basa en fractales ..esos puntos son los que me gustaría construir el triángulo..

He intentado modificar el código un poco para obtener las 2 señales superiores más recientes y las 2 señales inferiores más recientes, pero estoy un poco atascado:

esta parte es la que pinta la señal cuando ambos zigzag están alineados:

// Do both zigzag agree on the signal?

if(SlowSignal == FastSignal && SlowSignal != EMPTY_VALUE)

{

if(SlowSignal == OP_BUY)

{

ExtMapBuffer3 = fr_support - nShift*Point;

} else {

ExtMapBuffer3 = fr_resistance + nShift*Point;

}

[/CODE]

after this i want to get the most recent upper and the previously upper and most recent lower and the previously lower like this

[CODE]

HighOldest = ExtMapBuffer3[ArrayMaximum(ExtMapBuffer3,BarsBack,i+2)];

LowOldest = ExtMapBuffer3[ArrayMinimum(ExtMapBuffer3,BarsBack,i+2)];

así que en teoría debería tener la reciente de ExtMapBuffer3 y la más antigua de HighOldest

entonces tendré los 2 puntos para construir las líneas de tendencia..

pero por alguna razón debe haber un EMPTY_VALUE en algún lugar del buffer porque cuando hago ArrayMaximum devolverá el EMPY_VALUE como valor máximo en el array

Espero que esté claro...

No importa, ya lo he resuelto.

 
mladen:
TFI Tienes un parámetro extra que no debería estar ahí: el "" después del nombre del indicador (después de "Efficiency_v1.1"). Elimine la parte "" (cadena vacía) después del nombre del indicador

Hola Mladen,

muchas gracias por tu sugerencia. Me pregunto si no habré captado la señal del filtro de forma incorrecta, ya que el EA no abre una operación a pesar de que la restricción para abrir una operación larga/corta se cumple (la línea cero se cruza). ¿Podría revisar mi código con su experiencia?

Muchas gracias (de nuevo) :-)

if(openedOrders<=0)

{

double trend_up = iCustom(Symbol(),0,"Hull moving average 2 strict nmc","", HMA_Period, HMA_Price, HMA_Speed,0,3,1);

double trend_down = iCustom(Symbol(),0,"Hull moving average 2 strict nmc","", HMA_Period, HMA_Price, HMA_Speed,0,3,2);

double trendf_up = iCustom(Symbol(),0,"Efficiency_v1.1",Price,Length,Smooth,Signal,MA_Mode,NoiseMode,0,1,1); // Signal Buffer 1

double trendf_down = iCustom(Symbol(),0,"Efficiency_v1.1",Price,Length,Smooth,Signal,MA_Mode,NoiseMode,0,1,2);

int clongs = 0;

int cshorts = 0;

for(i=OrdersTotal()-1;i>=0; i--)

{

if(OrderType()==OP_BUY) clongs++; // Check # of long trades.

if(OrderType()==OP_SELL) cshorts++; // Check # of short trades

}

if(trend_up!=trend_down)

{

if((clongs 0 && trendf_down<0)) OpenBuy(); // Indicator and filter = long

if((cshorts < maxshorttrades && trend_down==-1) && (trendf_up0)) OpenSell(); // Indicator and filter = short

}

}

Saludos cordiales,

TFI

Archivos adjuntos:
betrade.jpg  76 kb
 

Hola a todos, estoy usando (manualmente) el indicador AbsoluteStrength.

Puede alguien por favor añadir Alarma, cuando la línea azul se cruza con la línea azul de guiones o la línea roja se cruza con la línea roja de guiones (como se muestra en la captura de pantalla adjunta).

allabsolutestrength_v2.3_600.mq4

Muchas gracias

Petr Jahoda

 

Hola Pro-Coders,

Me pregunto si el cálculo de mi filtro de fuerza de tendencia ADX puede ser correcto:

bool ADX_filter()

{

bool result=false;

double ADXfactor= 1;

double ADXminus = iADX(Symbol(),0,14,PRICE_OPEN,MODE_MINUSDI,0);

double ADXplus = iADX(Symbol(),0,14,PRICE_OPEN,MODE_PLUSDI,0);

double ADXmain = iADX(Symbol(),0,14,PRICE_OPEN,MODE_MAIN,0);

if(ADXplus>ADXfactor*ADXminus && ADXmain>=20 && ADXmain<=40) result=true; // buy

if(ADXminus=20 && ADXmain<=40) result=false; // sell

return(result);

}

[/CODE]

It may be called like this:

[CODE]

if(clongs<maxlongtrades && trend_up==1 && (ADX_filter()==true)) OpenBuy();

Gracias.

 
tfi_markets:
Hola Pro-Coders,

Me pregunto si el cálculo de mi filtro de fuerza de tendencia ADX puede ser correcto:

bool ADX_filter()

{

bool result=false;

double ADXfactor= 1;

double ADXminus = iADX(Symbol(),0,14,PRICE_OPEN,MODE_MINUSDI,0);

double ADXplus = iADX(Symbol(),0,14,PRICE_OPEN,MODE_PLUSDI,0);

double ADXmain = iADX(Symbol(),0,14,PRICE_OPEN,MODE_MAIN,0);

if(ADXplus>ADXfactor*ADXminus && ADXmain>=20 && ADXmain<=40) result=true; // buy

if(ADXminus=20 && ADXmain<=40) result=false; // sell

return(result);

}

[/CODE]

It may be called like this:

[CODE]

if(clongs<maxlongtrades && trend_up==1 && (ADX_filter()==true)) OpenBuy();

Gracias.

tfi_markets

En cuanto a la función, sí, se puede llamar así

 
mladen:
tfi_markets En cuanto a la función, sí, se puede llamar así

Hola Mladen

gracias por tu comentario. Me gustaría mantener mi código principalmente simple y libre de errores, especialmente desde la depuración con MQL4 / MT4 puede ser un desafío.

Supongamos que me gustaría comerciar tendencias primarias más fuertes donde el ADX es más de 20, también puedo codificar esto un poco más simple como:

bool ADX_filter()

{

bool result=false;

if(iADX(NULL,0,14,PRICE_HIGH,MODE_MAIN,0)>20) result = true; // buy

if (iADX(NULL,0,14,PRICE_HIGH,MODE_MAIN,0)<20) result = false; // sell

return (result);

}

if(clongs1 && ADX_filter()==true)) OpenBuy();

if(cshorts<maxshorttrades && trendc==-1 &&(CCIFilter<-1 && ADX_filter()==false)) OpenSell()

¿Correcto?

Gracias de antemano, y tener un buen fin de semana.

 

Hola.

Últimamente he estado usando la media móvil del casco y pensé que también debería probar la pendiente de HMA en una ventana de indicador, lo encontré pero no funciona correctamente en mi plataforma mt4.

hull_moving_average_2.01_amp_sr_lines_separate.mq4

Gracias

 
NWFstudent:
Hola.

Últimamente he estado usando la media móvil del casco y pensé que también debería probar la pendiente de HMA en una ventana de indicador, lo encontré pero no funciona correctamente en mi plataforma mt4.

hull_moving_average_2.01_amp_sr_lines_separate.mq4

Gracias

¡parece que ya tienes la mitad del problema resuelto!

 
NWFstudent:
Hola.

Últimamente he estado usando la media móvil del casco y pensé que también debería probar la pendiente de HMA en una ventana de indicador, lo encontré pero no funciona correctamente en mi plataforma mt4.

hull_moving_average_2.01_amp_sr_lines_separate.mq4

Gracias

NWFstudent

Cambia el 2do color de negro a algún otro color (y pon el 3er color al mismo color que el 2do) Ahora mismo no lo ves simplemente porque el fondo y el 2do color son el mismo - negro

 
mladen:
NWFstudent Cambia el 2do color de negro a otro color (y pon el 3er color al mismo color que el 2do) Ahora mismo no lo ves simplemente porque el fondo y el 2do color son el mismo - negro

wow, ahora me siento como un idiota total

Estaba buscando en la entrada un color azul para arriba y rojo para abajo, pero por supuesto tenías razón como siempre.

Lo siento por ser un retardado