引言:
邢不行的系列帖子“量化小講堂”,通過實際案例教初學者使用python進行量化投資,瞭解行業研究方向,希望能對大家有幫助。
【歷史文章彙總】請點擊此處
【必讀文章】
【邢不行|量化小講堂系列27-Python量化入門】EOS期現套利,一週時間,15%無風險收益
【邢不行|量化小講堂系列20-Python量化入門】10年400倍策略分享(附視頻逐行代碼講解)
個人微信:xbx9025,有問題歡迎交流
如何構建事件驅動的量化策略
這是邢不行第 61 期量化小講堂的分享
作者 | 邢不行、果果醬
本文內容也有視頻版本,點擊鏈接即可觀看:【視頻】如何構建事件驅動的量化策略
在之前的文章《跟着大股東和高管買賣他家股票》中,我們用Python分析了8萬條數據。
發現當高管增持他家股票後,我們也跟着買入,能在未來獲得顯著的超額收益。
下圖展示了歷次高管增持2%以上股份後,未來一段時間的平均收益:
橫座標:增持後的天數 縱座標:平均超額收益
圖中箭頭所指的灰色柱子代表着:在每次高管增持股票後,我們跟進買入,那麼在80天后的平均收益可以跑贏大盤14%。
這是相當不錯的收益了。
然而,這仍只是過家家式的紙上談兵!
確實,我們有了一些統計分析結果,知道了高管增持利好股價。
但只看統計結果,是沒法賺錢的。
只有實際的操作才能賺錢。統計結果並不能告訴我們如何實際操作。
本文要講的就是如何根據統計結果去構建實際可操作的交易策略。
那麼,一個完整的策略應該是什麼樣的?
它不能只和我講某個消息利好股價,而是必須要有明確的「買賣規則」。
要告訴我在什麼時候買入、相對於我的本金買入多少,又在什麼時候賣出。
一個選股策略,有明確的買賣時間
我們只需機械的跟着執行交易即可。
並且我能夠找來歷史數據,初始投入1塊錢,模擬這個買賣規則,看看在歷史上這個規則能賺多少錢,形成「資金曲線」。
某個選股策略的資金曲線
交易策略的類型有很多,比如我之前文章中經常講的選股策略、擇時策略。
而基於高管增持構建的交易策略,屬於一個新的策略類型:「事件驅動策略」。
所謂事件驅動策略,即由某個事件觸發買點,驅動我們買入。
該事件會不定期發生。可能連續發生,也可能很久不發生,我們無法預測。
比如高管增持事件,明天市場是否會發生,我們並不知道。
並且即使發生,我們也不知道發生的數量。比如明天市場可能有2起高管增持事件,也可能有20起。
爲了幫大家更好的理解事件策略的概念,我們下面例舉更多的案例。
其實很多人在不知不覺中,就利用了事件驅動策略的理念來炒股。
1.技術指標類
均線金叉、死叉,當短期均線上穿長期均線時,稱之爲金叉,反之向下穿越就是死叉。
金叉、死叉示意圖
很多炒股的朋友會用均線的金叉死叉來作爲買點、賣點。
這就是一個典型的事件。和高管增持一樣,每天是否會發生“金叉”事件、發生多少起“金叉”事件,我們事先並不知道。
漲停打板,也是很多人喜歡用的事件策略。
比如當某股票初次漲停並打開漲停後,一些激進的投資者喜歡去追漲停,謀求之後的繼續上漲。
這裏的“初次漲停並打開”就是一個可以觸發策略的事件。
並且同樣的,這個事件每天是否會發生以及發生多少起,我們並不能事先知道。
2.公告類
上市公司各種公告,天生就適合做成事件策略。
首先各類公告發布之後,或多或少都會對股價造成影響。其次各類公告的發佈時間,具有一定的偶然性。
這都符合事件策略的定義。
第一種,業績公告類。
上市公司每年會發布四次的財務報表,還有相關的各類業績預告。
每次財報公佈的超預期利潤或虧損、公司重大的轉型、人事變動等,都會對股價造成造成不小的影響。
基於每次財報公佈時提供的豐富數據,可以構建大量的事件類型策略。
第二種,融資分配公告。
高送轉,A股的行爲藝術,主要指送紅股和轉增股票。
雖然送股、轉增其實對投資者沒有本質的利好,但是很多股票往往會在高轉送之後走出一波填權行情,這是A股典型的非理性炒作事件。
所以很多人會基於此構建事件策略,把股票某些類型的高轉送作爲觸發事件的條件。
第三種,股權類公告。
股權激勵,即一般針對上市公司的高管,通過獎勵期權或者股權的方式,實行激勵。
股權激勵一般來說是利好,讓高管們有動力去提升股價。
我們可以基於此來構建事件策略。當某公司實行股權激勵時即觸發事件。當然也可以根據具體的行權價折價率以及股權激勵比例進行一定篩選。
第四種,特殊類公告。
以上說了這麼多公告,但其實當一個公司長期不出公告,也可以當做一個事件。
比如當公司連續60天沒有新公告發布,以此當做一個觸發時間的條件。
並且這個事件策略效果還挺不錯...
3.文本挖掘類
很多人會看新聞聯播炒股,當新聞聯播提到某個利好政策或者某個行業時,買入相關龍頭股。
其實這也是個事件策略。
我們可以通過百度指數、微信指數等來刻畫其被媒體報導的火熱程度。
用股票貼吧、微博每日新增相關發帖量來刻畫其熱度。
甚至可以藉助人工智能的方法,將各種新聞、討論背後的情緒提取出來,分類成悲觀或者樂觀,構建關於個股的輿情數據,以此來作爲觸發事件策略的條件。
Cayman Atlantic就是通過分析社交網絡與新聞資訊的情緒信息來交易金融衍生品的,並且成立了第一隻「Twitter基金」。
4.其他類
通過以上的舉例,大家可能會對事件策略的豐富性有了一定的瞭解。
其實還有很多很多種類的事件策略。
比如當分析師調高某股票評級,可以作爲事件買入信號。
或者某股票被納入了指數成分股,也可以作爲事件策略。
再或者某個股票在A股和港股同時上市,當它兩地價差達到一定程度,也可以作爲一個觸發事件。
......
只要你想象力足夠的豐富,這樣的例子還可以舉很多很多,並且其中不乏非常優秀的策略 。
看了這麼多的事件案例,相信大家對什麼是事件策略已經有了初步的瞭解。
接下來就該講解如何根據事件來設計我們的策略。
設計事件驅動策略,如何離場是非常重要的一環。
常見的離場條件主要有三種:
第一種,設置止盈線和止損線,比如我盈利10%或者虧損15%就立即平倉,非常常見。
第二種,根據技術指標,比如跌破20日均線就立即止損。
第三種,設爲固定天數後離場,這種方法最爲常用。
在之後策略設計中,我們統一使用用第三種離場場方法,即固定天數後離場。
在設計策略買入方法之前,我們先統一假設:
- 我們擁有初始資金10萬。
- 在某天T日,有10只股票觸發某事件策略,T+1日又有4只股票觸發。
- 所有買入股票持有20天后離場。
1.第一種方案
首先我們講一個最簡單的方案。
即在T日,把所有資金平均買入T日滿足條件的10只股票,每隻股票買入1萬元。
之後就一直持有這10只股票,一直等到T+20日,持有滿20天,把股票賣出。
然後看T+21日、T+22日是否有觸發事件的股票出現,出現後仍是均倉買入,持有20天...依此循環。
至於T+1滿足的條件的4只股票,或T+2、T+3日等股票,我們則完全無視,因爲當時沒有資金買入這些股票。
該方案的優點是簡單清晰,容易操作。
但也有嚴重的問題,那就是非常依賴策略開始運行的時間點。試想我們策略是從T+1日開始的,而T日的10只股票漲了很多,不就錯過了麼?
2.第二種方案
第二種方案是平均分配法,將資金平均分配給每一隻觸發事件的股票。
根據方案,我會在T日滿倉買入10只股票,每隻股票買入1萬元。
T+1日,我們需要再次買入4只股票。
根據平均分配法,每隻股票持倉金額應爲:
爲了達到這個效果,需要將前10只股票每支賣出0.2857萬元(0.2857=1-0.7143),共賣出2.857萬元。
然後拿2.857萬元買入T+1日的4支股票,每支恰好買入0.7143萬元。
之後只要有股票觸發事件,就平掉之前部分倉位,騰出錢來買入新的股票,始終保持資金平均分配。
這個方法的優點是不會錯過任何股票。
但缺點就是,不斷的平均倉位會導致非常頻繁的交易。這不僅會讓實際操作非常繁瑣,也會帶來一大筆額外的手續費開支。
3.第三種方案
第三種方案是把初始資金10萬均分爲20份,每份5000元,一天用掉一份,正好可以用20天。
第一份資金在T日均倉買入10只股票,每隻買入500元,第二份資金在T+1日買入4只股票,每隻買入1250元...以此類推。
等到第T+20日,就平掉第一份資金,用於之後的建倉。
如果某日沒有觸發事件的股票,那就閒置該份資金,不買入。所以有可能資金不能得到充分利用。
相對來說第三種方法建倉靈活,比較合適。
綜合來說,第三種方案是較優方案,也是我會實際使用的方案。
聯繫邢不行
推薦閱讀
歷年排名前10的基金,在第2年表現如何?Python告訴你答案
如果你想入門量化,但是始終找不到方向,可以加入我的知識星球。我會在裏面解答你的問題,分享我的感悟,不論是投資、技術,還是職業選擇、思維方式。