声明:本文已授权公众号「AI极客研修站」独家发布
和大家聊聊量化交易,以及人工智能可以在量化交易上的应用。我们程序员还是应该懂点金融知识的。
通俗的说说交易相关的基础知识
首先跟大家聊聊交易。股票大家应该了解过,股票这种投资方式相比于理财产品一类收益要大很多,当然风险也会高很多,这个大家都懂。实际上市场上除了股票,还有期货、现货、外汇这类市场。
我们国内的股票市场玩起来实际上有一定的局限性,只能买涨不能买跌。除非你是一个精明的短线高手,在行情不好的时候,大多数持仓的人都是在亏钱。不仅如此,国内的股票也有涨跌幅的上限,像比特币市场这种动辄一天百分之4,50涨幅这种刺激的情况是不会有的。
在国外股票市场或者类似于外汇市场这样的盘口,你不仅可以买涨,还能买跌,意思是即使你持仓的股票价格在跌,你却能赚到对应差值的钱。如没接触过这方面的同学可能不太好理解,我简单的说一下原理。
像我国股票市场那种买涨的形式,我花1000块,买了1手股票,就相当于我持有了这个股票,跟倒卖商品一样,等到涨价了,我把它卖出去,自然是能赚钱的。这个好理解。
那么买跌又是咋回事呢。我们可以把这种形式理解为一种契约关系。打个比方,比如黄金现价1千克20万,我看跌黄金,现在我向交易所提交一个合约,合约上写着:我,小之,黄金看跌,买跌一手!
然后交易所给我看着年轻的我,也给了我一张合约,这张合约代表的就是一公斤黄金现货。我拿着这个合约,到市场上卖了,这样,我手上就有了一公斤黄金在当前价格下的钱了,也就是20万现金。等到价格跌下去,比如跌到了18万一公斤黄金,我再把这一公斤黄金买回来还给交易所,那这中间的2万差价就是我赚的钱了。可能具体形式有所区别,但大概可以这么理解吧,专业人士见笑了。
外汇或者是现货这种市场还有一个特别好玩的东西,那就是杠杆。杠杆这玩意特别刺激,像刚刚说的黄金,咱买一手要20万,这实在不是一般人能玩的起的东西,这时候杠杆就起作用了。比如某个市场黄金的杠杆是200倍,那么一手20万的黄金,现在你只需要花1000块就可以买过来玩了。当然,这涨跌的时候盈利或者亏损的钱,还是按照之前的来,1000块与20万之间的差值,还是交易所借给你的。
现在你是用杠杆来进入这个游戏的,那么你是有可能完全把你本钱给亏光的,你投入了1000块,是完全可能亏损到大于1000块直至爆仓的,当然,你也有可能在很短的时间赚了几倍的钱。那么交易所为了保证自己不亏钱,它就会通过某种公式设置一个亏损上限,如果你亏到一定数目,它是会强制的帮你平仓的。
这个杠杆有多刺激,给大家打个比方就知道了。比如我们在国内股票做交易,你1000块的本钱,到顶涨停了,也就赚个100块,10%的盈利率是吧(不包括打新股情况)。那么在有杠杆的市场是啥情况呢,1000块的本钱,在200倍杠杆下,如果今天涨了10%,盈利率是2000%,直接翻了20倍!!当然,你也有可能一下亏个20倍导致裤子都亏没了。而且这些事情全部发生在转瞬之间,盘面上一个点位的波动,你都得在心中先乘上200再说。所以我之前看有个朋友做这种盘,他的收益浮动就是一下+1000,一下-1000的跳动,我觉得我没这个心理素质玩这个...
更更刺激的是,像外汇这种盘,是全天都可以随时交易的。不像我国的股票,每个半天只有2个小时左右的交易时间,并且今日购买的股票,第二天才能交易,无法进行日内交易。
量化交易
从上面有关交易的内容中,我们可以看出,如果我们是自己人工来做交易,往往会有很多问题。
首先我们人是有情绪波动的,在交易的过程中,会有一些非理性的决策。即便你是分析师,或者你跟随一位强力分析师来做交易,也不可避免的遇到这些问题。面对波动,你眼睁睁看着自己的口袋慢慢变扁,即便你可能认识到这种波动是一种正常现象,也有可能忍不住自己的双手含泪割肉。等你回过头再看这些波动的情况才意识到这只不过是大驱使下的小小调节,而自己就被这种小小的变化给打败了,随即懊恼不已,追悔莫及,心里暗暗下定决心,下波翻盘!
然后以此循环。
我们做人工操作,还有一个极常见的问题,就是容易跟风,所谓遇涨买涨,见跌割肉,大概就是亏钱的少侠们交易的常态了。
那我们的量化交易,就是一种可以避免这些人为劣势的投资方法了。量化交易通过先进的数学模型,利用计算机技术从庞大的历史数据中海选出能带来超额收益的多种「大概率」事件,利用这些事件制定策略,自动的完成交易。
上面那些东西是从百度百科抄的,我还是用自己的话来解释下。首先,量化交易可以理解为一个自动化交易程序,这个程序分三个流程:输入策略,执行策略,输出结果。
策略比较好理解,比如我觉得这只股票在涨了两天之后,必然会跌!这就是一个策略,我通过算法来实现,每当遇到连续涨了两天的情况后,我就认为这是一个跌的信号,我可以进行一些卖出操作。可以理解为我这套量化交易程序的交易规则。
执行策略就是把这些策略接入到交易平台上,然后投放到市场上,让程序自动的为我们完成交易,每当市场达到了我们提前设置好的规则后,就会自动的进行市场交易操作。
那么,当我们通过量化交易在市场上执行了一段时间,或者通过把程序在历史数据上跑了一段时间后,我们最终获得的收益率或者其他的一些收益指标,就是我们的结果了。当然你赚的越多,自然这个策略可能在这个时间段就会越好。
而且我们通过量化交易来做市场,基本可以避免我们人为操作那些主观情绪上的问题,不管市场怎么变动,机器是不会觉得乐观或者悲观的,它只知道规则和条件,达不到买入条件,你涨的天花乱坠蛇皮棒棒高,它都不会有任何的心里波动和买入动作。
量化交易这么好,是不是用了就赚钱?显然没有这么好的事咯,我们继续分析分析。
人工智能与量化交易
人工智能在量化交易中的应用可以算个升华。常规的量化交易在金融公司可能是这么个形式,比如一个金融分析师,配一个程序员,分析师出策略,程序员把策略以代码形式实现,接入到交易程序里(当然,我听说现在的分析师自己要会写代码了)。这里的策略是分析师自己设计的,实际上还是一种主观策略。
人工智能就是机器自己生成这种策略,通过历史数据,来自动生成策略的模型。实际上这就是人工智能在量化交易中应用范围了。现在很多的智能投资顾问机器人,就是这样的。
但实际上,不管是人工输入策略还是人工智能自动生成的策略模型,都无法解决量化交易本身的一些弊端和风险。这就是我们上一节最后的问题了,我在这里说一下自己的理解。
量化交易的策略,总归是根据历史数据来总结的,但不论是股票还是外汇、现货,他们都有一个特点,就是其当前的价格并不一定对应于目前的价值水平,而是对该公司或者品种未来预期价值的一个定量。所以,我们预测价格,看的是它的预期,历史数据对未来价格的影响可能是不大的,它并不存在「预期」这样的未知信息。
比如黄金价格是和美元有一定挂钩的,如果美元大涨了,黄金可能就会跌。如果特朗普某次说了一句话,颁布了一个政策,大家预期美国的经济形式会变好,那么美元就会涨,黄金就会跌。但美国在政策发布的时候,经济并没有瞬间变好,这就是预期的价值,显然,历史数据上看不到这些。
那么我们的策略模型,跑到历史数据上,可能收益很高,但真实数据跑下来,可能就不是这么一回事了,这就是一个过拟合问题,在量化交易中是一个比较严重和常见的问题,也是要主要解决的问题之一。
还有一个问题就是,策略的回测结果,往往是跑在一个较长的时间周期上的,用我这个策略跑一年,你就能月入百万此类。不过,这个过程中,虽然总体是赚钱的,但短线的一些回撤,会有扛不住而爆仓的情况,这是隐藏的一些风险。
这两个问题对于人工智能产生的策略上,可能会更加突出一点,因为机器学习模型就是用已有数据作为训练标本来对未来预测的,它很有可能有过拟合的情况。
而且特征的选取也非常的复杂,在股市上,影响股价的因素不仅仅是历史股价了,公司的近况,股民的乐观程度,政策以及庄家的心情等等。特征在量化交易上一定是个大学问,耗时耗力。价格预测的模型会非常复杂。
而且金融领域和别的领域有一些不同,人工智能在别的领域,你可能可以选取一些解释性不高的方式来生成模型,比如像 AlphaGo 下围棋,它虽然棋力惊人,但你要问它你为啥下这步棋,它说不出来。但在金融上就完全不能这样了,预测的可解释性至关重要,所以可以尝试比如决策树、SVM和朴素贝叶斯这类解释性比较强的算法来进行价格预测。
总结
可能读到这里,你可能就会问了,既然历史数据意义有限,感觉量化交易和人工智能,在交易上并没有什么卵用啊。实际上也并非如此,华尔街那么多公司已经在做的事显然不会是毫无价值的。
用人工智能分析历史数据和曾经发生的那些消息面,机器是可以分析和总结出规律的,当有新消息发布的时候,相比于人类,机器能够对消息造成的影响做出更迅猛、更理性、更全面的判断,机器能够对数据进行加工整合,通过这些判断来指导人们进行价格分析,这就是它的意义所在。
而且这个意义非常重大。
有点长,能看完这篇文章的都是真爱,之后的文章我将具体用代码实战一些量化策略和机器学习价格预测。
推荐阅读
分享一些学习AI的小干货
谷歌推出的 Cloud AutoML 仿佛要革了AI调包侠的命