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
Ema_cross_2
Estimado codersguru,
Gracias por su EA y su concepto de contratendencia,
Incluso por primera vez, yo y mi amigo son escépticos de este método contra-tendencia, pero después de estudiar y ejecutar las pruebas de avance de su EA, hemos sorprendido con los resultados
Todavía continuamos la prueba de avance EMA_CROSS_2 con el marco de tiempo H1, pero encontramos algo interesante en el par EUR/USD 03 de abril de 2006, después de cruzar hacia abajo, esta posición de venta abierta EA en lugar de comprar la posición .... ¿es un acto normal? (ver archivo adjunto)
Gracias...
dedywind
7
Hola floks,
He escrito 10 EAs para el concurso, pero eran demasiado para probar.
Por lo tanto, voy a seleccionar 3 de ellos para el concurso y presentar el 7 aquí Ellos están haciendo el beneficio en las pruebas de avance.
¡Espero que disfruten!
Codificadores,
Voy a volver a leer el hilo completo, pero no puedo recordar si esto fue abordado.
Cuando se cierra la plataforma, ya sea InterbanFX, MT4, etc., me he dado cuenta de que si no estoy en una posición, y tengo la última MA EA en ella se ejecutará automáticamente un comercio.
Como podemos evitar que esto ocurra cada vez que volvemos a abrir el software.
gracias
Novato necesita ayuda con MA cross EA...
amarnath,
¡Este es mi informe (adjunto)!
¡Y esta es la versión que utilicé (adjunta)!
Creo que no se puede transmitir sólo en el backtest. ¡Pero mi en mi prueba he utilizado la fecha de 2005/01/01 hasta hoy!
¿Alguien ha probado el MoneyMaker?Hola CodersGuru,
He modificado un poco tu EA original EMA_Cross para que funcione con un cruce de 5 EMA y 10 LWMA con un filtro RSI y estocástico. Mientras que este EA abre órdenes LARGAS y CORTAS y las cierra correctamente, no me permite cerrar una posición simultáneamente y luego abrir inmediatamente una nueva posición en la dirección opuesta (por ejemplo, una verdadera técnica de trading "swing"). Por lo tanto, pierdo una gran cantidad de operaciones swing potenciales.
Además, a veces las condiciones cruzadas de EMA1 > WMA1 y EMA2 < WMA2 pueden no desencadenar una compra si las dos medias móviles del período anterior tenían el mismo valor o estaban a 1 o 2 pips de distancia. Por lo tanto, me gustaría añadir en el código para buscar ese tipo de condición (que sucede a menudo) para desencadenar una entrada.
No soy un codificador, así que esperaba que pudiera ayudarme a averiguar cómo hacer esto.
He incluido mi código en línea a continuación, así como el archivo MQ4 como un archivo adjunto. ¡Cualquier ayuda sería muy, muy apreciada!
//+----------------------------------------------------------------------------------------+
//| Ian Boersma - Copyright 2006
//| |
//+----------------------------------------------------------------------------------------+
#property copyright "Ian Boersma"
//---- parámetros de entrada
extern double TakeProfit=100;
extern double Lots=1;
extern double TrailingStop=35;
extern int ShortEma = 5
extern int LongWma = 10;
extern int RSIPer = 14
extern int StochK = 10
extern int StochD = 3
extern int StochSlow = 3;
//+------------------------------------------------------------------+
//| función de inicialización de expertos ||.
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| función de desinicialización experta ||
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| función de inicio experto +
//| Aquí es donde inicializamos las variables internas para el uso del programa + |
//+------------------------------------------------------------------+
int inicio()
{
//----
//Declaraciones de LotCalc
int cnt, ticket, total;
//Declaraciones de las variables de los MAs y de los filtros
double RSI
double Stoch;
double EMA1,EMA2,WMA1,WMA2;
if(Bars<100)
{
Print("barras menos de 100");
return(0);
}
if(TakeProfit<10)
{
Print("TakeProfit menos de 10");
return(0); // comprobar TakeProfit
}
//Definición de las variables EMA y Filtro
EMA1 = iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,0);
WMA1 = iMA(NULL,0,LongWma,0,MODE_LWMA,PRICE_CLOSE,0);
EMA2 = iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,1);
WMA2 = iMA(NULL,0,LongWma,0,MODE_LWMA,PRICE_CLOSE,1);
RSI = iRSI(NULL,0,RSIPer,PRICE_CLOSE,0);
Stoch = iStochastic(NULL,0,StochK,StochD,StochSlow,MODE_SMA,0,MODE_MAIN,0);
int isCrossed = 0;
if (EMA1 > WMA1 && EMA2 = 50 && Stoch < 80)
{isCrossed = 1;
}
si (EMA1 = WMA2 && RSI 20)
{isCrossed = 2;
}
//Revisamos el terminal de operaciones para ver si está vacío
total = OrdersTotal();
if(total < 1) //Si el terminal de negociación está vacío...
{
if(isCrossed == 1) //Si el cruce indica una oscilación LARGA...
{
ticket=Envío de órdenes(Símbolo(),OP_BUY,Lotes,Demanda,2,0,Demanda+TakeProfit*Punto, "Mi EA",12345,0,Amarillo);
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) //si el cruce indica un giro SHORT...
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,2,0,Bid-TakeProfit*Point, "My EA",12345,0,Red);
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);
}
//Función de salida de la posición...
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
{
// Comprueba si tenemos una condición de cruce CORTO...
if(isCrossed == 2)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // cierra la posición
return(0); // salir
}
// Comprobar nuestro trailing stop para ver si hay que ajustarlo
if(TrailingStop>0){
if(Bid-OrderOpenPrice()>Punto*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else // ir a la posición corta
{
// Comprueba si tenemos una condición de cruce LONG...
if(isCrossed == 1)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // cerrar la posición
return(0); // salir
}
// Comprueba nuestro trailing stop para ver si necesita ser ajustado
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);
}
//+------------------------------------------------------------------+
Hola CodersGuru,
He modificado un poco su EA original EMA_Cross para que funcione con un cruce de 5 EMA y 10 LWMA con un filtro RSI y estocástico. Si bien este EA abre órdenes LARGAS y CORTAS y las cierra correctamente, no me permite cerrar una posición simultáneamente y luego abrir inmediatamente una nueva posición en la dirección opuesta (por ejemplo, una verdadera técnica de negociación "swing"). Por lo tanto, pierdo una gran cantidad de operaciones swing potenciales.
Además, a veces las condiciones cruzadas de EMA1 > WMA1 y EMA2 < WMA2 pueden no desencadenar una compra si las dos medias móviles del período anterior tenían el mismo valor o estaban a 1 o 2 pips de distancia. Por lo tanto, me gustaría añadir en el código para buscar ese tipo de condición (que sucede a menudo) para desencadenar una entrada.
No soy un codificador, así que esperaba que pudiera ayudarme a averiguar cómo hacer esto. ....
Lo comprobaré.
Lo comprobaré.
Gracias por tu ayuda...
- Ian
¡Lo comprobaré!
CodersGuru,
He adjuntado una nueva versión de mi EA ya que he detectado un problema con la determinación de la condición 'isCrossed' (he intentado añadir los filtros RSI y Stoch a la condición original isCrossed en lugar de añadirlo como un calificador sólo para entrar en una posición.
Espero que esto tenga más sentido...
- Ian
Gracias por tu ayuda... - Ian
Creo que el punto 1 está funcionando (cuando se cierra la compra se abre la venta y cuando se cierra la venta se abre la compra) Mira la prueba adjunta.
Creo que el punto 1 está funcionando (cuando se cierra la compra se abre la venta y cuando se cierra la venta se abre la compra) Mira la prueba adjunta.
Genial. Definitivamente parece el sistema de tipo stope and reverse que estoy buscando (aunque el beneficio neto no parece muy alentador...:))
He estado utilizando este sistema de forma manual durante una semana o así y han tenido algunos resultados muy alentadores, por lo que será interesante para obtener los números de backtesting completo para ver si estoy en algo o soy sólo suerte ...
- Ian
esta es la segunda semana lolhttp://9q9q.com/March/1144348631.zip
Lo siento, pero ¿qué es esto?