楼主: 邢不行
2384 2

[交易策略] 写最少的代码,画最骚的K线 [推广有奖]

已卖:1906份资源

院士

10%

还不是VIP/贵宾

-

威望
1
论坛币
26755 个
通用积分
155.8944
学术水平
489 点
热心指数
509 点
信用等级
460 点
经验
53138 点
帖子
585
精华
26
在线时间
1197 小时
注册时间
2010-4-30
最后登录
2025-12-23

楼主
邢不行 在职认证  发表于 2020-10-29 15:57:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

引言:


邢不行的系列帖子“量化小讲堂”,通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助。

【必读文章】:《10年400倍策略分享-附视频逐行讲解代码》

                     《EOS期现套利,一周时间,15%无风险收益》

【历史文章汇总】:https://bbs.pinggu.org/thread-3950124-1-1.html


个人微信:xbx9585,有问题欢迎交流



1ea8f0b120783a72ba0037470d53df2f.jpg


这是邢不行第  68  期量化小讲堂的分享

作者 | 邢不行、助教-法玛



之前有次直播的时候给大家演示过一个我们内部使用的工具 —— 择时策略查看器


5efdb1956d8a9df8913d613853398f50.gif


在查看器的界面上,不仅可以清楚地看到K线图、均线等各类技术指标,还能显示出择时策略交易信号的买点、卖点。


在页面右侧可以看到每一笔买卖交易:

0.jpg


点击“在图中显示”,K线页面就会对焦到该笔交易,展现它的开仓点、平仓点、收益率等信息。


这个工具主要是让大家更方便的阅读择时策略的逐笔交易,帮助开发、优化新的策略。一开始只是内部使用,后来开放给策略分享会的同学。


这件“神器”的主要部分是K线和相关指标的展示,看上去好复杂,会不会很难?


答案是:其实只需十几行Python代码,即便是毫无编程基础的小白也可以画出K线图。


本文就按照以下四步,讲解如何制作高大上的个性化行情分析神器:


01 绘制普通的K线图

02 加入成交量

03 加入均线

04 添加交易信号



01

绘制普通的K线图


这里我默认大家已经装好了Python以及相关环境,并且知道如何运行代码。


如果不会的话,请参考我之前写的这篇文章:


最最最最简单、最最最最详细的Python和Pandas安装教程


首先我们打开Anaconda, 在里面点击Spyder。



这里我已经为大家准备好三份数据,分别是比特币日K线比特币4小时K线,以及sh000688科创50指数日K线


0.1.jpg

2.jpg


除此之外,还有我们的4个程序文件:


1.jpg



如果你需要这些代码和数据,可以加我微信xbx9585,可以发给你。


比特币4小时K线为例,打开“1_画K线.py”这个程序:


3.jpg


其中第1、2的代码意思是导入我们事先安装好的第三方库,第5到第7行是导入本次作图需要用到的数据。


选中前7行代码,点击鼠标右键,再点击“Run Cell”,运行这几行代码:


4.jpg


在界面右侧的Variable中可以看到,数据已经导入到程序中了:


5.jpg


我们在此双击“df”变量,便可以看到已经被导入的K线数据:


6.jpg


接下来我们用导入的这份数据画K线图:


7.jpg


作图部分的代码是设置K线的颜色风格


如果我们希望K线的颜色和国内A股市场一样红涨绿跌,那么只需要把参数设置为:


up=’red’  down=’green’


第13行代码中edge的意思是设置K线边框的颜色,默认是黑色,edge=’inherit’的意思是保持K线边框的颜色与K线实体颜色一致。


运行全部代码,就可以画出比特币最近一段时间的K线图:


8.jpg


想要修改图中的纵坐标名称,只需修改代码第18行代码里的ylabel参数即可:


9.jpg


现在我们已经可以画K线图了,那应该如何在普通的K线图中加入成交量呢?



02

加入成交量


打开“2_加入成交量.py”这个新的程序:


10.jpg


这个程序前10行的代码和“1_画K线.py”程序完全一致,也是导入第三方库和读取数据。


不同之处在于:


11.jpg


首先,在第14行新增了一个volume参数,volume=’inherit’意思是将成交量柱状图的颜色设置为红涨绿跌,与K线一致。


其次,第19行作图代码中新增两个参数,volume=True的意思是将成交量添加到图中。ylabel_lower=’volume’意思是将成交量图的纵坐标命名为“volume”。


运行程序之后,可以看到添加了成交量的K线图:


12.jpg


想要修改成交量纵坐标的名称,只需修改代码第20行代码里的ylabel_lower参数即可:


13.jpg


接下来讲解一下如何在K线图中加入技术指标。


03

加入技术指标


我们以均线为例,演示在K线图中添加技术指标。


我给大家提供的数据里已经算好了均线,只需按照代码将均线指标添加到画图函数即可。


14.jpg


打开“3_加入均线.py”程序:


15.jpg


该程序的前16行代码和上面两个程序是相同的。


不同之处在于:


16.jpg


第19行新增一个变量add_plot, 赋值为10日均线’ma_10’和50日均线’ma_50’,并且将add_plot变量添加到第21行的mpf.plot()方法中。


写好之后,运行程序,就能得到K线图:


17.jpg


可以看到,K线中新增了两条移动平均线。蓝色的是50日均线橙色的是10日均线


大家应该能感受到,过程其实很简单,我们只要像搭积木一样在画图函数里添加相应的参数即可。


最后再来看看,如何将交易策略的开仓平仓信号,添加到K线中。



04

添加交易信号


我给大家提供的数据已经包含了交易信号,只需按照代码将交易信号添加到画图函数即可。


18.jpg


打开“4_加入买卖点.py”程序:


19.jpg


这个程序的前16行代码和“3_加入均线.py”的程序是完全一样的。


不同之处在于:

20.jpg

第19-22行代码中,add_plot变量新增了我们的交易信号。交易信号分为三种:


1. signal_long: 做多的开仓信号

2. signal_short: 做空的开仓信号

3. signal_0: 平仓的信号


marker参数用来设定交易信号图标的形状,marker=’^’表示向上的箭头, marker=’v’表示向下的箭头, marker=’o’表示圆圈。


color参数可以用来控制颜色,color=’g’表示绿色(green), ‘y’表示黄色(yellow), ‘b’表示蓝色(blue),可以根据自己的偏好设定不同的颜色。


运行程序,做出最终的行情分析器


21.jpg


图中红色向上的箭头表示开多仓的位置,绿色向下的箭头表示开空仓的位置,黄色圆圈表示平仓的位置。


05

总结


现在我们已经成功绘制出比特币4小时K线,加入了成交量均线,并且还把我们自己的交易信号添加到K线中。


大家可以发现,编程其实也不难。就像搭积木一样,一点一点往上加就行。并且第四步的程序一共只需20几行Python代码,其中大部分还是注释和空格。


强烈建议感兴趣的同学可以自己尝试运行一下代码,体会会更不一样。加我微信xbx9585,我可以把作图需要的数据和代码都发给你。



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Variable python pinggu SPYDER thread 数字货币 比特币 区块链 编程 python 数字货币 比特币 区块链 编程 python

14.jpg (85.51 KB)

14.jpg

已有 1 人评分经验 收起 理由
wwqqer + 100 精彩帖子

总评分: 经验 + 100   查看全部评分

不管去哪里 只要在路上

沙发
piiroja 发表于 2020-11-17 15:16:39
thx for sharing~
已有 1 人评分学术水平 收起 理由
zengxiongpei + 1 精彩帖子

总评分: 学术水平 + 1   查看全部评分

藤椅
爱与生的苦恼 发表于 2024-6-3 20:42:43
学习了

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2025-12-28 10:29