给自己搭个量化投资系统之三——用pthon画K线图
【摘要】 在进行量化投资的探索时,一些关于技术分析的尝试还是有必要直观地看一下K线图,用python直接画出对应个股对应时间段的K线图就显得很有必要。1. 数据准备我们已经在《给自己搭个金融数据库(一)(二)(三)》中建好了自己的数据库,并且在给自己搭一个金融数据库(六)——通过API远程访问mysql中实现数据库的API访问,可以从自己的数据库里获取数据。以平安银行为例import data_ope...
在进行量化投资的探索时,一些关于技术分析的尝试还是有必要直观地看一下K线图,用python直接画出对应个股对应时间段的K线图就显得很有必要。
1. 数据准备
我们已经在《给自己搭个金融数据库(一)(二)(三)》中建好了自己的数据库,并且在给自己搭一个金融数据库(六)——通过API远程访问mysql中实现数据库的API访问,可以从自己的数据库里获取数据。以平安银行为例
import data_operate as do
data = do.sql2pd("select * from daily where ts_code='000001.SZ'")
print(data)
1.1. 只取最近一个月的数据
只需要修改一下sql语句
data = do.sql2pd("select * from daily where ts_code='000001.SZ' and trade_date>20220404")
print(data)
1.2. 把trade_date转成日期格式
首先导入datetime和pytz
import datetime, pytz
然后创建格式转换函数
def timestamp2date(date):
return datetime.datetime.strptime(datetime.datetime.fromtimestamp(date/1000, pytz.timezone('Asia/Shanghai')).strftime('%Y-%m-%d'), '%Y-%m-%d')
再后调用函数进行格式转换
data['trade_date'] = data['trade_date'].apply(timestamp2date)
最终可以得到
1.3. 整理数据格式
data1 = data[['open', 'high', 'low', 'close', 'vol']]
data1.index = data['trade_date']
2. 绘制K线图
2.1. 包的安装
绘制K线图可以用mplfinance包,在安装了matplotlib后,只需要升级一下
pip install --upgrade mplfinance
2.2. 绘制K线图
先导入需要的包
import mplfinance as mpf
绘制基本K线图
mpf.plot(data1, type='candle')
可以加上均线和成交量
2.3. K线图的个性设置
我们习惯把上涨画为红色,下跌画为绿色,因此我们可以做一些个性化设置
mc = mpf.make_marketcolors(
up="red", # 上涨K线的颜色
down="green", # 下跌K线的颜色
edge="black", # 蜡烛图箱体的颜色
volume="blue", # 成交量柱子的颜色
wick="black" # 蜡烛图影线的颜色
)
s = mpf.make_mpf_style(
gridaxis='both',
gridstyle='-.',
y_on_right=True,
marketcolors=mc,
edgecolor='b',
# figcolor='r',
# facecolor='black',
gridcolor='c')
mpf.plot(data1, type='candle', mav=(3, 6, 9), volume=True, style=s)
参考文献:
-
https://blog.csdn.net/weixin_44068483/article/details/120958889 -
https://github.com/matplotlib/mplfinance/blob/master/examples/marketcolor_overrides.ipynb -
https://blog.csdn.net/weixin_48964486/article/details/116229333 -
https://developer.aliyun.com/article/889907
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)