jueves, 31 de mayo de 2012

Un Sistema con el STOCHRSI

Según Robert Miner (dynamictraders.com) este oscilador tiende a permanecer en los extremos menos que el resto de osciladores y por esta razón es bastante adecuado como para generar señales de compra y venta. Hoy hemos querido cuantificar esto y saber si efectivamente las señales que genere un StochRSI van a ser la base de un buen sistema de trading.

Para el que no conozca este indicador podemos decir que simplemente es aplicar un estocástico a un RSI. El oscilador estocástico siempre compara el valor actual con el mínimo y el máximo en un periodo. En este caso aplicamos el estocástico no sobre el cierre sino sobre un RSI.
El código amibroker que implementa un StochRSI de periodos 21,13,8,5 (los que usamos en nuestros gráficos) es el siguiente:
 
//INDICADOR//
StoRSI= 100*(( RSI( 21) - LLV( RSI( 21 ) , 13 ) ) / ( ( HHV( RSI( 21) , 13 ) ) - LLV(RSI( 21 ), 13 ) ) );
SK=MA(StoRSI,8);
SD=MA(SK,5);


Donde SK es la línea fucsia y SD la línea azul discontinua que en realidad es una simple media de 5 sesiones de la línea SK como demuestra la última sentencia del indicador SD=MA(SK,5);
Si el oscilador es lo suficientemente bueno solamente tendremos que comprar cuando se produzca un cruce de la línea SK por encima de su media (la línea SD). Solamente queremos aprovechar los cruces que ocurran en sobreventa (con la línea SK por debajo de 20.
Para vender miraremos si la línea SK supera el valor 90 (sobrecompra) y si tenemos un cruce bajista del SK por debajo de su media (SD). Las reglas por tanto de este simple sistema son las siguientes:



STOCHRSI como Sistema
Setup: Cruce alcista del SK por encima del SD y el SK está por debajo de 20
Long Entry: Si se cumplen las condiciones del setup compramos HOY a cierre
Long Exit: Si SK supera el nivel 90. Si hay cruce bajista del SK por debajo de su media (SD)
Stop Loss: 5% respecto del precio de compra
Profit Target: No
Mejoras para el sistema: Aplicaremos un filtro de tendencia como por ejemplo que el cierre esté por encima de la media de 50 sesiones. La mejor combinación es una posición con un riesgo del 6%. Podemos pensar que sería más probable ganar dinero con el sistema combinado, si SK supera el nivel 90 y cruce bajista del SK y SD.

DTOscillator para ProRealTime desde Blai5.net:  
http://www.blai5.net/web/index.php?option=com_content&view=article&id=60%3Adtoscillator-para-prorealtime&catid=14%3Astorsi&Itemid=64&lang=es
 
Si eres usuario de ProRealTime, la manera más sencilla de conseguir esta herramienta es pulsando en el siguiente enlace: descargar DTOscillator para PRT, cosa que te llevará hasta la página oficial del fabricante donde lo podrás instalarlos en tu programa simplemente clicando un botón.
Cuatro son los valores que podemos y debemos ajustar para obtener un trazado de curva ajustado a nuestros gustos y necesidades. El primer valor (Valor A o PeriodoRSI, según la versión del indicador) es el número de barras sobre las que calculamos el RSI. El segundo valor (Valor B o PeriodoStoch) es, asimismo, el periodo temporal sobre el que aplicamos el cálculo del Estocástico. Por último, deberemos ajustar también el valor las medias de SK y de SD.
Esto que podría parecer extraordinariamente complejo a cualquier nuevo usuario, afortunadamente ha sido largamente probado y hay un cierto consenso general en que las mejores combinaciones de valores A / B / SK / SD son las siguientes:
    • A=34 / B=21 / SK=13 / SD=13
    • A=21 / B=13 / SK=8 / SD=8
    • A=13 / B=8 / SK=5 / SD=5
    • A=8 / B=5 / SK=5 / SD=3
Una vez instalado tendrás que dar color y estilo a las líneas. A mí me gusta así, pero es cuestión de gustos...

PROGRAMACION PARA PRT:
LAS CONDICIONES DEL SISTEMA SON:
C1 = el cierre por encima de la media simple de 50 dias ascendente
C2 = SK cruza sobre SD, estando SK por debajo de 20
C3 = SK cruza sobre 90 y SK cruza por debajo de SD
C4 = cierre menor del 5% del precio de entrada

INDICADOR StoRSI
rem INDICADOR StoRSI
rem CREADO POR BRUJERIA DEL FORO AGUILAROJASISTEMAS
R = RSI[21](close)
LLV = lowest[13](R)
HHV = highest[13](R)
StoRSI = 100*((R -LLV)/(HHV-LLV))
SK = Average[8](StoRSI)
SD = Average[5](SK)
return SK, SD, 20, 90
NOTA: Definir la variables SK y SD como entero y valores 8 y 5

INDICADOR StoRSI - OTRA POSIBILIDAD
REM TOMADO DEL INDICADOR DTOSCILLATOR DE BLAI5
REM SE HA CAMBIADO LA LINEA 80 POR UNA 90

StoRSI= 100*(( RSI[21] - LOWEST[13](RSI[21])) / ((HIGHEST[13](RSI[21])) - LOWEST[13](RSI[21]) ))
SK = AVERAGE[8](StoRSI)
SD = AVERAGE[5](SK)
RETURN SK AS "SK", SD AS "SD", 20 , 90

SCREENER StoRSI
REM CREADO POR TXEMA MEDINA EN MAYO 2012
REM SE BASA EN EL INDICADOR STORSI=STOCHRSI DE ONDA4 MUY SIMILAR AL DTOSCILLATOR DE BLAI5
REM LINEA SK MENOR DE 20 Y CRUZANDO AL ALZA A LA LINEA SD
REM SE HAN AÑADIDO LAS CONDICIONES DE CPM Y MANO FUERTE
REM ORDENADOS POR CPM
REM APLICAR EN DIARIO

indicator1 = Average[50](close)
indicator2 = Average[50](close)
c1 = (indicator1 > indicator2[1])

indicator3 = Average[50](close)
c2 = (close > indicator3)

indicator4, ignored, ignored, ignored = CALL StoRSI(close)
c3 = (indicator4 < 20.0)

indicator5, ignored, ignored, ignored = CALL StoRSI(close)
ignored, indicator6, ignored, ignored = CALL StoRSI(close)
c4 = (indicator5 CROSSES OVER indicator6)

indicator7 = CALL "Capital Proporcional Medio"[52]
c5 = (indicator7 > 5.0)

ignored, ignored, ignored, indicator8, ignored, ignored, ignored, ignored = CALL "Blai5 Koncorde v.09"[15]
c6 = (indicator8 >= 0.0)

criteria = CALL "Capital Proporcional Medio"[52]

SCREENER[c1 AND c2 AND c3 AND c4 AND c5 AND c6] (criteria AS "CPM")
PROBACKTEST StoRSI
REM Comprar

indicator1 = Average[50](close)
c1 = (close > indicator1)

indicator2 = Average[50](close)
indicator3 = Average[50](close)
c2 = (indicator2 > indicator3[1])

indicator4, ignored, ignored, ignored = CALL StoRSI(close)
c3 = (indicator4 < 20.0)

indicator5, ignored, ignored, ignored = CALL StoRSI(close)
ignored, indicator6, ignored, ignored = CALL StoRSI(close)
c4 = (indicator5 CROSSES OVER indicator6)

IF c1 AND c2 AND c3 AND c4 THEN
BUY 1 SHARES AT MARKET THISBARONCLOSE
 ENDIF

REM Vender

indicator7, ignored, ignored, ignored = CALL StoRSI(close)
c5 = (indicator7 >= 90.0)

indicator8, ignored, ignored, ignored = CALL StoRSI(close)
ignored, indicator9, ignored, ignored = CALL StoRSI(close)
c6 = (indicator8 CROSSES UNDER indicator9)

IF c5 AND c6 THEN
SELL  AT MARKET THISBARONCLOSE
 ENDIF



No hay comentarios:

Publicar un comentario

Muchas gracias por tu comentario. En cuanto me sea posible te daré mi opinión.