La Red de Conocimientos Pedagógicos - Currículum vitae - Tutorial de cuantificación de Python: línea K que debe aprenderse "la copia de código está disponible"

Tutorial de cuantificación de Python: línea K que debe aprenderse "la copia de código está 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. El gráfico de líneas K dibujará el precio más alto, el precio más bajo, el precio de apertura y el precio de cierre diarios, lo que nos resulta muy útil para comprender la tendencia de las acciones y comparar las posiciones largas y cortas todos los días.

En general, 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 pueden adaptarse a necesidades de producción complejas y cambiantes. Por lo tanto, es necesario que aprendamos a dibujar gráficos de líneas K con Python.

Cabe señalar que mpl_finance es el matplotlib.finance original, que ahora es independiente (y nadie parece mantenerlo ni actualizarlo). Usaremos el método que proporciona para dibujar gráficos de líneas K; Tushare es una biblioteca A para obtener datos bursátiles en línea; hay un método FuncFormatter() en matplotlib.ticker que puede ayudarnos a ajustar el eje de coordenadas. Matplotlib.pylab.date2num puede ayudarnos a convertir datos de fecha.

Tomemos como ejemplo la tendencia del mercado del Índice Compuesto de Shanghai desde septiembre de 2008 en 65438.

Primero dibújalo con mpl_finance para ver si todo es normal.

Como puede ver, todos los días festivos, incluidos los fines de semana, se mostrarán aquí en blanco, lo cual es muy perjudicial para la continuidad de nuestros gráficos, por lo que debemos eliminarlos.

Como ves el problema del blanco está perfectamente solucionado, déjame explicarte aquí. Debido a que matplotlib entiende los datos de fecha como datos continuos y los intervalos entre datos continuos son significativos, incluso si no hay datos en días no comerciales, aún se reflejarán en el eje de coordenadas. El número de días consecutivos no comerciales corresponde al número de casillas pequeñas en el eje, pero no hay velas correspondientes encima de estas casillas pequeñas.

Solo conociendo su principio podremos prescribir el medicamento adecuado. Podemos pasar datos continuos de rango fijo a la abscisa (fecha) para garantizar que el dibujo del gráfico de líneas K sea continuo primero y luego generar una lista con los datos de fecha correctos. A continuación, podemos obtener la fecha correcta correspondiente según los datos del eje y reemplazarla con la etiqueta del eje.

La función format_date anterior es para este propósito. Dado que hemos generado datos continuos a partir de 0 para la columna de fecha, podemos usarlos directamente como índice para obtener los datos correspondientes de la lista de fechas real. Aquí usaremos el método matplotlib .ticker .func formatter(), que nos permite especificar una función para formatear las etiquetas de los ejes. En esta función, debemos 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í. Consideraremos agregar promedios móviles, volumen de operaciones y otros elementos más adelante. ¡Los estudiantes interesados ​​pueden prestar atención!