jueves, 7 de junio de 2012

Sistema Cuce de medias con Canal de Donchian

El momento óptimo de entrada se produce cuando la media de 10 días está por encima de la media de 30 días y cuando esto ocurra esperaremos hasta que el precio supere el máximo de los últimos 30 días antes de entrar en largo. Esta estrategia combina de forma eficaz un cruce de medias y un canal de Donchian de máximos y mínimos.
El porcentaje de aciertos aumenta si le añadimos un filtro de medio plazo (media 50 del SP500) o largo plazo (media 200 del SP500). En estos casos tomaríamos posiciones largas cuando la media de 50 ó de 200 del SP500 está subiendo, y viceversa para el caso bajista.
Esta estrategia es ideal para seguir tendencias y a la vez evitar las señales falsas que suelen tener los sistemas de este tipo.
Fuente: "Estrategias y Gestión de Capital con Acciones" de Oscar G. Cagigas

CONDICIONES DEL SISTEMA
1.- MM10 por encima de la MM30
2.- El precio supera el máximo de los últimos 30 días.
3.- La MM50 ó MM200 del SP500 es alcista.


SCREENER MM10/30 CON CANAL DE DONCHIAN
indicator1 = Average[10](close)
indicator2 = Average[30](close)
c1 = (indicator1 CROSSES OVER indicator2)

indicator3 = CALL "Maximo anual cierres30d"
c2 = (close >= indicator3)

criteria = volume*close

SCREENER[c1 AND c2] (criteria AS "Cap")

INDICADOR MAXIMO ANUAL CIERRES30D
maxi=highest[30] (close)
RETURN maxi AS "max30d"

PROBACKTEST MM10/30 CON CANAL DE DONCHIAN
REM Comprar
indicator1 = Average[10](close)
indicator2 = Average[30](close)
c1 = (indicator1 CROSSES OVER indicator2)

indicator3 = CALL "Maximo anual cierres30d"
c2 = (close >= indicator3)

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

REM Vender
indicator4 = Average[30](close)
c3 = (close < indicator4)

IF c3 THEN
SELL  AT MARKET THISBARONCLOSE
 ENDIF




 


6 comentarios:

  1. Hola! tengo una duda con respecto a este sistema, una de las 3 condiciones del mismo es que la MM50 ó MM200 del SP500 sea alcista. Bien! Pero esa condición está incluida en el screener o en el backtester? a mi me parece que no. En este caso, como la incluiria para que el filtro beneficie los resultados. Desde ya muchas gracias! y felicitaciones por el blog!! Julia

    ResponderEliminar
  2. No se puede incluir en el screener de búsqueda de valores. Se trata de que en la plantilla tengas el SP500 con las medias 50 ó 200 para visualizarlas. Se trata de adecuar las compras al Timing del mercado y permanecer fuera si los índices están en corrección. Si quieres adelantar la entrada puedes cambiar los max de 30d por max20d, máximos de 20 días. Espero haberte ayudado.

    ResponderEliminar
    Respuestas
    1. Si Txema, me has aclarado el panorama, muchas gracias por la explicacion. Saludos! JUlia

      Eliminar
  3. Txema, cuando instalo en prt me dice : La función máximo anual cierres30d llamada desde Cagigas MM10/30 Canal Donchian (que es el nombre que le he dado al screener) no existe.
    He añadido el indicador máximo anual cierres 30d a la base de datos, ¿no es suficiente con esto, hay que hacer alguna otra cosa?
    dónde crees que tengo el error?
    Saludos
    Luis E.

    ResponderEliminar
  4. Dale este nombre al indicador y en el screener escribe el nombre exactamente igual. A mi me funciona perfectamente. Saludos de Txema

    "Maximo anual cierres30d"
    maxi=highest[30](close)
    RETURN maxi AS "max30d"

    Prueba esta variante del screener:
    MM10 = Average[10](close)
    MM30 = Average[30](close)
    c1 = (MM10 >= MM30)

    Max30 = CALL "Maximo anual cierres30d"
    c2 = (close >= Max30[1])

    REM RIESGO STOP POR DEBAJO DEL 9% EN SEMANAL
    REM Este código se relaciona con la siguiente unidad de tiempo:weekly
    TIMEFRAME(weekly)
    riesgostop, ignored = CALL "Distancia MM30"
    c3 = (riesgostop < 9.0)

    REM Capitalización
    cap = close*volume
    c4 = cap > 10000000

    SCREENER[ c1 AND c2 AND c3 AND c4] (riesgostop AS "R.Stop")

    ResponderEliminar
  5. Txema, solucionado, funciona bien. Me equivocaba en una letra.
    Saludos
    Luis E.

    ResponderEliminar

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