『多因子』多因子模型水平測試題(強答下 )
本文是多因子模型水平測試題最後一部分,說的不對的地方還請多指正。作者:call (知乎@李白 )
組合構建
1. 利用多因子模型進行選股,求解每期股票權重的問題本質上是一個帶約束的最優化問題,請闡述優化目標和約束條件各是什麼?
2. 組合優化有哪些常見方法?各要注意什麼問題?二次規劃
3. 股票組合中個股權重上限的設計有什麼技巧?大約應設置在什麼範圍?【個股權重不能太大,否則只會集中買入每個行業預期收益最高的股票;也不能太小,否則可能出現某個行業內所有股票都持倉至上限也無法達到行業中性。參考值:2%~3%,應根據實際情況調整取值】
答案如題
4. 是否要根據個股的交易量來限制個股權重的上限?
需要,在優化條件中加入這一限制5. 如何預估市場衝擊?
Breens Equity Liquidity; Lillos price-impact function; Almgrens equity cost model; Kyles lambda;
6. 是否可以(大概)控制每個版塊的持倉個股數?如何做?【參考方法:股權重上限為它所處行業在滬深300(或其他基準)中佔比除以希望持倉的個股數】
題中參考方法即可,也需要考慮板塊個股數目很少的情況7. 建立選股模型時,如何控制行業中性、市值中性(或其他條件)?
這個和策略的側重點相關,可以選擇把行業因子和市值因子中性掉,也可以選擇暴露一部分8. 建立選股模型時,如何處理交易成本、股票停牌等問題?如何計買入、賣出價?
停牌時可以以行業漲跌幅計;或者以歷史回歸beta計算停牌漲跌9. 純多頭約束對組合構建的影響不止是少了一半的獲利機會,這句話怎樣理解
多因子模型本質上是統計套利模型,純多頭約束除了導致少了空頭收益之外,也會導致你多了一份風險
10. 純多頭股票組合策略應選擇怎樣的指數作為基準?滬深300、中證500、中證800?各有什麼利弊?
不同指數對應於不同的一籃子股票,有著不同的大小盤、行業風格;滬深300偏向大盤;選擇基準需要考慮到你的策略因子的實際邏輯;實際上,這個可以通過回測結果看出來11. 應該每日調整頭寸,還是更低的頻率,例如每月,抑或每次財報集中發布之後?
應該從因子邏輯和回測結果出發,選擇合適的調倉頻率12. 多因子模型回測過程中,是否應對個股特別設立平倉與開倉條件(即對多因子的結果進行修正)?如何做?
設置平倉線,可以免去極端個股走勢對於策略的影響;既然是回測,那麼可以很容易看出來這個影響有多大,然後綜合設置實盤
1. 新策略從提出到開發,再到上線的流程中,歷史回測(back-test)、實時模擬(paper-trading)和實盤交易(real-money)的關鍵差異何在,各自的優劣何在?
歷史回測是為了驗證想法,可以多參數驗證;實時模擬和實盤交易其實差別不大,如果你的模擬系統能夠非常貼近實際交易的話;實盤交易中,可能需要長時間的跟蹤才能確定你的模型是否有效。
2. 如何檢測你的模型是否已經失效?模型因子是否需要定期重選?
因子是否失效取決於因子計算的邏輯;定期重選就是現在很火的多因子輪動策略
3. 實盤中一個歷史回測、實時模擬業績都很好的策略發生了異常回撤,問題可能出在什麼地方?應急預案是什麼?
市場風格變換,政策影響等等
4. 如何設計資料庫表結構來記錄實盤交易流水和每日資產明細?
記錄翔實即可
5. 在實盤交易中,模型給出的交易指令常常不能被精確地執行,如何評估其影響?
最簡單地,分情況做歷史統計,看統計意義上對結果影響是否顯著
數據
1. 基本信息、行情、基本面等基礎資料庫的表結構應該怎樣設計?出於怎樣的考慮?
基於數據頻度等特徵設計合理資料庫表結構
2. 選擇Mysql、SQL及其它資料庫管理系統的利弊?
是否收費和性能好壞
3. 常見的數據來源有哪些,數據提供商有哪些,各有哪些優劣?
Tushare、優礦 免費
通聯數據 便宜、服務好
國泰安 財務數據質量高
Wind 數據全
4. 用網頁抓取生成的數據源的利弊?
利:免費的,弊:臟數據、不穩定
5. 如何支持多數據源?
自定義數據相關api
6. 每個數據具有三個關鍵日期,數據日期、公告日期、錄入日期。對於不同類型的數據項,上述三個關鍵日期之間的時滯情況不同,請對不同情況分別舉例。資料庫應怎樣設計以全息保存三種關鍵日期,並使歷史回測結果更加逼真?
使用公告日期
7. 行業分類數據選用哪家的好?
自己做最好,做不來用申萬行業或者中證行業
8. 發現一隻股票的某個財務數據異常,怎樣找到真值?
讀財報檢查
9. 如何記錄基礎數據的勘誤歷史?
以錯誤類型分門別類
10. 怎麼進行數據清洗?擁有哪些異常行為的股票應該列入黑名單?
不同類型的數據,需要不同的清洗方法
程序
1. 分析程序用MATLAB、Python、R、C++等語言各自的利弊?哪種背景和需求的人應該選擇哪種語言?
MATALAB、Python、R做為前期模型研究的語言效率足夠,也方便很多。C++在高頻等性能要求比較高的地方有用武之地。簡單來說,一般多因子研究,不需要踩C++這個坑吧
2. 10年歷史回測,數據量大約是多少,運算量大約是多少?怎樣的內存不會溢出?
只是行情財報數據,大概也就幾個G的量級了,要是加上算好的成百上千的因子數據,可能會多一點。內存不夠可以買啊,我司作為一個公益項目滿足用戶的所有幻想。
3. 面向過程的架構vs面向對象架構來實現多因子模型各有什麼利弊?
兩種都可以做。面向過程架構比較簡單粗暴,但是靈活度不夠、做更新時容易牽一髮動全身;面向對象則需要計劃好架構,這一步可能比較難,但完成之後的寫程序就相對來說方便點,調試等等也要方便不少。
綜合
1. 股票市場是否存在alpha,怎樣驗證?
存在,不然那麼多韭菜,誰來割
2. 傳統的基本面投資方法與多因子模型都是為了得到股票組合,他們的異同是什麼?
傳統基本面投資和多因子模型,在選股方面並無本質區別。基本面的選股可以對行業和股票進行非常精細地研究;多因子模型優點在廣度,另外對於各類風險有很系統的展示。
3. 多因子回歸模型與CAPM理論和APT理論的關係是什麼?
CAPM和APT出發點不一樣,多因子模型更多地來自於APT理論
4. 一般的選股模型可以達到多少年化收益率和夏普比率?
拋開風險談收益都是耍流氓,夏普比也不是一個好的衡量選股模型的指標,個人認為信息比率可能更加合理。以MultiFactors Alpha Model為例,過去七年回測年化阿爾法達到27%,夏普比才只有0.92,但是信息比達到3.79。
5. 在多因子模型的構造過程中,最核心的一個環節是什麼?【我認為是預測收益率,也許有人認為是風險(跟蹤誤差)控制】
最核心的是預測收益率,最重要的是基礎數據質量
6. 不同交易頻率的組合投資策略——日內(高頻、中頻、低頻)、日頻、中期、長期,其對應的多因子模型有哪些不同?
最重要的區別當然是速度,日內高頻的策略,如果因子計算依賴不好或者計算太慢,就沒法做。很少見到有用多因子模型做日內高頻
7. 為什麼同樣的策略,不同的執行者之間會存在無法抹去的誤差(為什麼你無法複製另一個人的研究報告成果)?
無法複製另一個人的研究報告成果,排除基礎數據不一樣這種技術原因,大部分都是因為研究報告根本沒告訴你細節
8. 一般來說,多因子模型對數據敏感性很強,那麼它的結果還有參考意義嗎?
有
9. 多因子模型作為一個如此成熟的策略,為什麼還有前仆後繼的研究者?
個人覺得,多因子模型更多時候不是策略,而是產生策略的一套流程框架,作為策略的多因子模型其關鍵在於因子的研究
10. 基於多因子模型的策略收益沒有吸引力,從業者眾多,是夕陽產業嗎?年輕人學習多因子模型是否值得?
擔一份風險,博一份收益,多因子策略的絕對收益確實沒有吸引力,但是重在風險控制。風險控制的好,規模做上去,還會沒有吸引力嗎11. 機器學習、人工智慧的工具可以應用到多因子模型的哪些地方?
具體的沒有涉獵,這些工具在做多因子輪動策略時候可能會有用武之地多因子相關文章推薦:
MultiFactors Alpha Model - 基於因子IC的多因子合成
AlphaHorizon介紹 - 以非流動性因子ILLIQ為例
Quartz 1.x - 因子分析模板
非流動性因子ILLIQ - 尋找市場對弱流動性的收益補償
量價因子 - 結合價格和成交量構建選股策略
追蹤聰明錢 - A股市場交易的微觀結構初探
推薦閱讀: