网上的XXX教程,XXX文档全都是贴了个程序,至于能不能用另说~
以上,
综合大多数网友的帖子和对官方文档的学习,重新贴一个K线绘制代码:
- python3.7
- matplotlib 3.0.2
- mpl-finance 0.10.0
# -*- coding:utf-8 -*-
#Auther: dshowing
import datetime
import matplotlib.pyplot as plt
from matplotlib.pylab import date2num
from mpl_finance import candlestick_ohlc
import jqdatasdk
"""
注意date2num()参数格式为datetime.datetime类;
candlestick_ohlc可接受列表参数和单个参数;
jqdatasdk返回DataFrema数据,注意格式转换
"""
# jqdatasdk.auth
jqdatasdk.auth('ID', 'secure_id')
# 从joinquant获取历史行情
date1 = '2018-10-01'
date2 = '2019-02-01'
quotes = jqdatasdk.get_price(
'000001.XSHE',
start_date=date1,
end_date=date2,
frequency='daily',
fields=None,
skip_paused=True,
fq=None
)
# 遍历转换
data_list = []
for dates, row in quotes.iterrows():
#dates为Datafrema数据,强制转换为str方可使用
date_time = datetime.datetime.strptime(str(dates), '%Y-%m-%d %H:%M:%S')
#接收datetime.datetime数据
t = date2num(date_time)
open, high, low, close = row[:4]
datas = (t, open, high, low, close)
data_list.append(datas)
# 创建一个figure
fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.2)
# 设置x轴为日期
ax.xaxis_date()
plt.xticks(rotation=45)
plt.yticks()
plt.title('000001.XSHE: 2016/01/01-2019/02/01')
plt.xlabel("时间")
plt.ylabel("股价(元)")
candlestick_ohlc(ax=ax, quotes=data_list, width=0.6, colorup='b', colordown='r')
plt.grid(True)
plt.show()
jqdatasdk
这里使用了聚宽的离线数据SDK,使用前要用.auth认证
get_price
截取时间段数据,除此之外还有很多,可以去查官方API
date2num
matplotlib.pylab.date2num()需要一个datetime.datetime类参数
只要是DataFrema数据,都不能直接在candlestick_ohlc方法中使用,需要遍历转换为整形数据
运行
图有点毛病,凑合看,,,
image.png
后记
原本是想自己做一个系统,同时兼顾数据回测、K线/收益线绘制、动态的图形系统。
阴差阳错的用起来了matplotlib库,,
大家如果知道类似的开源框架评论区推荐一下,多谢!
网友评论