¡Gran EA en backtest! - página 133

 

Quería publicar mi backtest de 2005

Los resultados son... ¡diferentes!

*EDIT*

No mini, comenzó con 10k en lugar de 1k (todavía va a la prueba de futuro)

Soy realmente escéptico sobre el backtesting, he visto resultados tan enormes con un cambio muy pequeño.

Es como si pudieras diseñar el backtest para un par y un periodo de tiempo concreto, pero si añades un mes es todo lo contrario.

 

Muy extraño, Actualizado los datos a través de la función de descarga y generó un nuevo informe.

*edit* , quería mencionar que esto fue con la compilación 200

 

Hey pple...

Ahí va el informe comparativo semanal (backtest vs. Cuenta DEMO);

 

Hola

Hola.

He estado probando la versión gratuita de CT encontrada en MIG con resultados aceptables para T15m, pero a las 8.00, 13 y 20 GMT se repiten las pérdidas. He intentado pegar la parte de deshabilitar las horas de negociación

extern string TimeTradeHoursDisabled="08,13,20"; // Ejemplo "00,01,02,03,04,05" GMT

extern int GMT=1; // Para North Finance GMT = 3, Alpari GMT = 1, IBFX GMT = -1 etc.

extern int MagicNumber=123000; // Número mágico -- cambia para cada par negociado

// ----

int NoTradeHours1=25; // Hora de no operar

int NoTradeHours2=25; // Hora de no operar

int NoTradeHours3=25; // Tiempo de no negociación

int NoTradeHours4=25; // Tiempo no comercial

int NoTradeHours5=25; // Tiempo no comercializado

int NoTradeHours6=25; // Tiempo no comercial

También he modificado el final añadiendo

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

//| función de inicio del experto |

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

int inicio()

{

GetMarketInfo();

CyberiaLots();

CalculateSpread();

FindSuitablePeriod();

CyberiaDecision();

VerbiageAndTimeCheck();

Comercio();

SaveStat();

return(0);

}

int VerbiageAndTimeCheck() {

string comment_line="", comment_time="", comment_ver="";

string sp = "------------------------------\n";

comment_ver=StringConcatenate(SystemName," v. ",version,"\n");

if (StringLen(TimeTradeHoursDisabled) > 1) {

NoTradeHours1 = StrToInteger(StringSubstr(TimeTradeHoursDisabled,0,2));

}

if (StringLen(TimeTradeHoursDisabled) > 4) {

NoTradeHours2 = StrToInteger(StringSubstr(TimeTradeHoursDisabled,3,2));

}

if (StringLen(TimeTradeHoursDisabled) > 7) {

NoTradeHours3 = StrToInteger(StringSubstr(TimeTradeHoursDisabled,6,2));

}

if (StringLen(TimeTradeHoursDisabled) > 10) {

NoTradeHours4 = StrToInteger(StringSubstr(TimeTradeHoursDisabled,9,2));

}

if (StringLen(TimeTradeHoursDisabled) > 13) {

NoTradeHours5 = StrToInteger(StringSubstr(TimeTradeHoursDisabled,12,2));

}

if (StringLen(TimeTradeHoursDisabled) > 16) {

NoTradeHours6 = StrToInteger(StringSubstr(TimeTradeHoursDisabled,15,2));

}

int h=TimeHour(CurTime());

int hadj=TimeHour(CurTime())-GMT;

if (((hadj) == NoTradeHours1) || ((hadj) == NoTradeHours2) || ((hadj) == NoTradeHours3) || ((hadj) == NoTradeHours4) ||

((hadj) == NoTradeHours5) || ((hadj) == NoTradeHours6)) {

BlockSell = true;

BlockBuy = true;

comment_time=StringConcatenate("Mala hora de negociación: ", hadj, " GMT");

} else {

BlockSell = false;

BlockBuy = false;

comment_time=StringConcatenate("Buena hora de negociación: ", hadj, " GMT");

}

comment_line = comment_ver + sp + comment_time;

if (IsTesting()==false)

Comment(comment_line);

}

Pero no funciona

¿Alguien sabe cómo resolver este problema?

Adjunto el CT que descargué, y probé hacia adelante en MIG con buenos resultados excepto en )8,13,20 GMT

Puede sb publicar la última CT que se utiliza

Gracias

Paco

Archivos adjuntos:
 

Ok encontrado algunos ajustes ideales con CT. Hay algunos varaibles en el código de riesgo que no están configurados correctamente. ¡La idea se inspiró en las versiones posteriores utilizando la tabla de riesgo exportada a Excel, pero de hecho no se requiere para encontrar los valores absolutos sólo relativos! Los valores absolutos cambiarán por las condiciones del mercado pero los valores relativos al riesgo de abrir o cerrar operaciones es lo que queremos.

Ahora tengo 3 simples vars externos que pueden ser fácilmente modificados basados en la muy antigua versión 1.85f en mi opinión las versiones posteriores han empeorado las cosas.

Utilizo NorthFinance para pruebas y demos debido a sus spreads de 2 pips casi siempre fijos. ¡(puede cambiar en condiciones extremas) Otros como IB y FDD que van de ancho puede, literalmente, perder un enorme 60% de sus ganancias anuales!

extern double closemultiplier = 1.5; Este valor cambia el perfil de riesgo en las ordenes de cierre, el riesgo de cierre debe ser siempre menor que el de apertura. Este valor es menor que el de apertura pero mayor que el de construcción por defecto. En otras palabras, tenemos miedo de entrar en el mercado, pero petrificado de perder nuestras ganancias:) A veces esto parece un desperdicio cuando el mercado se mueve en otros 50 pips pero mis estudios han demostrado que tienes que ser extremadamente prudente para que esto funcione.

extern double openmultiplier = 1.7; Este valor cambia el perfil de riesgo para las operaciones de apertura. Es mayor que el de cierre, así que en otras palabras sólo buscamos entradas "seguras". El valor 1.0 representaría todas las otras construcciones y he aumentado la probabilidad y reducido el riesgo. La contrapartida es menos operaciones. Demasiado alto y puede pasar varios días sin operaciones, pero el factor de beneficio aumenta dramáticamente.

extern double StopBias =1.1; Este valor aumenta la posición relativa del auto stop loss. Como el stop loss debe estar en función de la volatilidad del mercado, entonces NO utilice stops fijos. Un stop de 20 puede haber estado bien en agosto, pero ciertamente no ahora cuando el ATR está muy por encima de 100 en el euro. Por lo tanto, siempre que sea posible, las paradas deben estar en función de las condiciones actuales del mercado. El stop loss automático utiliza las últimas barras y calcula el ATR más el spread. Esto significa que las paradas están justo fuera de la envolvente de ruido, que es exactamente donde queremos que estén. El optimizador GA ha encontrado que un ligero incremento aquí sobre el valor por defecto de 1 previene el golpeo de los stops y la toma de esas pérdidas realmente molestas por unos meros 2 o 3 pips cuando se prueban los bordes de la envoltura de ruido.

Yo sólo uso el CCI como filtro, nada más, cuanto más se pone, peor se ponen las cosas, porque sin algo de retraso no podemos determinar un rastro de historia en el que trabajar. Olvídese de usar filtros de hora o de noticias y o trailing stops, la mayor parte del motor de CT ya está ahí, sólo que no está bien afinado. Muchas operaciones rentables ocurren durante las noticias. Trate de usar decisiones relativas y % de algo en lugar de valores absolutos.

Mi riesgo en los lotes es de 0,4 y los lotes máximos cambiados a 99. No limitar a 10 lo que el punto de limitar las ganancias cuando la mayoría de los corredores permitirá 100 lotes en automático?

Os dejo que penséis en esto y veáis lo que se os ocurre:)

1 de enero hasta hoy.

Barras en prueba 49504

Ticks modelados 1246996

Calidad de modelado 90.00%

Depósito inicial 10000.00

Beneficio neto total 97985,55

Beneficio bruto 224608,37

Pérdida bruta -126622,82

Factor de beneficio 1,77

Beneficio esperado 176,23

Reducción absoluta 953,60

Reducción máxima 18422,75 (17,57%)

Drawdown relativo 32,86% (5034,65) respetable teniendo en cuenta las enormes ganancias.

Total de operaciones 556

Posiciones cortas (% de won) 256 (89,45%)

Posiciones largas (% de won) 300 (94,00%)

Operaciones con beneficios (% del total) 511 (91,91%), una tasa de éxito muy satisfactoria de más del 90%.

Operaciones con pérdidas (% del total) 45 (8,09%) No pierde muy a menudo.

Mayor

de ganancias 3894,00

operación con pérdidas -11830,00

Media

de beneficios 439,55

pérdida de comercio -2813.84

Máximo

victorias consecutivas (ganancias en dinero) 74 (19719.35)

pérdidas consecutivas (pérdida en dinero) 3 (-2841,40)

Máximo

ganancias consecutivas (recuento de ganancias) 33358,89 (33)

pérdidas consecutivas (recuento de pérdidas) -11830,00 (1)

Media

ganancias consecutivas 13

pérdidas consecutivas 1

 

Hoy voy a cerrar mi cuenta con IBFX después de ver como fluctúan el eurusd hasta un spread de 6 pip. Voy a abrir una cuenta con FXDD siguiendo el ejemplo de Davidsx. Espero que esto todavía se convierta en un EA útil con un corredor que no jack los diferenciales alrededor de tanto.

 

Feliz Navidad para mí. Mi nueva cuenta está abierta y financiado @ fxdd. Tengo CT va ahora con lotes máximos = 0,01 y estoy esperando ver que el 75% patrón de ganancia que davidsx está recibiendo. que sería genial. También me anima saber que fxdd no tiene límite de tiempo en las posiciones. Algunas de las estrategias que he visto aprovechan mejor las posiciones que están abiertas sólo un minuto o menos.

 

Lo siento amigos tengo mis cables cruzados....

He publicado mi última actualización de CT aquí...

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

 

¿tiene FXDD cuenta micro en demo? no lo sabía

 
Aaragorn:
Lo siento amigos se me cruzaron los cables....

He publicado mi última actualización de CT aquí...

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

Es bueno saber que tenemos otra versión...

Voy a probarla ahora y comparar los resultados con la v1.93b...

Por cierto, la 1.93b en la cuenta Demo de FXDD mostró un rendimiento muy similar a los Backtests... La diferencia residió en pocas operaciones menos, y un poco menos de beneficio, lo cual no es preocupante en absoluto, dado que es NORMAL que CT tenga un rendimiento mediocre durante los fines de año (noviembre y diciembre);

Si el 1.95 no muestra mejores resultados que el 1.93b, seguramente empezaré con este último en una cuenta FXDD Live para el 2007, dado que ha tenido un rendimiento bastante bueno para mí.

¡¡¡Feliz Navidad a todos!!!

¡¡y Feliz Año Nuevo si no posteo para entonces!!