1、概述
本例子为画k线图,同时画出5日,10日,30日均线,且鼠标移动到上面会显示当前交易日,开盘价,收盘价,最高价,最低价。
移动平均线:Moving Average,简称MA,MA是用统计分析的方法,将一定时期内的证券价格(指数)加以平均,并把不同时间的平均值连接起来,形成一根MA。5日,10日:短线操作参考;30日:中线操作参考;150日,200日:长线参考。
2、选取参数
交易日范围:2020-01-01到2020-04-20;
公司:港股上市的腾讯控股(0700.HK)。也可选A股公司:如平安银行(000001.SZ),具体设置见下面代码;
3、主要用到的模块
yfinance模块:获取行情数据(from yahoo);
mpl_finance模块:计算日k线,均线;
4、实现代码
定义画k线图函数DrawKLine(),主要实现:
获取行情数据,画图及显示样式设置,定义鼠标停留显示当前交易日行情数据事件(闭包函数实现)
import datetime
#import pandas_datareader.data as web # 是一个远程获取金融数据的Python工具,但是经常提示连接错误,不好用,换成了yfinance
import yfinance as yf
import numpy as np
import mpl_finance as mpf # mpl_finance替换 import matplotlib.finance as mpf画k线图,网上说mpl_finance已经弃用,这里还能用,暂时用它
import matplotlib.pyplot as plt # 可视化模块
def DrawKLine():
# 1、获取数据
print('获取yahoo财经行情数据')
# 获取指定公司,指定时间内的行情数据
'''
df_stockload = web.DataReader