Thursday, October 13, 2016

Backtesting Estrategias De Operación Matlab

Talleres Dr. Chan actualmente ofrece el curso en línea realizada en tiempo real a través de Adobe Connect. Este taller introduce el uso de técnicas de inteligencia artificial para identificar variables predictoras útiles y normas comerciales para la predicción de rendimientos. Se hace un amplio uso de Matlab s Estadísticas y Aprendizaje Automático Caja de herramientas, así como la red neuronal de la caja de herramientas. licencias de prueba gratuitas de MATLAB se pueden organizar para extensos ejercicios en clase. Sin conocimiento previo de MATLAB se necesita como un tutorial pregrabada en la programación en MATLAB se incluirán, pero es necesario un poco de experiencia con la programación. El número máximo de asistentes: 12. Total de horas: 6. Tarifa: 900. Las fechas y horas: July 16, 23. sábados. 8: 00-11: 00 am EDT. Registro: Ernest epchan. Esquema del curso está disponible para su descarga aquí. El curso en línea pre-grabado ya está disponible. Este consiste en sesiones grabadas de Adobe Connect. La atención se centra en el descubrimiento y evitar diversos peligros durante el proceso de backtesting que pueden degradar el rendimiento de la predicción. ejercicios ilustrativos se han extraído de una estrategia de futuro y una estrategia de negociación cartera de valores usando MATLAB. licencias de prueba gratuitas de MATLAB se pueden organizar para extensos ejercicios en clase. No es necesario ningún conocimiento previo de MATLAB, pero es necesario un poco de experiencia con la programación. El requisito de matemáticas básicas es la estadística de nivel universitario. El total de horas: 7 horas de sesión grabada. Tarifa: 500. Registro: epchan Ernest. Esquema del curso está disponible para su descarga aquí. Ernie también lleva a cabo 3 manos en diferentes talleres en persona en Londres: estrategias de momentum. El arbitraje estadístico. e Inteligencia Artificial para los comerciantes. El curso de arbitraje estadístico es sobre todo acerca de las estrategias de reversión a la media. Estos talleres están organizados por la revista Técnico Analista y califican para créditos CFA Institute. Por favor, haga clic en los enlaces de arriba para ver esquemas de cursos y datos de registro. Elogios para nuestros talleres: Andrew B. K. W. Fung, CQF, Fundador de Quants Inversión Cedric Yau anónimos evaluación de los estudiantes Los comentarios están cerrados. solución de implementación / backtesting / estrategia de gestión de datos de clase Institucional: - acciones, opciones, futuros, divisas, cestas y personalizado instrumentos sintéticos son compatibles - datos múltiples de baja latencia alimenta soportado (velocidades de procesamiento en millones de mensajes por segundo en terabytes de datos) - C y backtesting estrategia basada y optimización - la ejecución de múltiples corredores apoyado, las señales de comercio convertidas en órdenes FIX QuantFACTORY - solución de implementación de la gestión de datos / backtesting / estrategia de clase Institucional: - QuantDEVELOPER - marco y el IDE para el desarrollo de estrategias de negociación, la depuración, backtesting y la optimización, disponible como un plug-in de Visual Studio - QuantDATACENTER - permite gestionar un almacén de datos histórica y la captura de datos de ultra baja latencia de mercado de los proveedores y los intercambios en tiempo real o - QuantENGINE - permite desplegar y ejecutar estrategias precompilados - multi-activo, multi período de baja latencia de datos, múltiples corredores apoyados solución de implementación de la gestión de datos / backtesting / estrategia de clase Institucional: - OpenQuant - C y nivel de cartera VisualBasic backtesting sistema de comercio, multi-activos, las pruebas de nivel intradía, optimización, etc. WFA múltiples corredores y datos alimenta el apoyo - entorno comercial de producción - - QuantTrader QuantBase - gestión centralizada de datos - QuantRouter - datos y el orden de enrutamiento solución de implementación de gestión / backtesting / estrategia de datos de clase Institucional: - solución multi-activo, los datos de múltiples fuentes apoyado, la base de datos es compatible con cualquier tipo de RDBMS proporcionar una interfaz de JDBC, por ejemplo, Oracle, Microsoft SQL Server, Sybase, MySQL, etc. - Los clientes pueden utilizar IDE a la escritura de su estrategia, ya sea en Java, Ruby o Python, o puede utilizar su propia estrategia de IDE - ejecución de los corredores de múltiples apoyado, las señales de comercio convierten en órdenes FIX institucionalización gestión / backtesting / estrategia de solución de despliegue de datos de clase: - solución multi-activos (divisas, opciones, futuros, acciones, ETF s, materias primas, instrumentos sintéticos y derivados diferenciales de encargo, etc.), datos de múltiples fuentes apoyado - marco para el desarrollo de estrategias de negociación, depuración, backtesting y la optimización - varios corredores de ejecución soportadas, las señales de comercio convierten en órdenes FIX (IB, JPMorgan, FXCM etc.) de la plataforma de software específica e integrada con los datos Tradestation s para backtesting y auto-negociar: - datos intradía diaria nosotros (las poblaciones para las 43 años, los futuros de 61 años) - prácticos para las señales de precios backtesting base (análisis técnico), soporte para el lenguaje de programación EasyLanguage - apoyar acciones EEUU ETFs, futuros, índices estadounidenses, acciones alemanas, índices alemanes, la divisa - gratis para los clientes de corretaje Tradestation - 249.95 mensuales para los no profesionales (solamente Tradestation plataforma de software, sin intermediación) - 299.95 mensual para profesionales (solamente Tradestation plataforma de software, sin intermediación) plataforma de software dedicado para el backtesting y auto-negociar: - apoyo diaria estrategias / intradía, pruebas de nivel de la cartera y la optimización , la cartografía, la visualización, generación de informes, análisis multi-hilo, gráficos 3D, análisis, etc. WFA - señales de precio mejor para backtesting base (análisis técnico) - enlace directo a eSignal, Interactive Brokers, IQFeed, myTrack, FastTrack, QP2, TC2000, cualquier alimento DDE compatible, MS, txtfiles y más (por Yahoo Finanzas. ) - Una cuota de tiempo 279 para la edición estándar o 339 para la edición dedicada plataforma de software profesional para backtesting y auto-negociación: - nivel de la cartera backtesting sistema de comercio, multi-activos, las pruebas de nivel intradía, optimización, visualización, etc. - permite la integración R, Auto-negociación de lenguaje de programación Perl con todas las funciones subyacentes escritos en C nativa, preparados para el servidor de co-ubicación - soporte nativo de FXCM y Interactive Brokers - soporte de FXCM libre, 100 por mes para la plataforma de BI, contacto Sales seertrading para otras opciones de plataforma de software dedicado para backtesting y auto-negociación: - el apoyo a las estrategias diaria / intradía, las pruebas de nivel de la cartera y la optimización - mejor para las señales de precios basados ​​en pruebas retrospectivas (análisis técnico), C scripting - extensiones de software compatibles - Los feeds de datos manipulación, etc. estrategia de ejecución - 799 por licencia , 150 cuota anual después de la plataforma de software dedicado para pruebas retrospectivas, la optimización, la atribución de resultados y análisis: - Axioma o 3ª datos del partido - el análisis factorial, el modelado de riesgos, análisis Dedicado ciclo de mercado de plataformas de software para pruebas retrospectivas y auto-negociación: - mejor para el precio backtesting basa señales (análisis técnico), el apoyo diario de estrategias / intradía, pruebas de nivel de la cartera y la optimización - tortuga Edition - motor backtesting, gráficos, informes, pruebas EOD - Professional Edition - además de editor del sistema, análisis hacia adelante a pie, estrategias intradía, pruebas multi-hilo, etc. . - Pro Plus Edition - además de gráficos de superficie 3D, secuencias de comandos, etc. - Generador de edición - API de IB, etc. depurador - tortuga Edición 990 - Professional Edition 1990 - Pro Plus Edición 2990 - Edición 3990 Constructor plataforma de software dedicado para el backtesting y auto-negociación : - el apoyo a las estrategias diaria / intradía, pruebas de nivel de cartera y de optimización, de gráficos, de visualización, informes personalizados, etc. - mejor para las señales de precios basados ​​en pruebas retrospectivas (análisis técnico) - enlace directo a Interactive Brokers, MB Trading, TD Ameritrade, FXCM y otros - los datos en archivos de texto, eSignal, Google Finance, finanzas Yahoo, IQFeed y otros - funcionalidad básica (funcionalidad EOD) - libres - funcionalidad avanzada - arrendamiento de 50 / mes o 995 de por vida plataforma de software de licencia dedicada para backtesting y auto-negociación: - mejor para señales basadas precio backtesting (análisis técnico), el apoyo diario de estrategias / intradía, pruebas de la cartera de nivel y de optimización, de gráficos, de visualización, de informes personalizados - soporta C y Visual Basic - enlace directo a Interactive Brokers, IQFeed, txtfiles y más (Yahoo Finanzas. ) - Licencia perpetua - 499 - contrato de arrendamiento 50 por mes plataforma de software dedicado para el backtesting y auto-negociación: - el apoyo diario de estrategias / intradía, las pruebas de nivel de la cartera y la optimización, la cartografía, la visualización, la presentación de informes personalizados - señales técnicas y fundamentales, multi-activos apoyo - 245 para la versión avanzada (proveedores gratuitos de datos) - 595 para la versión premium (de apoyo a varios proveedores de datos y corredores) plataforma de software dedicado para el backtesting y auto-negociar: - apoyo diaria estrategias / intradía, pruebas de nivel de la cartera y la optimización - mejor para backtesting señales basadas en los precios (análisis técnico) - construir-en los datos para la renta variable, futuros y divisas (saldos diarios de los Estados Unidos a partir de 1990, futuros diarias de divisas 31 años, a partir de 1983, etc.) - precios desde 45 / mes a 295 / mes (depende de los precios la disponibilidad de datos) plataforma de software dedicado para el backtesting y auto-negociación: - utiliza un lenguaje MQL4, que se utiliza principalmente para el comercio el mercado de divisas - soporta múltiples corredores de la divisa y se alimenta de datos - soporta la gestión de múltiples cuentas plataforma de software dedicado para el backtesting y auto-negociación: - apoyar estrategias diarias / intradía, pruebas de nivel de la cartera y la optimización - los mejores para las señales de precios basados ​​en pruebas retrospectivas (análisis técnico), soporte para lenguaje de programación EasyLanguage - soporte a múltiples fuentes de datos (Bloomberg, Thomson Reuters, CSI, CQG, eSignal etc.), ayuda directa a los múltiples corredores (Interactive Brokers etc.) - MultiCharts 797 por año - MultiCharts vida 1.497 - 9.900 MultiCharts Pro (Bloomberg Thomson Reuters alimentación de datos, etc.) backtesting herramienta basada en web para poner a prueba las estrategias de acciones de picking: - Las acciones estadounidenses ETF (diario) - punto - en tiempo los datos fundamentales desde 1999 - largo / corto estrategias, precios / fundamentos impulsados ​​señales - diseñador - 139 / mes - Administrador - 199 / mes - herramienta backtesting basado en web funcionalidad completa a prueba Stock estrategias de picking: - Las acciones estadounidenses (diario) - un punto en el tiempo de los datos fundamentales desde 1988 - precios / fundamentos señales impulsado - estratega - 995 / año (datos desde 2000, 10 carteras guardados) - Manager - 1.995 / año - (funcionalidad completa, los datos desde 1988, 50 carteras guardados) web herramienta de pruebas retrospectivas a base: - Las acciones estadounidenses precios (diario / intradía), desde el año 1998, los datos de QuantQuote - los datos de divisas de FXCM - apoyo Trader Interactive Brokers para el comercio de vida de herramientas backtesting basado en web: - Las acciones y ETFs de EE. UU. precios (diario / intradía), desde 2002 - datos fundamentales de Morningstar (más de 600 métricas) - apoyo Interactive Brokers de herramientas de pruebas retrospectivas basadas en la web de comercio en vivo: - fácil de usar, las estrategias de asignación de activos, los datos desde 1992 - el impulso de series de tiempo y mover las estrategias promedio en EFT - el impulso simple y herramienta de pruebas retrospectivas basadas en el valor simple estrategias de selección de acciones web: - hasta 25 datos de años durante 49 Futuros y S P500 existencias - caja de herramientas en Python y Matlab - Quantiacs acoge competiciones de negociación algorítmica con las inversiones que van desde 500 mil a 1 millón herramienta de backtesting basado en web para probar factor de equidad de picking y de asignación de activos estrategias: - múltiples factores de equidad con alfa probada sobre los puntos de referencia de mercado capitalización, múltiples universos de inversión, filtros de gestión de riesgos - estrategias de asignación de activos pruebas retrospectivas, mezclando la asignación de activos y el factor de recoger en una cartera - libres en el SP 100 universo - 50 / mes o 480 / año - universos más amplios de inversión de Estados Unidos, las acciones del Reino Unido de la UE, las estrategias de asignación de activos MATLAB - lenguaje de alto nivel y un entorno interactivo para computación y gráficos estadísticos: - paralelo y computación de la GPU, backtesting y la optimización, amplias posibilidades de integración, etc. . - precio bajo petición en un entorno de software aquí gratis para computación y gráficos estadísticos, muchos de los cuantos prefieren utilizarlo para su arquitectura abierta y una flexibilidad excepcionales: - manejo de datos eficaz y las instalaciones de almacenamiento, instalaciones gráficas para el análisis de datos, puede extender fácilmente a través de paquetes - extensiones recomienda - quantstrat, Rmetrics, quantmod, QuantLib, PerformanceAnalytics, TTR, cartera, portfolioSim, backtest, etc. libre de lenguaje de programación de código abierto, arquitectura abierta, flexible y fácilmente ampliado por medio de paquetes: - pandas (Python Biblioteca Análisis de datos - extensiones recomendadas ), pyalgotrade (Python algorítmica Biblioteca), Tirolesa, etc. ultrafinance BacktestingXL Pro es un complemento para construir y probar sus estrategias de operación en Microsoft Excel 2010 y 2013: - los usuarios pueden utilizar VBA para construir estrategias para BacktestingXL Pro, el conocimiento de VBA es opcional, los usuarios pueden construir reglas de comercio en una hoja de cálculo utilizando los códigos pre-hechos estándar de pruebas retrospectivas - apoya piramidal, posición corta / larga limitante, cálculo de comisiones, el seguimiento de la equidad, fuera de dinero que controla, compra / venta de personalización precio - rendimiento de múltiples / informes de riesgo - 74,95 para BacktestingXL herramienta basada en la web backtesting Pro: - fácil de usar, herramienta de backtesting basado en la web de nivel de entrada para poner a prueba la fuerza relativa y moviendo las estrategias promedio en EFT - varios tipos de estrategias para la funcionalidad de backtesting libre, completa 34,99 mensuales FactorWave es fácil de usar herramienta de backtesting basada en la web para el factor de inversión: - permite al usuario mezclar múltiples ETF / opciones / futuros / factores de equidad con alfa probada sobre los puntos de referencia del mercado de capitalización - gratis - ETF / Stock Screener con 5 factores - 149 / mes - opción Queda screener, estrategias de futuro, estrategias VIX de herramienta basada en la web gratis - Puntuaciones libres de regalías, Análisis estacional, cartas de navegación Fundamentos - modelo Freemium herramienta web gratuito basado backtesting para poner a prueba las estrategias de acciones de picking: - Las acciones estadounidenses, los datos de ValueLine de 1986- 2014 - precio y los datos fundamentales, 1700 acciones, mensual prueba de granularidad de investigación Evaluar los entornos en Python con pandas por Michael Salas-Moore el 16 de enero 2014 ejercicio es el proceso de investigación de la aplicación de una idea de estrategia de negociación con los datos históricos con el fin de determinar el rendimiento pasado . En particular, un backtester no ofrece ninguna garantía sobre el rendimiento futuro de la estrategia. Sin embargo, son un componente esencial del proceso de investigación estrategia de tubería, permitiendo estrategias para ser filtrados antes de ser colocado en la producción. En este artículo (y las que le siguen) un sistema orientado a objetos backtesting básica escrito en Python se pondrá de relieve. Este sistema temprana será principalmente un medio de enseñanza, que se utiliza para demostrar los diferentes componentes de un sistema de pruebas retrospectivas. A medida que avanzamos a través de los artículos, se añadirá una funcionalidad más sofisticada. Backtesting Descripción general El proceso de diseño de un sistema robusto backtesting es extremadamente difícil. Efectivamente la simulación de todos los componentes que afectan el rendimiento de un sistema de comercio algorítmico es un reto. Pobre granularidad de datos, opacidad de envío de órdenes a un intermediario, la latencia orden y una miríada de otros factores conspiran para alterar el verdadero rendimiento de una estrategia contra el desempeño backtested. Cuando se desarrolla un sistema de backtesting es tentador querer reescribir constantemente desde cero a medida que más factores se encuentran para ser crucial para evaluar el rendimiento. Ningún sistema backtesting se termina nunca y un juicio debe hacerse en un punto durante el desarrollo que los factores suficientes han sido capturados por el sistema. Con estas preocupaciones en mente la backtester presentado aquí será algo simplista. A medida que exploramos otras cuestiones (optimización de cartera, gestión de riesgos, el manejo de los costos de transacción) la backtester será más robusta. Tipos de sistemas de Backtesting En general, existen dos tipos de sistema de backtesting que será de interés. La primera es basada en la investigación. utilizado principalmente en las primeras etapas, en las que se probaron muchas estrategias con el fin de seleccionar las de evaluación más seria. Estos sistemas de pruebas retrospectivas investigación son a menudo escritos en Python, R o MatLab como la velocidad de desarrollo es más importante que la velocidad de ejecución en esta fase. El segundo tipo de sistema de backtesting es basado en eventos. Es decir, se lleva a cabo el proceso de backtesting en un bucle de ejecución similar (si no idéntica) a la propia sistema de ejecución de comercio. Es realista modelará datos de mercado y el proceso de ejecución de órdenes con el fin de proporcionar una evaluación más rigurosa de una estrategia. Los últimos sistemas son a menudo escritos en un lenguaje de alto rendimiento, como C o Java, donde la velocidad de ejecución es esencial. Para las estrategias de frecuencia más baja (aunque todavía intradía), Python es más que suficiente para ser utilizado en este contexto. A continuación se analizará orientada a objetos Investigación Backtester en Python El diseño e implementación de un entorno de pruebas retrospectivas basada en la investigación orientada a objetos. La orientación a objetos ha sido elegido como el paradigma de diseño de software por las siguientes razones: Las interfaces de cada componente se pueden especificar por adelantado, mientras que la parte interna de cada componente se pueden modificar (o sustituidos) mientras el proyecto avanza Mediante la especificación de las interfaces por adelantado es posible para probar de manera efectiva el comportamiento de cada componente (a través de la unidad de pruebas) Cuando se extiende el sistema nuevos componentes se pueden construir sobre o además de otros, ya sea por herencia o la composición en esta etapa el backtester está diseñado para facilitar la implementación y un grado razonable de flexibilidad , a expensas de la precisión real de mercado. En particular, este backtester sólo será capaz de manejar las estrategias que actúan en un solo instrumento. Más tarde, el backtester será modificado para manejar conjuntos de instrumentos. Para el backtester inicial, se requieren los siguientes componentes: Estrategia - Una clase de estrategia recibe una trama de datos de pandas bares. es decir, una lista de puntos de Abierta de mayor a menor-Primer volumen de datos (OHLCV) a una frecuencia particular. La Estrategia se producirá una lista de señales. que consisten en una marca de tiempo y un elemento del conjunto que indica un tiempo, mantener o señal corta, respectivamente. Cartera - La mayor parte del trabajo backtesting tendrá lugar en la clase cartera. Se recibirá un conjunto de señales (como se ha descrito anteriormente) y crear una serie de posiciones, asignada en contra de un componente en efectivo. El empleo del objeto de la cartera es para producir una curva de la equidad. incorporar los costos básicos de transacción y realizar un seguimiento de las operaciones. Rendimiento - El objeto de rendimiento lleva una cartera y produce un conjunto de estadísticas sobre su rendimiento. En particular, será el riesgo de salida / características de rentabilidad (Sharpe, Sortino y Ratios de información), el comercio métricas y / beneficio drawdown información. Lo que está faltando Como puede verse en esta backtester no incluye ninguna referencia a la gestión / riesgo de la cartera, manejo de ejecución (es decir, no hay órdenes de límite) ni proporcionará sofisticados modelos de costos de transacción. Esto no es t mucho de un problema en esta etapa. Nos permite familiarizarse con el proceso de creación de una backtester orientada a objetos y las bibliotecas pandas / NumPy. Con el tiempo se verá mejorada. Implementación Procederemos ahora a describir las implementaciones para cada objeto. objeto Estrategia La estrategia debe ser bastante genérica en esta etapa, ya que será el manejo de estrategias de predicción, reversión a la media, el impulso y la volatilidad. Las estrategias que se consideran aquí siempre se basan series de tiempo, es decir, hacia el precio. Un requisito para esta temprana backtester es que las clases derivadas de estrategia aceptarán una lista de bares (OHLCV) como entrada, en lugar de las garrapatas (precios, operación por el comercio) o datos de pedidos de libros. Así, la granularidad más fina siendo considerado aquí será de 1 segundo bares. La clase de estrategia también se producen siempre las recomendaciones de señal. Esto significa que va a aconsejar a una instancia de la cartera en el sentido de ir de largo / corto y la celebración de una posición. Esta flexibilidad nos permitirá crear varios asesores de estrategia que proporcionan un conjunto de señales, que una clase más avanzada de la cartera puede aceptar el fin de determinar que se introducen las posiciones reales. La interfaz de las clases se hará cumplir mediante la utilización de una metodología de clase base abstracta. Una clase base abstracta es un objeto que no se pueden crear instancias de clases y por lo tanto solamente se pueden crear derivados. El código Python se da a continuación en un archivo llamado backtest. py. La clase de la estrategia requiere que cualquier subclase implementar el método de generar señales. Con el fin de impedir que la clase de estrategia de ser instanciado directamente (ya que es abstracto) es necesario utilizar el ABCMeta y objetos abstractmethod desde el módulo de abc. Hemos establecido una propiedad de la clase, llamados metaclase ser igual a ABCMeta y luego decorar el método señales de generar con el decorador abstractmethod. Mientras que la interfaz anterior es sencillo llegará a ser más complicado cuando esta clase se hereda para cada tipo específico de estrategia. En última instancia, el objetivo de la clase de estrategia en este contexto es el de proporcionar una lista de señales cortas sostener largas / / para cada instrumento, puede ser enviado a una cartera. La cartera de clase es donde la mayoría de la lógica de negociación residirá. Para esta investigación backtester la Cartera es el encargado de determinar la posición dimensionamiento, análisis de riesgos, la gestión de costes de transacción y ejecución manipulación (es decir, el mercado-en-abierta, de mercado al cerrar pedidos). En una etapa posterior estas tareas se dividen en componentes separados. En este momento que se pondrá en marcha a una clase. Esta clase hace un amplio uso de los pandas y proporciona un buen ejemplo de que la biblioteca puede ahorrar una enorme cantidad de tiempo, en particular en lo que respecta a las disputas de datos repetitivo. Como acotación al margen, el truco principal con pandas y NumPy es evitar la iteración a través de cualquier conjunto de datos utilizando la de d en. Sintaxis. Esto se debe a NumPy (que subyace pandas) optimiza el bucle por las operaciones vectorizados. Por lo tanto, verá pocas (si lo hay) iteraciones directos cuando se utiliza pandas. El objetivo de la clase de la cartera es en última instancia, para producir una secuencia de operaciones y una curva de la equidad, que será analizada por la clase de rendimiento. Con el fin de lograr esto, debe estar provisto de una lista de recomendaciones de comercio de un objeto de Estrategia. Más adelante, este será un grupo de objetos de estrategia. tendrá que ser dicho cómo el capital se va a implementar para un conjunto particular de señales de operación, cómo manejar los costos de transacción y que se utilizarán formas de órdenes de la clase de la cartera. El objeto de estrategia está funcionando en las barras de los datos y por lo tanto se debe hacer suposiciones en cuanto a los precios obtenidos en la ejecución de una orden. Dado el bajo precio alto / de cualquier bar es desconocida a priori, sólo es posible utilizar los precios de apertura y cierre para el comercio. En realidad, es imposible garantizar que una orden se completará en uno de estos precios específicos al utilizar una orden de mercado, por lo que será, como mucho, una aproximación. Además de los supuestos sobre las órdenes que son llenados, este backtester ignorará todos los conceptos de las limitaciones de margen / corretaje y asumirá que es posible ir a largo y corto en cualquier instrumento libremente sin ningún tipo de restricciones de liquidez. Esto es claramente una suposición muy poco realista, pero es uno que puede ser relajó después. El siguiente listado continúa backtest. py: En esta etapa se han introducido las clases de base abstracta Estrategia y Portfolio. Ahora estamos en condiciones de generar algunas implementaciones concretas derivadas de estas clases, con el fin de elaborar una estrategia de trabajo juguete. Vamos a empezar por generar una subclase de la estrategia denominada RandomForecastStrategy. la única tarea de la que es para producir señales de largo / corto elegidos al azar Si bien esto es claramente una estrategia de negociación sin sentido, que servirá a nuestras necesidades, demostrando el marco backtesting orientada a objetos. Por lo tanto vamos a comenzar un nuevo archivo llamado forecast. py al azar. con el listado para el pronosticador al azar de la siguiente manera: Ahora que tenemos un sistema de predicción concreta, debemos crear una implementación de un objeto de la cartera. Este objeto abarcar la mayoría del código backtesting. Está diseñado para crear dos tramas de datos separados, el primero de los cuales es un marco de posiciones, que se utiliza para almacenar la cantidad de cada instrumento portátil en cualquier bar particular. La segunda, la cartera. en realidad contiene el precio de mercado de todas las explotaciones para cada barra, así como un recuento del dinero en efectivo, asumiendo un capital inicial. En última instancia, proporciona una curva de las acciones sobre la cual evaluar el rendimiento estrategia. El objeto de la cartera, mientras que extremadamente flexible en su interfaz, requiere opciones específicas cuando respecto a cómo manejar los costos de transacción, las órdenes de mercado, etc. En este ejemplo básico, he considerado que será posible pasar de largo / corto un instrumento fácilmente sin restricciones ni margen, comprar o vender directamente en el precio de apertura de la barra, los costos de transacción nulos (que abarca el deslizamiento, las tasas y repercusión en el mercado) y han determinado la cantidad de acciones directamente a comprar para cada comercio. Esta es la continuación de la lista forecast. py al azar: Esto nos da todo lo que necesitamos para generar una curva de las acciones sobre la base de un sistema de este tipo. El último paso es atar todo junto con una función principal: La salida del programa es el siguiente. El suyo será diferente de la de salida por debajo dependiendo del periodo que seleccione y la semilla aleatoria usada: En este caso la estrategia pierde dinero, lo que no resulta sorprendente dado la naturaleza estocástica del pronosticador Los próximos pasos son para crear un objeto de rendimiento que acepta una instancia de la cartera y proporciona una lista de las métricas de rendimiento sobre la cual basar una decisión para filtrar la estrategia a cabo o no. También podemos mejorar la cartera objeto de tener un manejo más realista de los costos de transacción (por ejemplo, comisiones de Interactive Brokers y deslizamiento). También podemos rodeos incluir un motor de previsión en un objeto de Estrategia, que (con suerte) producir mejores resultados. En los siguientes artículos vamos a explorar estos conceptos con mayor profundidad. Michael Salas-Moore Mike es el fundador de QuantStart y ha estado involucrado en la industria de las finanzas cuantitativas en los últimos cinco años, principalmente como un desarrollador quant y luego como consultora comerciante cuant para los fondos de cobertura.


No comments:

Post a Comment