¡Ema Cross! - página 17

 
Audio:
¡¡¡¡VIVA codersguru !!!! ---Hola hellkas donde estas , neet para ver estos mi amigo.

hola Audio mi amigo...

Este EA es realmente fantástico... Muchas gracias SuperCodersGuru ...

Tengo una simple pregunta ..

He estado probando este EA v2 y noto algo extraño...

Tengo 4 configuraciones diferentes en diferentes plataformas pero todas en el mismo brocker (NorthFinance), Ayer solo tengo una posición abierta y pensé que era normal.. hoy la misma posición sigue abierta y pensé que era extraño.. Reinicié la plataforma y se abrieron nuevas posiciones...

¿Por qué el EA deja de operar hasta que reinicio la plataforma?

thks

Archivos adjuntos:
emacross.htm  22 kb
 

Algunos comentarios

Sigo usando este EA. Me he dado cuenta de que la mayoría de los perdedores eran operaciones contra la tendencia. ¿Es posible hacer una opción en este EA que sólo coloque operaciones que sigan la tendencia?

¡¡Sigan con el buen trabajo Gurú!!

 

¡Opción de reversión!

Hendrick:
Todavía estoy usando este EA. Me he dado cuenta de que la mayoría de los perdedores donde las operaciones contra la tendencia. ¿Es posible hacer una opción en este EA que sólo colocar las operaciones que siguen la tendencia? Mantener el buen trabajo Guru!

Hendrick,

Esta opción ya está incluida.

¡Sólo tiene que establecer reversaloption a falseif desea seguir la tendencia!

 

¡Uy!

codersguru:
Hendrick,

Esta opción ya está incluida.

¡Sólo tienes que establecer reversaloption a falso si quieres seguir la tendencia!

Oops. Lo siento Gurú.

 
hellkas:
hola audio amigo...

Este EA es realmente fantástico... Muchas gracias SuperCodersGuru ...

Tengo una simple pregunta ..

He estado probando este EA v2 y noto algo extraño...

Tengo 4 configuraciones diferentes en diferentes plataformas pero todas en el mismo brocker (NorthFinance), Ayer solo tengo una posición abierta y pensé que era normal.. hoy la misma posición sigue abierta y pensé que era extraño.. Reinicié la plataforma y se abrieron nuevas posiciones...

¿Por qué el EA deja de operar hasta que reinicio la plataforma?

gracias

Hola, hace tiempo que no te veo, ¿dónde has estado? Creo que codersguru puede responder mejor.

 

Hola CodersGuru,

Tengo una idea para su EA. ¡Me gustaría hacerlo lo más simple posible mediante la eliminación de TP, TS y SL! Sí, lo sé, ¡una locura!

Entonces simplemente dejar que el comercio de la MA entre los cruces.

1, En un cruce alcista, espere una barra y vaya en largo.

2, En el siguiente cruce a la baja cerrar la operación.

3, Espere otra barra y si las MA's siguen bajando, abra una posición corta.

Lo único que hay que fijar es el tamaño del lote.

En una operación abierta, tan pronto como las MA's crucen de nuevo a la otra dirección, entonces cierre la operación inmediatamente.

Esto tendría que ser usado en un par de tendencia como el Cable con un pequeño spread, ya que un par con un spread más grande se llevaría el beneficio si el mercado empezara a oscilar.

Probablemente parezca una locura, pero usted estaría confiando puramente en la acción del precio para hacer las operaciones sin ninguna influencia externa. En efecto, ¡el mercado estaría operando por sí mismo!

Sería interesante jugar con los marcos de tiempo y la configuración de la MA.

Hasta ahora he puesto en las opciones para desactivar TP, SL y TS.

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

//| EMA_CROSS.mq4 |||||||||||||||

//| Gurú de los Codificadores ||||||||||||

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

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

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

//| TODO: Añadir la rutina de gestión del dinero.

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

#property copyright "Coders Guru"

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

//---- parámetros de entrada

extern double TakeProfit=300;

extern bool UseTakeProfit = false;

extern double Lots=1;

extern double TrailingStop=15;

extern bool UseTrailingStop = false

extern double StopLoss=100;

extern bool UseStopLoss = false

extern int ShortEma = 10;

extern int LongEma = 80;

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

//| función de inicialización de los expertos ||.

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

int init()

{

//----

//----

return(0);

}

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

//| función de desinicialización experta ||

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

int deinit()

{

//----

//----

return(0);

}

bool isNewSymbol(string current_symbol)

{

//recorrer todos los pedidos abiertos y comparar los símbolos

int total = OrdersTotal();

for(int cnt = 0 ; cnt < total ; cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

Print( "OrderSymbol = " + OrderSymbol() + ": Symbol = " + current_symbol);

string selected_symbol = OrderSymbol();

if (current_symbol == selected_symbol)

return (False);

}

return (True);

}

int Cruzado (doble línea1 , doble línea2)

{

static int última_dirección = 0

static int dirección_actual = 0;

//No funciona en la primera carga, ¡espera al primer cruce!

static bool first_time = true;

if(first_time == true)

{

first_time = false

return (0);

}

if(línea1>línea2)dirección_actual = 1; //arriba

if(línea1<línea2)dirección_actual = 2; //abajo

if(dirección_actual != última_dirección) //cambio

{

última_dirección = última_dirección;

return (última_dirección);

}

else

{

return (0); //no ha cambiado

}

}

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

//| función de inicio experto ||

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

int inicio()

{

//----

int cnt, ticket, total

double SEma, LEma;

if(Bars<100)

{

Print("barras inferiores a 100");

return(0);

}

if(TakeProfit<10)

{

Print("TakeProfit menos de 10");

return(0); // comprobar TakeProfit

}

SEma = iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,0);

LEma = iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,0);

static int isCrossed = 0;

isCrossed = Crossed (LEma,SEma);

total = OrdersTotal();

if(total < 1 || isNewSymbol(Symbol()))

{

if(isCrossed == 1 )

{

if(UseStopLoss)

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point, "EMA_CROSS",12345,0,Green);

si no

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point, "EMA_CROSS",12345,0,Green);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Orden de COMPRA abierta : ",OrderOpenPrice());

}

else Print("Error al abrir la orden de COMPRA : ",GetLastError());

return(0);

}

if(isCrossed == 2)

{

if(UseStopLoss)

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point, "EMA_CROSS",12345,0,Red);

si no

ticket=Enviar orden(Símbolo(),OP_SELL,Lotes,Oferta,3,0,Oferta-Toma de beneficios*Punto, "EMA_CROSS",12345,0,Rojo);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Orden de venta abierta : ",OrderOpenPrice());

}

else Print("Error al abrir la orden de VENTA : ",GetLastError());

return(0);

}

return(0);

}

for(cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

//OrderPrint();

if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())

{

if(OrderType()==OP_BUY) // se abre una posición larga

{

// ¿se debe cerrar?

/* REMOVED - Trailling stop only close

if(isCrossed == 2)

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // cerrar posición

return(0); // salir

}

*/

// comprobar el trailing stop

if(TrailingStop>0)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

if(OrderStopLoss()<Bid-Point*TrailingStop)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);

return(0);

}

}

}

}

else // ir a la posición corta

{

// ¿se debe cerrar?

/* REMOVED - Trailling stop only close

if(isCrossed == 1)

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // cerrar posición

return(0); // salir

}

*/

// comprobar el trailing stop

if(TrailingStop>0)

{

if((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);

return(0);

}

}

}

}

}

}

return(0);

}

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

Lo único que no tengo claro es cómo cierras ahora la operación. ¿Estoy en lo cierto al decir que deshabilitaste el TS?

Espero que no te importe que modifique tu código.

Gracias,

 

Creo que la idea de abrir la barra después y cerrar en el siguiente cruce es buena (tal vez utilizando un trailing stoploss ayudaría a bloquear los beneficios) Ir protrend tiene mucho más sentido que contra tendencia, especialmente cuando el mercado comienza a tender de nuevo en los principales pares. En los mercados planos/de lado, un operador contra-tendencia tiene sentido pero es mucho más arriesgado y puede que tenga que esperar 3 meses (gráficos diarios) para que su operación sea positiva, a diferencia de lo que ocurre inmediatamente con un operador pro-tendencia.

Me gusta la forma en que MA_Cross mueve el stoploss en el beneficio en +20 o así, por lo que una vez que un comercio está en el beneficio que no tiene que tener la exposición de margen más.

Graham

 

Hola Graham,

Sí, la idea surgió al observar algunos de los pares con más tendencia. En la mayoría de los movimientos siempre se hacen pips, largos o cortos, no importa.

Simplemente quiero aprovechar eso.

La opción está ahí para usar un Trailing Stop simplemente alterando el estado de esta línea de false a true.

"bool externo UseTrailingStop = false;"

Pero como soy un novato absoluto en la codificación (gracias CodersGuru ) no estoy seguro de cómo el programa cierra las operaciones en este momento. ¿Está buscando un stoploss? Todavía estoy estudiando el cierre de órdenes.

Definitivamente tendría que el comercio con la tendencia Creo que la tendencia contraria sería muy rápidamente acabar con usted.

También estaba pensando en usar esto en los TF's más pequeños como 5, 15, 30min e incluso 1 hora haciendo las MA's más pequeñas para recoger las tendencias más pequeñas.

 

¡Bug!

hellkas:
hola Audio mi amigo...

Este EA es realmente fantástico... Muchas gracias SuperCodersGuru...

Tengo una simple pregunta ..

He estado probando este EA v2 y noto algo extraño...

Tengo 4 configuraciones diferentes en diferentes plataformas pero todas en el mismo brocker (NorthFinance), Ayer solo tengo una posición abierta y pensé que era normal.. hoy la misma posición sigue abierta y pensé que era extraño.. Reinicié la plataforma y se abrieron nuevas posiciones...

¿Por qué el EA deja de operar hasta que reinicio la plataforma?

gracias

hellkas,

¡Gracias por tus aportes!

Tengo que comprobar que lunes.