803
技術社區[雲棲]
用Python/機器學習在金融市場獲利
更多深度文章,請關注:https://yq.aliyun.com/cloud
我終於把標準普爾500指數下跌了10%。這可能聽起來不是很多,但是當我們處理大量流動性很好的資本時,對衝基金的利潤相當可觀。更科學的做法將會帶來更高的回報。
這一切都是在Gur Huberman發表的題為“傳染性的猜測和治愈癌症:非事件使股價飆升”的文章之後開始的。該研究描述了1998年發生的一個公司叫EntreMed的事件(ENMD是當時的象征):
“紐約時報星期日”有關潛在開發新型癌症治療藥物的文章導致EntreMed的股價從周五收盤時的12.063上漲至周一85點,最後以接近52點收盤。這件事情,導致資本對其他生物技術股的也很熱情。然而,在“自然”雜誌和各種受歡迎的報紙中,包括“泰晤士報”報道,癌症研究已經有了潛在的突破。超過五個月前,盡管沒有提供真正的新資料,但公眾的熱烈關注引發了股價的持續上漲。
在研究人員提出的許多有見地的觀點中,有一個人總結出來:
“[價格]運動可能集中在有些共同點的股票上,但這些股票不一定是經濟基礎。”
我想知道是否有可能根據通常使用的東西來聚類股票。我開始挖掘數據集,幾個星期後,我發現一個包括記錄股票和周期表元素之間的“已知和隱藏的關係”的分數。
在計算基因組學的背景下,這也提醒我,基因與其細胞信號網絡之間的關係如何相對未知。然而,當我們分析數據時,我們開始看到新的連接和相關性,我們可能以前沒有能夠預測到:
所選基因的表達模式涉及細胞可塑性,生長和分化的信號通路
股票,如基因,通過彼此之間共享的強和弱的隱藏關係的龐大網絡而受到影響。這樣我們可以通過一些相關事件來預測其中的一些影響和關係。
我的目標之一是創建長期和短期的股票群或“籃子集群”,我可以用來對衝或僅僅靠投資從中獲益。這將需要無人值守的機器學習方法來創建能夠彼此分享強弱關係的股票集群。
我在這裏下載數據集,這是基於周期表中的元素和上市公司之間的關係。
然後使用Python和通常的機器學習的子集 - scikit-learn,numpy,pandas,matplotlib和seaborn,我第一步就是開始了解我正在處理的數據集的形狀。(要做一些這樣的事情,我找到了一個Kaggle內核,題為:“主成分分析與KMeans視覺效果”)。
皮爾遜相關概念特征的相關性,在這種情況下,周期表中的礦物和元素:
輸出:(針對該可視化示例的前16個樣本運行)。看到周期表中的元素如何與上市公司相關也很有意思。
測量“解釋方差”和主成分分析(PCA)
解釋方差=(總方差 - 殘差方差)。值得關注的PCA投影組件的數量可以通過“解釋差異度量”來指導,這在Sebastian Raschka關於主成分分析的文章中也很好地描述:https://sebastianraschka.com/Articles/2015_pca_in_3_steps.html輸出:
從這個圖表可以看出,大部分差異來自預測的主要成分的前85%,這是一個很高的數字。有關分析合理數量的主要部件的更多信息,請參見此處。
使用scikit-learn的PCA模塊,讓n_components = 9。代碼的第二行調用“fit_transform”方法,該方法將PCA模型與標準化的電影數據X_std相匹配,並應用到數據集上使維數降低。
我們在這裏並沒有真正觀察到群集的微弱輪廓,所以我們應該繼續調整n_component值,直到我們看到我們想要的內容。這涉及數據科學和藝術的“藝術”部分。
現在讓我們嚐試一下K-means來看看我們是否能夠在下一節中可視化任何不同的集群。
K均值聚類
這個K-Means圖表現在看起來更有希望,好像我們的簡單聚類模型假設是正確的,我們可以通過這種顏色可視化方案觀察3個可區分的聚類。
當然,在這裏也有許多不同的方式,以集群和可視化這樣的數據集作為顯示。
使用seaborn的pairplot功能是非常方便的,我可以自動繪製數據幀中的所有功能成對的方式。我們可以將前3個投影相互對照,並可視化:
打造籃子集群(Basket Clusters)
你如何調整你的群集取決於你。這不是一個良方,其中大部分取決於你所在的環境。在這種情況下,股票,股票和隱藏關係所定義的金融市場。
一旦對你的群集感到滿意,並設定了得分閾值,以控製某些群體是否符合群集資格,則可以提取給定群集的資源,並將其作為籃子進行交易或將其用作信號。你可以主要取決於你的創造力使用這種方法處理的事情,以及你可以如何使用深度學習變體進行優化,以根據集群或數據點的概念來優化每個集群的回報,例如公司的短期利率或浮動規模(公開市場上的可用股份)。
你可能會注意到這些集群作為籃子交易的一些有趣的特征。有時與標準普爾或一般市場有分歧。這可以提供基於“信息套利”的套利機會。某些群集可能與Google搜索趨勢相關。
如下文所述,看到與材料及其供應鏈相關的集群可能是有趣的:“放大10種材料及其供應鏈”。使用數據集,我僅在功能列標簽上操作:“鈷”,“銅”,“镓”和“石墨烯”,隻是為了看看我是否可以發現在這一領域的上市公司和暴露於風險之間的隱藏聯係。
通過使用在Quantopian,Numerai,Quandl或Yahoo
Finance 等出口處可以獲得的曆史價格數據,你可以匯總價格數據以生成使用HighCharts可視化的預期收益:。
我從上述集團獲得了不錯的投資回報,這意味著你的投資回報率將比標準普爾每年大約增加10%。我看到更積極的方法可以幫助我每年增加接近70%。現在我不得不承認,我做了一些其他的事情,我必須保持黑盒子,由於我的工作的性質,但從迄今為止我觀察到,至少探索或圍繞這種方法圍繞新的量化模型可能證明是非常值得的,唯一的缺點是不同的信號可以通過管道進入另一個係統。
生成短籃子群可能比長籃子群更有利可圖。
如果你進入機器學習,提前分享已知和隱藏的關係的上市公司之間的寄生,共生和同情關係可能是有趣和有利可圖的。最後,一個人獲取利潤的能力似乎完全是在生成這些類型的數據集的幫助下,獲得強大的特征標簽或“概念”的組合。
我在這種模型上的下一個迭代應該是包括一個單獨的自動生成特征組合和唯一列表的算法。也許基於可能會影響具有隱蔽關係的群體的近實時事件,但隻有具有機器學習算法的人才能夠預測。
本文由北郵@愛可可-愛生活老師推薦,阿裏雲雲棲社區組織翻譯。
文章原標題《Understand PyTorch code in 10 minutes》,
作者:GaëtanR,機器學習研究員 - 多倫多大學博士生 譯者:袁虎 審閱:阿福
文章為簡譯,更為詳細的內容,請查看原文
最後更新:2017-07-04 10:32:05