用 Python / Matplotlib 画出来的股票 K线图 (四) - Jacky Liu's Blog

用 Python / Matplotlib 画出来的股票 K线图 (四)

Jacky Liu posted @ 2013年4月20日 07:10 in Python with tags 股票 python Matplotlib , 40559 阅读

 

    ---- 前一篇在这: 用 Python / Matplotlib 画出来的股票 K线图 (三)

    ---- 日线与分时对比行情:

    ---- 下面是绘图脚本与绘图数据合在一起的压缩文件。注意:

        1. 是 py3 脚本,matplotlib 已经支持 py3。绝大部分都是中文写的,不想被英文虐出翔了。

        2. 是 Linux 下写的,需要在 Linux 下执行。先解压,然后到生成的目录下执行:

python3   绘图.py

            就可以了。会生成一个 绘图.log 文件和一个图片文件放在相同目录下。

        <补记>:已经证实经过很小的改动就可以在 windows 下运行,输出中文字内容的大小样式有区别,其它一样,得益于 python 和 matplotlib 的跨平台特性。但是我不知道具体改哪些。

    ---- 解压后的文件结构:

        日线分时对比行情/
        ├Public/
        │├Public.py
        │└__init__.py
        ├子图定义/
        │├__init__.py
        │├公司信息子图.py
        │├分时价格子图.py
        │├分时手数子图.py
        │├实盘价格子图.py
        │├实盘手数子图.py
        │├日线价格子图.py
        │└日线换手子图.py
        ├绘图.py
        └绘图数据.pickle

    ---- 关于授权:除了特别说明的以外,本博客里的代码都用 “干啥随你便” 协议进行授权。

    Unless otherwise noted, all code pieces in this blog are licensed under the "DWYW(Do What the f Whatever You Want)" agreement. Good luck.

    ---- Download

Avatar_small
unicorn 说:
2013年5月27日 15:25

博主牛的,刚还在网上找个画k线图的python代码,这里都已经有行情界面了

Avatar_small
Ginger 说:
2013年11月11日 11:17

博主,请问在windows下运行怎么改动呢?或者您知道谁已经在windows下运行通过的吗?调了好久没调出来。。。

Avatar_small
Jacky Liu 说:
2013年11月12日 06:28

@Ginger: 我不知道该怎么改。有个人曾经改成功而且给我看了图,pdf 格式的,但是联系不到了 。。。

Avatar_small
Ginger 说:
2013年11月12日 08:17

@Jacky Liu: 好吧。还是谢谢了!P.S.您的博客好厉害啊,受益匪浅

Avatar_small
Jacky Liu 说:
2013年11月13日 00:09

@Ginger: 你先检查一下版本,python 必须是 3, 最好 3.2 以上。matplotlib 必须是最新的 1.2, 1.0 以下不行。只要版本对了剩下应该很简单,设置一下字体文件,把目录处理按 windows 的方式改改应该就行了,别的我也想不起来有什么。python 和 matplotlib 的通用型都很好的。

Avatar_small
Ginger 说:
2013年11月13日 08:34

@Jacky Liu: 我的python是3.3的,matplotlib是1.3的,字体也设置了。运行的时候会说内部有语法错误,就像"return [ 时间 if 时间<dtc_120000 else 时间-午间时差 for 时间 in 时间序列 ]"这句说有错误,不晓得怎么回事,以为会有其他内部问题。Cpython的代码我也不太会看,因为没有用汉语写过程序,⊙﹏⊙b汗~~好奇楼主为什么用CPYTHON写呢?

Avatar_small
Jacky Liu 说:
2013年11月13日 10:38

@Ginger: 这是哪跟哪。怀疑是中文的问题是吧?不太会看中文,当然可以搜索替换成你喜欢的语言再看。用 Cpython 当然因为它是默认的 python 解释器。请问一下,Cpython 的代码跟其它 python 的代码会有什么区别?

Avatar_small
Ginger 说:
2013年11月14日 09:12

@Jacky Liu: 啊。是说cpython的使用和python一点区别都没有吗?那为什么还会报内部语法错误呢?我是初学者,调代码能力不强,也没用过Lunix系统,菜鸟一个。我问您也只是基于好奇心,并没有一点埋怨或者不好的意思。因为身边好像没有用中文写程序的人,我也从来都不知道变量、路径、文件名等都可以用中文,所以觉得很好奇很好玩。博主要是觉得跟我这种小白交流有障碍的话那就不浪费您的时间了~~还是谢谢您之前的回答

Avatar_small
Jacky Liu 说:
2013年11月14日 13:09

@Ginger: 你自己用的也是 Cpython。看看是不是编码问题,把源文件用记事本重新保存一下。再不行就没辙了。

Avatar_small
chris 说:
2014年1月16日 14:48

很强大 多谢分享。有个问题问下博主,我有个python2环境的 但是因为python3的pickle和2版本的不同 导致没法load解析数据
有没有python2 版本的pickle数据呢 或者怎么能创建一份用python2的pickle能load的数据呢 十分感谢

Avatar_small
Jacky Liu 说:
2014年1月16日 18:46

@chris: python3 默认的 pickle 格式跟 python2 不兼容。pickle.dump() 和 pickle.load() 都可以通过参数指定使用旧的 pickle 格式,但是博文里包含的数据格式是 python3 默认的。

如果你想查看数据格式,不如搭建一个 python3 的环境。很方便,只要安装 python3、numpy、matplotlib 就好了。绘图脚本里自带了一个函数,能在 log 文件里用比较可读的方式输出绘图数据的结构。

Avatar_small
gkiwi 说:
2014年1月19日 02:17

正好弄这块,谢啦!

Avatar_small
丁丁 说:
2014年2月16日 16:26

@Jacky Liu: 只要把判断文件是否存在那两句注释掉(因为windows和linux文件机制不同,所以不存在os.mknod模块);另外把字体文件目录统一改成C:\WINDOWS\Fonts\wqy-zenhei.ttc就行(前提是要装上这个字体)。刚刚摸索玩运行成功,谢谢博主的代码,我估计还得慢慢消化好久。

Avatar_small
wood 说:
2014年4月28日 23:18

请问博主怎么获取的新浪复权日线啊?貌似只有不复权的?

Avatar_small
Jacky Liu 说:
2014年4月28日 23:32

@wood: 新浪 有复权日线,但是准确性很差,我现在已经不用了。

Avatar_small
wood 说:
2014年4月29日 06:52

@Jacky Liu: 那博主现在用的是什么日线数据?能不能把日线数据的获取方法分享一下?谢谢。

Avatar_small
Jacky Liu 说:
2014年4月29日 07:21

@wood: 当然是原始日线啊,不复权的。日线数据也是新浪的。

Avatar_small
Nate 说:
2014年6月18日 09:18

同样的码农,同样尊重缠师,同样决定用python在程序化交易做点东西。
python用来做程序化交易在国外网站上的资料非常丰富。
不知道博主交易几年,有没有稳定的盈利模式。我觉得如果对于市场和交易没有自己的理解的情况下,单靠一些简单的程序化交易的东西也还是很难盈利。
不知道博主有没有想过把R利用起来
关于画K线图,可以实现一般行情软件的缩放吗?

Avatar_small
Jacky Liu 说:
2014年7月26日 05:59

@Nate: 我没用 R,Python 目前够用了

目前正在完善基于 Vim 的股票交易界面。交易模式有手动和自动,有粗有细,细的可以花很多时间进去,是一个慢慢打磨的过程。目前有正在用的,但是打磨的过程不会中断,也不排除开发基于其它原理的新模式。

缩放属于实时性的任务,速度要求高。matplotlib 可以做,但是太慢。如果想实现,建议看一看 PyQT

Avatar_small
cmmtarget 说:
2014年8月09日 21:13

@Jacky Liu: 博主你的日线数据从新浪网站获取?不知道这样准确性如何。我是从大智慧导出数据读取,没实时性。这样每次都要手动导出数据再画图,比较麻烦。你的程序好牛逼。我只画了一副黑白的带量k线图。orz~

Avatar_small
Jacky Liu 说:
2014年8月09日 22:10

@cmmtarget: 我的日线数据是下载以后存在数据库里的,画图时从数据库里读。也可以把所有股票最近一年的日线先读进 Python,画图时直接从 Python 取。从股软导出是个好主意,我的开发平台是 Linux 所以从股软导出比较麻烦。你用什么工具画的图?

Avatar_small
cmmtarget 说:
2014年8月10日 08:44

@Jacky Liu: 我也用的matplotlib。因为我的需求比较低,所以画的东西极为原始。主要是要看清整个走势的全貌,数据都是上市以来的所有日K线。要复权看,所以就遇到除权数据的准确性问题,不同的股软好像都有点差异。

Avatar_small
Jacky Liu 说:
2014年8月10日 14:55

@cmmtarget: 哦,我觉得复权因子的准确性不是那么重要,离关心的时间点(比如当前最新)越远,重要性就越低。

Avatar_small
cmmtarget 说:
2014年8月10日 19:36

@Jacky Liu: 对于小级别买卖点确实不重要的。其用处在于判断牛熊,这种情况需要的k线就多了,期间除权几次就看不清了。可能我们着眼点比较不同吧。

Avatar_small
Jacky Liu 说:
2014年11月10日 02:32

@cmmtarget: 不,我说的不是复不复权,而是复权因子的准确性。也就是说,复权因子到底是 1.20 还是 1.18, 实际上一点都不重要。

Avatar_small
Stephen Hu 说:
2015年6月14日 06:42

@cmmtarget: 直接下载复权的历史日数据就可以。

Avatar_small
Firesnail 说:
2015年7月05日 22:31

Python中文编程~~~(*^__^*)

Avatar_small
nerdbihai 说:
2016年4月10日 17:25

你好,Jacky Liu!看了你的博客,发现你太牛了,我也是在查找相关画K线图的资料,找到你这!如果可以有你的邮箱或QQ 就好了!

Avatar_small
nerdbihai 说:
2016年4月10日 17:30

我是python新手,且是跨行开始学,
请教你菜鸟问题:
日K线,如何画;使用plt.bar画出来的吗?还是其他?

Avatar_small
nerdbihai 说:
2016年4月20日 17:41

看来网络上什么都有,只是自己不要懒!相关问题已解决

Avatar_small
searchjack 说:
2016年12月12日 01:35

thanks a lot , 代码测试通过

Avatar_small
wind 说:
2017年8月02日 14:01

非常棒,mac已经能够调试成功了...

Avatar_small
HBSE 12th Question P 说:
2022年8月17日 21:39

Two times a year, the affiliated schools in the state of Haryana administer the HBSE Matric Secondary or High Schools and Senior Secondary School Academic & Vocational levels. The HBSE 12th Guess Paper 2023 or the HBSE 12th Question Paper 2023 of the examination was issued by this board, which is in charge of administering the Haryana board 12th class examinations for all streams in the designated month. HBSE 12th Question Paper 2023 The New Question Paper has been formally issued by the Haryana Board on its official websites. It may be made available for all branches, including Arts, Science, and Commerce. For reference, students can download it and print it out.


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter
Host by is-Programmer.com | Power by Chito 1.3.3 beta | © 2007 LinuxGem | Design by Matthew "Agent Spork" McGee