¡Gran EA en backtest! - página 108

 

resultados de la demostración de la semana pasada

Hola mundo.

fue alrededor del viernes pasado cuando descubrí un error potencial al calcular las horas bloqueadas.

Estoy usando FXDD con una configuración de GMT=3. el siguiente trozo de código debería calcular la hora actual (gmt).

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

sin embargo, a las 00:00 hora FXDD, esta función devuelve -3, a las 01:00 devuelve -2 y a las 02:00 devuelve -1. pero los valores correctos deberían ser 21, 22 y 23.

esta fue la razón por la que mis horas bloqueadas de 23:00 gmt para los pares JPY nunca se bloquearon.

He añadido este código para compensar este error:

if (hadj<0) hadj = hadj + 24;

de todos modos, aquí están los resultados de la semana pasada... nada espectacular sin embargo.

mi cuenta real tampoco tuvo un rendimiento tan bueno.

lo que más me molesta es que los backtests a posteriori resultan ser ganadores absolutos en todos los casos. las operaciones ganadoras del backtest nunca se ejecutaron durante el trading en vivo y las operaciones perdedoras durante el trading en vivo nunca se mostraron durante los backtests. este es un mundo perverso.

AZBOfin

Archivos adjuntos:
 

Aragorn, ¿estás usando la configuración por defecto de tu versión 1.0 R2, o has cambiado algo. el riesgo, los lotes, etc. no importan de todos modos, me pregunto más sobre los filtros, la configuración del SL y demás.

He añadido tu revisión del EA a partir de hoy (me perdí el día de ayer) a mi cartera real para el EUR$. espero que pueda recuperar lo que la versión "original" perdió

AZBOfin

BTW: buen trabajo con la programación de hecho

 
Aaragorn:
Tengo que decir que todavía me encanta despertarme por la mañana y ver que este EA ha ganado dinero mientras yo dormía.

Estoy haciendo una comparación de mi cuenta real que ahora sólo se ejecuta la versión alerteuro y la cuenta de demostración que estoy permitiendo ejecutar el euro de alerta y el usdcad y la versión usdjpy todos los cuales he publicado anteriormente en el hilo ... de los tres el usdjpy es, con mucho, el más activo, y también es, con mucho, el menos rentable, parece que apenas hacer más que el equilibrio y, a veces pierde mucho. Quería ver si los tres pares juntos ganaban más o menos que el propio euro que es el resultado más fiable que veo hasta ahora.

Bueno, los tres juntos casi han reventado mi cuenta demo hasta donde está mi cuenta real... ¡son pésimos juntos! Creo que voy a seguir dejando correr la versión de euroalert en demo a riesgo=1 y en mi cuenta real a riesgo=.25 El saldo en mi cuenta real esta mañana es de 315,16$ y en mi demo es de 322,63$. Casi lo mismo ahora, veré en demo si podría tolerar un mayor riesgo?

mientras tanto... por el camino del desarrollo...

Estoy teniendo algunos problemas para crear un histograma con los datos de soporte y resistencia. Obviamente no domino los bucles y las matrices. Estoy tratando de conseguir un bucle para el ciclo a través de una matriz y si coincide con un valor ya en la matriz a continuación, aumentar el recuento y pasar al siguiente valor y si no encuentra una coincidencia a continuación, añadir el valor al final de la matriz. Está resultando asquerosamente difícil. En primer lugar, el array sólo permite intergers, así que tengo que convertir el valor del nivel de precio en un interger. Tiene que pasar por dos conversiones de tipo de datos para hacer eso....THEN... tiene que incerment dentro del bucle que aparentemente no está haciendo. El bucle está bien, pero no está incermentando los valores de la prueba....oy vey. ¿Dónde está el genio de la codificación cuando lo necesito?

#define SIZE 50 // must be set to match NumberOfBars

static int Index = 0;

static double Opens[ SIZE ] = { 0 };

static int TotalOMatches[ SIZE ] = { 0 };

static double OpenHistogram[2][ SIZE ] = { 0 };

int ct5=0,i5=NumberOfBars;

int level=0,matches=0;

// This loop cycles TotalOMatches thru the OpenHistogram looking for identical price levels and creates histogram of all unique open levels and their associated matches

for(ct5=NumberOfBars;ct5>0;ct5--)

{

string Openhist=DoubleToStr(Opens,4*10000);

int Ohist=StrToInteger("Openhist");

Print("Ohist: ",Ohist," ",TotalOMatches);

while(OpenHistogram[level][matches] == OpenHistogram[Ohist][TotalOMatches])

{

level++;

matches++;

Print("Ohist: ",Ohist," ",TotalOMatches);

//Print("cycle: ",i5);

if(OpenHistogram[level][matches] != OpenHistogram[Ohist][TotalOMatches])

{

OpenHistogram[level][matches] = OpenHistogram[Ohist][TotalOMatches];

// We print the result

Print("Open Histogram: ",OpenHistogram[level][matches]);

Print ("Open Histogram2: ",OpenHistogram[Ohist][TotalOMatches]);

}

i5--;

}

}

cuando ejecuto esto imprime

Ohist 0, 0

Ohist 0, 0

Ohist 0, 0

Ohist 0, 0

.....

como un millón de veces.

Si alguien puede ayudarme a que esto funcione que se sienta libre también. Me tiene retorcido en un poste.

 
AZBOfin:
Aragorn, ¿estás usando la configuración por defecto de tu versión 1.0 R2, o has cambiado algo? El riesgo, los lotes, etc. no importan de todos modos, me pregunto más sobre los filtros, la configuración de SL y demás.

He añadido su revisión EA a partir de hoy (se perdió el día de ayer de comercio) a mi cartera real para el EUR $. espero que pueda ganar de nuevo lo que la versión "original" perdió

AZBOfin

BTW: buen trabajo con la programación de hecho

Gracias, me vendría bien un poco de ayuda en la codificación. ¿Conoces a alguien que pueda ayudarme? En realidad me veo codificando como mickey mouse en fantasia cuando el wizzard esta de espaldas.

Esto es lo que estoy ejecutando ahora mismo. He cerrado todo lo demás. Sí, es un mundo malvado, pero me doy cuenta de que todavía estoy jugando el juego. Es asombroso cómo cambia mi actitud hacia el mundo cuando me estoy beneficiando en contraposición a cuando me estoy hundiendo. Mi esfuerzo ahora se centra en mejorar la parte de la gestión del dinero en las decisiones. Espero poder conseguir que lo del soporte/resistencia funcione antes de que pase mucho tiempo.

que tal el movimiento de esta mañana! que pena que no haya cogido esa ola...pero de nuevo este sistema no está ganando por coger grandes movimientos. Al menos como yo lo tengo ganando es solo buscando 7 pips en un reverso de alta probabilidad cuando el cci es correcto. Lo que tengo que recordar es que 7 pips 3 veces al día es 21 pips al día y si lo hace todos los días o incluso cerca de que con cualquier grado de fiabilidad que es un gran sistema que puede ser aprovechado en hacer millones en tan sólo unos meses. Tengo que mantener el objetivo a la vista y no distraerse por el flashiness del mercado. Todo ese flashiness es inútil a menos que usted puede capturar con algún grado de fiabilidad. Veo más fiabilidad en este sistema tal y como está que en cualquier otra cosa que haya estudiado hasta ahora, por eso sigo trabajando en él.

Archivos adjuntos:
 

Creo que estoy viendo un patrón.

La última vez que hubo un gran movimiento como el de esta mañana...

el programa tomó tres operaciones entre los retrocesos que siguieron. Tomó una posición corta y dos posiciones largas.

Ganó la posición corta que bajaba desde el pico del gran movimiento. Y perdió la primera posición larga y luego ganó la segunda. La segunda fue en realidad mejor en términos de inversión (obviamente)

así que...

mi idea es que por ahora, hasta que pueda programarlo para que reconozca estas condiciones, impida manualmente que tome una posición larga en este momento. porque la primera posición larga que podría tomar es, por lo que puedo ver del último ciclo, una probabilidad más baja que la segunda posición larga que podría tomar. Por lo tanto, ahora mismo bloquearé manualmente las posiciones largas y vigilaré esto. No tengo que evitar demasiados perdedores para hacer una diferencia aquí.

También veo que esto está operando ahora justo por debajo de donde tengo una línea de resistencia dibujada en 1,2781. Ojalá supiera cómo hacer que mi histograma de soporte-resistencia esté disponible para este código ahora mismo...oy

 

Bien, he añadido

break; en este punto del código que acabo de publicar...

}

i5--;

break;

}[/PHP]

now it's printing the second variable of the array...that's the matches

[PHP]2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 4

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 4

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 3

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 3

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

ahora si puedo averiguar cómo obtener los niveles a través de su conversión de tipo de datos y incermenting....hum

 

hola aragorn

yo también estoy jugando con este sistema pero tengo resultados diferentes.

¿podrías ser tan amable y hacer una captura de pantalla de un día de los últimos días?

También me pregunto, mi ventana de alarma se ve cyberia alerta - venta de eur / usd, pero el sistema de venta gbp / usd? (tengo 2 ventanas eur/usd,gbp/usd)

gracias por la ayuda e información

begu

Archivos adjuntos:
 
forex2006:
hola aragorn

yo también estoy jugando con este sistema pero tengo resultados diferentes.

¿podría ser tan amable y hacer una captura de pantalla de un día de los últimos días?

También me pregunto, mi ventana de alarma se ve cyberia alerta - venta de eur / usd, pero el sistema de venta gbp / usd? (tengo 2 ventanas eur/usd,gbp/usd)

gracias por la ayuda e información

begu

entiendan que lo que he construido con alarmas es específicamente para el par eurusd exclusivamente. Se podría cambiar en el código para decir gbpusd pero no recomiendo ejecutar la versión de euroalert en cualquier otro par además del par para el que está optimizado.

No estoy seguro de lo que esperas que gane publicando una captura de pantalla. En realidad estoy demasiado ocupado ahora mismo con el desarrollo para hacer eso por ti, lo siento. quizás en algún momento posterior cuando entienda más lo que exactamente esperas aprender de ello.

ok ahí tienes... por si sirve de algo.

Archivos adjuntos:
aleerteuro.gif  61 kb
 

Ok creo que he aprendido una lección acerca de tratar de mejorar manualmente las operaciones...la demo tomó una posición larga y la ganó y mi cuenta real no lo hizo porque tenía las operaciones largas bloqueadas...oy lol Voy a volver a permitir tanto a largo como a corto....prueba que no soy un genio del comercio. otra teoría resultó menos que impecable...

en el lado positivo que estoy recibiendo las matrices y bucles para trabajar mejor ahora.

fyi,

http://www.212movie.com/

 

Ok he resuelto los problemas de conversión de datos. He hecho que un bucle anterior cargue todos los valores de los precios *10000 en un interger array antes de que el código ejecute este bucle. Ahora simplemente llamo al interger array en este.

int ct5=0,i5=NumberOfBars;

int level=0,matches=0;

// This loop cycles TotalOMatches thru the OpenHistogram looking for identical price levels and creates histogram of all unique open levels and their associated matches

for(ct5=NumberOfBars;ct5>0;ct5--)

{

//Print("bar: ",i5," Ohist: ",OpensInt," ",TotalOMatches);

while(OpenHistogram[level][matches] == OpenHistogram[OpensInt][TotalOMatches])

{

level++;

matches++;

//Print("Ohist: ",Ohist," ",TotalOMatches);

Print("cycle: ",i5," Ohist: ",OpensInt," ",TotalOMatches);

if(OpenHistogram[level][matches] != OpenHistogram[OpensInt][TotalOMatches])

{

OpenHistogram[level][matches] = OpenHistogram[OpensInt][TotalOMatches];

// We print the result

Print("Open Histogram: ",OpenHistogram[level][matches]);

Print ("Open Histogram2: ",OpenHistogram[OpensInt][TotalOMatches]);

}

i5--;

break;

}[/PHP]

this is the output...

[PHP]2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 1 Ohist: 12730 3

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 2 Ohist: 12730 3

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 3 Ohist: 12725 2

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 4 Ohist: 12722 2

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 5 Ohist: 12730 3

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 6 Ohist: 12713 1

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 7 Ohist: 12684 2

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 8 Ohist: 12679 4

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 9 Ohist: 12666 2

Sigue habiendo un problema...

puedes ver que las barras en los bucles 1,2 y 5 son todas iguales. Así que mientras esto está manejando los datos extraídos todavía no está haciendo un histograma consolidado que sólo tiene una entrada para cada nivel de precio....

Algo en la parte que se supone que anexa los valores únicos al final del histograma no está funcionando todavía....huummm... No estoy familiarizado con los arrays y mucho menos con los arrays bidimensionales. Para alguien que sabe cómo hacer esto es probablemente muy obvio lo que estoy haciendo mal.