Sunday 19 November 2017

Estrategias Comerciales Cuantitativas Excel


Un lector comenta sobre el comercio utilizando Excel VBA y Factor Modelo Comentarios reflexivos de un lector John S. del Reino Unido sobre su experiencia con la tecnología de comercio y los modelos: He estado desarrollando mis propios sistemas de comercio automático personales utilizando Excel VBA y basado en las reglas que tengo Desarrollado a lo largo de los años como un inversor activo comerciante privado utilizando análisis de datos técnicos y fundamentales. Uno de los méritos clave en la adopción de un enfoque de sistema de comercio automático que me ha ayudado es evitar la tentación de interferencia manual y, por lo tanto, mejorar la rentabilidad mediante el mantenimiento de la coherencia. He encontrado el reto de desarrollar un sistema exitoso muy gratificante desde una perspectiva personal, ya que reconozco que hay muchos que han intentado y fracasado. Sin embargo, un problema que he encontrado es mi deseo en curso para modificar y mejorar regularmente el sistema que he encontrado puede convertirse en contraproducente, ya que existe un peligro real de que el desarrollo del sistema se convierte en un fin en sí, simplemente no paro de dejar de jugar tan pronto como yo Llegar a una nueva idea o característica Una ventaja de usar Excel VBA que he encontrado es que es inherentemente flexible, ya que facilita el procesamiento de datos que pueden ser importantes, especialmente cuando se utilizan datos fundamentales como parte del sistema. En este sentido, reconozco que cada comerciante está tratando de construir en un borde que hará que el sistema más rentable. He notado que muchos comerciantes parecen centrarse sólo en el precio tratando de buscar una ventaja mirando indicadores especiales o la combinación de indicadores, etc Combinación de análisis de datos de precios con un enfoque de modelo Factor es un reto que es ideal Excel VBA como puede Se pueden utilizar fácilmente para procesar datos fundamentales y macroeconómicos en una forma que pueda integrarse con el análisis de datos de precios. Reconozco de su libro que Matlab es más potente que Excel VBA y puede ser tan flexible en la integración de datos fundamentales y macroeconómicos, pero sólo quería llamar la atención sobre los beneficios que he encontrado utilizando Excel VBA que pueden adaptarse a los que me gustan más Cómodo en el uso de Excel VBA y son reacios a cambiar. Otras características que pueden ser explotadas que he encontrado útil cuando las pruebas de nuevo están produciendo automáticamente gráficos de precios que incorporan los puntos de entrada y salida que proporciona la seguridad visual de que el sistema está funcionando como se pretende, así como la generación de informes automáticos de Word grabación clave de salida para referencia futura. Lo siento si me suena demasiado como un anuncio para Microsoft 7 comentarios: Reconozco las principales razones detrás de una popularidad de Excel / VBA en un mundo cuántico y comercial de comercio son: 1. Mucha gente ya lo usa - por lo que todo el mundo piensa Ese es el camino a seguir 2. La sencillez de VBA (no está seguro de si se correlaciona con su flexibilidad) - que hace posible el uso eficaz por cualquier persona - si es un comerciante, quant o un desarrollador de escritorio. 3. VBA y Excel podrían ampliarse fácilmente (para mejorar un rendimiento, integrar un software de terceros o simplemente modularizar / reutilizar propósitos) moviendo la lógica real del modelo en C, COM o. NET. Para integrar la analítica de los datos escrita en. NET con Excel y VBA) - uno puede echar un vistazo a mi solución: excel4net Definitivamente creo que el factor de bandwagon está en juego, a menudo somos como ovejas, y no veo ninguna razón por la estrategia de inversión o sistemas Sería diferente. Un poco de suerte no interferirá en la divisa Sin embargo, un problema que he encontrado es mi deseo en curso de modificar y mejorar regularmente el sistema que he encontrado puede convertirse en contraproducente, ya que existe un peligro real de que el desarrollo del sistema se convierte en un fin en sí mismo Punto interesante. Creo que la mejor manera de lidiar con esto es aceptar (o rechazar) el tipo de relación de Ganancia / Pérdida que su método de negociación produce. Lo que quiero decir es que si el comercio de tendencia contra y, psicológicamente, sólo se sienten cómodos con un alto nivel de oficios ganadores, youll tienen dificultades para hacer frente a un sistema que genera como muchas victorias o pérdidas. En estas circunstancias, tal vez usted (y el sistema) estarán mejor si establecen criterios más estrictos y sacrifican algunas configuraciones, pero no demasiadas, para lograr un nivel más alto de operaciones ganadoras (aunque, en el proceso, también Podría reducir su promedio de ganancia / promedio de pérdida ratio). Pero estoy de acuerdo: su problema difícil que queman el evento de los comerciantes más experimentados. Sin embargo, un problema que he encontrado es mi deseo constante de modificar y mejorar regularmente el sistema que he encontrado puede convertirse en contra productivo, ya que existe un peligro real de que el desarrollo del sistema se convierte en un fin en sí mismo Me sorprendió mucho su publicación. En el mundo de los analistas cuantitativos (diseño de modelos derivados e implementación, etc. para los bancos de inversión de nivel superior, he pasado 6 años haciendo eso) Excel VBA se cree que es el lenguaje de programación menos flexible y sostenible que tenemos que tratar con sistemas escritos usando estos Los idiomas están a punto de ser retirados. Entiendo que ahora usted todavía está contento con él, pero pensó que usted podría desear estudiar las alternativas. A un precio de entrada relativamente modesto, puede obtener rendimiento y sostenibilidad que le sorprendería. VBA problemas que vienen a la mente son: mal rendimiento, mala gestión de la memoria (esto puede hacer que el rendimiento aún peor), no se puede utilizar el sistema de control de versiones que le permitiría realizar un seguimiento de los cambios (que-qué-por - (Ver, por ejemplo, svnbook. red-bean / nightly / es / svn. intro. whatis. htmlsvn. intro. righttool y tortoisesvn. tigris. org/ deberían existir algunas herramientas de control de versiones de Microsoft). Sobre la base de mi experiencia, a partir de algún código VBA de volumen se vuelven incontrolables, una de las razones de esto es que no se puede utilizar el control de versiones. Pobre flexibilidad (en comparación con las alternativas que será la ausencia de clases (métodos de estructura de clase que pueden acceder y modificar el contenido de la estructura) virtual ausencia de mecanismos de abstracción (Variante es muy propenso a errores). Es posible que los necesite si desea Utilizar el mismo algoritmo para una acción y para una curva de rendimiento (misma acción, objetos diferentes).Los lenguajes de programación alternativos fáciles de usar serían Matlab y Python. Ambos lenguajes son amigables para SVN (ver la tercera viñeta), Excel-friendly, pero Matlab es bastante costoso (1K - 10K, dependiendo de qué paquetes que usted necesita y en su ubicación), mucho más agradable y más fácil de usar, el equipo de apoyo está listo punta de rendimiento de Matlab: vectorizar su código (operar con vectores Por ejemplo vector donde el elemento i sería un precio de la acción X en la fecha de la observación de la fecha i días o matriz donde el elemento ij sería un rendimiento de la moneda Y en la fecha i para la madurez j). Otra forma de acelerar Matlab es comprar un paquete que puede convertir código de código Matlab en código C, que se puede compilar en una DLL que puede utilizar en Excel. Tal DLL funcionaría mucho más rápido (puede ser cien veces más rápido, depende de su tarea). Python es un freeware, bastante austero, se necesita un poco de tiempo para entrar en él, pero valdría la pena. Es más flexible, más de un lenguaje de programación adecuado. Otros idiomas que usted puede ser que desee considerar son C, VB. NET y stand-alone VB (todo por Microsoft, todo con un precio razonable). Yo los posicionaría entre C (ver más abajo) y Excel VBA C sería la más poderosa, VB sería la más simple para usar - es casi idéntica a VBA. Una vez más, hay un trade-off entre rendimiento / flexibilidad y straight-forwardness / similaridad a Excel VBA. El código C escrito a mano es el mejor desde el punto de vista del rendimiento, este es un lenguaje bastante versátil, pero se necesita mucho más tiempo para aprenderlo. Espero que lo encuentre interesante. Hola Dr. Ernie Chan He leído su libro sobre comercio cuantitativo. Se dice que MATLAB es una buena herramienta para desarrollar estrategias complejas. Pero no hay API bien aprobada para eso. Hay uno recientemente encontrado MATLAB2IB. Pero es lo suficientemente bueno y bien probado Se dice en su libro que Excel / VBA es lento en comparación con C. Estoy interesado en el desarrollo de un sistema de comercio automatizado. ¿Debo usar este nuevo MATLAB2IB y continuar desarrollando estrategias en Matlab Soy bueno en Matlab y lo he usado extensivamente durante mi doctorado y otros trabajos. No he utilizado C mucho y me pareció más difícil en comparación con MATLAB. Dada una opción, siempre voy a hacer la codificación en MATLAB. Pero es necesario desarrollar estrategias en C, si quiero desarrollar un sistema de trading automático. Hola Vinay, he usado matlab2ibapi desde hace varios meses y lo he encontrado bastante útil y confiable para automatizar mis estrategias. De hecho, estaré publicando un artículo que ilustra cómo usarlo. ErnieMany populares estrategias de negociación cuantitativa son públicos durante bastante tiempo. Ahora, si te gusta utilizar una estrategia de este tipo con dinero real, debe asegurarse de que su estrategia funciona bien. Para estrategias simples, MS Excel es perfecto para esta tarea. Pero, ya que nos gustaría utilizar una optimización y una visualización específica más adelante, utilizamos Theta Suite y Matlab. Esto también permite el análisis de estrategias más complejas si lo desea. Establecimiento de una estrategia comercial cuantitativa: Señal MACD 8211 Uno de los indicadores técnicos más populares es la Convergencia / Divergencia de Media Móvil (MACD), que esencialmente es la diferencia entre dos medias móviles. La literatura dice, el cruce de cero de una línea MACD daría una buena indicación para la compra de acciones de venta. En algún momento, añadir alguna señal de disparo y reclamar, esto sería aún mejor. Vean si esto es verdad. Más precisamente el comercio MACD se define generalmente como resp. En un bucle a lo largo del tiempo, parece que EMA12 y EMA26 son dos promedios móviles exponenciales diferentes con las constantes 8220constl128221 y 82208221constl268221. El EMA se define como: El sistema de comercio adecuado con un período de señal de 8220constl 98221 se parece a Prueba de la estrategia con datos históricos reales Esta parte es muy importante. No puedo insistir demasiado en este hecho: en un post posterior, vamos a hablar de back-testing mucho más. Obtener datos Asignar estos datos a un proceso de ThetaML permite la estimación del rendimiento de la estrategia de negociación basada en MACD. Aquí hay un gráfico de los precios de las acciones de IBM de 2000-01-01 a 2011-12-31: Matlab trama de precio de las acciones de IBM Backtesting de la estrategia comercial de MACD Podemos ejecutar los modelos ThetaML anteriores utilizando Theta Suite Orchestrator y conectar con el histórico Datos de IBM en Matlab en el Configurador. A continuación, en el Explorador de resultados, obtenemos el rendimiento de la correspondiente estrategia de comercialización de la señal MACD sin venta corta Ploteo de rendimiento de la estrategia comercial MACD y con venta en corto, se ve Funcionamiento de la estrategia comercial MACD con venta en corto Tenga en cuenta que durante la mayoría de los años , La estrategia de señal MACD no funciona mejor que el propio subyacente. Tomando en cuenta los costos de transacción, esto parece aún peor. Curiosamente, el año 2000 dio un gran desempeño de la estrategia MACD, pero todos los años posteriores no funcionaron tan bien. Conclusión Es fácil verificar si una estrategia se habría desempeñado bien utilizando datos históricos. ThetaML y Matlab son excelentes herramientas para esta tarea. La estrategia de negociación basada en MACD que analizamos no es significativamente mejor que mantener el propio subyacente. Otros parámetros de la estrategia de negociación pueden conducir a mejores resultados, por lo que podemos realizar una optimización. Vamos a ver que la próxima semana. Estrategia de comercio de los pares EXCEL MODELO Par Trading El par de negociación es una estrategia de negociación que coincide con una posición larga en un stock / activo con una posición de compensación en otro stock / activo que está estadísticamente relacionado. El par de negociación es una estrategia de reversión media en la que apostamos que los precios volverán a sus tendencias históricas. Quién puede usar este modelo de Excel Las personas interesadas en el algoritmo y el comercio de Quant, los que quieren aprender sobre el arbitraje estadístico. Cómo ayuda Este modelo de Excel le ayudará a: Aprender la aplicación de la reversión media Comprender la negociación de pares Optimizar los parámetros de negociación Comprender rendimientos significativos de arbitraje estadístico ¿Por qué debería descargar el modelo de negociación Como la lógica de negociación está codificada en las celdas de la hoja, Usted puede mejorar la comprensión descargando y analizando los archivos en su propia conveniencia. No sólo eso, usted puede jugar alrededor de los números para obtener mejores resultados. Puede encontrar parámetros adecuados que proporcionen mayores beneficios que los especificados en el artículo. Explicación del modelo En este ejemplo consideramos el par MSCI y Nifty como ambos son índices bursátiles. Implementamos la estrategia de reversión media en este par. La reversión media es una propiedad de series temporales estacionarias. Dado que pretendemos que el par que hemos elegido es la media de revertir, debemos probar si sigue a la estacionariedad. El diagrama siguiente muestra el trazado de la relación logarítmica de Nifty a MSCI. Al principio esto parece ser revertir media con un valor medio de 2.088, pero utilizamos Dicky Fuller Test para probar si es estacionario con una significación estadística. Los resultados en la tabla de resultados de Cointegration muestran que la serie de precios es estacionaria y, por tanto, la media revertida. Dicky Fuller estadística de prueba y un valor p significativamente bajo (lt0,05) confirma nuestra hipótesis. Habiendo determinado que la reversión media es válida para el par elegido, procedemos a especificar supuestos y parámetros de entrada. Supuestos Para fines de simplificación, ignoramos los márgenes de oferta. Los precios están disponibles a los 5 minutos de intervalo y el comercio a los 5 minutos precio de cierre solamente. Dado que se trata de datos discretos, la cuadratura de la posición ocurre al final de la vela, es decir, al precio disponible al cabo de 5 minutos. Sólo se negocia la sesión regular (T) Los costos de transacción son 0.375 para Nifty y 1.10 para MSCI. El margen para cada operación es 990 (aproximado a 1000). Parámetros de entrada Tenga en cuenta que todos los valores de los parámetros de entrada mencionados a continuación son configurables. Promedio de 10 velas (un candleevery precio de 5 minutos) se considera. Una puntuación z de 2 se considera para la compra y -2 para la venta. Se establece una pérdida de parada de 100 y un límite de beneficio de 200. El tamaño del pedido para el comercio MSCI es 50 (1 porción) y para Nifty es 6 (3 lotes). Los datos de mercado y los parámetros de negociación se incluyen en la hoja de cálculo a partir de la 12ª línea en adelante. Por lo tanto, cuando se hace referencia a la columna D, debe ser obvio que la referencia comience a partir de D12. Explicación de las columnas en el modelo Excel La columna C representa el precio de MSCI. La columna D representa el precio Nifty. La columna E es la relación logarítmica de Nifty a MSCI. La columna F calcula el promedio de 10 velas. Dado que se necesitan 10 valores para cálculos medios, no hay valores de F12 a F22. La fórmula IF (A23gtC3, MEDIA (E13: E1358, A23-C3): E22), 82208221) significa que la media debe calcularse sólo si la muestra de datos disponible es superior a 10 (es decir, el valor especificado en la celda C3) , De lo contrario la celda debe estar en blanco. Considere la celda F22. Su correspondiente celda A22 tiene un valor de 10. Dado que A22gtC3 falla, la entrada en esa celda es en blanco. La siguiente celda F23 tiene un valor puesto que A23gtC3 es verdadera. El siguiente bit de la fórmula AVERAGE (E13: E1358, A23-C3): E22) calcula el valor promedio de las últimas 10 velas de la columna E (como se menciona en la celda C3). Una lógica similar se mantiene para la columna G donde se calcula la desviación estándar. La puntuación z se calcula en la columna H. La fórmula para calcular la puntuación z es z (x -) / (). Aquí x es la muestra (columna E), es el valor medio (columna F) y es la desviación estándar (columna G). La columna I representa la señal comercial. Como se menciona en los parámetros de entrada, si la puntuación z baja por debajo de -2 que compramos y si va por encima de 2 vendemos. Cuando decimos comprar, tenemos una posición larga en 3 lotes de Nifty y tenemos posición corta en 1 porción de MSCI. Semejantemente cuando decimos la venta, tenemos la posición larga en 1 porción de MSCI y tenemos posición corta en 3 porciones de Nifty así squaring de la posición. Tenemos una posición abierta todo el tiempo. Para entender lo que esto significa, considere dos señales comerciales comprar y vender. Para la señal de compra, como se explicó anteriormente, compramos 3 lotes de Nifty futuro y corto 1 porción de MSCI futuro. Una vez tomada la posición, seguimos la posición usando la columna de estado, es decir, la columna M. En cada nueva fila mientras la posición continúa, verificamos si la pérdida de parada (tal como se menciona en la celda C6) o toma ganancia (como se menciona en la celda C7). La pérdida de parada se da el valor de USD -100, es decir, la pérdida de USD 100 y toma el beneficio se da el valor de USD 200 en las celdas C6 y C7, respectivamente. Mientras que la posición no golpea tampoco la pérdida de la parada o toma el beneficio, nosotros continúa con ese comercio e ignora todas las señales que están apareciendo en la columna I. Una vez que el comercio golpea la pérdida de la parada o toma beneficio, volvemos a mirar las señales en la columna I y abrir una nueva posición de negociación tan pronto como weve Comprar o vender la señal en la columna I. La columna M representa las señales comerciales basadas en los parámetros de entrada especificados. La columna I ya tiene señales de negociación y M nos informa sobre el estado de nuestra posición de negociación, es decir, si somos largos o cortos o contabilizamos los beneficios o salimos de la pérdida de stop. Si el comercio no se sale, llevamos adelante la posición a la siguiente vela repitiendo el valor de la columna de estado en la vela anterior. Si el movimiento del precio se produce de tal manera que rompe el TP dado o SL, entonces cuadrado de nuestra posición por lo que denota por TP y SL, respectivamente. La columna L representa Mark to Market. Especifica la posición de la cartera al final del período de tiempo. Como se especifica en los parámetros de entrada que el comercio 1 porción de MSCI y 3 lotes de Nifty. Así que cuando negociamos nuestra posición es la diferencia de precio apropiada (dependiendo de si somos comprados o vendidos) multiplicado por el número de lotes. La columna N representa el estado de ganancias / pérdidas de la operación. P / L se calcula sólo cuando hemos cuadrado de nuestra posición. La columna O calcula el beneficio acumulado. Salidas La tabla de salida tiene algunas métricas de rendimiento tabuladas. Pérdida de toda la pérdida que hace comercios es 3699 y el beneficio de las operaciones que golpeó TP es 9280. Así que el P / L total es 9280-36995581. Las operaciones de la pérdida son las operaciones que resultaron en la pérdida de dinero en las posiciones comerciales. Operaciones rentables son las operaciones exitosas que terminan en ganar causa. La ganancia media es la relación entre el beneficio total y el número total de operaciones. El beneficio medio neto se calcula después de restar los costes de transacción que asciende a 91,77. Ahora es su turno Primero, descargue el modelo Modifique los parámetros y estudie los resultados del backtesting Ejecute el modelo para otros precios históricos Modifique la fórmula y la estrategia para agregar nuevos parámetros e indicadores Juegue con la lógica Explore y estudie Comente abajo con sus resultados y sugerencias Haga clic Para descargar el excel (Si aún no está conectado, primero ingrese / regístrese) Accede para acceder a este archivo GRATIS

No comments:

Post a Comment