Hola desearia un consejo en este codigo para un cruce de medias de 50 y 100 wilder no consigo que arranque gracias de antemano
REM Comprar
indicator1 = WeightedAverage[50](close)
indicator2 = WilderAverage[100](close)
c1 = (indicator1 CROSSES OVER indicator2)
IF c1 THEN
BUY 1 SHARES AT MARKET THISBARONCLOSE
ENDIF
REM Vender
indicator3 = WeightedAverage[50](close)
indicator4 = WilderAverage[100](close)
c2 = (indicator3 CROSSES UNDER indicator4)
IF c2 THEN
SELL AT MARKET THISBARONCLOSE
ENDIF
REM Venta a corto (short)
indicator5 = WeightedAverage[50](close)
indicator6 = WilderAverage[100](close)
c3 = (indicator5 CROSSES OVER indicator6)
IF c3 THEN
SELLSHORT 1 SHARES AT MARKET THISBARONCLOSE
ENDIF
REM Salida venta a corto (exit short)
indicator7 = WeightedAverage[50](close)
indicator8 = WilderAverage[100](close)
c4 = (indicator7 CROSSES UNDER indicator8)
IF c4 THEN
EXITSHORT AT MARKET THISBARONCLOSE
ENDIF
Una ayuda con un backtest
-
- Mensajes: 34
- Registrado: 09 Sep 2011 08:06
Una ayuda con un backtest
Cuando el maestro señala la luna el necio mira el dedo
Re: Una ayuda con un backtest
¿En qué lenguaje está escrito? ¿Para qué plataforma? Diría que es Visual Chart pero por si acaso...
Saludos,
X-Trader
Saludos,
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Re: Una ayuda con un backtest
Es prorealtime, fijo.
A ojo no veo más cosa rara que el "thisbaronclose", que no sé para qué lo quieres si las órdenes ya son "at market", y que llamas de 3 maneras distintas a la misma función (indicator1=indicator3=indicator5)
A ojo no veo más cosa rara que el "thisbaronclose", que no sé para qué lo quieres si las órdenes ya son "at market", y que llamas de 3 maneras distintas a la misma función (indicator1=indicator3=indicator5)
-
- Mensajes: 143
- Registrado: 16 Jul 2010 13:56
- Ubicación: from hell
Re: Una ayuda con un backtest
REM la variable mm1 debe ser menor que mm2
REM Comprar
mm1=13
mm2=21
indicator1 = ExponentialAverage[mm1](close)
indicator2 = ExponentialAverage[mm2](close)
c1 = (indicator1 CROSSES OVER indicator2)
IF c1 THEN
BUY 1 SHARES AT MARKET THISBARONCLOSE
ENDIF
REM Vender
indicator3 = ExponentialAverage[mm1](close)
indicator4 = ExponentialAverage[mm2](close)
c2 = (indicator3 CROSSES UNDER indicator4)
IF c2 THEN
SELL AT MARKET THISBARONCLOSE
ENDIF
REM Venta a corto (short)
indicator5 = ExponentialAverage[mm1](close)
indicator6 = ExponentialAverage[mm2](close)
c3 = (indicator5 CROSSES UNDER indicator6)
IF c3 THEN
SELLSHORT 1 SHARES AT MARKET THISBARONCLOSE
ENDIF
REM Salida venta a corto (exit short)
indicator7 = ExponentialAverage[mm1](close)
indicator8 = ExponentialAverage[mm2](close)
c4 = (indicator7 CROSSES OVER indicator8)
IF c4 THEN
EXITSHORT AT MARKET THISBARONCLOSE
ENDIF
...............................................................................
Donde pone exponential cámbialo por WeightedAverage
lo que he ido mirando son los cruces que tienen esperanza matematica positiva, y como son medias pues las mas largas dan mejor resultado con una fiabilidad del 30%
las mas cortas como el cruce 2,3 tiene EMN rachas de perdidas enormes, demasiadas operaciones=muchas comisiones y mas temprano que tarde la cuenta queda destrozada.
El backtest que he puesto solo funciona en el ibex o mini ibex, tampoco se poner el stoploss ni tampoco un stoploss dinámico con idea de ver si los resultados se mejoran, he visto la opcion en PT pero no me termina de convencer
REM Comprar
mm1=13
mm2=21
indicator1 = ExponentialAverage[mm1](close)
indicator2 = ExponentialAverage[mm2](close)
c1 = (indicator1 CROSSES OVER indicator2)
IF c1 THEN
BUY 1 SHARES AT MARKET THISBARONCLOSE
ENDIF
REM Vender
indicator3 = ExponentialAverage[mm1](close)
indicator4 = ExponentialAverage[mm2](close)
c2 = (indicator3 CROSSES UNDER indicator4)
IF c2 THEN
SELL AT MARKET THISBARONCLOSE
ENDIF
REM Venta a corto (short)
indicator5 = ExponentialAverage[mm1](close)
indicator6 = ExponentialAverage[mm2](close)
c3 = (indicator5 CROSSES UNDER indicator6)
IF c3 THEN
SELLSHORT 1 SHARES AT MARKET THISBARONCLOSE
ENDIF
REM Salida venta a corto (exit short)
indicator7 = ExponentialAverage[mm1](close)
indicator8 = ExponentialAverage[mm2](close)
c4 = (indicator7 CROSSES OVER indicator8)
IF c4 THEN
EXITSHORT AT MARKET THISBARONCLOSE
ENDIF
...............................................................................
Donde pone exponential cámbialo por WeightedAverage
lo que he ido mirando son los cruces que tienen esperanza matematica positiva, y como son medias pues las mas largas dan mejor resultado con una fiabilidad del 30%
las mas cortas como el cruce 2,3 tiene EMN rachas de perdidas enormes, demasiadas operaciones=muchas comisiones y mas temprano que tarde la cuenta queda destrozada.
El backtest que he puesto solo funciona en el ibex o mini ibex, tampoco se poner el stoploss ni tampoco un stoploss dinámico con idea de ver si los resultados se mejoran, he visto la opcion en PT pero no me termina de convencer
Re: Una ayuda con un backtest
Hola tehbarbarian,
He probado tu código, que es sin duda ProRealTime, y me funciona perfectamente.
Humm, prueba pasar a 10000 unidades, y luego a las unidades que te prefieras. Y vuelve a ejecutar.
Por cierto, he hecho backtesting de tu sistema históricamente en el Ibex35, y me da que es un sistema perdedor. Ojito.
El código es un poco adsurdo, porque simultáneamente abres cortos y largos con la misma condición en lugar de la condición recíproca.
Te sugiero este otro código que sí es ganador:
REM Comprar
indicator1 = WeightedAverage[50](close)
indicator2 = WilderAverage[100](close)
c1 = (indicator1 CROSSES OVER indicator2)
IF c1 THEN
BUY 1 SHARES AT MARKET THISBARONCLOSE
ENDIF
REM Vender
indicator3 = WeightedAverage[50](close)
indicator4 = WilderAverage[100](close)
c2 = (indicator3 CROSSES UNDER indicator4)
IF c2 THEN
SELL AT MARKET THISBARONCLOSE
ENDIF
REM Venta a corto (short)
indicator5 = WeightedAverage[50](close)
indicator6 = WilderAverage[100](close)
c3 = (indicator5 CROSSES UNDER indicator6)
IF c3 THEN
SELLSHORT 1 SHARES AT MARKET THISBARONCLOSE
ENDIF
REM Salida venta a corto (exit short)
indicator7 = WeightedAverage[50](close)
indicator8 = WilderAverage[100](close)
c4 = (indicator7 CROSSES OVER indicator8)
IF c4 THEN
EXITSHORT AT MARKET THISBARONCLOSE
ENDIF
La únicas diferencias con tu código son las palabras en rojo. He intercambiado UNDER por OVER y viceversa en la operativa de cortos porque es lo lógico.
¿Tema aclarado?
Saludos.
He probado tu código, que es sin duda ProRealTime, y me funciona perfectamente.
Humm, prueba pasar a 10000 unidades, y luego a las unidades que te prefieras. Y vuelve a ejecutar.
Por cierto, he hecho backtesting de tu sistema históricamente en el Ibex35, y me da que es un sistema perdedor. Ojito.
El código es un poco adsurdo, porque simultáneamente abres cortos y largos con la misma condición en lugar de la condición recíproca.
Te sugiero este otro código que sí es ganador:
REM Comprar
indicator1 = WeightedAverage[50](close)
indicator2 = WilderAverage[100](close)
c1 = (indicator1 CROSSES OVER indicator2)
IF c1 THEN
BUY 1 SHARES AT MARKET THISBARONCLOSE
ENDIF
REM Vender
indicator3 = WeightedAverage[50](close)
indicator4 = WilderAverage[100](close)
c2 = (indicator3 CROSSES UNDER indicator4)
IF c2 THEN
SELL AT MARKET THISBARONCLOSE
ENDIF
REM Venta a corto (short)
indicator5 = WeightedAverage[50](close)
indicator6 = WilderAverage[100](close)
c3 = (indicator5 CROSSES UNDER indicator6)
IF c3 THEN
SELLSHORT 1 SHARES AT MARKET THISBARONCLOSE
ENDIF
REM Salida venta a corto (exit short)
indicator7 = WeightedAverage[50](close)
indicator8 = WilderAverage[100](close)
c4 = (indicator7 CROSSES OVER indicator8)
IF c4 THEN
EXITSHORT AT MARKET THISBARONCLOSE
ENDIF
La únicas diferencias con tu código son las palabras en rojo. He intercambiado UNDER por OVER y viceversa en la operativa de cortos porque es lo lógico.
¿Tema aclarado?
Saludos.
-
- Mensajes: 143
- Registrado: 16 Jul 2010 13:56
- Ubicación: from hell
Re: Una ayuda con un backtest
Rafa7 escribió:Hola tehbarbarian,
He probado tu código, que es sin duda ProRealTime, y me funciona perfectamente.
Humm, prueba pasar a 10000 unidades, y luego a las unidades que te prefieras. Y vuelve a ejecutar.
Por cierto, he hecho backtesting de tu sistema históricamente en el Ibex35, y me da que es un sistema perdedor. Ojito.
Saludos.
¿Has probado con diferentes cruces de medias?
Por ejemplo cruce exponencial de 5 y 10 en gráfico semanal, a mi me da EMP (esperanza matemática positiva)
mm 5,8 gráfico semanal: efectividad de mas o menos un %33 gana en 27 y pierde en 53 operaciones, máxima racha de perdidas unos 4000 (podrían ser mas aplicado en real)
Y luego tengo un tema pendiente: cruces de medias pero usando barras de 2 horas o de 15 minutos para hacer swingtrading y si realmente merece la pena o ese 30% que suelen tener las medias en este caso las comisiones serian un problema al ser mas operaciones.
Re: Una ayuda con un backtest
Hola Troll.Trollputero escribió:¿Has probado con diferentes cruces de medias?
No he probado ni hace falta que lo haga. En el código de thebarbarian hay un error de trading: la condición para abrir las operaciones cortas y largas es exactamente la misma en lugar de la recíproca. Y la condición para cerrar las operaciones cortas y largas es exactamente la misma en lugar de la recíproca. Teóricamente el resultado es nulo antes de comisiones y perdedor después de comisiones. ¿Me explico?
Pero ese código con las correcciones que he puesto (solo he cambiado lo señalado en rojo), da lugar a un sistema ganador.
Mira, te invito a una cosa, compara el código de thebarbarian con el que yo he propuesto. Espero que entiendas la diferencia.
Ya me diras si me has entendido.
Saludos.
Re: Una ayuda con un backtest
Rafa, en el primer post de Trollputero ya aparece corregido.
Re: Una ayuda con un backtest
Pues no entiendo nada.Fer137 escribió:Rafa, en el primer post de Trollputero ya aparece corregido.
Yo cuando dije que el código de trading errado me refería al de thebarbarian, no al de troll.
Me siento fuera de juego porque no entiendo nada.
Yo afirmo que el código de thebarbarian funciona correctamente pero que es errado desde el punto de vista del trading ya que simultáneamente abre una operación corta y larga, con el mismo número de títulos, y simultáneamente las cierra. El sistema es nulo, y si consideramos las comisiones el sistema es claramente perdedor sin necesidad de hacer backtesting (aunque el backtesting me lo ha confirmado jejeje).
No entiendo que quiso decirme Troll.
Eso sí, si thebarbarian quiere aplicar solamente Wilder tiene que usar WilderAverage en lugar de WeightedAverage.
Troll, creo que no entendió la pregunta de thebarbarian, ya que en su código usa ExponentialAverage cuando debería ser WilderAverage. WilderAverage es un alisado, que usaba Wilder, muy parecido a la media móvil exponentcial pero diferente a ella.
-
- Mensajes: 143
- Registrado: 16 Jul 2010 13:56
- Ubicación: from hell
Re: Una ayuda con un backtest
Hola Rafa7, tu aportación es mas completa que la mía, ya que tu le indicas en ROJO donde esta el fallo, para que el sistema propuesto por thebarbarian funcione correctamente.Rafa7 escribió:Pues no entiendo nada.Fer137 escribió:Rafa, en el primer post de Trollputero ya aparece corregido.
Lo que le comente a de thebarbarian era que cambiara el tipo de medias, yo uso exponencial (no lo cambie yo por pereza todo sea dicho jejeje ) y que usara ese código que copie y pegue para que el mismo vea diferentes cruces, cambiando las variables o también el tipo de medias, ya he visto que thebarbarian usa dos tipos de medias diferentes, creo que son una alisada y otra triangular.
Un sistema tendencial que como se sabe tiene una efectividad del 30% rentable solo a largo plazo, psicológicamente resulta duro de seguir sobre todo cuando se mete en racha de perdidas, laterales, etc
Para la próxima semana intentare ver que pasaría si en lugar de usar barras semanales, se usan de 2 horas o también de 15 minutos con cruces de medias, supongo que también tendrá su 30% ¿merecerá la pena? o al ser mas comisiones ya no es lo mismo.
Saludos
- gofiodetrigo
- Mensajes: 3794
- Registrado: 17 Sep 2004 22:42
- Ubicación: Macaronesia
Re: Una ayuda con un backtest
pues dependerA de lo q las comisiones y slipage resten. Cuando se aumenta la frecuencia o se bajan las comisiones o éstas se lo comen todo, y eso sin mencionar el slipageTrollputero escribió: supongo que también tendrá su 30% ¿merece la pena?
imagina q es un sistema abierto, con overnite, y q en una apertura te ejecuta en un boquete como el euro este "lunes", y ese 30% se convierte en -3%
un solo slipage malo se puede comer el 80% de los resultados tranquilamente
yo te sugiero q lo metas en una demo de forex y hagas forward test de al menos 100 o 200 opes ( y claro, como necesitamos los resultados rapidito, pues ponlo a funcionar en minutajes bestias tipo 1 minuto, y a ver cuanto tiempo tarda en hacer las 200, y con la misma hasta es robusto y sigue mostrando los mismos resultados, dicen q cuando un sistema es robusto funciona en cualquier periodo...cualquier producto....vamos, q te barre hasta la casa xD )
y saques nuevas conclusiones. El spread del euro por ejemplo en forex de menos de un pip en muchas ocasiones, 25 pips como lo mAs salvaje ( pensemos q en la vida real 200 pips de spread son un lujo... ) es dificil de batir en cuanto a comisiones, y en cuanto a slipage, lo mismo, mAs de 25 pips es rharho rharho verlo a dia de hoy, incluso en NFPs y demAs
s2!
"No es dichoso aquél a quien la fortuna no puede dar más, sino aquel a quien no puede quitar nada." Francisco de Quevedo y Villegas 1580-1645.
Re: Una ayuda con un backtest
Hola Troll,Trollputero escribió:ya he visto que thebarbarian usa dos tipos de medias diferentes, creo que son una alisada y otra triangular.
exactamente la WilderAverage es el alisado de Wilder, la WeightedAverage es la la ponderada y la TriangularAverage es la triangular. Así que thebarbarian en su código está usando la alisada de Wilder y la ponderada.
Saludos.
-
- Mensajes: 143
- Registrado: 16 Jul 2010 13:56
- Ubicación: from hell
Re: Una ayuda con un backtest
Tengo la semana de prueba gratuita de PT y he estado mirando varios cruces de medias en diferentes espacios temporales (4horas, 2horas,1hora, 30', 15', 5')
los resultados que dan todos los backtesting son des-esperanzadores todos tienen esperanza matemática negativa ademas de lo que cuesta el servicio al mes para poder ver estos gráficos y que te envíen las señales al móvil
pd: me paso al medio plazo, parece mas cómodo y las comisiones no son tal altas
los resultados que dan todos los backtesting son des-esperanzadores todos tienen esperanza matemática negativa ademas de lo que cuesta el servicio al mes para poder ver estos gráficos y que te envíen las señales al móvil
pd: me paso al medio plazo, parece mas cómodo y las comisiones no son tal altas
Si te ha gustado este hilo del Foro, ¡compártelo en redes!