![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
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
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
SachinSachin
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
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
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)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
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 ayudaStephFX
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.
{
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.
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
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?