domingo, 5 de febrero de 2012

PROSCREENERS sistema rebote

He hecho 2 Proscreeners para buscar valores que puedene star haciendo un suelo o un techo, o que la menos nos deberian dar una señal de entrada contratendencial.


////PROSCREENER SISTEMA REBOTE- LARGOS
// por jose7674

//Definimos el MACD
rapida = exponentialaverage[5](close)
lenta= exponentialaverage[13](close)
miMACD = rapida - lenta

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

//definimos las condiciones de largos
l1 = miMACD crosses over BBinf
l2 = Stochastic[14,6](close) < 20

screener[(l1 and l2)]
//FIN



//////PROSCREENER SISTEMA REBOTE CORTOS
// por jose7674



//Definimos el MACD
rapida = exponentialaverage[1](close)
lenta= exponentialaverage[50](close)
miMACD = rapida - lenta

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

//definimos las condiciones para entrar cortos
c1 = miMACD crosses under BBsup
c2 = Stochastic[14,6](close) > 80

screener[(c1 and c2)]
//FIN




Intentare comentar algo mas esta noche... pero al menos podemos ir avanzando


Sistema REBOTE corregido (ya funcionando)

Os dejo el codigo del probacktest para el sistema rebote, ya corregido.
El problema estaba en la orden de stop, que estaba puesto dentro del if... then... de cierre en beneficios.
Ahora lo que hemos hecho es sacarlos fuera.

// Probacktest para comprobar la utilidad del MACd con BB para detectar zonas de rebote
// por jose 7674


//Definimos el MACD
rapida = exponentialaverage[r](close)// r--> varible a optimizar para la media rapida
lenta= exponentialaverage[l](close)// l--> vaiable a optimizar para la media lenta
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
l2 = Stochastic[14,6](close) < 20

c1 = miMACD crosses under BBsup
c2 = Stochastic[14,6](close) > 80

//entramos largos y cortos si se cumplen las condiciones

if l1 and l2 then
    buy 1share at market nextbaropen
endif

if c1 and c2 then
    sellshort at market nextbaropen
endif

//definimos la condicion de cierre
cl1 = close > (entryquote+ beneficio*AverageTrueRange[14](close))//beneficio--> variable a optimizar, de 0.5 a 3, paso 0,5
stopinferior = lowest[13](low)
if longonmarket then
    if cl1 then
        sell at market thisbaronclose
    endif
    set stop (stopinferior*(1-stop2))// stop2--> variable a optimizar, de 0 a 0,05
endif

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

/////////////////FIN////////////////////////////////