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
Sistemas automaticos para trading, PROREALTIME, MT4, Expert Advisors, EAs...
domingo, 5 de febrero de 2012
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////////////////////////////////
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////////////////////////////////
Suscribirse a:
Entradas (Atom)