開始新的填坑計劃,這個flag不會倒!!!
一年Get一個新技能
2018年學習總結
2018年我在技術方面的目標,是學習python。投入了不少的精力,在web開發、爬蟲、數據分析、界面方面都有所涉及,最後也實現了用scrapy爬取數據,用flask做後臺,輸出了新聞app,web網站,小程序。
個人評價是70分,基本完成了學習目標,但是輸出成果品質不夠,總結的文章輸出不夠。本質上還是自己學的東西不夠深入,另一方面,由於偏重於學習知識,實踐意義偏弱,沒有獲得足夠的正反饋。
2019年學習目標
今年目標還是Python,只不過會選擇一個方向進行深入。
- 做Web後臺。難度不高,門口低,可替代性強。不論php還是nodejs都容易做到同樣的事。
- 做爬蟲。這個相對還是有競爭力的,只不過單純爬取到數據價值不大,還需要進行一系列的數據處理,才能拿來用。而現在有很多處理好的數據是可以用相對便宜的付費就拿來使用的。
- 做應用。這個python就完全沒有競爭力了,python的ui比起其他語言就太渣了。
- 數據分析。目前算是python發展最迅速的一個方向,與機器學習和大數據結合後,既有深度也有廣度,這是我選定的方向。
金融量化分析
數據分析的領域,細分下來也很多類別,在這裏我選擇了金融數據的量化分析。
- 金融數據都是標準的時間序列數據,相對於其他的科學計算類型,入門會更容易一些。
- 學習結果容易轉換成果,最直接的就是建立自己的量化交易系統。
上半年的學習過程
- 1月份學習得到上聽《交易員思維》給了我交易的概念,不僅僅是我們天天聽到的投資。
- 2月在閱讀《澄明之境》《海龜交易法則》之後,讓我有了交易系統的概念。
- 3月閱讀邢不行的博客《量化小講堂》讓我開始接觸金融量化,寫了一些簡單的量化程序,構建自己的量化策略,在A股實盤測試後少量虧損,主要還是策略太簡單,沒有形成交易系統,實戰意義太低。
- 4月知道了原來還有量化金融分析師這個角色,找到了相關資料,開始了系統的量化學習之路。大量回測後,得到一些有效組合,在B圈和A股開始了小規模的實盤操作,長期成果待驗證。初步的量化思維和策略也讓我避開A股四月份的大回撤。
- 5月開始了果仁、優礦等量化平臺的學習和使用,主要是覺得自己寫框架太累。玩了幾個量化平臺後,發現靈活性不夠,最終還是以自己編寫的交易系統爲主,參考一下網上框架的一些架構方式。5月份A股沒交易信號,基本空倉。但是抓住了B圈的收益。
- 6月份報名了9月底的量化金融分析師考試,開始了系統深入的學習。
上半年總結
- 上半年通過大量閱讀和編寫代碼,經過大量回測,建立了兩套簡陋的交易系統,分別在A股和B圈的運行,短期效果還可以,長期效果待檢驗。
- 雖然還存在很多明顯的缺陷,但是以我當前的知識儲備,已經不足以完善它了,需要進一步提升自己的能力。
下半年的目標
- 通過9月份的量化金融分析師的考試,拿到證書。這個目標足夠明確,也沒有逃避的理由。
- 把當前的交易系統打造得更加成熟,獲取到今年市場的利潤,這是一個有長期價值的事情。
- 大量閱讀金融和投資方面的書籍,彌補自己在金融領域的知識缺陷,金融量化畢竟是一個綜合學科,並不只是寫代碼的事。爭取今年能由業餘選手進入專業領域,哪怕專業一段也算。
附錄:量化金融分析師考綱
一. 量化投資策略理論(20%)
(一)量化投資基礎
1 掌握量化投資的概念;
2 瞭解量化投資不同的編程語言和應用平臺;
3 瞭解量化投資的一般決策流程;
4 熟悉中國主要金融市場及交易產品交易種類及交易機制;
5 掌握量化交易模型設計的基本框架。
(二)量化交易策略理論基礎
1 掌握多因子策略,瞭解國內外常用的因子類型,掌握因子在不同階段的研究方法;
2 瞭解量化擇時的思想;
3 瞭解無風險套利的思想;
4 瞭解基本面量化交易策略思想;
5 瞭解統計套利量化交易策略思想;
6 瞭解衍生品套利量化交易策略思想;
7 瞭解機器學習的基本概念、常見算法原理及其量化交易策略思想;
8 掌握機器學習的常用算法原理,如邏輯迴歸、支持向量機、決策樹、KNN 等;
9 瞭解機器學習算法的評價方法;
10 瞭解輿情分析等其他量化交易策略思想;
11 瞭解高頻交易策略的基本概念;
12 掌握事件驅動量化交易策略思想;
13 掌握技術指標類量化交易策略思想;
14 掌握 K 線概念,掌握常用技術指標,包括均線、CCI 指標、KDJ 指標等;
15 掌握常見的量化交易策略的評價方法。
二. Python 語言的編程基礎(30%)
(一)Python 核心語法基礎
1 掌握數據的基本類型:整形、浮點型、字符串、布爾型的基本概念與運算,熟悉不同類型間的轉換方式;
2 掌握核心數據結構:列表、字典、元組、集合的基本概念、運算、常用操作、常見方法;
3 掌握 Python 常用基本語法,包括模塊的導入等;
4 掌握 Python 運算符及其優先級;
5 掌握基本控制結構:循環結構、分支結構的基本概念及使用方法;
6 掌握函數定義、參數傳遞與函數調用的基本概念;掌握全局變量、局部變量和作用域的基本概念;
7 熟悉異常處理的概念和基本方法;
8 掌握 CSV、HDF5、SQL、Excel 等形式文件的調用和存儲。
(二)Numpy 數據處理
1 掌握 Numpy 模塊向量化操作原理;
2 掌握 Numpy 模塊基本數據類型及其常見創建方式;
3 掌握 Numpy 模塊基本數據類型的常見操作方式,包括切片、索引、修改、數據清晰、結構調整、拼接等;
4 掌握 Numpy 模塊數據統計常用函數與方法;
5 熟悉 Numpy 模塊邏輯運算操作相關的函數或方法。
(三)Pandas 數據處理
1 掌握 Pandas 模塊向量化操作原理;
2 掌握 Pandas 模塊基本數據類型及其常見創建方式;
3 掌握 Pandas 模塊的基礎操作,如:排序、切片、索引、填充、累計計算、合併、對齊、存儲等;
4 掌握分組與聚合運算;
5 熟悉多重索引與重構;
6 掌握缺失值的處理;
7 掌握 Pandas 模塊時間序列處理的操作;
8 會應用 Pandas 模塊進行數據處理、數據清洗、數據合併等操作;
9 會應用 Pandas 模塊數據處理進行實戰金融數據處理。
(四)面向對象基礎
1 掌握面向對象和麪向過程的區別;
2 掌握類和實例的基本概念;
3 掌握屬性和方法的基本概念;
4 熟悉構成和繼承的基本概念;
5 掌握面向對象編程的思想,具備運用面向對象的方法編寫量化交易策略的能力。
(五)數據可視化
1 掌握使用 Matplotlib 繪製直方圖、折線圖、散點圖;
2 掌握 Pandas 模塊內置繪圖函數;
3 掌握使用 Matplotlib 繪製淨值曲線、股價相關性散點圖等其他金融相關應用圖形;
4 瞭解 Matplotlib 對數據做簡單的描述性統計方法;
5 瞭解 Seaborn 等其他數據可視化第三方庫
三. Python 量化交易策略實現與回測(40%)
1 掌握金融數據的獲取方法,包括從互聯網調取靜態金融數據的常見方法和實時數據的獲取方法;
2 掌握金融數據清洗方法;
3 掌握均線交易系統;
4 掌握基本技術指標的計算方法,包括調用函數進行數據處理或調用 Ta-lib 等庫等方法;
5 掌握基於技術指標、指標系統的量化交易策略的編寫;
6 熟悉產生交易信號的常見方法,掌握常見交易信號的計算;
7 熟悉策略持倉信號的常見方法,掌握策略持倉信號的計算;
8 熟悉股價收益率、策略累計收益、策略淨值曲線的計算方法;瞭解常見策略評估指標的計算方法;
9 掌握策略編寫的核心思想和方法;
10 掌握機器學習的各個算法的調用方法、使用原理,可以用來解決的實際問題;
11 掌握會引起回測和實盤交易收益產生巨大區別的原因和注意點;
12 熟悉策略的優化方法和優化思路,包括參數優化等;
13 熟悉策略風險控制的常見方法。
四. 量化實盤交易(10%)
1 熟悉量化交易系統的一般框架設計思路;
2 熟悉量化交易系統或平臺的數據調取;
3 熟悉量化交易系統或平臺的合約調取方法;
4 熟悉量化交易系統或平臺的程序化下單方法;
5 熟悉交易的訂單類型和相關實現方法;
6 瞭解實盤進行倉位控制的一般方法;
7 瞭解量化交易系統或平臺實現程序化交易策略的一般方法