更新2021/08/29:板友來信提問更新(放在文末)
如果有問題的話可以來信詢問,會統一更新在本文
不然私信回的話只有一個人看得到,效益不大
前言:
在板上看過幾次類似的發問,譬如fintech浪潮下應該具備什麼程式能力之類的
但回答的多是IT技術人員,答案自然也多是與IT相關的,跟一般人關係不大
剛好本魯大學是財金雙主修資管,工作上也還算常用到程式技能
就簡單分享一下一些例子,提供給在猶豫是否進修的人參考
這邊先撇開金融IT與區塊鏈工程師
畢竟這些職缺本來就是資訊背景為主,而且相關文章也很多了
除了以上兩者外,我覺得程式與金融結合的例子可以分成三大類
1. Fintech
2. 日常例行事務
3. 投資相關
此外還牽涉到的主題
4. 個人思路
5. 轉行
6. 要學多深
這篇文便是以上面6個面向撰寫
Fintech:
我申請雙主修的時候Fintech非常熱門,當時我也沒深入研究
單純以為Fintech就是寫程式投資,感覺很新潮,就直接申請了
後來才明白寫程式投資是Quant...
實際上Fintech除了區塊鏈外,精準行銷的職缺似乎蠻多的
譬如從去識別化的資料中找出目標客戶,提高行銷的準確度之類的
其他像是 用NLP自動分析質化研究報告、自動摘要重點
或者是 自動分析個人投資風格並給出改善建議
以上這些都有看過相關職缺
日常例行事務
主要就是報表或研究日報的製作
譬如我之前實習寫過串接IB的API,可以定期生成客戶投資組合報表的程式
這樣就可以省下麻煩的人工製作,因為報表所需的資訊未必在同一個頁面
如果要一個個載下來,點開各個excel,再集中貼到一份excel的話很麻煩
用程式直接抓,再用預先做好的excel版型套上去就好了
研究日報也常需要剪貼數據,道理同上,只是可能會需要結合VBA
但這部分也有矛盾之處,通常負責做報表的,除非一開始工作描述有特別要求資訊背景
不然通常都是被當免洗勞工使用,大公司的電腦未必會開放權限讓你裝程式
所以高機率還是得自己手動剪貼XD
投資相關
這部分的應用就很多種了
最主要的應該是 資料收集、策略開發、策略回測系統,三大類
資料收集除了用爬蟲簡化資料抓取的流程,我覺得製作自己的Dashboard也蠻關鍵的
除了結合原始資料,按照需求呈現成特定的圖表外
也可以設定自動提醒,避免漏掉對某些現象的追蹤
我待過的兩家實習:一家小Buy side跟一家大Sell side都在做這件事
尤其是後者雖然是業界龍頭,但也是最近才開始推行,而且高層很重視這件事
策略開發的部份工作跟個人投資都會用到,除了很常見的技術分析交易策略
也有蠻多資產配置的策略或者質化分析的指標可以試看看
這邊推薦Coursera的專項課程:Investment Management with Python
最後是策略回測系統,如果沒有自己的策略回測系統可能會有點麻煩
畢竟市面上的服務商不多,彈性也蠻低的
自己寫的話,非日內交易python應該1000行內可以搞定(含資料抓取)
日內交易的話因為對運行速度要求比較高,可能就要用到C++了
個人思路
雖然這是比較間接的影響,但我覺得滿重要的
之前聽孔令傑教授說過他覺得學習程式後思路有變清晰,我覺得深有同感
尤其是在一些個人workflow的設定或是知識庫的建立時,特別需要程式模組化的概念
以workflow為例,我最近發現工作上雖然常需要看英文報告,也幾乎都能看懂
但裡面常用到的英文文句用法自己需要寫的時候根本想不起來
因此便希望能邊紀錄報告重點時,邊紀錄這些用法
但兩者同時紀錄顯然很不ok,會嚴重打亂閱讀的順暢性
因此便需要在紀錄報告重點的ppt中多開一個暫存的頁面
然而報告的文句應該先進重點區,還是先進暫存區
暫存區的資料要在何時正式標註重點存入資料庫,又應該放在哪個部份
這些都需要事先規劃好,我覺得這部份雖然與程式不直接相關
但在個人思路上的影響蠻有幫助
尤其是一些作業系統的觀念可以換個方式應用在這裡
而關於知識庫的建立,我自己習慣是讀完每本書會在電腦中紀錄重點
一開始就是簡單一本書一份文件,但時間久了就發現這樣完全不可行
書讀完久了之後會忘記書名對應到的重點,這樣以書名為劃分會一團亂
再加上這樣主題相關的書很難做重點對比
諸如此類的原因就導致整個知識庫需要依照主題為劃分重新建立
然而如何界定各領域知識的主題,如何設定目錄的層次也是很大的問題
在處理這些問題時,我覺得程式相關的觀念也是蠻受用的
就跟Charlie Munger說的一樣,思維模型很重要
尤其是程式設計中便涵蓋了很大量的思維模型
我覺得對個人生活其實蠻有啟發性的
轉行
這點應該不必多說,學習新的技能自然是多了新的職涯選項
我自己是非常在意工作的意義與趣味性的人
也曾因此有點懷疑是否要在金融業繼續發展,或是轉作工程師
這時候程式相關的技能至少能確保我換條路也不會餓死
即使是繼續在金融業發展,能處理的事務也會比一般本系生多元一些
要學多深
很多人會好奇學完基本語法後,是否要修一些程式觀念的課
譬如:演算法、資料結構、作業系統...這類的
我覺得純論應用的話是不必,以上的舉例都是會基本的語法之後
自己摸索一些套件就能搞定了
但我認為多修那些課,甚至是雙主修資管、資工
最起碼能確保你持續有動機接觸程式
譬如程式設計在台大財金雖然是必修,但也只有一學期
很多人修完後也沒什麼特別的動機要再寫程式,尤其是第1、2份實習用不到程式的話
到畢業時大概也忘得差不多了
修那些課畢竟有作業、期末專案要寫,可以確保你到畢業前都會持續接觸
至於已經畢業的人是否要學?我覺得雖然未必有直接性的應用情境
但多修一些程式觀念的課程,在debug的時候會比較快,不會一看到報錯就手忙腳亂
但這就見仁見智了
以上說的是學習程式在金融應用上的好處,至於是否要真的雙主修就是另外的議題
但跟這個板的關係就不太大,之後有機會的話再寫
以台大來說,財金要雙資管在學分上是蠻輕鬆的,大概只要多修40學分即可~
不過缺點也不少就是了
板友來信Q&A
Q1:報表自動化是看了什麼書才學會的?
我覺得這沒有什麼特定的書,畢竟資料源成千上萬
有的接爬蟲,有的接API,有的接內網sql
應該是需要用到的時候才去查怎麼做
不過整理資料的部份當然可以先學
我自己是用python的pandas、openpyxl
雖然我是不覺得沒有應用範例的話,直接學這些套件能記得住啦
所以應該先想看看自己想做出什麼報表,再慢慢查怎麼實現
如果非要說受到什麼讀物的啟發
可能是外商投行的Strategy Daily Report吧
雖然各家的圖表好像也就那些
但第一次看到的時候會覺得 原來某兩個資料這樣排還不錯!
例如:財報季後 「超出盈餘預期的百分比」跟「相對大盤表現百分比」的散佈圖
這張圖表沒看到報告前我是沒想過可以這樣呈現啦
Q2:推薦的課程(Investment Management with Python)對撰寫回測系統有幫助嗎?
課程內容參考下圖:
https://imgur.com/Sgg10fT
這門課程比較偏向Asset Allocation,可能對一般散戶投資比較不適合
裡面也是有簡單的回測code,但稱不上是系統,只是一些簡單的函數而已
我覺得整個回測系統應該是要考慮到策略開發跟資料抓取的部份,以便做對接
關於自己的回測系統怎麼寫,我覺得用中文找資料可能會很麻煩
資料真的很少也很零碎,建議還是用英文吧
如果本身英文能力不是很好,應該是不用為了這門課練習英文,收穫可能不大
這門課比較適合有投資學、統計學基礎 + 基本python語法的財金系學生
不太適合一般散戶投資