海龜策略
今天要給大家介紹的,是量化投資中的經典模型——海龜策略。
嚴格來說,它并不能稱得上是一個完整的策略。海龜策略并沒有提供一個明確落地的選股方案,相關書籍的介紹中也只是通過“高流動性”寥寥幾字一筆帶過,留給投資者們仁者見仁、智者見智的發揮空間。但即使如此,絲毫不妨礙它成為經典,海龜策略的真正優勢在于:對目標股票的擇時把握和倉位控制,都有其獨到之處。下面我們就來好好說說吧。
海龜我們都見過,那么什么是海龜模型?難道只是個噱頭?
其實關于“海龜”名稱的由來,說法不一。比較普遍認可的,是策略特性如現實中的“海龜”一樣,穩步前行,看似很緩卻能聚沙成塔,對于追求低風險收益的投資者來說,不失為一個值得配置的投資模型。
“唐安其”通道
想要了解海龜策略,我們先要科普一個概念“唐安其通道”。大概講了這個么事兒,話說一個叫Richard Donchian的華爾街交易員,在閱股無數之后,突然靈光乍現,想到了一個擇時的策略,他構建了一個所謂的“價格通道”,當股價高于這個通道上沿時,判斷為“買入”,而當股價低于這個通道下沿時,判斷為“賣出”
當然這個通道的上下沿需要相對穩定,不能和股價每天的漲跌那樣振幅過大,因此采用一段時間內的最高/低收盤價作為通道上/下限,我們用大寫的N表示。也即:唐安其通道上/下沿的每一點,代表了過去N個交易日收盤價的最高/低價,如下圖所示:
圖中紅點是“向上突破位”,代表了做多買入的信號。同理,綠點是“向下突破位”,代表了做空賣出的信號。當然,我國A股市場由于是單向市場,因此主要的關注點還是在“向上突破位”。
海龜策略的擇時把握
介紹完唐安其通道,以下就是海龜策略的擇時主要邏輯了(文末會做進一步展開):
1、當前價格高于過去20個交易日收盤價中的最高價,開倉買入
2、當前價格高于過去10個交易日收盤價中的最低價,清倉賣出
有了擇時邏輯,我們便能依賴策略為我們決定,何時進行買賣交易,那么新的問題來了,一旦系統捕捉到擇時信號,我們到底應該買入或者賣出多少股票才算合適?
這也就是我們馬上要談到的海龜策略的另一個特性 —— “倉位控制”。
海龜策略的倉位控制
我們先來討論單一股票的例子,這種情況下,我們的目的是求得需要買入多少手股票?海龜策略的原則是,買入的股票,當天振幅波動所引起的總資產變動不超過1%!
結合上面的公式,這里的總資產就是用戶賬戶的本金,那么剩下的問題就是求得“1手股票價值波動”,就能反算可購買多少手股票(為了方便描述,我們稱其為1個Unit)。
而 1手股票波動 = 1手股票最小單位變動 * 每股股票波動
我們知道,A股市場股票的最小單位變動是0.01元,那么股票每波動0.01元,1手股票的最小單位價格變動:100 * 0.01 = 1元。因此,只需再求出每股股票波動幅度,倉位參數便能迎刃而解。那么股票波動如何求得呢?
TR 與 ATR
為此,我們這里要引入一個概念——“振幅區間”,記作TR(True Range),它反應的是股票當天的波動幅度。我們分別用“H”表示當日最高價,“L”表示當日最低價,“P”表示上個交易日的收盤價,則振幅區間的計算公式為:TR = Max( H-L,H-P,P-L )
然而僅僅一天的波動幅度并不能代表股票真實的波動水平,一般意義上,我們更傾向于獲取一段時期內的平均波動幅度。為此我們采用了“平均振幅區間”,記作ATR(Average True Range),公式為:ATR = (TR1+TR2+……+TRn) / n
這里的TRn表示第n個交易日的振幅區間,ATR即取n個交易日的平均振幅(注意:這里的“n”與前文介紹唐安其時的“N”是兩個獨立的參數)。
至此,我們便可使用ATR來衡量股票的波動幅度。進而得出待買入、賣出股票的數量。
在大家已經了解了策略擇時邏輯與ATR倉位管理的計算方式后,下面我們就給出完整的包含加倉邏輯的海龜策略:
1、當前價>過去20個交易日收盤價中的最高價,買入1個Unit;
2、當前價<過去10個交易日收盤價中的最低價,清倉股票;
3、當股價>上一次買入價 + 0.5個ATR,則加倉1個Unit。
4、當前價<上一次買入價 - 2個ATR,則清倉股票(也就是,在一般情況下,損失不會超過2%)。
接下來,我們選擇幾只上半年具有代表性的股票來進行實例測試。
實測分析
1、招商銀行
17-1-1 至 17-7-11,初始資金5萬。
模擬情況:招商銀行進兩個月漲勢明顯,走出一波上漲行情,與上證50股指有較高的相似度,模擬的目的是測試上漲行情中的收益情況。
拿1月20日舉例,此時當前價位18.62高于唐安其通道上沿18.59(過去20日的最大收盤價),系統捕捉到擇時入市信號,進行買入。類似的,在3-13、5-12再次捕捉到了擇時退/入市時機,效果達到預期。
2、英力特
17-1-1 至 17-1-15,初始資金5萬。
模擬情況:英力特全面要約失敗,股價歷經4個跌停,遭遇“腰斬”,導致上半年大幅跳水。模擬的目的是測試極端暴跌情況中的收益情況。
可以看到,系統并未捕捉到入市時機直至6月份,躲過了階段性暴跌的行情,規避那些因主觀擇時入市而可能帶來的損失。而加倉的時機又精準捕捉到了上漲的趨勢。
3、游久游戲
17-1-1 至 17-1-15,初始資金5萬。
模擬情況:游久游戲上半年高管人事變動,股價震蕩下挫,而隨著與360等全面合作,經歷了短期暴漲,但后期乏力不具持續性,再度下跌。模擬的目的是測試大幅震蕩行情下的收益穩定性。
這里,我們看到了止損邏輯的應用。圈中右側框出的部分,藍線表示策略的虧損情況,紅線箭頭表示了股價實際的收益波動。可以看到,系統對于退出時機的把握,使得虧損遠小于股價虧損走勢,有效地控制了風險。
回顧與后話
海龜策略中,那些“交易天數”、加倉/止損的“單位ATR”參數,可以根據投資者個人的偏好進行自定義設置的。本質上來說,海龜策略屬于“趨勢跟蹤”交易系統,是典型的右側交易,邏輯上來看它更傾向于“追漲殺跌”的被動型交易。
得益于海龜策略出色的擇時與倉位管理,一些投資者往往會與其他策略組合使用。對于多股票的投資組合,在應用海龜策略時,需要添加權重參數,用于設置股票持倉配比。同時,ATR的計算也需要進行相應調整,不過我覺得這些改動對于大家伙而言并不算什么難事,就留給各位權當是回家作業啦~更多內容,歡迎關注微信公眾號“數據夕拾”。