python cnn 股市_荐python3绘制股票K线图的那些坑【一】mpl_finance迁向mplfinance,以及plot独立窗口视图问题!...

量化交易,宽客平台已经有了不少。自己也做了很长时间的股票投资&投机,有一些想法,需要验证。并且基于缠论的K线分析系统思想,有自己编写的通达信缠论指标和飞狐交易师缠论指标,包括选股指标也有。但是这些软件的限制比较多,尤其是通达信,最近凡是用了DLL的就不能同时在交易终端打开时使用DLL指标。限制很多,也不能很好的回测。而大多数回测平台吧,的确是可以跑回测的策略,但是K线呈现又没有那么直观了,策略回测完成,买卖点交易情况记录表打出来,还得自己到看盘软件里一个日期一个日期的去对,实在是非常麻烦。

干脆,自己也是搞软研的。自己写一套K线呈现系统吧。今天就是尝试的第一天,用mplfinance这个包。可谓是几经波折。首先是装了旧版的mpl_finance,运行就提示要升级。

如图所示了。很简单了,按照提示一顿pip install操作。然后傻眼了,提示candlestick2_ochl方法不存在。

name 'candlestick_ochl' is not defined

跑个简单的官方示例:

import pandas as pd

import mplfinance as mpf

daily = pd.read_csv('examples/data/SP500_NOV2019_Hist.csv',index_col=0,parse_dates=True)

daily.index.name = 'Date'

daily.shape

daily.head(3)

daily.tail(3)

mpf.plot(daily,type='candle')

直接成功:

但是不理想啊,这只是个图片,不如matplotlib的独立窗口显示的好用。于是根据网上一阵搜索,设置里去掉plot工具窗口显示选项即可。操作!

再运行扯淡了,没有独立窗口,也没有整合显示而是报错!

进程已结束,退出代码-1073741819 (0xC0000005)

怀疑是不是win10的UAC账户控制导致的窗口句柄不能打开。于是用以管理员身份运行pychram,然后再运行,问题依旧。后来想起来,matplotlib的呈现是要基于后端的图像呈现系统,比如pyqt4、pyqt5、Tk等等。机器没有装pyQt5,pychram2020.1貌似默认基于PyQt5的,也许是这个问题,换成pyqt4的后端试试。改它!

import matplotlib

matplotlib.use('qt4agg')

import matplotlib.pyplot as plt

'''

import matplotlib

matplotlib.use('tkagg')

import matplotlib.pyplot as plt

'''

import pandas as pd

import mplfinance as mpf

daily = pd.read_csv('../examples/data/SP500_NOV2019_Hist.csv',index_col=0,parse_dates=True)

daily.index.name = 'Date'

daily.shape

daily.head(3)

daily.tail(3)

mpf.plot(daily,type='candle')

运行!独立窗口出来了!换成tkagg也能够出独立窗口。试了一下qt5agg,就不行了。估计默认就是qt5agg搞的鬼吧。所以网上有些人遇到这个问题,重装pyQt5也能解决问题。但是个人认为,这样搞清楚一些还是要好一些。

看效果,歹歹的!

总结一下,还遇到的坑。

1、新版mplfinance的API发生了较大的变化,简化了绘图过程。

2、mplfinance依然基于matplotlib的,当无法呈现独立窗口时,务必在引入mplfinance之前,先引入matplotlib并指定后端图形实现方式是qt4agg,还是tkagg。

3、新版的mplfinance的plot方法,数据对象必须是dataFram类型,并且数据列也有严格的要求。必须包含’Open’, ‘High’, ‘Low’ 和 ‘Close’ 数据(注意:区分大小写,这个把我也折腾了好一阵),而且行索引必须是Date,并且是pandas.DatetimeIndex类型,行索引的名称必须是’Date‘(注意大小写),此外还有一列是’Volume’(成交量),这一列不是必须的,可选项(不选择绘制成交量的话,就不会有问题)。

今天就这样了,晒一下自己的想法。从mongoDB加在数据并显示。今天初步目标达成!只是还欠封装和调试。以后继续吧!准备做一个自己的证券可视化分析终端,数据源就选择mongoDB,之前也用过mysql,mysql实在不适合存储证券数据,入库太慢,查询还凑合。

使用mongoDB做后端数据源,这样比较容易统一数据结构,历史数据分析也方便。回测的结果导入,买卖信号叠加呈现在K线图上,也便于分析。大概想法就这样,逐步实现吧!

坑一趟过~~~~over。

原文链接:https://blog.csdn.net/supperman_009/article/details/106676335

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值