Ideas en bruto - página 9

 

Algunos indicadores - modificados

Hola,

a_ZZ y a_ZZInd - "High_Low v2 (ZigZag)" y otros(que no recuerdo ahora,&))

aDin - "ang_PR (Din)-v2"

¿Qué te parece?

Saludos.

 

Cruce deMACD

Hola a todos,

Tengo una idea para EA usando MACD 13,32,48 y PSAR Paso 0.005 Max.0.05 o 0.006 y 0.06 H1 TF

Punto de entrada cuando el MACD Cross (barra cerrada) y la salida PSAR o trailing stop opcional.

Saludos

MFX

Archivos adjuntos:
mc.gif  16 kb
 
 

La mejor estrategia diaria...

Hola chicos,

Me alegro de estar aquí entre vosotros de nuevo. He estado ausente un par de días. De todas formas me gustaría preguntaros cuál es la mejor estrategia diaria y de 4 horas que habéis encontrado, utilizado quizás...

Gracias

REGARDOS

 
Archivos adjuntos:
1.bmp  1318 kb
 

codersguru: ¿podría cambiar EMA por media móvil exponencial triple?

en EMACROSS EA.

es mejor que la EMA.

Gracias.

 

El mejor sistema para los pares cruzados

Hola

He encontrado un sistema muy bueno que es muy bueno para el comercio de pares cruzados.

Es muy sencillo y se basa en SMA y EMA, pero es muy efectivo. Si alguien puede desarrollar un EA para esto podemos probar.

Se utilizarán 2 tipos de medias móviles de la barra anterior

6 ema,12 sma

La tendencia es a la baja si 6ema<12ma

y la tendencia es alcista si 6ema>12ma

señal de compra o venta

Venta: si la tendencia es a la baja y se vende (oferta) H

O

Comprar: si la tendencia es alcista y comprar(ask) L[Lowest(6,0)]

salir:

si la tendencia es a la baja, corto, L[Lowest(6,0)]

si la tendencia es alcista, largo, H

invertir:

si la tendencia es alcista, corto, L[Lowest(6,0)]

si la tendencia es bajista, largo, H

------------------------------------------

Si cualquier programmar puede hacer indicador o EA para este sistema. todos podemos ver su potencial.

 

Lo siento, pero no he entendido las reglas. ¿Puede explicarlas o utilizar algunos valores numéricos para explicarlas?

Gracias,

Maji

 

EA de ruptura

Hola expertos,

Me gustaría llamar su atención sobre el siguiente hilo, especialmente la discusión por fxengines. Aquí está el enlace: http://www.strategybuilderfx.com/forums/showthread.php?t=11530&page=4&pp

Lo más importante es que él ha mencionado dos sistemas en sus discusiones que estoy copiando y pegando aquí -

Ejemplo 1: La señal de entrada es una ruptura de 60 minutos de 15 sobre el máximo del último período, límite de salida de 30. La probabilidad en el informe para la activación de GBP 60 MIN 15 es del 85,7%. Esta prueba rindió un 84%, y ganó dinero.

"Este motor tuvo un rendimiento neto de 1298 pips con una tasa de éxito del 84%. Si todas las operaciones se hubieran salido en los máximos, el motor habría tenido un valor de 2521 pips. Sin embargo, una media de 1,97 pips por operación fue "devuelta" desde el máximo hasta el punto en el que se salió. El máximo drawdown de este motor fue de 454 pips, con 3 operaciones perdedoras durante la peor racha de pérdidas y 46 ganadoras durante la mejor racha de ganancias."

EJEMPLO 2: La señal de entrada es una ruptura de 60 minutos de 25 sobre el máximo del último periodo, límite de salida de 30. La probabilidad en el informe para la activación de GBP 60 MIN 25 es del 95,2%. Esta prueba rindió un 84%, y ganó dinero.

"Este motor tuvo un rendimiento neto de 941 pips con una tasa de éxito del 84%. Si todas las operaciones se hubieran salido en el máximo, el motor habría valido 1832 pips. Sin embargo, una media de 2,02 pips por operación fue "devuelta" desde el máximo hasta el punto en el que se salió. El máximo drawdown de este motor fue de 452 pips, con 3 operaciones perdedoras durante la peor racha de pérdidas y 25 ganadoras durante la mejor racha de ganancias."

¿Alguien ha escrito un EA para backtest y verificar esta afirmación? Lo intenté, pero no pude duplicar sus resultados ni acercarme, pero no soy un experto. Espero que alguno de los gurús de aquí pueda hacerlo.

Gracias,

Maji

 

Necesito ayuda para codificar el EA

Hola, he descargado el siguiente EA y parece que funciona bastante bien. Sin embargo no aplica Trailingstop, takeprofit y stoploss. podría alguien por favor corregir el código. Cualquier ayuda es muy apreciada. muchas gracias

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

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

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

extern double Lotes = 1;

extern double InitialStop = 30

extern double TrailingStop = 20;

extern bool TakeProfitMode = True;

extern int TakeProfit = 10;

extern bool StopLossMode = True

extern int StopLoss = 25;

datetime BarTime;

//################################################## ###################

int init()

{

//----

//----

return(0);

}

//################################################## ###################

int inicio()

{

int cnt,total,ticket,MinDist,tmp;

doble Spread;

//################################################## ##########################

if(Bares<100){

Print("barras menos de 100");

return(0);

}

//salir si no hay nueva barra

if(BarTime == Time[0]) {return(0);}

//nueva barra, actualiza el tiempo de la barra

BarTime = Tiempo[0];

//################################################## #######################################

//~~~~~~~~~~~~~~~~Cosas varias de configuración~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~

MinDist=MarketInfo(Symbol(),MODE_STOPLEVEL);

Spread=(Ask-Bid);

//################################################## #######################################

double SMAP1,SMAP2,MMAP1,MMAP2,LMAP1,LMAP2;

SMAP1=iMA(NULL,0,4,0,MODE_EMA,PRICE_CLOSE,1);

SMAP2=iMA(NULL,0,4,0,MODE_EMA,PRICE_CLOSE,2);

MMAP1=iMA(NULL,0,9,0,MODE_EMA,PRICE_CLOSE,1);

MMAP2=iMA(NULL,0,9,0,MODE_EMA,PRICE_CLOSE,2);

LMAP1=iMA(NULL,0,100,0,MODE_EMA,PRICE_CLOSE,1);

LMAP2=iMA(NULL,0,100,0,MODE_EMA,PRICE_CLOSE,2);

//################################################## ######################################

//################## CIERRE DE LA ORDEN ################################################## #

// Si las órdenes están en vigor, entonces comprueba el cierre contra las técnicas LONG & SHORT

//Cierre las entradas LONG

total=Total de órdenes();

if(total>0)

{

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

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol())

{

if(SMAP2 > MMAP2 && SMAP1 < MMAP2)

{

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

}}

//CERRAR LAS ENTRADAS CORTAS:

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) // comprueba el símbolo

{

if(SMAP2 MMAP2)

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet) ; // cierra la posición SHORT

}}

} // para el bucle de retorno

} // cerrar la 1ª si

//################################################## ############################

//################## ORDENAR AJUSTE DE PARADA DE TRAILING #######################

//PARADA DE ARRASTRE: LONG

if(0==1) /Se utiliza para activar y desactivar el trailing stop

{

total=Total de pedidos();

if(total>0)

{

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

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()==OP_BUY && OrderSymbol()==Symbol()

&&

Bid-OrderOpenPrice()> (Point*TrailingStop)

&&

OrderStopLoss()<Bid-(Point*TrailingStop)

)

{OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),1,White);

return(0);}

}}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//TRAILING STOP: CORTO

total=Total de pedidos();

if(total>0)

{

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

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

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

&&

OrderOpenPrice()-Ask > (Point*TrailingStop)

&&

OrderStopLoss() > Ask+(Point*TrailingStop)

)

{OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(P oint*TrailingStop),OrderTakeProfit(),0,Yellow);

return(0);}

}}

} // soporte final para el interruptor de encendido/apagado

//################################################## ########################################

//~~~~~~~~~~~ FIN DE ORDEN Rutinas de cierre y cambios de Stoploss ~~~~~~~~~~~~~~~~~~~~~~~~~~~

//################################################## ########################################

//~~~~~~~~~~~~Inicio de nuevas órdenes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//######################### ¿NUEVAS POSICIONES? ######################################

//Posiblemente añadir en temporizador para detener las entradas múltiples dentro del Periodo

// Comprobar Margen disponible

// SOLO UNA ORDEN por SÍMBOLO

// Bucle alrededor de las órdenes para comprobar que el símbolo no aparece más de una vez

// Comprobar el tiempo transcurrido desde la última entrada para detener múltiples entradas en la misma barra

if (0==1) // interruptor para activar/desactivar la comprobación del historial

{

total=HistoryTotal();

if(total>0)

{

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

{

OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY); //Debe ser el día siguiente y no el siguiente

if(OrderSymbol()==Symbol()&& CurTime()- OrderCloseTime() < (Period() * 60 )

)

{

return(0);

}}}}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

total=Total de pedidos();

if(total>0)

{

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

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol()) return(0);

}

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

if(AccountFreeMargin()<(1000*Lots))

{Print("No tenemos dinero. Margen libre = ", AccountFreeMargin());

return(0);}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//################################################## #######################################

//REGLAS DE LA ENTRADA: LONG

if(SMAP2 MMAP2)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0, "M axMin Long",16384,0,Orange); //Bid-(Point*(MinDist+2))

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);

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//REGLAS DE LA COMPRA: CORTO //################################

if(SMAP2 > MMAP2 && SMAP1 < MMAP2)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0," MaxMin Short",16384,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);

}

//################################################## ##################################

//############ Fin del programa #########################

return(0);

}

Razón de la queja: