洛阳证券公司联盟

如何用EXCEL VBA写量化交易系统

银河星辉2020-07-21 08:52:15

1

什么是量化交易(Quant)?

指以先进的数学模型替代人为的主观判断,利用计算机技术,从庞大的历史数据中海选能带来超额收益的多种大概率组合因素,以制定选股策略及买卖策略。


量化交易对股票交易系统的重要性,就如量化管理对企业管理的重要性,量化交易技术研究及使用者,称为宽客。早在上世纪,就有大量的物理学家改行到华尔街研究量化交易系统,现在仍在蓬勃发展中,2008年经济危机后,华尔街的海龟将之带到中国。现在量化交易已经成为国内各大机构公私募必备工具, 构成了对散户的不对称优势。


量化交易横跨数学,计算机,金融,投资,社会学,心理学等等。无论做涨跌,还是做基差,做波动,做风险,做利率,做时间,做稳定,做基本面,做技术,做热点,做事件,做心理,都可用到量化交易。


 什么是策略及策略回测

策略包括选股模式,比如说通过双均线系统的金叉来选股,或者通过W底形态选股,通过基本面数据选股,这都属于选股策略。策略还包括仓位策略,买卖策略等等。策略回测,则是回测历史数据中使用该策略的表现。根据预期收益来决定该策略是否有效。流行的各种上升形态,如果真正做回测的话,就会发现绝大多数不可靠。盲目采用未经回测的策略, 极易滑入不断耗时亏钱损健康的恶性螺旋中。


量化交易有什么优势?

股票量化交易的数据来源,为两市证券交易所公开的各种数据,相关门户网站的数据等等。任何选股策略都会追溯历史数据做策略回测,以证明其有效性,收益更加有预期且能最大化。量化交易,以足够短的时间从海量的数据中海捞出有用信息,帮您快而准选股,并指导您选用合适的仓位与买卖点位。量化交易,极大地提升赢胜率,降低风险,形成稳定盈利能力。 您的交易模式将具有高的纪律性及系统性,把您从情绪健康与亏损的恶性循环中解放出来。


常见交易软件的弊端

A.人脑看K线图形,而电脑实现图形判断却颇费周折。有的交易软件连循环语句都没有,怎么可以做复杂的图形判断呢?


B.交易软件不提供回测功能。


C.有些交易软件会产生一些陷阱,比如埋入了未来函数。因为有未来函数,您会发现过去满足条件的股票都走的很好,但您如果按它的预测去买,马上就踩雷。


D.如果选股软件向无限人员授权使用,则其选股模式注定是弱效的,任何策略如果采用的人多了,就会钝化。


E.大型交易软件自然没有精力对散户提供个人定制服务。


5

量化交易的限制

和其他任何选股软件一样,量化交易不可能承诺100%让您赚钱,因为交易本身还受其他很多因素影响,有些因素是无法量化的,比如个人情绪,黑天鹅事件等。


给您倚天屠龙利器, 但不意味着您不需要修身炼性。


量化交易“仅仅”提高您的安全性,通过大幅提高赢胜率来确保长期的稳定盈利。


比如说您以前的胜率徘徊于6胜4赔, 但量化交易可以提高到3胜1赔甚至6胜1赔以上。


量化交易的策略开发是复杂的,策略本身也是兵无常形,需要不断的开发优化,因为市场在变动,交易规则及政策等等在变动。


●我的量化交易平台是用Excel VBA做的,本人用VBA也十多年了,曾经用它做过很多大型的数据分析系统,这次用在量化交易上, 用坏了3个键盘, 程序打印出来应该是厚厚的一本书了。 VBA长啥样, 下面就是VBA程序编写调试的界面,相信对用过VBA的同道来说,一点都不陌生。

说起量化交易程序,其实有各种各样的语言写的,许多人用Python语言,但为何我宁愿选择用Excel VBA呢?首先Excel亲和力高,只要接触过办公软件的,谁不会用Excel呢?其实语言万变不离其宗,语言只是个工具,关键在算法。就Excel VBA 与Python来说,绝大多数的功能它们都能达到。Excel VBA中的各种工具不少,我拿过来就可以用,不用费时间花在不必要的工作上。其次,Microsoft的办公软件,Bug少啊,我不用当心出幺蛾子。


如果我用Python,这个有些东西不在我掌控之中,很怕出问题。比如说,某矿就提供Python平台让大家建策略搞回测,它同时也提供一些原始数据,当我引用其沪深股票前复权行情数据是,我发现它漏了2个股票的数据,是整天整天的丢,这个就令人很不放心。我觉得自己用VBA才踏实,才相信自己的数据。再者,用Excel本身也不赖,速度也足够快,我可以在100秒内完成所有的动作,针对十余种策略计算两市近3000只股票,我觉得这可以接受。更关键的是,如果在公共平台上做策略做回测,你的策略很容易被盗,这一点很重要,相信做量化交易的朋友会会心一笑。


●下面是大家熟悉的Excel界面,大家看到的“加载项”下的各种工具按钮下有许多扩展命令,可以完成各种各样的功能,是关联到我写的各种程序的。大家所看到的图中的数据,是连续约8个月近3000只股票每天的收盘数据。可以基于这些基础数据,利用相关策略选股,也可以回溯历史数据做策略回测。

●下面是选股结果。选定的数据贴到股票行情软件的自选股中,就可以查看并购买了。

流程是:从股票行情软件中导出交易数据(Excel形式),就可以一键执行相关的选股命令,基于最新行情与相关策略,直接出上图的结果。我分析的是3000只股票,十多个策略,时间在100秒内。这个动作可以在盘中做,也可以在盘后做。也就是说是可以在当天盘中分析当天完成买入,这个适合与做短线;也可以盘后分析,次日买入,也适合与一定类别的短线与中线买入。


●下面谈下量化交易中的核心,即策略回测。

量化交易系统的精华就在于每个策略是经过策略回测的,必须追溯历史数据,看在过去一段时间内,出现该策略形成的买入机会有多少次,每次假设买入的话,后面的表现如何。这样就可以保证策略选股的安全性。


上图中,第12行以下的下半数据,用程序罗列出了历史上曾经的买入机会,上半数据则是各种指标分析。


我的策略回测系统可以回答但不限于回答以下的问题:


1、在过去一段时间内,出现该买入机会的次数. 当然是越多越好,如果一个策略美如西施,但半年才见到一次,那对你有何意义呢?机会多,青春才不会虚度。


2、机会出现的日期天数。因为可能一天出现有好几个股票符合某策略,但你的资金这一天只能用一次,所以这个数据也很重要。


3、 次日被套率 在A1单元格的数据是0.5,假设次日个股最高涨幅小于0.5%就算被套的话,B10显示的就是被套的百分比概率。这个数据越小越好。 大家可以注意到,B10显示的可买下的被套率,C10显示的是难买下的被套率。如果当天涨停的话你基本上没有买入的机会,这个属于难买,相反就属于可买。难买情况下的被套率小于可买下的被套率,这个对资深股民来说,应该不难理解吧。


4、次日平均涨幅,这个也分可买与难买2种情况,显示在B7与C7单元格中。分月的次日平均涨幅,则显示在E9:N11的格子中。


5、当天买入后第三日创新高的概率,显示在B11/C11的单元格中。这个数据越小,则表示越要快进快出,假设次日被套的话,如果指望第3日脱逃的话,就要参考该数据。


6、卖点问题,即什么点位卖掉才最合适。这个问题回答在在E5:U8中。拿N6来举例,假设你尽力在次日涨到4%的情况下才跑,那么次日超出4%涨幅的概率是33.7%。如果超过4%才算盈利,小于4%的情况下当作无亏无盈,则全仓交易100次后,资金涨为原来的3.8倍,操作10次的话资金涨为原来的114%。因为2016年市场每日波动小,如果是波动很大的往年,则这个数据会更大。那么E5:U8区域实际模拟除了在不同的卖点设定下的预期盈利,这个可以作为卖出股票的参考。


7、当然,针对不同的回测,可能还有其他细节的数据,在此不再赘述。


上面大概谈了下主要的回测模式,重要的话讲三次,只有通过回测证明有效的策略,才会用于选股,这是有别于常见选股软件的关键点。

 

● 下面谈谈如何用VBA抓门户网站的数据。


象东方财富网站这样的门户网站平台,每天都更新两市的许多数据及财经数据,看起来是否令人眼花缭乱?不知道从何看起?该如何有效地快速挖掘关键信息?


其实可以利用网抓技术,把网络数据用程序自动抓到Excel中分析。


比如说东财每天发布20多页1000多条当天的上市公司新公告,如果一页一页去翻,去裸眼筛读,是不是很累人?


下面的内容,就是设定筛选原则,自动在Excel筛选出你可能关心的公告,时间也就20秒左右。假设你平常追那些交易异常波动的股票,那这个就很有用;或者你关心那些受到处罚的股票(利空出尽),那你也可以用这个。当然筛选条件可以改,可以筛选满足各种条件的股票。

东财的数据当然不限于公告,但凡其他类别的数据,如果想从其中抓住关键信息,都可以如此处理。也不限于东财的数据,但凡是网页数据,都可以如此处理。那这样一来,就可以节省大量的时间,既快又准,不至于被信息的海洋淹没。



长按二维码加关注

微信号:yinhexinghui


手机开户:长按识别二维码,安装APP苹果手机还可以在APP Store中搜索“期货开户云”

期货公司请填写:银河期货或0022

营业部请选择:北京 总部——量化交易

手机开户

点击阅读原文了解更多“星辉交易终端”