Friday 11 November 2016

Retroceso De La Estrategia Media Móvil


BackTesting Promedios móviles Por qué moverse los promedios Como comerciante o inversionista, la única razón para investigar los promedios móviles es obtener conocimiento para aumentar los beneficios. Al igual que muchos otros indicadores técnicos, los promedios móviles están destinados a ayudarnos a determinar objetivamente el estado del mercado en un momento dado. Esto nos ayuda a ver a través de las emociones del día y tomar decisiones racionales, que se nos dice que llevará a mayores beneficios y / o menos pérdidas a largo plazo. Los promedios móviles (MAs) suavizan la serie de precios de una acción. Los MAs se utilizan con mayor frecuencia para identificar la tendencia de la dirección del mercado, y se clasifican como un indicador de tendencia siguiente. Esto doesn8217t significa que las AM sólo son para inversores a largo plazo 8211 los comerciantes a corto plazo los utilizan también. Los promedios móviles pueden usarse para detectar acciones de buenos candidatos, señalar oportunidades de compra y ofrecer señales de venta. Por qué Backtest 8211 una historia El objetivo de backtesting es averiguar si los promedios móviles realmente conducen a mejores resultados y cuáles son las maneras más prometedoras para aplicar MAs. Déjame contarte un cuento. Mientras yo estaba reuniendo los resultados de uno de los problemas del Informe de BackTesting medio móvil, pasé a visitar a un amigo. En su casa, me encontré con un material de lectura de un corredor de bolsa de descuento bien anunciado. En él era un artículo que aconsejaba a sus clientes a utilizar una determinada longitud promedio móvil aplicado de una manera determinada para obtener los mejores resultados. Tenía mis pruebas completas justo en frente de mí y puedo decirle que el método de broker8217s no obtuvo los mejores resultados, aunque sí mencionaron una longitud de MA que es útil de otras maneras. Tenía en mis resultados de prueba de la mano que demostraron que la manera que el corredor aplicó la media móvil tenía una tarifa del triunfo peor que la línea de base cuando probó en 7147 poblaciones sobre 14 años de datos de la bolsa. Claramente el corredor no estaba corriendo ese tipo de pruebas. It8217s hasta los clientes 8211 nosotros 8211 para defenderse para nosotros mismos y descubrir qué trabaja contra qué doesn8217t. Cómo calcular las MAs Cuando se realiza un backtesting de los promedios móviles, la primera decisión es cómo calcular el promedio móvil. Quieres un promedio móvil simple (SMA) o algo diseñado para seguir mejor el precio, como un promedio móvil exponencial (EMA)? Puede considerar un experimento para comparar las tasas de ganancia de los dos promedios diferentes. Lo hice hace un par de años, y aunque no tengo los resultados para publicar, me fui con la noción de que no hizo una gran diferencia si elegí SMA o EMA 8212 sólo elegir uno y utilizarlo de manera coherente. Así que para este proyecto, elijo usar promedios móviles simples porque los veo mencionados en el comentario con mayor frecuencia. Para realmente hacer el cálculo, confié en la función incorporada que vino con TradeStation. (La elección del motor de backtesting es otra decisión que es lo suficientemente general como para escribir en otro post.) Cómo usar MAs A continuación, debe especificar exactamente cómo desea aplicar las medias móviles. Cómo interpretará la relación entre el precio y el promedio móvil Qué reglas usará para decidir cuándo comprar y vender? No tiene que leer mucho acerca de las acciones antes de encontrar una referencia alcista a una cotización bursátil por encima de su promedio móvil de 200 días o su Media móvil de 50 días, o incluso la MA de 10 ó 20 días. O consejos sobre la compra de acciones a medida que atraviesan su media móvil de 50 días o 200 días. Estas son reglas importantes para probar en el motor de backtesting. Y entonces el crossover del promedio móvil 8211 es un método clásico de análisis técnico. Esto hace tres maneras distintas de usar promedios móviles para probar. Más profundamente, algunos textos comerciales hablan de la pendiente de un promedio móvil. Si vuelves al álgebra y consideras la MA como una línea, para encontrar su pendiente, escogerás dos puntos en la recta y aplicarás la fórmula usual ((x2-x1) / (y2-y1)). Esto trae a colación la cuestión de cuán lejos están los dos puntos que pueden marcar la diferencia en los resultados. Realmente, ya que el MA está siendo utilizado para identificar la tendencia, sólo queremos saber si se está inclinando hacia arriba o hacia abajo. Entonces podemos simplificar todo el cálculo al notar que si el precio está por encima de la media móvil, debe estar tirando de la media, y un precio por debajo de la MA lo tira hacia abajo. Por lo tanto, otra razón para probar la eficacia del precio por encima de la media móvil. Configuración de parámetros Una vez que decida cómo utilizar las MA, debe seleccionar una selección de varias longitudes para probar. Tenga cuidado con la sobre-optimización. En algún lugar por ahí hay un tipo con resultados de backtesting mostrando ganancia de 3895 o lo que sea usando el promedio móvil correcto. Lástima que no sepa qué MA producirá esos resultados en el futuro. Dicho esto, usted necesita probar más de una longitud para asegurarse de que sus resultados son una casualidad. Stick con los valores predeterminados o los que se oye más en los medios de comunicación. Encontrar el ajuste perfecto de un parámetro no lo hará rico. Encontrar un grupo de configuraciones buenas y robustas podría ser muy útil. Como un asunto práctico cuando los backtesting permiten suficiente retraso de datos antes de la medición. Todas las pruebas deben comenzar a medir en el mismo lugar para la comparación de manzanas a manzanas entre diferentes longitudes de MA. Por ejemplo, si usted está probando una media móvil de 200 días, se necesitarán los primeros 200 días de datos para calcular el primer punto de esa media móvil. Eso significa que el primer día en el que podría tener una señal es de 200 días en el conjunto de datos. Para hacer una comparación justa con, por ejemplo, la media móvil de 10 días, debe asegurarse de no contar ninguna señal de la media móvil de 10 días antes de que los 200 días estén listos. Afortunadamente TradeStation tiene una manera de establecer el número 8220Maximum de barras de estudio reference8221 en 8220Properties para All8221 estrategias que obliga al motor backtesting a esperar tanto tiempo antes de tabular los datos. Mayor beneficio de la compra o venta Las reglas de media móvil y, en particular, las reglas de cruce de media móvil se discuten a menudo como un sistema de inversión. Esto significa que una señal, por ejemplo, las MAs que cruzan hacia arriba es una señal de compra y luego su opuesto, por ejemplo las líneas de MA que cruzan hacia abajo, no es sólo una señal de venta sino también el gatillo para ir a corto. Teóricamente, that8217s muy bien, pero muchas personas no están interesados ​​en el cortocircuito del mercado. Están buscando técnicas para ayudarles a comprar y vender. Incluso una persona que regularmente vende y vende corto puede utilizar diferentes técnicas para la compra y venta. Por estas razones, es aconsejable probar las señales de compra separadamente de las señales de venta. Esto plantea un dilema porque es difícil evaluar una señal de compra aisladamente. Una forma de hacerlo es usar salidas temporizadas 8211, es decir, salir del comercio o vender el stock después de que transcurra cierto tiempo. He elegido para ejecutar cada backtest tres veces con tres veces diferentes salidas porque diferentes personas tienen diferentes estilos y necesidades diferentes. Para producir resultados de backtesting útiles para los comerciantes swing, salgo después de 2 días. Para modelar a los comerciantes de posición, 20 días. Para satisfacer las necesidades de los inversores activos, backtesting mantiene cada posición por 200 días. Esto da una manera de aislar las señales de compra y averiguar qué tan útil es el promedio móvil a los compradores de valores de diversos temperamentos. Necesidad de definir la bondad Una cosa más muy importante a considerar si usted está backtesting moviendo promedios para descubrir cómo es bueno lo hacen en el mercado de acción: Cómo usted sabrá cuál es bueno usted necesita criterios objetivos para el éxito. Esto significa identificar las estadísticas clave como la tasa de ganancias, la esperanza, las ganancias hipotéticas de equidad, etc. También significa establecer estándares para un desempeño aceptable en cada una de estas áreas. Un ejemplo ilustra por qué esto es importante y por qué no es tan fácil como aparece por primera vez. Digamos que sus pruebas muestran una tasa de victorias de 55 para un indicador en particular. Eso puede no ser tan bueno si, digamos, 62 de todas las acciones subieron durante el mismo período de tiempo. O si sólo 25 de las acciones subieron durante ese período de tiempo, su tasa de 55 victorias sería espectacular. Lo que es bueno depende de cómo se compara con el desempeño del mercado base en las mismas condiciones. Puede descargar una copia gratuita del informe BackTesting Report Baseline haciendo clic aquí. Conjunto de pruebas Para obtener un backtest significativo, necesita tener suficientes datos para hacer una comparación válida desde el punto de vista estadístico. Como mínimo, eso significa 30 operaciones. Incluso si usted está negociando sólo un instrumento 8211 sólo un stock o sólo un par de divisas 8211 Creo que it8217s importante para probar su estrategia comercial en muchos instrumentos diferentes para demostrar su solidez. Fui sobre la tapa con un sistema de prueba extremadamente grande 8212 7147 acciones sobre 14 años 8212 para cerciorarse de mis resultados aplicaría en una amplia variedad de condiciones de mercado. Usted puede conseguir su copia de mis informes del backtesting en señales de compra móviles de la compra haciendo clic aquí. Promedios móviles simples - Backtests comerciales Qué parámetros medios móviles son los mejores Este sitio tiene un océano de backtests medios móviles que conduje para el DAX, SP500 y también USD / EU (Forex). Estas pruebas se realizaron utilizando diferentes estrategias de señalización: variantes simples / exponenciales y crossover y diferentes índices para un período de tiempo de 1000 días de negociación. En contraste con otros sitios web, he probado todos los valores promedio de la ventana de día móvil de 1 a 1000 días, para las estrategias de cross-over también en combinación. Estos datos también son unqiue como traté de realizar pruebas realistas, simulando el spread de compra / venta y Impuestos para comparar con una estrategia de referencia (buy hold). Un valor de ventana de reacción rápida se ve bien en teoría y con una prueba simple. Pero la extensión, los honorarios y los impuestos destruirán todo funcionamiento en la aplicación práctica. Es por eso que estas pruebas realistas son tan valiosas. Espero que este sitio pueda ayudarle con sus oficios, disfrútalo IntroBacktesting un Crossover de Media Móvil en Python con pandas En el artículo anterior sobre Investigación Backtesting Ambientes En Python Con Pandas creamos un entorno de backtesting basado en la investigación orientado a objetos y lo probamos en un Estrategia de pronóstico aleatorio. En este artículo vamos a hacer uso de la maquinaria que introdujimos para llevar a cabo una investigación sobre una estrategia real, a saber, el Media Crossover móvil en AAPL. Estrategia de crossover de media móvil La técnica de crossover de media móvil es una estrategia de impulso simplista extremadamente conocida. A menudo se considera el ejemplo de Hello World para el comercio cuantitativo. La estrategia descrita aquí es larga solamente. Se crean dos filtros sencillos simples de media móvil, con periodos de retroceso variables, de una serie de tiempo particular. Las señales para comprar el activo ocurren cuando la media móvil de retroceso más corto excede la media móvil de retroceso más larga. Si el promedio más largo excede posteriormente el promedio más corto, el activo se vende de nuevo. La estrategia funciona bien cuando una serie de tiempo entra en un período de fuerte tendencia y luego invierte lentamente la tendencia. Para este ejemplo, he elegido Apple, Inc. (AAPL) como la serie de tiempo, con un breve lookback de 100 días y un largo lookback de 400 días. Este es el ejemplo proporcionado por la biblioteca de comercio algorítmico zipline. Por lo tanto, si queremos implementar nuestro propio backtester debemos asegurarnos de que coincide con los resultados en zipline, como un medio básico de validación. Implementación Asegúrese de seguir el tutorial anterior aquí. Que describe cómo se construye la jerarquía de objetos inicial para el backtester, de lo contrario el código siguiente no funcionará. Para esta implementación en particular he utilizado las siguientes bibliotecas: La implementación de macross. py requiere backtest. py del tutorial anterior. El primer paso es importar los módulos y objetos necesarios: Como en el tutorial anterior, vamos a subclase la clase base abstracta de la estrategia para producir MovingAverageCrossStrategy. Que contiene todos los detalles sobre cómo generar las señales cuando los promedios móviles de AAPL se cruzan entre sí. El objeto requiere una ventana corta y una ventana larga sobre la cual operar. Los valores se han fijado a valores predeterminados de 100 días y 400 días respectivamente, que son los mismos parámetros utilizados en el ejemplo principal de tirolesa. Los promedios móviles se crean mediante el uso de la función rollingmean de los pandas en las barrasCerrar el precio de cierre de la acción AAPL. Una vez que se han construido los promedios móviles individuales, la serie de señales se genera ajustando la colum igual a 1,0 cuando el promedio móvil corto es mayor que el promedio móvil largo, o 0,0 de lo contrario. A partir de esto, los pedidos de posiciones se pueden generar para representar señales comerciales. El MarketOnClosePortfolio está subclasificado de Portfolio. Que se encuentra en backtest. py. Es casi idéntica a la implementación descrita en el tutorial anterior, con la excepción de que las operaciones se llevan a cabo ahora en una base Close-to-Close, en lugar de una base Open-to-Open. Para obtener más información sobre cómo se define el objeto Portfolio, consulte el tutorial anterior. He dejado el código en la integridad y para mantener este tutorial autónomo: Ahora que las clases MovingAverageCrossStrategy y MarketOnClosePortfolio se han definido, una función principal se llamará para vincular todas las funciones. Además, el desempeño de la estrategia será examinado a través de un gráfico de la curva de equidad. El objeto de DataReader de pandas descarga los precios de OHLCV de las acciones de AAPL para el período del 1 de enero de 1990 al 1 de enero de 2002, momento en el que las señales DataFrame se crean para generar las señales de sólo larga duración. Posteriormente, la cartera se genera con una base de capital inicial de 100.000 USD y los rendimientos se calculan sobre la curva de patrimonio. El paso final es utilizar matplotlib para trazar un gráfico de dos cifras de los precios de AAPL, superpuestos con las medias móviles y las señales de compra / venta, así como la curva de equidad con las mismas señales de compra / venta. El código de trazado se toma (y se modifica) a partir del ejemplo de implementación de tirolesa. La salida gráfica del código es la siguiente. Hice uso del comando IPython paste para ponerlo directamente en la consola IPython mientras estaba en Ubuntu, de modo que la salida gráfica permaneció en la vista. Las barras de color rosa representan la compra de la acción, mientras que los downticks negros representan la venta de nuevo: Como se puede ver la estrategia pierde dinero durante el período, con cinco operaciones de ida y vuelta. Esto no es sorprendente teniendo en cuenta el comportamiento de AAPL en el período, que estaba en una ligera tendencia a la baja, seguido por un aumento significativo a partir de 1998. El período de retroceso de las señales de media móvil es bastante grande y esto afectó el beneficio del comercio final , Que de otro modo podría haber hecho rentable la estrategia. En los artículos siguientes crearemos un medio más sofisticado de analizar el rendimiento, así como describir cómo optimizar los períodos de retroceso de las señales individuales de media móvil.

No comments:

Post a Comment