给自己搭个量化投资系统之三——用pthon画K线图

举报
darkpard 发表于 2022/05/16 19:42:25 2022/05/16
【摘要】 在进行量化投资的探索时,一些关于技术分析的尝试还是有必要直观地看一下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)

参考文献:

  1. https://blog.csdn.net/weixin_44068483/article/details/120958889
  2. https://github.com/matplotlib/mplfinance/blob/master/examples/marketcolor_overrides.ipynb
  3. https://blog.csdn.net/weixin_48964486/article/details/116229333
  4. https://developer.aliyun.com/article/889907
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。