1、學習目標
談到金融量化分析,可能大多數人想到的肯定就是海量的股票數據,交叉錯亂的股票數據圖表,讓從未接觸過金融的人無法入手,就會想這種東西我怎么可能學的會。但是在我們有着扎實的Python編程基礎就完全不需要擔心這些東西了,我們只需要通過編程的方式編寫出對應的策略就能通過計算機幫我們進行自動化交易。
從本文的標題當中就可以看到,我們的目標就是金融量化分析,在前面已經簡單介紹過金融了,所以說我們就直接來看量化,量化這個詞在當前這個時代已經越來越常見了,它主要就是可以通過一些策略獲取一個投資的方案,而分析就是我們常說的數據分析了,數據分析也是與我們的生活息息相關,本文主要是針對金融方面的數據進行分析,但是如果你從事其他行業,這些技術完全適用。
2、金融量化簡介
2.1、什么是金融量化
金融量化主要是指以先進的數學模型替代人為的主觀判斷,利用計算機技術從龐大的歷史數據當中選出能夠帶來超額收益的多種“大概率”事件以此來指定策略。主要就是以下幾步:
1、發現的一種能夠賺錢的規律
2、將規律分解成可操作的步驟(策略)
3、編寫程序,讓機器去執行這個策略
4、機器返回結果,或者說是讓機器直接實現自動化交易
2.2、金融量化能干什么
相信大家都經常會使用百度、谷歌等之類的搜索引擎搜索我們想了解的問題,但是你要是直接去問它,我到底該買哪一支股票?什么股票可以掙錢?這樣的問題會有答案嗎,肯定是不會的,所以說金融量化的任務就是類似於這些搜索引擎的功能,只不過它只會通知你今天應該買什么,今天應該買什么。
1、可以幫你在幾千只A股當中選擇符合要求條件的股票
2、選擇買、賣、平倉的時機
3、管理倉位風險
4、不會受到個人情緒影響
2.3、為什么將Python用於金融
其實在之前大多數金融投資都是投資者根據個人經驗或者偏好來完成的,但是這樣的方式會受到很多因素的影響。但是我們將大量的歷史數據通過計算機強大的運算能力進行分析、測試,然后再進行投資,就可以利用歷史規律,在其基礎上發現概率優勢,形成良好的投機基礎。
量化投資目前主要是以R和Python為工具,早些年可能R語言占據了絕對的地位,但是隨着Numpy、Pandas、Matplotlib、Scipy、Sckikiy-Learn等Python開源工具的發展,目前Python已經在這一方向大放異彩,加上它強大的調試能力以及工程能力,讓我們分析的結果和需要執行的任務可以無縫結合,使得維護變得非常方便。
3、數據分析簡介
3.1、數據分析是什么
對比互聯網各個崗位的裁員程度可以發現,數據分析相關崗位正在不斷的擴招,已經成為了這波逆流中的黑馬,什么原因導致的數據分析人才如此緊缺?
因為數據分析是大勢所趨,未來的發展空間會大有可為。隨着5G網絡即將商用,企業每天將會產生海量的數據,BAT日均數據更是達到了PB的級別,數據分析相關崗位才會存在着巨大的需求缺口。
長此以往,企業要用盡可能少的人才,來滿足盡可能多崗位的訴求,可以這么說,數據分析將會是每個程序員個人能力最重要的補充,也是BAT這類大公司急招人才的必備技能。
但是一提數據分析,很多人就覺得無從下手,知識點零散總是抓不住重點,學習起來相當吃力。
在我們如今這個時代,相信大多數人都能明白數據的重要性,數據就是信息,而數據分析就是可以讓我們發揮這些信息功能的重要手段。
3.2、數據分析能干什么
對於數據分析能干什么其實我們可以簡單的舉幾個例子:
- 1、淘寶可以觀察用戶的購買記錄、搜索記錄以及人們在社交媒體上發布的內容選擇商品推薦
- 2、股票可以根據相應的數據選擇買進賣出
- 3、今日頭條可以將數據分析應用到新聞推送排行算法當中
- 4、愛奇藝可以為用戶提供個性化電影推薦服務
其實數據分析不僅可以完成像以上這樣的推薦系統,在制葯行業也可運用數據分析來預測什么樣的化合物更有可能制成高效葯物等。所以說數據分析絕對是未來所有公司不可或缺的崗位,目前社會上獲取數據方式太多了,這么多的數據,只要我們擁有數據分析的技能,絕對可以應付任何崗位上的工作。
3.3、為什么利用Python進行數據分析
- 1、Python的代碼語法簡單易學
- 2、Python可以很容易的整合C、C++等語言的代碼
- 3、Python有大量用於科學計算的庫
- 4、Python不僅可以用於研究和原型構建,同時也適用於構建生產系統
4、常用庫簡介
Numpy
NumPy是用於科學計算的一個開源Python擴充程序庫,它為Python提供了高性能的數組與矩陣運算處理能力.NumPy為Python帶來了真正的多維數組功能,並且提供了豐富的函數庫處理這些數組。它將常用的數學函數都支持向量化運算,使得這些數學函數能夠直接對數組進行操作,將本來需要在Python級別進行的循環,放到C語言的運算中,明顯地提高了程序的運算速度。
Pandas
Pandas使我們進行數據分析的一個主要工具。它所包含的數據結構和數據處理工具的設計使得Python中進行數據清洗和分析非常快捷。pandas一般也是和其他數值計算工具一起使用的,支持大部分Numpy語言風格的數組計算。pandas和numpy最大的區別就是pandas是用來處理表格型或者異質性數據的,而Numpy則剛好相反,它更適合處理同質型的數值類數組數據
matplotlib
matplotlib是最流行的用於繪制數據圖表的python庫。它基本也是可視化這一區域的標桿,在許多情況下,它都是 一個可靠、健壯的可視化工具。對於一些標准的繪圖工作,它比較容易理解,進行復雜的繪圖還有自定義,它也很靈活。此外,它還與Numpy以及其提供的數據結構緊密集成。
Scipy
Scipy是科學計算領域針對不同標准問題域的包集合。提供了強大的科學計算方法(矩陣分析、信號分析、數理分析等)
IPython和Juypyter notebook
IPython是一個加強版的Python解釋器,Juypyter notebook是一種基於Web的代碼筆記本,最初也是源於IPython項目。
5、小結
本文主要帶大家一塊認識金融、量化投資、數據分析等多方面知識,從數據入手,結合金融行業的大量數據完成數據分析的一些常用操作,最終通過所學的所有知識完成一個簡易量化系統。