Tutorial cuantitativo de Python: gráfico de líneas K imprescindible "Copia de código disponible"
El gráfico de líneas K (gráfico de velas) es una herramienta clásica e importante tanto para los analistas cuantitativos como para los inversores comunes. En el gráfico de líneas K, traza los precios diarios máximos, mínimos, de apertura y cierre, lo que ayuda a comprender la tendencia de la acción y la comparación diaria larga-corta.
En circunstancias normales, obtendremos gráficos de líneas K de las principales plataformas de corretaje, pero en este caso los gráficos de líneas K obtenidos a menudo no son lo suficientemente flexibles y no se pueden ajustar ni adaptar de acuerdo con una producción compleja y cambiante. necesidades. . Por lo tanto, es necesario aprender a dibujar gráficos de velas usando Python.
Cabe señalar que mpl_finance es el prototipo de matplotlib.finance, pero ahora es independiente (y parece que no mucha gente lo mantiene y actualiza. Usaremos los métodos que proporciona para dibujar K). -line charts; tushare es una biblioteca en línea para obtener datos de acciones; matplotlib.ticker tiene un método FuncFormatter() para ayudarnos a ajustar los ejes de coordenadas; matplotlib.pylab.date2num nos ayuda a convertir datos de fechas según sea necesario.
Tomemos como ejemplo el índice compuesto de Shanghai desde el 18 de septiembre.
Primero, grafiquémoslo usando mpl_finance para ver si todo funciona bien.
Como puedes ver, todos los días festivos, incluidos los fines de semana, se muestran aquí en blanco, lo que va muy en detrimento de la continuidad de nuestro gráfico, por lo que lo corregiremos.
Como ves, el problema de los espacios en blanco ha quedado perfectamente solucionado, y aquí te lo explicamos. Debido a que matplotlib interpreta los datos de fecha como datos continuos y los espacios entre datos consecutivos son significativos, los días no comerciales todavía se representan en los ejes incluso si no hay datos. El número de días consecutivos sin negociación corresponde al número de celdas pequeñas en el eje, pero no hay velas correspondientes encima de estas celdas.
Ahora que entendemos cómo funciona, podemos abordarlo. Podemos pasar datos continuos con espacio fijo a la abscisa (fecha). Primero, asegúrese de que el gráfico de líneas K se dibuje continuamente; luego genere una lista que contenga los datos de fecha correctos. en el eje Fecha correcta correspondiente y reemplácela con la etiqueta en el eje.
La función format_date anterior hace precisamente eso. Dado que anteriormente generamos una secuencia continua de datos a partir de 0 para la columna de fecha, podemos usarla como índice para obtener los datos correspondientes de la lista real de fechas. Aquí, usaremos el método matplotlib.ticker.FuncFormattter(), que nos permite especificar una función para formatear las etiquetas del eje. Necesitamos aceptar el valor y la posición del eje y devolver la etiqueta personalizada.
¿Lo has aprendido?
Por supuesto, un gráfico completo de líneas K no termina aquí. También consideraremos agregar promedios móviles, volumen de operaciones y otros elementos más adelante.