Sunday, November 20, 2016

Backtesting Una Estrategia De Trading Simple

Backtesting una Estrategia de Trading simple (Este artículo fue publicado por primera vez en la moderna fabricación de herramientas. Y amablemente contribuyó a R-bloggers) Nota: Este artículo no es asesoramiento financiero! Esto es sólo una forma divertida de explorar algunas de las capacidades de I tiene para importar y manipular datos. Hace poco leí un post en ETF Profeta que exploró una estrategia de comercio de acciones interesantes de Excel. La estrategia es simple: Encuentra el punto más alto de la población en los últimos 200 días, y contar el número de días que han transcurrido desde que el alto. Si su estado más a menos de 100 días, poseer las acciones. Si su estado más de 100 días, no te lo tienen. Esta estrategia es muy simple, pero produce algunos resultados impresionantes. (Tenga en cuenta, sin embargo, que este ejemplo utiliza los datos que no se ha ajustado de divisiones o dividendos y podría contener otros errores Además, fueron ignorando los costes de negociación y los retrasos de ejecución, los cuales afectan el rendimiento estrategia..) La implementación de esta estrategia en I es simple, y ofrece numerosas ventajas sobre excel, la principal de las cuales es que la extracción de datos del mercado de valores en R es fácil, y podemos probar esta estrategia en una amplia gama de índices con relativamente poco esfuerzo. En primer lugar, descargamos de datos para GSPC usando quantmod. (GSPC significa el índice SP 500). A continuación, se construye una función para calcular el número de días desde el alto n-día en una serie de tiempo, y una función para implementar nuestra estrategia comercial. Esta última función toma 2 parámetros: el alto n-día que desea utilizar, y el número de días pasados ​​que el alto que llevará a cabo las acciones. El ejemplo es de 200 y 100, pero se puede cambiar fácilmente esto al 500 días de alta y ver qué pasa si se mantiene el stock de 300 días pasados ​​que antes de rescatar. Dado que esta función se ha parametrizado, podemos probar fácilmente muchas otras versiones de nuestra estrategia. Nos rellenar el comienzo de nuestra estrategia con ceros por lo que será la misma longitud que los datos de entrada. (Si desea una explicación más detallada de la función daysSinceHigh, consulte la discusión sobre validado cruzada). Multiplicamos nuestra posición (0,1) vectores por los retornos del índice para obtener nuestros strategys devoluciones. Ahora construimos una función para devolver algunas estadísticas acerca de una estrategia de negociación, y comparar nuestra estrategia para el punto de referencia. Un poco arbitrariamente, he decidido mirar rentabilidad acumulada, rentabilidad anual media, ratio de Sharpe, ganando%, con una media volatilidad anual, drawdown máximo, y reducción de longitud máx. Otras estadísticas serían fáciles de implementar.


No comments:

Post a Comment