区块链
摘要: 在本篇文章中,我们讨论了均线交叉策略的设计、回溯检验、基准测试以及实践中可能出现的若干问题,并结合Python代码实现了一个基于均线交叉的交易策略系统。
以下为译文
本篇文章是”Python股市数据分析”内容基于我在犹他州立大学MATH 3900 (Data Mining)课程上的一次讲座,第一部分在这里。
在这些文章中,我将介绍一些关于金融数据分析的基础知识,例如,使用pandas获取雅虎财经上的数据,股票数据可视化,移动均线,开发一种均线交叉策略,回溯检验以及基准测试。而本篇文章中,我讨论的话题包括均线交叉策略的设计、回溯检验、基准测试以及实践中可能出现的若干问题,以供读者思考。
注意:本篇文章所涉及的看法、意见等一般性信息仅为作者个人观点。本文的任何内容都不应被视为金融投资方面的建议。此外,在此给出的所有代码均无法提供任何保证。选择使用这些代码的个人需自行承担风险。
交易策略我们把在未来条件满足时将被终止的交易称为未平仓交易。多头仓位是指在交易过程中通过金融商品增值来获取利润,而空头仓位是指在交易过程中通过金融资产价值下跌来获取利润。
在直接交易股票时,所有的多头仓位看涨,所有的空头仓位看跌。这也就是说,持看涨态度并不需要伴随着一个多头仓位,而持看跌态度同样也不需要伴随着一个空头仓位(在交易股票期权时,更是如此)。
这里有一个例子。打算你买入了一只股票,计划在股价上涨时以更高的价格将股票抛出。这就是多头仓位:你持有一种金融资产,如果资产价值增长,你将从中获利。
你的潜在利润是无限的,而你的潜在损失受到股价的限制,因为股价永远不会低于0。另一方面,如果你预计一只股票的价格会下跌,你可以向经纪公司筹借股票并出售,以期在后续以较低的价格回购股票,从而获取利润。
这种做法称为做空股票,属于空头仓位,即通过股价下跌赚取收益。做空股票的潜在利润受到股价的限制(最好的做法是,使股票变得一文不值,这样你可以免费回购这些股票),而损失却是无限的,因为你可能需要花费任意多的钱来买回筹借的股票。
因此,在允许投资者做空股票前,经纪人需要确保投资者保持良好的财务状况。
任何交易员都必须有一套规则,决定她愿意在任何一笔交易上投入多少钱。例如,一名交易员可能认为在任何情况下,她在一笔交易中承受的风险都不能超过所有投资的10%。
另外,在任何交易中,交易员必须制定一个由一组条件构成的退出策略,决定她何时退出仓位,从而获利或止损。交易员可以设置一个目标,即促使她清空仓位的最少利润。
同样地,交易员也要明确自身能够承受的最大损失;如果潜在损失超过了这个金额,交易员将退出仓位,以避免任何进一步的损失(通常通过设置止损指令来实现,触发该指令以避免进一步损失)。
如果一个方案包括促成交易的交易信号、一套能在任何特定策略情况下明确承受多少投资风险的规则、以及一个适用于任何交易的退出策略,那么我们称这个方案为一个完整的交易策略。目前,我们关注的是如何设计和评价交易策略。
我们假设任何一笔交易的金额都是投资总资产的一个固定比例;10%看起来是一个不错的数字。我们决定,对于任何一笔交易,如果损失超过交易金额的20%,我们将结束交易。现在,我们需要一种方法来判断何时进入仓位以及何时退出仓位,进而获取利润。
在这里,我将介绍一种均线交叉策略。我们将使用两条移动均线:一条表示长期均线,另一条表示短期均线。采用的策略如下:
当短期均线越过长期均线时,交易金融资产。
当短期均线再一次越过长期均线时,结束交易。
当短期均线高于长期均线时,我们应进行多头交易,当短期均线再次越过(低于)长期均线时,结束此类交易。当短期均线低于长期均线时,我们应进行空头交易,当短期均线再次越过(高于)长期均线时,结束此类交易。
现在,我们有了一个完整的策略。但在我们决定使用它之前,我们首先应该尽可能地评估这个策略的效果。回溯检验是一种常用的方法,该方法基于历史数据对交易策略所能带来的利润多少进行评估。
买入和持有SPY指数基金的效果优于我们的交易系统,至少优于我们现在初期的系统,而且,我们甚至没有说明,考虑到费用我们这个更加复杂的策略有多么的昂贵。考虑到机会成本和与主动投资策略相关的费用,我们不应该采用这样的策略。
我们怎样才能提高我们系统的效果呢?对于初学者而言,我们可以尝试投资多样化。我们之前考虑的所有股票都属于科技公司,这意味着如果科技行业表现不佳,我们的投资项目也会反映出这种低迷的状况。
我们可以开发一个能够做空股票或看跌押注的系统,这样,我们就可以利用市场上各个行业领域的走向。
我们还可以寻找一种能够预测股价变化的方法。但是,无论我们做什么,都必须击败这个基准;否则,我们的交易系统中始终会存在着机会成本。
也存在着其他的基准测试策略,如果我们的交易系统击败了”买入和持有SPY基金”这个策略,那么我们可以与这些策略进行比较。这类的交易策略包括:
当每月收盘价高于十月均线时,买入SPY基金。
当十月均线的动量为正时,买入SPY基金。(动量是移动平均过程中的第一个差值,即MOtq = MAtq – MAt-1q。)
(我最早在这里知道了这些策略。)普遍的经验仍然成立:对于一个包含大量活跃交易的复杂交易系统,如果一个涉及指数基金且不进行频繁交易的简单策略击败了它,那么不要使用这个复杂系统。实际上,这个要求很难满足。
最后一点,假设你的交易系统确实在回溯检验中击败了所有的基准策略。回溯检验就能够预测系统在未来的表现了吗?不太可能。回溯检验存在着过拟合的可能,所以,仅仅是回溯检验预测的上涨并不意味着在未来会保持上涨的势头。
结论虽然这篇教程以一个令人沮丧的观点收尾,但是请记住,有效市场假说有很多的反对者。我自己的看法是,随着交易变得越来越算法化,击败市场也将变得更加困难。
也就是说,击败市场仍然是有可能的,尽管互惠基金似乎还做不到(但是请记住,互惠基金表现得如此糟糕的部分原因,是因为交易所伴随的费用)。
这篇教程非常简短,只涉及一种策略类型:基于移动平均线的交易策略。在实践中也会应用许多其他的交易信号。此外,我们并没有深入讨论有关做空股票、货币交易或者股票期权的细节。
特别地,股票期权的形式非常丰富,能够提供许多不同的方式来押注股票的走势。你可以在《Python衍生分析:数据分析,模型,仿真,校准与对冲》一书中了解更多关于衍生品(包括股票期权和其他衍生品)的信息,(对于犹他州立大学的学生)这本书可以在犹他州立大学图书馆中找到。
另一个资源(也是我准备这篇教程时参考的文献)是O’Reilly出版的图书《Python金融分析》,也可在犹他州立大学图书馆中找到。
请记住,我们可能(甚至很常见)在股市中亏损。同样,我们也很难在其他领域获得像股市那样的回报,任何投资策略都应该认真对待投资。这篇教程旨在向大家介绍评估股票交易与投资的入门知识,我希望大家能够继续研究这些观点。
End.
微信回复文字,查看系列文章全部0条评论
快来发表一下你的评论吧 !