開始新的填坑計劃,這個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 了解量化交易系統或平台實作程式化交易政策的一般方法