购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3 经典策略之海龟策略

说起经典的交易策略,就不得不提到“海龟策略”——一个20世纪80年代提出的,以海龟交易法则为核心的交易策略。其核心要点是:在股价超过过去 N 个交易日的股价最高点时买入,在股价低于过去 N 个交易日的股价最低点时卖出。上述的若干个最高点和最低点会组成一个通道,称为“唐奇安通道”。

关于海龟策略的介绍,限于篇幅,本书不展开详细介绍。我们重点来研究一下如何帮助小瓦使用Python来实现海龟策略。

2.3.1 使用海龟策略生成交易信号

海龟策略的一个重点是,使用过去 N 天的股价最高点和过去 N 天的股价最低点生成唐奇安通道。一般来说, N 会设置为20。不过因为我们下载的股票数据时间范围跨度比较小,所以选择了使用过去5日的股价最高点和最低点来进行演示。输入代码如下:

运行代码,可以得到如表2.6所示的结果。

表2.6 使用海龟策略生成交易信号

【结果分析】 从表2.6中可以看到,high中存储的是唐奇安通道的上沿数据;low中存储的是唐奇安通道的下沿;buy如果为True,则为买入信号;sell如果为True,则为卖出信号;而当buy和sell都是False时,则不进行下单。

注意:实际上,在唐奇安通道中,还有一条中线,中线的值是上沿和下沿的均值。本例进行了简化处理。

2.3.2 根据交易信号和仓位进行下单

下面我们就根据生成的交易信号来下单。需要说明的是,当程序给出交易信号时,还要结合仓位来判断:当交易信号为“买入”且空仓时,我们才会下买入订单;而交易信号为“卖出”且有持仓股票时,我们才会下卖出订单。输入代码如下:

运行代码,可以得到如表2.7所示的结果。

表2.7 根据交易信号和仓位进行下单

【结果分析】 仔细观察表2.7,大家会发现:在3月4日这一天,程序下了买入单;而在3月9日,程序下了卖出单。如果读者朋友得到了类似表2.7的结果,说明成功地根据交易信号和仓位生成了买卖订单。

为了方便观察,我们也可以用可视化的方式来进行下单的展示。输入代码如下:

运行代码,可以得到如图2.5所示的结果。

图2.5 使用海龟策略生成的订单

【结果分析】 在图2.5中,实线部分体现的是该股每日的价格,两条虚线分别对应唐奇安通道的上沿和下沿。我们仔细观察会发现,当股价第一次突破唐奇安通道上沿时,程序进行了买入,但随后的几天中,股价再次突破了上沿,但由于此时已经有1手持仓,故没有再次买入。之后股价急转直下,突破了通道下沿,程序下单卖出。依次类推,在选定的时间范围内,程序进行了6笔交易。

2.3.3 对海龟策略进行回测

在前面小节中,我们使用海龟策略分别生成了交易信号和订单。同样,为了帮助小瓦了解海龟策略的业绩表现,下面对其进行简单回测。输入代码如下:

运行代码,可以得到如图2.6所示的结果。

图2.6 使用海龟策略交易的持仓市值与总资产

【结果分析】 从图2.6中可以清晰地看到使用海龟策略进行交易后小瓦总资产和持仓市值的变化情况:实线部分体现的是总资产变化,虚线部分代表小瓦持仓股票的市值。与使用双移动平均策略相似,在整个股价变动明显的情况下,小瓦的总资产略有减少。

为了对比海龟策略和双移动平均策略的业绩表现,我们可以看看使用海龟策略后,小瓦的总资产究竟减少了多少。输入代码如下:

     #检查最后若干天小瓦的资产情况
     portfolio.tail(13)

运行代码,可以得到如表2.8所示的结果。

表2.8 小瓦最后的总资产

【结果分析】 从表2.8中可以看到,小瓦最后的总资产约为19466元,相比初始资金20000元,减少了544元;而使用双移动平均策略进行交易,小瓦的总资产缩水694元。在本例中,海龟策略稍胜一筹(少赔的就是赚的)。

注意:在本章写作的过程中,使用的股票数据恰好在选定的时间范围内,呈现出下跌的趋势。在这种趋势下,尽量降低资产损失也是很有必要的。如果读者朋友有兴趣,可以测试一下在时间范围起始点买入该股票,并在最后时间点卖出,对比总资产的损失情况。 6oRi6FLsJeJ2HlEe3Bb2Pd8f9WsGK4KfNBmMNoTNL+j0mc0i466Jhy0mbUHyDGvT

点击中间区域
呼出菜单
上一章
目录
下一章
×