Thursday 15 December 2016

Trama En Movimiento Python Promedio

Estoy jugando en Python un poco de nuevo, y he encontrado un libro limpio con ejemplos. Uno de los ejemplos es trazar algunos datos. Tengo un archivo. txt con dos columnas y tengo los datos. Yo trazo los datos muy bien, pero en el ejercicio dice: Modifique su programa más para calcular y trazar el promedio de los datos, definido por: donde r5 en este caso (y el yk es la segunda columna en el archivo de datos) . Haga que el programa dibuje tanto los datos originales como el promedio en el mismo gráfico. Hasta ahora tengo esto: ¿Cómo puedo calcular la suma en Mathematica es simple desde su manipulación simbólica (Sumi, por ejemplo), sino cómo calcular la suma en python que toma cada diez puntos en los datos y los promedios, y lo hace Hasta el final de los puntos que miraba el libro, pero no encontró nada que podría explicar esto: heltonbikers código hizo el truco: D Muchas gracias :) Hay un problema con la respuesta aceptada. Creo que tenemos que usar válido en lugar de lo mismo aquí - devolver numpy. convolve (intervalo, ventana, igual). Como ejemplo, pruebe el MA de este conjunto de datos 1,5,7,2,6,7,8,2,2,7,8,3,7,3,7,3,15,6 - el resultado Debe ser de 4,2,5,4,6,0,5,0,5,0,5,2,5,4,4,4,5,4,5,6,5,6,4,6,7,0,6,8. Pero tener lo mismo nos da una salida incorrecta de 2.6.3.0,4.2,5.4,6.0,5.0,5.0,5.2,5.4,4.4,5.4,5.6,5.6, 4.6,7.0,6.8,6.2,4.8 Código oxidado para probar esto -: Pruebe esto con amplificador válido mismo y ver si la matemática tiene sentido. Respondió Oct 29 14 at 4:27 Haven39t probado esto, pero I39ll mirar en él, It39s sido un tiempo desde I39ve codificado en Python. Ndash dingod Oct 29 14 at 7:07 dingod Por qué don39t que probar rápidamente con el código oxidado (y el conjunto de datos de muestra (como una simple lista), me publicó. Para algunas personas perezosas (como yo había sido al principio) - su máscara fuera el hecho de que el promedio móvil es incorrecto. Probablemente debería considerar la edición de su respuesta original. He intentado ayer y la doble comprobación me salvó la cara de mirar mal en la presentación de informes a nivel Cxo. Todo lo que tiene que hacer, es intentar Su mismo promedio móvil una vez con quotvalidquot y otro tiempo con quotsamequot - y una vez que esté convencido me dan un poco de amor (aka-up-vote) ndash ekta 29 de octubre 14 a las 7: 16Advanced Matplotlib Series (vídeos y fuente final) Una vez que haya Una comprensión básica de cómo funciona Matplotlib, usted podría tener un interés en tomar su conocimiento un poco más lejos. Algunas de las necesidades de gráficos más complejas vienen en forma de análisis de valores y gráficos, o Forex. En esta serie de tutoriales, iban a cubrir Dónde y cómo agarrar, ordenar y organizar automáticamente algunos datos de precios de acciones y forex. A continuación, se va a gráfico con algunos de los indicadores más populares como un ejemplo. Aquí, bien hacer MACD (Moving Average Convergence Divergence) y el RSI (Relative Strength Index). Para ayudarnos a calcular éstos, usaremos NumPy, pero de otra manera los calcularemos todos por nuestra cuenta. Para adquirir los datos, iban a utilizar el Yahoo finanzas API. Esta API devuelve datos de precios históricos para el símbolo de ticker que especificamos y para la longitud de tiempo que pedimos. Cuanto mayor sea el tiempo, menor será la resolución de los datos obtenidos. Por lo tanto, si usted pide un período de tiempo de 1 día para AAPL, obtendrá 3-minutos OHLC (abrir alto cierre bajo) los datos. Si usted pide 10 años vale la pena, obtendrá datos diarios, o incluso tres marcos de tiempo de día. Tenga esto en mente y elija un marco de tiempo que se ajuste a sus objetivos. Además, si elige un marco de tiempo lo suficientemente bajo y obtiene suficiente granularidad, la API devolverá el tiempo en un sello de tiempo unix, en comparación con un sello de fecha. Una vez que tengamos los datos, queremos graficarlo. Para empezar, bien trazar las líneas, pero la mayoría de la gente querrá trazar un candelero en su lugar. Utilizaremos la función de candelabro de Matplotlibs y haremos una edición sencilla para mejorarla ligeramente. En este mismo gráfico, también superponen algunos cálculos de promedio móvil. Después de esto, se va a crear una subtrama, y ​​graficar el volumen. No podemos trazar el volumen en la misma subtrama inmediatamente, porque la escala es diferente. Para empezar, vamos a trazar el volumen por debajo en otra parcela secundaria, pero finalmente bien en realidad el volumen de superposición en la misma figura y lo hacen algo transparente. Luego, iban a agregar 2 subparcelas y trazar un indicador RSI en la parte superior y el indicador MACD en la parte inferior. Para todos estos, iban a compartir el eje X, por lo que podemos acercar y alejar en 1 parcela y todos coincidirán con el mismo marco de tiempo. Vamos a trazar en formato de fecha para el eje X, y personalizar casi todas las cosas que podemos para la estética. Esto incluye el cambio de los colores de las etiquetas, colores de borde / columna, colores de línea, colores de candelabro de OHLC, aprender a crear un gráfico relleno (para el volumen), histogramas, dibujar líneas específicas (hline para RSI) y mucho más. Heres el resultado final (tengo una versión de Python 3 y una de Python 2. Python 3 primero, luego Python 2. Asegúrate de usar el que coincida con tu versión de Python): Eso es todo por ahora. En el artículo anterior sobre Investigación Backtesting Ambientes En Python Con Pandas creamos un ambiente de prueba de backtesting basado en la investigación orientado a objetos y lo probamos en una 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 promedio móvil Crossover 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