¡Hola a todos!
Estoy tratando de replicar una estrategia que vi el año pasado en The Forex Day en Madrid por Lex Smirnoff.
En el enlace está el video completo donde él mismo explica la estrategia claramente, pero estoy teniendo problemas al codificarlo y necesito vuestra siempre apreciada ayuda.
https://youtu.be/CB6vA8_k3fc
Llevo aplicando manualmente ésta estrategia en real desde Marzo y sería muy interesante para mi y para cualquiera poder automatizarla si fuera posible.
El código completo de la estrategia está en el archivo adjunto.
Creo que el error esta en la parte del código que pego aquí y se puede aprecia el error en la imagen.
En un movimiento alcista por ejemplo, esperamos a que se forme un hueco, desde que la última barra que toque la media movil, esperamos que en la siguiente barra, el mínimo esté por encima de la media móvil y entonces tenemos el hueco formado y es a partir de ahí cuando tendría que poner la orden de compra.
REM Variables
mm = average[8](close)
mm18 = average[18](close)
uma = Highest[8](high)
umb = Lowest[8](low)
REM PARAMETERS
objetivo=0.00450
REM LAST TOUCH WITH MM8
if barindex<2 then
ltp = mm
endif
if High>mm and Low<mm then
ltp = mm
ENDIF
REM BEARISH MOVEMENT
if umb<mm and high<mm then
umb=Lowest[8](low)
endif
if high>mm then
umb=mm
endif
REM BULLISH MOVEMENT
if low>mm and uma>mm THEN
uma = Highest[8](high)
ENDIF
IF Low<mm then
uma=mm
ENDIF
REM LONG CONDITION
IF (uma-ltp)>objetivo THEN
IF uma>mm then
compra=1
ENDIF
ELSE
compra=0
ENDIF
REM SHORT CONDITION
IF (ltp-close)>objetivo THEN
IF umb<mm THEN
venta=1
ENDIF
ELSE
venta=0
ENDIF
Parece solucionado con estos cambios:
REM LAST TOUCH WITH MM8 IN BULLISH MOVEMENT
IF High[1]>=mm[1] AND Low[1]<=mm[1] AND Low>mm THEN
ltp = mm
if uma > mm THEN
uma = Highest[8](high)
ENDIF
REM LONG CONDITION
IF (uma - ltp) > objetivo THEN
compra = 1
ENDIF
ENDIF
IF Low<mm then
compra = 0
uma = mm
ENDIF
REM LAST TOUCH WITH MM8 IN BEARISH MOVEMENT
IF High[1]>=mm[1] AND Low[1]<=mm[1] AND High<mm THEN
if umb < mm then
umb = Lowest[8](low)
endif
REM SHORT CONDITION
IF (ltp - close) > objetivo THEN
IF umb < mm THEN
venta = 1
ENDIF
ELSE
venta = 0
ENDIF
ENDIF
if high>mm then
venta = 0
umb = mm
endif
Incluso consigue exactamente el mismo 80% de aciertos en Mayo 2015 como dice