欢迎你们订阅《Python数据分析实战:构建股票量化交易系统》小册子,学完小册上的知识点后,必定要学以至用的方式来辅助咱们分析股票! 算法
相信你们都据说了量化交易这个东西了吧!微信
量化交易是一种新兴的系统化金融投资方法,它综合多个学科的知识,用先进的数学模型代替人的主观思惟制定交易策略,利用计算机强大的运算力从庞大的股票、债券、 期货等历史数据中回测交易策略的盈亏“几率”,经过管理盈亏的“几率”帮助投资者作出准确的决策。markdown
那么,什么才是普通股民所适合的量化交易打开方式呢?oop
本文就用一个接地气的股票分析场景 —— 用量化方法识别股价波段的极值点 来和你们分享一下,普通股民如何去使用量化交易!spa
股票的走势不是一条单一的直线,而是像海水的浪潮同样有高有低。因而股价的高低起伏走势会造成一个个波段。.net
不少经典的策略都是基于波段的分析。好比艾略特的波浪理论、低买高卖的波段操做、 寻找支撑位和压力位等等。code
然而这些策略的共同基础就是识别出波段,也就是股价的极值点。orm
一般咱们是用肉眼在行情软件上去识别和标记的,那么所谓的量化就是把极值点的特色概括成一种算法模型,用量化程序去识别。blog
第一步是识别金叉和死叉。(关于实现原理在往期的《小散量化炒股记》中已经介绍,此处不在赘述)get
此处咱们是先识别MACD的金叉和死叉。如图所示,标记G为金叉(GLOD缩写),而标记D为死叉(DEATH缩写)。
第二步则是基于金叉和死叉去找到极值点。原理其实很简单:一个金叉和死叉之间必然存在一个最大值,同理一个死叉和一个金叉之间也存在一个最小值。以下所示:
以寻找最大值为例,关键代码以下所示:
# 找出上一个的金叉 这个金叉和下一个死叉之间会出现股价最大值
df_temp_1 = df_stockload[(df_stockload.index <= df_stockload.index[i])]
df_temp_2 = df_temp_1[df_temp_1.cross_m > 0]
if df_temp_2.empty == False:
df_temp_3 = df_temp_1[(df_temp_1.index >= df_temp_2.index[-1])]
close_val = df_temp_3["High"].max() #
df_temp_4 = df_temp_3[df_temp_3["High"].values == df_temp_3["High"].max()]
time1 = df_temp_4.index.to_pydatetime()[0].strftime("%Y-%m-%d")
posit = df_stockload.index.get_loc(time1)
df_stockload.loc[df_temp_4.index, "Max"] = True
复制代码
寻找以后再用Matplotlib库的annotate方法标记,效果图以下所示:
标记了波段的最大值和最小值以后,有什么好处呢?
首先是获得波段最大值对应的压力位大小,以及波段最小值对应的支撑位大小,这个数值能够参考该日对应的成交量。
以及能够把一段时间内的压力位所对应的成交量进行累加,做为当前突破压力位所受到的阻力值。
其次,咱们能够把波段的最大值和最小值分别链接起来,做为趋势的判断依据。以下图所示:
好比,咱们识别到连续波段的高点和低点都在一个数值附近,那么能够判断当前处于震荡走势之中。当连续的波段高点和低点不断抬高,那么当前正处于上升趋势之中,同理为下跌趋势的判断亦然。这个正是大方向上的把握。
经过这个简单而又实用的股票量化场景,但愿可以给广大朋友对于量化交易有一个直观的感觉。
而后,咱们应该升级本身的炒股方式了,把本身之前炒股的那套方法,抽象成策略模型,用量化的方法去全市场回测评估,而后让程序帮助咱们监测行情的走势。
这个才是普通股民所适合的量化交易打开方式!
———————————————————————————————————————————————— 你们若是想对涉及到的知识点进行更全面、更体系的从0-1方式的介绍,这里推荐给你们个人书籍《Python股票量化交易从入门到实践》
!天猫、京东、当当全面开售!
同时也欢迎你们关注个人微信公众号【元宵大师带你用Python量化交易】了解更多Python量化交易相关内容
例程中的代码,上传至《玩转股票量化交易》知识星球(知识星球的目录可点击【阅读】查看)。