Universal MA Cross EA - página 105

 

gracias Blaiserboy,

mincrossdistance sin duda daría un resultado vagamente similar, mostrando la confirmación en cualquier caso. Voy a hacer algunas pruebas, muchas gracias.

 

Estimado Mrtools/Mladen

Puede establecer el parámetro de distancia máxima para que sea la distancia del precio de cierre de una barra desde la ma lenta

el ajuste actual no tiene sentido

Gracias

Sachin

 
sachin_syd:
Estimado Mrtools/Mladen

Puede establecer el parámetro de distancia máxima para que sea la distancia del precio de cierre de una barra desde la ma lenta

el ajuste actual no tiene sentido

Gracias

Sachin

Sachin

Simplemente encuentre la línea que va así :

MaxDistance = MathFloor(MathAbs((FastMACurrent-SlowMACurrent)/pPoint));

y sustituye FastMACurrent por Close[1] (para el cierre de la primera barra cerrada) o Close[0] (para el cierre de la barra aún abierta)

 

ok lo he hecho ahora probando..cheers

Puede ayudarme también aquí: https: //www.mql5.com/en/forum/general

mladen:
Sachin

Simplemente encontrar la línea que va así :

MaxDistance = MathFloor(MathAbs((FastMACurrent-SlowMACurrent)/pPoint));

y sustituye FastMACurrent por Close[1] (para el cierre de la primera barra cerrada) o Close[0] (para el cierre de la barra aún abierta)
 

Estimado Mladen cud u por favor, compruebe por qué el filtro de tiempo no está funcionando. ver las líneas verticales de color rojo en el gráfico en el que no se supone que el comercio, pero negociado. En Ea he establecido el comercio sólo ciertas horas. Muchas gracias

mladen:
Sachin

Simplemente encuentre la línea que va así :

MaxDistance = MathFloor(MathAbs((FastMACurrent-SlowMACurrent)/pPoint));

y sustituye el FastMACurrent por Close[1] (para el cierre de la primera barra cerrada) o Close[0] (para el cierre de la barra aún abierta)
Archivos adjuntos:
untitled.png  28 kb
untitled_1.png  29 kb
 

Hola Mladen,

No he podido compilar el código mql4 debido a los siguientes errores:

extern string Pivot.Setting = "---------- Pivot Filter Setting";

extern bool Use.Pivot.Filter = false;

==> '.' - punto y coma esperado MACrossEAV1.5.mq4 77 28 if(Use.Pivot.Filter==true)

==> 'Use' - identificador no declarado MACrossEAV1.5.mq4 458 7

Pivot' - tipo de estructura o clase esperada MACrossEAV1.5.mq4 458 11

Filtro' - estructura o tipo de clase esperada MACrossEAV1.5.mq4 458 17

¿Qué he hecho mal?

Gracias por su ayuda

 
StephFX:
Hola Mladen,

No he podido compilar el código mql4 debido a los siguientes errores

extern string Pivot.Setting = "---------- Pivot Filter Setting";

extern bool Use.Pivot.Filter = false;

==> '.' - punto y coma esperado MACrossEAV1.5.mq4 77 28 if(Use.Pivot.Filter==true)

==> 'Use' - identificador no declarado MACrossEAV1.5.mq4 458 7

Pivot' - tipo de estructura o clase esperada MACrossEAV1.5.mq4 458 11

Filtro' - estructura o tipo de clase esperada MACrossEAV1.5.mq4 458 17

¿Qué he hecho mal?

Gracias por su ayuda

StephFX

Elimina la "." del nombre de la variable

Puedes sustituirlo por "_" por ejemplo y entonces tendrás :

extern string Pivot_Setting = "---------- Pivot Filter Setting";

extern bool Use_Pivot_Filter = false;

y esto

if(Use_Pivot_Filter==true)

y entonces todo compilará bien

 

Hola a todos,

Como estoy probando una estrategia de martingala, he intentado hacerla de forma que "STOP AND REVERSE" sólo funcione cuando la última operación haya sido ganadora.

int histotal=OrdersHistoryTotal(); if (histotal>0)

{

for(int count=histotal-1;count>=0;count--)

{

if(OrderSelect(count,SELECT_BY_POS,MODE_HISTORY))

{

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

{

if(OrderProfit()>0)

{

if(StopAndReverse==true && subTotalTrade()>0)

{

if((LastTrade=="BUY" && SellCondition==true) || (LastTrade=="SELL" && BuyCondition==true))

{

subCloseOrder();

if(subTotalTrade()>0) subCloseOrder();

if(subTotalTrade()>0) subCloseOrder();

if(IsTesting() && PrintControl==true) Print("¡Deténgase e invierta!");

}

}

}

}

}

}

}

Sin embargo, no parece funcionar. Se detendrá y revertirá incluso si el último comercio fue una pérdida. ¿Alguna sugerencia?

Gracias.

 
BlackCoq:
Hola a todos,

Como estoy probando una estrategia de martingala, traté de hacerla de manera que "STOP AND REVERSE" sólo funcione cuando la última operación fue ganadora.

Sin embargo, parece que no funciona. Se detendrá y revertirá incluso si la última operación fue una pérdida. ¿Alguna sugerencia?

Gracias.

No está comprobando la hora de la orden. Debes comprobar la hora de cierre de la orden también, y la orden con la mayor hora de cierre es la que quieres comprobar para obtener beneficios

 
mladen:
No estás comprobando el tiempo de la orden. Debes comprobar el tiempo de cierre de la orden también, y la orden con el mayor tiempo de cierre es la que quieres comprobar para obtener beneficios

El caso es que yo uso un código muy similar para el sistema de martingala que funciona perfectamente:

//|---------martingale

int martingalefactor()

{

int histotal=Total de la historia de las órdenes();

if (histotal>0)

{

for(int cnt=histotal-1;cnt>=0;cnt--)

{

if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))

{

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

{

if(OrderProfit()<0)

{

lotesfactor=lotesfactor*multiplicador;

return(factorlotes);

}

si no

{

factorlotes=factorlotesinicial;

si(factorlotes<=0)

{

lotsfactor=1;

}

return(lotsfactor);

}

}

}

}

}

return(lotsfactor);

}

Ya que funciona para la martingala, ¿no debería funcionar ahora también?