Friday, November 11, 2016

Cómo Backtest Estrategias De Negociación

Permítanme comenzar diciendo que he tenido la amabilidad de ayudarme en el aprendizaje de cómo usar R para las pruebas. Con todo eso en mente, pensé en caminar a través de lo que considero los cuatro pasos básicos en la producción de un backtest en Excel. Tenga en cuenta que el núcleo del archivo de Excel no fue creado por mí - fue creado por Jared en CondorOptions (otro debe leer si usted no lo sigue). Paso 1: obtener los datos El primer paso es obtener sus datos de mercado en Excel. Hay dos enfoques básicos para esto es necesario volver a descargar los datos históricos y, a continuación, copiar y pegar todo el conjunto de datos o un subconjunto para actualizar su estrategia. El segundo enfoque es usar código para ir a buscar datos automáticamente desde Yahoo Finance. Mucha gente ha escrito VBA para hacer esta recomendación de AnalyzerXL, ya que proporciona la mayor flexibilidad y opciones. La forma en que almacena estos datos en Excel es hasta que desea tenerlos en una hoja de cálculo separada para minimizar el desplazamiento y hacer que sea fácil de actualizar. Paso 2: Cree su indicador Ahora que cada uno toma parte del cálculo. Una cosa buena acerca de trabajar con Excel es que realmente te hace pensar acerca de cómo se construye un indicador. Puede ser demasiado simple, en estos días, para tirar hacia abajo e indicador sin entender cómo funciona realmente. La columna de indicador final, DVI, es una suma ponderada de la magnitud DVI y las columnas de estiramiento DVI. También anotaré que AnalyzerXL también contiene un número grande de indicadores predefinidos para hacer backtesting más fácil, y hay otros complementos para Excel que proporcionan funcionalidad similar. Paso 3: Construya su regla comercial Ahora que tiene un indicador, necesita construir sus reglas comerciales. En este ejemplo (el cálculo está en el re no largo o corto, o el tamaño variable de la posición en comparación con sólo all-in largo o corto Paso 4: Las reglas comerciales / curva de equidad Hay muchos enfoques diferentes aquí, pero lo que se puede ver En este ejemplo es una forma sencilla de hacerlo. Supongamos un valor inicial en efectivo de 10.000 y luego incrementar o decrementar que por si o no estamos largos o cortos en el cierre del día anterior, y si estábamos correctos o no. , Representamos esto diciendo: si largo, entonces múltiple el día anterior re usando el efectivo aquí, pero usted podría fácilmente hacer los porcentajes sin procesar en lugar de un valor en efectivo. Lo que asumen allí no es coste / comisión para el comercio. Los sistemas de oscilación de alta frecuencia como éste, las comisiones podrían tener un impacto importante en la viabilidad de una estrategia dada. En segundo lugar, nos y de nuevo, AnalyzerXL proporciona un gran número de opciones de informes como parte del paquete. Eso es una visión general básica de backtesting En Excel - espero que todos lo encuentren útil Backtesting BREAKING DOWN Backtesting Cuando retrocede una teoría, los resultados obtenidos dependen en gran medida de los movimientos del período de prueba. Backtesting una teoría supone que lo que sucede en el pasado va a pasar en el futuro, y esta suposición puede causar riesgos potenciales para la estrategia. Por ejemplo, digamos que desea probar una estrategia basada en la noción de que las OPI de Internet superan al mercado en general. Si tuviera que probar esta estrategia durante los años del boom de puntocom a finales de los 90, la estrategia superaría al mercado significativamente. Sin embargo, intentar la misma estrategia después de la ráfaga de burbujas resultaría en retornos desastrosos. Como usted frecuentemente oirá: el desempeño pasado no garantiza necesariamente los beneficios futuros. En el contexto del análisis técnico, es el proceso de ajuste. Sesgo creado por el uso de información o datos en un estudio o. Un conjunto de valores que comparte una característica común como el. Compra y venta de acciones de acuerdo a una pantalla basada en predeterminado. Una implicación que rodea el uso de datos de series de tiempo en los cuales. Una estrategia de estrategia de inversión que no requiere efectivo neto. Ofrecemos algunos consejos sobre este proceso que pueden ayudar a refinar sus estrategias comerciales actuales. El comercio del hágalo usted mismo puede ser muy gratificante - tanto psicológicamente como para su billetera. Una parte importante de un plan de comercio está probando para determinar lo que puede esperar de su rendimiento. El backtesting y las pruebas de rendimiento avanzadas le ayudarán a predecir si su plan tendrá éxito. Desafortunadamente, no hay una estrategia de inversión perfecta que garantice el éxito, pero usted puede encontrar los indicadores y las estrategias que funcionarán mejor para su posición. Las correlaciones entre el backtesting y los resultados de las pruebas de rendimiento avanzadas pueden ayudarle a optimizar su sistema comercial. Esta práctica es común con los comerciantes experimentados y nuevos, y puede conducir a grandes pérdidas. Descubra cómo evitarlo. Piensa que puedes vencer a la calle. Te mostraremos cómo probar tus habilidades sin perder tu camisa. Hay muchas ventajas al comercio una estrategia de espejo, sin embargo, los mercados son dinámicos, e independientemente siempre hay un riesgo de pérdidas. Fondos Mutuos de ETFs Explora las metodologías utilizadas por los fondos beta inteligentes y las razones por las que sus estrategias para la selección de valores pueden no ser tan inteligentes. Fondos Mutuos de ETFs Explora los desafíos presentados por los fondos beta inteligentes con respecto a la debida diligencia, incluyendo métodos propietarios para la selección de valores y prácticas de gestión activa. Conozca el valor en riesgo de una cartera y cómo se utiliza el backtesting para medir la precisión de los cálculos de valor en riesgo. Leer respuesta Aprenda estrategias que los comerciantes usan cuando se detecta un patrón superior doble. Este patrón es común y puede ser rentable en la equidad. Leer Respuesta Un compañero de trabajo mencionó recientemente la estrategia del promedio móvil 50/200. Fui en línea y descubrí que este sistema parecía. Lee la respuesta Descubre la diferencia entre Value at Risk, o VaR, y prueba de estrés, y aprende cómo los dos conceptos pueden ser usados ​​juntos. Aprende cómo los inversores contribuyeron a la quiebra de puntocom y cómo los servicios de Internet y las inversiones han cambiado desde el mercado. Leer Respuesta Una abreviatura del Índice Sensible a la Bolsa de Bombay (Sensex) - el índice de referencia de la Bolsa de Valores de Bombay (BSE). Un bono sin fecha de vencimiento. Los bonos perpetuos no son canjeables pero pagan un flujo constante de interés para siempre. Algunos de los. El primero de una serie de años en un índice económico o financiero. Un año de base se fija normalmente a un nivel arbitrario de 1. Un bono que se puede convertir en una cantidad predeterminada de la equidad de la compañía en ciertos momentos durante su vida, generalmente. El exceso de retorno que la inversión en el mercado de valores ofrece sobre una tasa libre de riesgo, como el rendimiento de los bonos del gobierno. Un índice de 500 acciones elegidas por tamaño de mercado, liquidez y agrupación de la industria, entre otros factores. El S P 500 está diseñado. PyThalesians es una biblioteca financiera de Python desarrollada por los talesianos (thalesians). He utilizado la biblioteca para desarrollar mis propias estrategias comerciales y he incluido muestras simples que muestran algunas de las funcionalidades, incluyendo una tendencia FX siguiente modelo y otros bits de análisis financiero. Hay muchas bibliotecas Python de código abierto para hacer que las estrategias de comercio alrededor Sin embargo, he desarrollado este para ser lo más flexible posible en términos de qué tipos de estrategias que puede desarrollar con él. Además, una gran parte de la biblioteca se puede utilizar para analizar y trazar datos financieros para un análisis más amplio basado, del tipo que he tenido que afrontar en los mercados a lo largo de los años. Por lo tanto, puede ser utilizado por una gama más amplia de usuarios. Análisis de sensibilidad para los parámetros sistemáticos de las estrategias de negociación Descarga histórica de datos sin precedentes de Bloomberg (requiere licencia), Yahoo, Quandl, Dukascopy y otras fuentes de datos de mercado Produce hermosas tramas de línea con PyThalesians envoltorio (a través de Matplotlib), Plotly (a través de mancuernas) y una simple envoltura para Bokeh Analizar el análisis de la estacionalidad de los mercados Calcula algunos indicadores técnicos y da señales comerciales basadas en estas funciones de Ayuda construido sobre Pandas Automático tweeting de cartas Y mucho más Tenga en cuenta en la actualidad PyThalesians es actualmente un proyecto alfa altamente experimental y aún no está completamente documentado Usa la licencia de Apache 2.0 A continuación damos algunos ejemplos de análisis que hemos hecho con PyThalesians. Algunos de ellos pueden ejecutarse mediante scripts en la carpeta de ejemplos. Usando PyThalesians para trazar el cálculo de USD / JPY intraday se mueve alrededor de las nóminas no agrícolas durante los últimos 10 años Usando PyThalesians para calcular vol intraday en FX mayor Cruza por hora del día Utilizando PyThalesians para crear el índice de CTA de Thalesians (tendencia que sigue), que reproduce la referencia del índice de Newedge CTA usando PyThalesians con los Gemelos (Plotly envoltura) para trazar diagrama interactivo de Plotly (using plotly examples. py) A la gráfica interactiva Utilizando PyThalesians para trazar a través de Bokeh EUR / USD en las 3 horas siguientes a las declaraciones de FOMC Utilizando PyThalesians para trazar la combinación de bar / line / scatter para las ganancias recientes de capital (se puede ejecutar este análisis usando bokeh examples. py) PyFolio para trazar las estadísticas de retorno de la estrategia FX CTA (puede ejecutar este análisis usando strategyfxcta example. py) Utilizando PyThalesians para trazar con el mapa de Plotly de la tasa de desempleo EE. UU. por estado (utilizando los datos FRED) (puede ejecutar este análisis usando histecondata examples. py ) Utilizando PyThalesians para trazar G10 CPI tasas de YoY (usando datos de FRED) (puede ejecutar este análisis usando histecondata examples. py) Utilizando PyThalesians para trazar correlation rolling en FX (usando datos de Bloomberg) (puede ejecutar este análisis usando correlación examples. py ) Utilizando PyThalesians para trazar los datos de los segundos alrededor del último NFP (usando los datos de Bloomberg) (puede ejecutar este análisis usando tick. png) ) (Se puede ejecutar este análisis mediante indicesfx examples. py) PyThalesians ha sido probado en Windows 8 10, ejecutando el software Bloomberg Terminal. En la actualidad ejecuto PyThalesians utilizando Anaconda 2.5 (Python 3.5 64bit) en Windows 10. Potencialmente, también podría funcionar en el Bloomberg Server API (pero no he probado explícitamente esto). También he intentado ejecutarlo en Ubuntu y Mac OS X (excluyendo Bloomberg API). Si usted no tiene una suscripción a Bloomberg, PyThalesians todavía puede acceder a fuentes de datos libres, incluyendo Quandl. Requerido: Python 3.4, 3.5 Requerido: pandas, matplotlib, numpy etc. Recomendado Bloomberg Python Open API Para usar Bloomberg necesitará tener una licencia Utilice la versión experimental de Python 3.4 de Bloomberg bloomberglabs / api / libraries / También descargue la versión C de Bloomberg API y el extracto en cualquier localización eg. C: blp blpapi cpp 3.9.10.1 Para Python 3.5 - necesita compilar la fuente blpapi usando Microsoft Visual Studio 2015 mismo Instalar Microsoft Visual Studio 2015 (Community Edition es gratuito) Antes de hacerlo asegúrese de agregar variables de entorno para la DLL de Bloomberg (blpapi3 64.dll) a la variable PATH, por ejemplo. C: blp blpapi cpp 3.9.10.1 bin Asegúrese de que la raíz RAÍZ BLPAPI está configurada como una variable ambiental en Windows, por ejemplo. C: blp blpapi cpp 3.9.10.1 python setup. py construir python setup. py instalar Para Python 3.4 - ejecutable pre-construido se puede ejecutar, lo que significa que podemos saltar los pasos de construcción anterior Podría tener que ajustar el registro para evitar Python 3.4 no se encuentra en el registro Error (ejemplo blppython. reg) al usar este ejecutable Alternativamente para acceder a Bloomberg, el software también soporta la vieja COM API (pero lo voy a quitar porque muy lento) Recomendado: Plotly para parcelas interactivas funky (github / plotly / plotly. Py) y Recomendado: Gemelos un bonito envoltorio Plotly cuando se utiliza Pandas dataframes (Jorge Santos proyecto ahora soporta Python 3 github / jorgesantos / mancuernas - por lo que recomiendo utilizar que en lugar de mi tenedor) Recomendado: PyFolio para el análisis estadístico de la estrategia de comercio devuelve (github / Quantpian / pyfolio /) Recomendado: multiprocesador en el eneldo porque el pickle estándar de biblioteca de multiprocesamiento causa problemas (desde github / sesenta-norte / multiprocesamiento en eneldo) Una vez instalado, asegúrese de editar el archivo pythalesians. util. constants para las siguientes variables: PyThalesians should Autodetect su propio camino, pero si no, cambia manualmente la variable de la carpeta de pythalesians de la raíz - esto asegurará que el registro (y un número de otras características funciona correctamente). Si no lo hace, el proyecto no se iniciará. Cambie la configuración predeterminada de Bloomberg (qué API debe utilizar). Escriba en las claves de la API para Quandl, Twitter, Plotly, etc. La última versión se puede instalar mediante setup. py o pip (Ver a continuación) Ejemplos para PyThalesians Después de la instalación, la manera más fácil de empezar es mirando los scripts de ejemplo. Espero agregar algunos cuadernos de Jupyter, ilustrando cómo usar la biblioteca también. Los scripts de ejemplo muestran cómo: Descargar datos de mercado de muchas fuentes diferentes, Bloomberg, Yahoo, Quandl, Dukascopy, etc Plot gráficos de línea, con diferentes estilos Acerca de los talesianos Los talesianos son un grupo de reflexión de profesionales dedicados con interés cuantitativo, , Matemáticas, física e informática, no necesariamente en ese orden. Realizamos eventos financieros cuantitativos en Londres, Nueva York, Budapest, Praga y Frankfurt (únase a nuestro grupo Meetup en events. thalesians). También publicamos la investigación sobre el comercio sistemático y también consultamos en el área. Uno de nuestros clientes es RavenPack, un importante proveedor de análisis de noticias. Los principales contribuyentes a PyThalesians Saeed Amen - Saeed es el fundador de Cuemacro (cuemacro), que descifra cómo los comerciantes pueden utilizar las fuentes de datos existentes y novedosos para entender mejor los mercados macro. También es director gerente y cofundador de los talesianos. Tiene una década de experiencia creando y ejecutando exitosamente modelos de comercio sistemático en Lehman Brothers y Nomura. Independientemente, maneja un modelo comercial sistemático con capital propio. Es el autor de Trading Thalesians Lo que el mundo antiguo puede enseñarnos sobre el comercio de hoy (Palgrave Macmillan). Se graduó con un título de maestría de primera clase del Imperial College en Matemáticas e Informática. Si piensas que PyThalesians es útil (y en particular si eres una empresa comercial) por favor considere apoyar el proyecto a través del patrocinio o utilizando los servicios de consultoría / investigación de Saeed en el comercio sistemático. Si desea contribuir al proyecto, también házmelo saber: es una gran tarea intentar construir esta biblioteca por mí mismo. Planes Futuros para PyThalesians Planeamos agregar las siguientes características: Tener un mecanismo de configuración apropiado (por ejemplo, vía (Parcialmente) Mejorar el soporte para el trazado de Bokeh (parcialmente) Agregar más parcelas de Matlibplot Agregar a Reuters como fuente de datos históricos Agregar capacidad para transmitir datos de Bloomberg y Reuters Utilice código impulsado por eventos para generar señales comerciales (para ser utilizado en vivo e históricamente) Agregue más herramientas de análisis comerciales interesantes Agregue soporte para transacciones en vivo a través de Interactive Brokers Integre el soporte para zipline como sistema alternativo de comercio Mejore el soporte para PyFolio Support Python 2.7 En términos más generales, Desea: Hacer que el código existente sea más robusto Aumente la documentación y los ejemplos 0.1a (versión alfa altamente experimental) - 01 Jul 2015 Implementación básica del trazado para gráficos de líneas Descarga básica de datos de mercado como Bloomberg / Yahoo, etc. 02 de junio de 2016 - Corregido el archivo de StrategyTemplate que faltaba en la instalación, añadió la detección automática de la ruta para simplificar la instalación y los métodos agregados para la instalación. Conversión entre pandas y bcolz 31 de mayo de 2016 - Se deshizo de los métodos de Pandas obsoletos en TechIndicator 27 de mayo de 2016 - Añadido la capacidad de trazar la señal de estrategia en el momento 19 de mayo de 2016 - Atualizado Quandl envoltorio para utilizar el nuevo Quandl API 02 de mayo de 2016 - Tidied BacktestRequest , Agregó el ejemplo de la estacionalidad de SPX 28 de abril de 2016 - Actualizado el test de cashback (para Pandas 0.18) 21 de abril de 2016 - Se ha eliminado de métodos de Pandas obsoletos en EventStudy 18 Apr 2016 - Se han solucionado algunos problemas de incompatibilidad con Pandas 0.18 06 abr. 2016 - Acelerado las operaciones de unión, notable cuando se busca alta freq serie de tiempo 21 Mar 2016 - Añadido cuaderno IPython para demostrar cómo backtest tendencia FX simple después de la estrategia comercial 19 Mar 2016 - Probado con Python 3.5 64 bits (Anaconda 2.5 en Windows 10) 17 Mar 2016 - Refactorizar algunas de las funciones de la serie gráfica / temporal y StrategyTemplate 11 mar 2016 - Advertencias fijas en matplotlib 1.5 09 Mar 2016 - Añadido más características de TradeAnalysis (para el análisis de sensibilidad de las estrategias comerciales) 01 Mar 2016 - Añadido cuaderno IPython para demostrar cómo descargar Datos de mercado y gráfico 27 ​​feb 2016 - Retornos totales fijos Ejemplo de FX 20 de febrero de 2016 - Añadido más parámetros para StrategyTemplate 13 Feb 2016 - Editado los métodos de filtrado de series temporales 11 de febrero de 2016 - Ejemplo añadido para representar las intervenciones de BoJ contra el punto USDJPY 10 Feb 2016 - Descripción 01 Feb 2016 - Añadido LightEventsFactory para facilitar la gestión de eventos de datos econ (almacenados como archivos HDF5) 20 de enero de 2016 - Añadido medida de kurtosis para resultados de estrategias de negociación, Ejemplo añadido de correlación FX 05 de enero de 2016 - Añadido construcción de índices de retorno total (spot) para FX y ejemplo 26 Dic 2015 - Problema fijo con datos de econ data 24 Dic 2015 - Añadido plantillas de datafactory para crear indicadores personalizados 19 Diciembre 2015 - Refactorizado 10 de diciembre de 2015 - Varias correcciones de errores 22 de noviembre de 2015 - Aumento de las funciones de orientación de vol para realizar backtesting 07 de noviembre de 2015 - Añadido función para descargar datos de Bloomberg (con ejemplo) 05 de noviembre de 2015 - Añadido clase de estudio de eventos intradía (y ejemplo) 02 28 de octubre de 2015 - Se agregó más análisis de sensibilidad para las estrategias de comercio 26 de octubre de 2015 - Varias correcciones de errores para Bloomberg Open API downloader 14 de octubre de 2015 - Añadido capacidad para hacer la descarga paralela de datos de mercado (Thread / multiprocessing library), con un ejemplo para benchmarking y correcciones de errores para Bloomberg downloader 25 Sep 2015 - Ejemplos refactorizados en carpetas diferentes / más ejemplos de estacionalidad 19 Sep 2015 - Añadido soporte para Plotly ploteos de mapa choropleth descarga fácil de datos económicos a través de FRED / Bloomberg / Quandl 12 Sep 2015 - Añadido soporte básico para PyFolio para el análisis estadístico de estrategias 04 Sep 2015 - Añadido StrategyTemplate para backtesting (con ejemplo) correcciones de errores 21 Aug 2015 - Añadido gráficos apilados (con matplotlib varias correcciones de errores 15 Aug 2015 - Barra añadida (Con matplotlib añadido más funciones de filtro de serie de tiempo 09 de agosto de 2015 - Mejora de soporte de Bokeh 07 de agosto de 2015 - Añadido Plotly apoyo (vía Jorge Santos envuelta Cufflinks) 04 de agosto 2015 - Añadido capacidad de descarga de FRED y ejemplo para la descarga de FRED. 29 Jul 2015 - Se agregaron funciones de backtesting (incluyendo la estrategia de seguimiento de tendencia de FX simple) y varias correcciones / comentarios de errores. 24 Jul 2015 - Funciones agregadas para hacer estudios simples de estacionalidad y ejemplos añadidos. 17 jul 2015 - Creado ejemplo para mostrar cómo usar indicadores técnicos. 13 Jul 2015 - Cambio de ubicación de conf, carpeta de ejemplos renombrados a ejemplos pythalesianos. Ahora se puede instalar con setup. py. 10 jul 2015 - Añadido capacidad para descargar Dukascopy FX tick datos (los datos son gratuitos para uso personal - consultar términos condiciones Dukascopy). Tenga en cuenta que el último mes de datos generalmente no está disponible en Dukascopy


No comments:

Post a Comment