动机
个人量化研究,用vn.py回测和研究策略。
发现最痛苦的事情就是写完一个策略后,根本没法方便地检查自己的交易逻辑。每次打印日志之后,翻日志再找其他K线工具来校对,这个过程简直泪流满面。
在无数次面对日志抓瞎以后,决心寻找一个好用的Python K线工具,于是在知乎搜索 Python K线
哦,不错,有很多不错的Python K线案例嘛!
但是!!
刨去静态图片啊,上面的动态交互工具,都没办法让我方便地把策略回测的结果放进去。
如果能按一下键盘就可以在开平仓标记位置biu,biu跳转就更好了。
看来自己手撸一个交互K线是免不了的
结合商业软件的K线,简单列一下需求:屏幕K线数少的时候,反应要快
鼠标滚轮缩放,键盘缩放跳转
十字光标 显示K线详细信息
缩放自适应Y轴坐标
策略回测运行中产生的指标可以放到K线图中
买卖开平仓位置有箭头标记,并且通过键盘可以在标记之间跳转
成果
废话不说了,先来看成果基础K线模块回测结果K线展示界面风格抄袭了市面上看到的商业软件
界面缩放,十字光标移动顺畅
回测完以后可以直接把开平仓标记和策略的技术指标显示到界面
键盘PgUp和PgDn可以在开平仓点自由切换了
K线图形对象部分代码
########################################################################
# K线图形对象
########################################################################
class CandlestickItem(pg.GraphicsObject):
"""K线图形对象"""
# 初始化
#----------------------------------------------------------------------
def __init__(self, data):
"""初始化"""
pg.GraphicsObject.__init__(self)
# 数据格式: [ (time, open, close, low, high),...]
self.data = data
# 只重画部分图形&#