奧推網

選單
財經

ETF投資指北——常見量化策略的實現

標杆基金

標杆基金的作用是一個收益、回撤和風險的對照組,主要是一些場外的比較優秀的基金。

這次選擇的標杆基金有 2 只,第一隻是

富國天惠成長混合 161005

,近乎神話的基金,16 年 21 倍增長;第二隻是我比較關注的

廣發多因子混合 002943

投資策略

目前主要用於實盤的策略是

MOM動量策略

ROC變動策略

因為一般比較關注的是近三年的收益情況,所以回測主要以近三年的資料進行比較。

還有一些做了回測但是資料不夠好或者是很差的策略。

周內策略

背景

在學習回測技術的時候,看到了一篇

周內效應

的文章,主要說的是關於國內大 A 的一個效應,看起來就一週內的每天都有漲跌的趨勢,可以利用這個趨勢進行買賣股票。

文章中給的這個策略的淨值達到了 41。45,年化率是 28。78%,最大回撤 34。99% 。

結論

在文章的最終,作者給出了一個周內效應的歸納,如下:

若今日收盤價高於20日均線則為牛市,否則為熊市。

牛市中,週一和週五表現較好,週二和週四表現較差。

熊市中,週二和週三表現較好,週一和週四表現較差。

然後依據這個效應,作者進行了一個針對滬深 300 的回測,年化達到了 28。7% ,而回撤 34。99% ,這個是完全高於滬深 300 的指數的,而且於長紅的

富國天惠成長混合 161005

差不多了,可能回撤相對高一些。

具體的操作思路如下:

牛市下個交易日為週一或週五則買入下個交易日為週二或週四則賣出熊市下個交易日為週二或週三則買入下個交易日為週一或週四則賣出

回測

因為是針對滬深 300 的操作,所以選擇的是 510300 這支基金,看一下開始的時間為 2012 年 5 月 4 日。

其它還有一些基金的規模不夠大,或者是時間相對比較短,選就要選最大的一支。

為了複測這個效果是否合理,再選擇兩支基金進行測試,一支選擇與深滬 300 同源的中證 500 的指數,510500 ,另外一支選擇創業板 159915 這支 ETF。

首先準備資料,從 Akshare 上下載對應的資料檔案。

然後將三支基金的資料檔案下載下來,分別是

sz159915 創業板

sh510300 滬深300

sh510500 中證500

三隻基金。

因為示例給的是從 2006 年開始做的測試,但是時間太久了,可能更希望看最近幾年的簡略如何,將開始時間修改到 2015 年 4 月 15 日測試了一下,不是很好,至少比我之前使用的動量策略、動量鐘擺策略都要差。

為什麼選擇 2015 年 4 月 15 日 ?

因為 akshare 上的中證 500 的資料在這個時間點之前是有問題的,回測之後發現收益率達到了 35 倍,這顯然是不可能的。所以查看了一下資料,可能是中間編制修改過,但是價格沒有重新計算導致有問題。後面把這三支基金都換成指數來測試一下,應該會更加準確。

當然也有可能我的選擇不是特別合理,可以把開始時間拉到 2006 年開始,但是這就需要按指數進行測試,不能使用場內基金。

初始資金 140000。00 。

又修改了一下程式碼,增加了一些功能,實現了指數資料的回測,還是用的這三個指數,時間範圍從 2010 年 6 月 1 日到 2021 年 7 月 8 日的資料。

看資料要比使用 ETF 基金進行回測要好太多了,這個就有點奇怪了,於是把時間拉到和 ETF 相同的時間,結果就基本上差不多了,可以發現,到後面之後,指數的周內效應收益就很一般了。

動量策略

理論

動量策略的理論基礎是:

股票的收益率有延續原來的運動方向的趨勢。——強者恆強。

依據這個理論,還有一個延伸的出來的策略——動量反轉策略:

表現差的股票在其後的一段時間內有強烈的趨勢經歷相當大的逆轉。——弱者轉強。

策略

依據這兩個理論進行操作的交易策略,也就是在一段時間內,選擇收益

最好

的或者

最差

的操作。

回測

選擇一個基金組合,從中選擇動量最好的一支基金買入持有至下一個週期。

實現的思路非常簡單,就只是計算出

基金組合

中所有的基金的

動量值

,然後取最高的一隻買入,然後每天都依據收盤價計算出

動量最好

的一隻基金,如果不再是最好的,則清掉當前持倉的基金並買入最好。

基金組合選擇的是

滬深 300

中證 500

創業板

三支。

從 2015 年 4 月 15 日開始回測,起始資金為 140000。00 元。與上次的資料做一下比較,可以說是非常好的,回撤也才 22% 。

動量鐘擺策略

這個策略的實現和動量策略一致,只不過在指標不同,總體思路是一樣的。

總體來說,收益也相差不多,但最檢視對應的回測的圖片可以發現,在持續上漲過程中,交易次數過多了。

總結

策略的收益還是不錯的,從 2015 年開始到現在,約 128% 的收益,與富國天惠比較一下,將時間拉到 2005 年 11 月 16 日。

再重新跑一下。

恩,還是比富國天惠差很多呀。但是能看出動量鐘擺要比動量燻略穩定不少,後面再最佳化一下兩個策略。

基金組合

為了進一步提升策略的收益,組合的最佳化也是很重要的一點,整個組合有三個階段。

初代組合

初代組合使用的是代表大盤股的

滬深 300

和代表中盤股的

中證 500

再加上

創業板

作為一個基金的組合,這樣實現的寬基輪動操作週期比較長,但是操作次數少。

二代組合

初代組合的三支基金代表大盤、中盤和創業,但是如果選擇其中最好的前 50 的資料來進行交易的話,就是之前的

龍頭股

。所以組合的三支基金改為

上證 50

創業 50

中證 500

來回測一下。

中證 500 主要是因為沒有可替代的基金,所以還是選用的

500ETF

從上面的回測資料來看要好一些。

三代組合

三代組合中依舊是選擇的/創業板/、/滬深 300/和

中證 500

三支基金,主要是將

創業 50

替換成了

創成長 sz399296

,其中還分別測試了使用

滬深 300

上證 50

都試了一下,所以

滬深 300

作為三代 1 ,/上證 50/ 作為三代 2 。

但是可以選擇 二代、三代的兩個作為回測的目標。

策略最佳化

資料看起來比之前的資料要漂亮很多,主要是引入了一個新的引數:

動量比率

,這個引數主要是為了解決兩支標的基金的動量差別比較小的時候,頻繁切換指數造成的交易損失。

為此定義一個引數用來控制交易波動的可忽略的誤差,在某個誤差之內,則可以繼續持有這支基金,但是因為這個比率更像是經驗資料,所以會有一定的侷限性。

但是未想到更好的方法,所以暫利用這個進行更新。

目前看四個基金組合的

動量比率

分別是:2。4、3。5、2。7、3。4,週期也都在 13 左右,可見兩週是一個比較合適的週期。

為了去除過擬化,將動量比率設定為 2。5 和 3。5 兩個,週期均定為 10 。

收益結果還可以接受。後面就是看下一下買入的機會,期待調倉了。

均值迴歸策略

簡介

In finance, mean reversion is the assumption that a stock‘s

price

will tend to move to the average price over time。

譯:在金融領域,均值迴歸假設隨著時間的移動,股票的

價格

朝著它的均值移動。

RSI 指標是一個常見的技術指標,修改 RSI 的週期來作為買賣點的訊號,週期使用2個交易日:

RSI >= 90 超買訊號

RSI <= 10 超賣訊號

買入訊號:

以 200 日均線為基準,高於 200 為上升趨勢,找做多訊號;低於 200 則找做空訊號。

考慮到均值迴歸,同時滿足價格低於 10SMA 且 RSI < 10,做多。

賣出訊號:

價格突破 10 SMA 時可以只保留一半倉位;

實現

目前回測工具主要是利用的Akshare和backtrader,這次使用的指標主要有兩個:

SMA 均線兩條:200SMA 和 10SMA

RSI_Safe 訊號:RSI(2)

回測

使用的是單支基金中證500進行的回測。三年收益率只有 0。42,但是策略的勝率真的很高,達到了 80。0% 。

但是因為收益率比較低,所以最終的夏普率只有 0。977 ,只能說還可以接受。

使用創業板和中證1000進行回測。還不如中證500呢。

雙 RSI 策略

介紹

RSI 是比較常見的指標,之前看到有一個 RSI 的快慢金叉方案的策略,今天實現了一下,策略比較簡單,所以最終的結果也不是特別好。

交易邏輯

買入邏輯:

在RSI值高於震盪指數55時,則在快RSI上穿慢RSI時,則買入。

在RSI值低於震盪指數55時,則需要RSI在慢RSI上持續3天以上才進行買入。

賣出邏輯:

當快RSI下穿慢RSI時,則賣出持倉。

策略解析

慢速 RSI 在 55 以上,單邊上漲,快速 RSI 上穿慢速 RSI 可建倉

慢速 RSI 在 55 以下,震盪市場,連續 N 天快速 RSI 大於慢時 RSI 可建倉

慢速 RSI 在 60 以上,牛市,無需減倉

錢德擺策略

理論

Su是今日收盤價與昨日收盤價(上漲日)差值加總。若當日下跌,則增加值為0;

Sd是今日收盤價與做日收盤價(下跌日)差值的絕對值加總。若當日上漲,則增加值為0

指標

錢德擺動指標在

backtrader

的預設指標中是沒有的,但是可以在

ta-lib

中獲取,所以在初始化時,使用下面的方式。

錢德動量擺動策略

實現的思路非常簡單,就是計算出基金組合中所有的基金的錢德擺動值,然後取最高的一支買入,然後每天都依據收盤價計算出動量最好的一支基金,如果不再是最好的,則賣出當前的基金,買入最好的那支。

基金組合選擇的是

滬深 300

中證 500

創業板

三支。

回測最近三年的資料,起始資金為 1000000。00 元。與上次的資料做一下比較,回撤 17。09% 。

這個策略的實現和動量策略差不多,只不過在指標不同,總體思路是一樣的。

總體來說,收益一般,但是比隨意的交易要好很多了。

減少交易次數

與動量擺策略一樣,還是應該選擇減少交易次數才能獲得更好的收益。

總結

策略的收益還是不錯的,從 2015 年開始到現在,約 128% 的收益,與富國天惠比較一下,將時間拉到 2005 年 11 月 16 日。

再重新跑一下。

恩,還是比富國天惠差很多呀。

另外夏普率也低不說,回撤還達到了 47% ,基本上等於有一半的回撤了,這個基本可以拋棄掉了。

布林強盜策略

起因

之前看到了一個非常強的策略,說是布林強盜策略,這幾天一直在在研究如何實現這個策略。

具體的策略介紹如下:

假設週期為日線,價格超過 50 日平均線上方一個標準差作為買入訊號的標準,跌破 50 日平均移動線下方一個標準差作為賣出訊號的標準。

策略實現

針對策略詳細做了幾天的研究,主要需要實現的功能如下。

入場確認

策略有一個確認模組,交易開倉時需要多次確認,即當日收盤價必須高於 30 日前收盤價才能做多,低於 30 日前收盤價才能做空。

出場確認

積極方式出場,當建立倉位時,保護性

止損點

設定在 50 日均線(中軌)。之後持有頭寸的時間每多一天,計算移動平均線的天數減一。持有頭寸時間越長,週期越短。如果達到 10 則不再遞減。

次條件

如果持多倉,移動平均線低於上軌發出平倉訊號,如果持空倉,移動平均線高於下軌發出平倉訊號

總結

入場條件:

價格突破布林帶上軌,收盤價大於30週期收盤價最高值,即做多;

出場條件:

持多倉的情況下,收盤價小於出場MA,出家MA小於上軌,平倉。

出場MA的值根據持倉週期變化。剛開倉為50,持倉每增加一個週期,減1,最小到10。

回測結果

回測結果是沒想到的差呀,三年的收益率是 -0。10 ,幾乎是我實現的策略中最差的一個了。或許是因為使用的是單支基金,而且空倉時間比較多,交易的勝率也非常低。

最佳化思路

出場策略

因為單支基金的表現都不特別好,但是這個出場策略是值得借鑑的,後面可以考慮把這個加入到動量策略中去。

投資組合

這個策略還可以從單支基金調整成為基金組合,但是三支基金的選擇也是需要考慮,用什麼來做為選擇的第一指標的。

如果使用動量來選擇的話,有個問題,動量最高的基金與突破不同時出現應該如何操作。後面需要驗證一下。

金肯特納策略

策略資料

基礎價格:(最高價+最低價+收盤價)/ 3

中軌:基礎價格的N週期指數移動平均值

波動幅度:平均真實波動幅度(ATR)

上軌:中軌+波動幅度

下軌:中軌-波動幅度

行情

當價格在上軌和下軌之間執行時,我們可以認為是震盪行情。

當價格突破上軌,說明更強大的買壓已經出現,未來價格坑你會進一步上漲。

當價格突破下軌,說明已經出現更強大的賣壓,未來價格可能會進一步下跌。

入場策略

中軌向上,並且價格升破上軌,開多單;

中軌向下,並且價格跌破下軌,開空單;

出場策略

當持有多單時,價格跌破中軌,平多單;

當持有空單時,價格升破中軌,平空單;

回測結果

還是使用滬深300、中證500和創業板做一下回測。

由結果來看,比較一般,而且選擇的標準越是成長性越好的基金,收益也會相應的好一些,但是還是低於動量策略的。

收益比較

將近三年中三支基金與篩選出來的策略的投資方案按夏普比率進行排序。到最後,三年的收益還不如廣發多因子的投資策略——一句話來評價就是:白辛苦了。