引言:
邢不行的系列帖子“量化小講堂”,通過實際案例教初學者使用python進行量化投資,了解行業研究方向,希望能對大家有幫助,
?
?
如果有人說你是百年難得一見的量化投資天才,要送你一本秘籍,你信還是不信?
?
你是否有量化投資天賦我不知道,也沒有秘籍,但本文可以測驗你是否有量化編程的天賦,
我會用一個實際案例逐行講解量化代碼,編程零基礎也能完全理解,
如果你看完后覺得很容易,甚至有一點熱血沸騰想學編程,至少說明你對這方面是感興趣的,并且可能還有一些天賦,
01
編程問題描述
1、某神秘事件
很多人會費心尋找股市上漲的征兆,并以此作為自己的買入依據,
這里就有一個神秘征兆,只要這些征兆發生,大盤未來5榷訓有較大的概率上漲,具體統計如下表:
?
事件發生后未來5榷訓深300指數(代指大盤)平均漲幅0.7%左右,上漲概率也都大于55%,最多能到60%+
要知道在X場莊家靠51%+的勝率都能賺得盆滿缽滿,55%勝率的事件代表什么也就不言而喻了,
那這類神秘事件究竟是什么呢?
它就是「北向資金」單日凈流入事件,圖中事件1-4分別代表了北向資金單日凈流入大于40億、50億、60億和70億,
?
北向資金大幅度凈流入事件
北向資金大幅度凈流入事件一旦北向資金單日凈流入達到一定標準,我們就認為是一個不錯的上漲征兆,
2、北向資金說明
可能還有朋友不了解北向資金是什么,這里做簡單的說明,
?
北向資金圖解
如上圖所示,在香港的港交所,投資者可以使用港幣交易其上市股票;在大陸的深交所和上交所,可以使用人民幣交易在A股上市的股票,
從2014年起,A股和港交所開始嘗試部分互通,全世界投資者可以用港幣在港交所通過滬股通及深股通直接購買A股,
而因為上交所和深交所都在香港的北邊,所以這些來自香港的投資被形象的稱為北向資金,
3、北向資金資料統計
并且對于我們量化投資者非常友好的是,在香港交易所官網上會每日披露北向資金的交易明細資料,
?
香港交易所網址https://www.hkex.com.hk
例如上圖中,2021年6月18日當天北向資金總共買入291億、賣出309億,總成交額為600億,凈流入負18億(291-309),
通過資料就能統計出北向資金單日凈流入大于0的天數,觀察大盤次日表現:上漲概率55%,平均漲幅0.15%,
?
統計時間:2014.11.17-2021.05.31
為了全面了解北向資金凈流入,我繼續統計了事件發生后大盤未來3日和5日的表現,同時將凈流入標準從0依次擴大至100億,
?
北向資金統計
觀察上圖發現,北向資金一旦發生凈流入,未來幾日大盤確實表現較好,這是一個很不錯的股市征兆,
接下來,本文就會從資料收集開始,詳細講解如何運用Python寫代碼逐步得到上文統計圖,
當然單憑統計結果是無法形成明確的買點、賣點的,關于用北向資金資料構建交易策略,可以看我這期視頻,
?
點擊文字觀看視頻
02
量化資料獲取
在撰寫代碼前我們首先要知道如何獲取北向資金資料,
1、財經網站
最基本的可以去港交所官網下載北向資金交易明細資料,
?
港交所網址:www.hkex.com.hk
但上面的資料并未整理且無法直接下載,你需要用Python寫爬蟲代碼去抓取相關資料,
所以我更建議你從主流財經網站上爬取資料,如東方財富網、新浪財經等,
上面有每日更新整理好的資料,爬取內容比港交所更優質,
?
東財資料網址:data.eastmoney.com/hsgt
2、量化小課堂
也可以到我們量化小講堂網站進行下載,上面有各類A股和數字貨幣相關資料,其中就包含北向資金資料,
?
量化小講堂:quantclass.cn/data/stock
需要的話可以加我xbx719,我會無償送你一份最新資料,
3、資料展示
下載資料后得到可以直接使用的滬股通和深股通的Excel檔案,
?
滬股通Excel
運用檔案中包含的當日成交凈買額(凈流入)欄位,可以統計不同情況下北向資金單日凈流入的出現次數,
此外還需滬深300指數每日收盤價資料來計算漲跌幅,以統計大盤未來幾日表現,
量化小講堂同樣提供指數的歷史日線資料,且能永久免費獲取,
?
量化小講堂:quantclass.cn/data/stock
加我獲取網址后,下載的資料如圖所示,包含了2005年至今滬深300指數每日開高收低的價格資料,
?
滬深300指數歷史日線資料
這樣我們就整理好了所需資料:北向凈流入和指數收盤價,
接下來就是我們真正硬核的內容:如何通過Python編程得到下方統計圖,
?
真正的勇士可以繼續看完逐行的代碼講解
03
編程思路
下面就是完整的編程思路文字版,需要的話也可以看視頻版本:
60%勝率的短線信號!零基礎python量化代碼詳解【量化投資邢不行啊】
編程部分從7:52起
1、資料初步處理
我們下載的資料(滬股通/深股通/滬深300)都以CSV格式存盤,可用Excel打開,
?
正式講解編程前,我先用Excel來演示資料處理的思路,看完就會發現編程操作大抵如此,
首先新建一個Excel,將滬深300表格中2014年11月17日之后的日期與close列(收盤價)資料復制過去,
?
滬深300指數資料
同樣將滬股通和深股通的當日成交凈買額列對照日期復制過去,
?
滬股通
?
深股通
滬、深當日成交凈買額列相加形成北向資金當日凈流入列,如下表:
?
初步處理后資料表格
2、資料統計
根據以上資料計算大盤在北向資金單日凈流入事件觸發后未來幾日的表現,
要求次日表現,就用(次日收盤價-當日收盤價)/當日收盤價得到,如11月17日則為(2541.42-2567.1)/2567.1 = -1%,即跌幅1%,
同理可計算大盤未來3日和5日表現,
?
11月17日未來5日表現計算方式
選中北向資金當日凈流入列,使用篩選功能,如要求大于10億的事件出現次數(表中單位為百萬),則輸入1000,
?
篩選條件
篩選后如下圖計數所示該事件出現655次,扣除表頭后則為654次,
同理可得北向資金單日凈流入各事件出現次數,
?
再次篩選各事件對應的次日/未來3日/未來5日的上漲次數,即漲跌幅大于0的次數,
繼而用上漲次數/出現次數得到上漲概率,
最后針對未來N日表現列求平均值即可計算出對應的平均漲跌幅,
完成上述所有步驟后即可求出前文的統計圖,
?
通過Excel處理資料其實并不麻煩,但思路卻至關重要,寫代碼時你就會發現編程思路和手工操作Excel的思路完全一致,
?
04
代碼詳解
到此我們正式進入代碼逐行講解環節,有了上面的鋪墊,零基礎也可以輕松聽懂,
如果有朋友連Python都不會安裝,可以看我這期文章, 收藏|最最最最簡單、最最最最詳細的Python和Pandas安裝教程
這個教程經過千錘百煉,可以幫你避免很多不必要的坑,你可以加我xbx719,我把這篇文章及相應的安裝包發給你,
按照文章流程安裝好Python后,打開Anaconda程式中的Spyder,
?
Spyder界面
接下來就是真槍實彈的操作部分了,
先用read_csv函式讀取原始資料,并將資料時間段定在2014年11月17日以后,代碼如下:
?
讀取資料代碼
接著用sum函式將代表滬/深股通資料的當日成交凈買額h和當日成交凈買額s相加得到北向資金凈流入,
?
計算凈流入
之后用Excel講解中提到的公式計算出N日漲跌幅資料,只要會簡單的數學運算即可,
?
N日漲跌幅
最后寫出篩選資料的代碼,計算北向資金單日凈流入各事件出現次數以及未來幾日上漲次數、上漲概率、平均漲跌幅等資訊,
?
完整代碼運行結果如下:
?
05
后記
我強烈建議你看完文章、視頻后親自寫一下代碼加深感受,這樣才能對整個流程有更直觀的認識,
本文相關代碼和資料都可以加我xbx719獲取,
以上就是本次代碼講解的大致內容,礙于篇幅還有許多細節無法一一展開,更詳細的內容推薦你去看本文的相關視頻:
60%勝率的短線信號!零基礎python量化代碼詳解【量化投資邢不行啊】
?
聯系作者:
?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/304123.html
標籤:區塊鏈
