martes, 20 de diciembre de 2011

Un sistema sencillo para empezar: REBOTE

Vamos a comenzar con un sencillo sistema, para ir introduciendo algun concepto.
El sistema REBOTE busca entradas contratendenciales, con un beneficio ajustado y un riesgo limitado.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Sistema "REBOTE"
// por jose7674
// Probacktest para comprobar la utilidad del MACd con BB para detectar zonas de rebote
// La version inicial entra cuando el MACD se introduce en la BB, sin otros filtros


//Definimos el MACD
rapida = exponentialaverage[r](close)
lenta= exponentialaverage[l](close)
miMACD = rapida - lenta

//definimos las BB
BBm = average[20](miMACD)
BBsup = BBm + 2*STD[20](miMACD)
BBinf = BBm - 2*STD[20](miMACD)

//definimos las condiciones para entrar largos y cortos

l1 = miMACD crosses over BBinf //largos cuando el MACD cruza al alza la banda inferior

c1 = miMACD crosses underBBsup // cortos cuando el MACD cruza hacia abajo la banda superior

//entramos largos y cortos si se cumplen las condiciones

if l1 then
buy 1share at market nextbaropen
endif

if c1 then
sellshort at market nextbaropen
endif

//definimos la condicion de cierre
cl1 = close > (entryquote+ beneficio*AverageTrueRange[14](close))
stopinferior = lowest[13](low)
if longonmarket and cl1 then
sell at market thisbaronclose
set stop stopinferior[1]
endif

if longonmarket then
sell at stopinferior stop
endif

cc1 = close < (entryquote- beneficio*AverageTrueRange[14](close))
stopsuperior = highest[13](high)
if shortonmarket and cc1 then
exitshort at market thisbaronclose
set stop stopsuperior[1]
endif
///////////////////////////////////////////////////////////////////////////////////////////////////////



Ya hemos definido nuestro primer sistema. Ahora vamos a empezar a usarlo para introducir conceptos. Este grafico es el sistema en el Ibex35, en graficos de 15minutos

Este es un grafico del sistema en el Ibex 15 minutos, sin comisiones--> 83% de operaciones ganadoras, + 618euros de beneficio


Ahora vamos a ver como afectan las comisiones a nuestro sistema. En Renta4, la comision por operacion con un mini-Ibex, es de 1.5 Euros. Es decir, nos cobran 1.5 euros por comprar y 1.5 euros por vender. Asi que las comisiones totales son 3 Euros.
Como vemos, con una comision de 1.5 euros por operacion, los resultados empeoran ligeramente: 77.42% de operaciones ganadoras, +526 euros de beneficio

Ahora vamos a hablar del slippage. El slippage seria la diferencia entre el precio de compra y de venta, mas la desviacion que puede sufrir la apertura de la orden. Por ejemplo, en un Mini del Ibex, la diferencia es de 5-10 puntos. Y como cada punto es 1 euro, pues en cada operacion perdemos de 5-10 euros. Si ademas operamos "a mercado", la desviacion puede ser mayor (moraleja, no hay que operar "a mercado", y hay que tener siempre los puntos de entrada y salida prefijados).

Vamos a ser optimistas y asumimos un slippage de 5 puntos en cada entrada y salida. Es decir, 5 puntos de slippage al comprar el contrato + 1,5 euros de comision+ 5 puntos de slippage al cerrar el largo+ 1.5 euros de comision = 13 euros (o puntos) de perdidas-somisiones, que deberemos reflejar en nuestro sistema.

Pues vamos a ver que ocurre:
Bueno, la cosa ha empeorado bastante. En una simulacion de nuestro sistema, bastante optimista por otro lado, tenemos que:
Operaciones ganadoras: 74.19% (magnifico resultado igualmente)
Beneficio total: 221.20 puntos
Comisiones: 396.5 euros.

Es decir, hemos ganado 220 euros, y hemos pagado casi el doble en comisiones (396.54 euros).

¿Como solucionamos esto?
Pues tenemos 2 opciones, o buscamos un broker con menores comisiones y slippage, o cambiamos el timeframe en el que operamos, para maximizar los beneficios:

Si pasamos el sistema grafico diario, tenemos lo siguiente:
Operaciones ganadoras: 71.43%
Beneficio total: 3206.6 puntos- euros
Comisiones: 364 euros

Es decir, de pagar el doble en comisiones, hemos pasado a pagar un 12%.


Mañana intentare explicar como podriamos mejorar el sistema rebote mediante un sencillo filtro como es el estocastico

4 comentarios:

  1. Hola Jose, me parece muy interesante tu blog, y estoy intentando empezar por el principio, pero como podrás adivinar tras mi pregunta no domino en absoluto la programación en PRT. Únicamente e creado algún indicador, pero con ayuda. Aún así estoy en ello, y con interés. Bueno, la cuestión es que yo intento introducir el código con un "copia" y "pega" y PRT me dice "Error de sintaxis: Defina la siguiente variabler; Defina la siguiente variablel; Defina la siguiente variablebeneficio". Sé que tengo que definir las variables, pero no tengo ni idea de cómo ni de los parámetros.
    Si tienes un momento me ayudaría que me respondieras. Gracias de antemano.

    ResponderEliminar
  2. En el articulo "guía para usar rebote (o cualquier otro probacktest)" tienes la explicación de como usar rebote y optimizarlo.
    Espero que te sirva de ayuda.

    ResponderEliminar
  3. Buenos dias Jose, me gusta tu estrategia pero al intentar ponerla en practica en el PRT v. 10.3 me da problemas, me podrias echar un cable? los problemas son:
    1- codigo; thisbaronclose - no lo detecta
    2- los stopsinferior - tampoco los detecta.
    gracias!

    ResponderEliminar
  4. me sucede lo mismo con errores de sintaxis en la vercion 10.3

    ResponderEliminar