- Python量化交易
- 張楊飛
- 1890字
- 2019-09-23 11:07:11
1.8 寬客的3種職能分類
P宗與Q宗之爭在國內呈現出“P”強“Q”弱的局勢,大部分的量化投資者都集中在買方機構,其中又以私募為主。相對而言,在買方機構,寬客可以更好地根據其職能的不同來分類:量化IT工程師、量化研究員和量化交易員。
1.8.1 量化IT工程師
量化IT工程師(Quant Developer)是金融領域的“碼農”,隸屬于IT團隊,日常協助研究員、交易員解決編程技術難題,必須精通C++語言,并且運用C++語言搭建低延遲交易系統,對撮合機制、訂單類型、交易接口、市場微觀結構等有一定的理解。
相對于軟件業和互聯網行業的“碼農”,量化IT工程師更加純粹。一般意義上的“碼農”,做的工作重復度高,很多時候是從一種語言換到另一種語言,從一個框架換到另一個框架。而且,拋去技術本身就具有挑戰性,一個項目成敗的關鍵點往往與技術能力無關,需要緊貼市場潮流。社交軟件火了,扎堆于相關軟件的研發,輪到手游火了,又加班加點趕項目。同理,編程語言潮流日新月異,可能剛剛學會了Java,就有人開始鼓吹PHP,等“撲”過去后,卻發現已經是iOS的天下了。
量化IT工程師則僅依靠C++語言一路披荊斬棘就可以了,而且行業風向變化周期較長,有足夠的時間專研,例如追求更高效地利用CPU多進程、更高速的算法、更低的網絡延時等。而且,這種集金融學、數學、計算機科學等多種學科于一身的工作,對于沉迷于技術世界的人來說本身就有特別的吸引力。
自動化交易系統通常分三個模塊:交易策略模塊、事件驅動模塊、周邊支持模塊(比如網絡、操作系統、數據庫等)。交易越高頻,復雜度就往后兩個模塊傾斜;越低頻,復雜度就往第一個模塊加深。所以在高頻交易機構,量化IT工程師的作用會越發顯著。
1.8.2 量化研究員
量化研究員(Quant Researcher)會注重自動化交易系統的第一個模塊,即交易策略模塊。日常工作是維護已經運行的策略,并且開發新的策略。策略產生的交易信號容易失效,而且它的生命周期也是有限的,可能上半年是賺錢的,到了下半年卻不賺錢,因此對于已在實盤“跑”的策略需要經常調整參數。
而另一項任務就是研發新的策略,首先需要經過樣本內外的檢驗,一些關鍵指標,如夏普比率、年化收益和最大回撤都要達到要求,然后進行模擬盤測試,只有兩者表現出色,才可以在實盤上“跑”:開始是小資金測試,表現出色后慢慢擴大資金容量。
根據交易策略的類型確定資金容量。原則上是交易越高頻,資金容量越低。高頻交易策略的夏普比率可以達到喜人的十幾,但是其策略資金容量只有幾億元。雖然國債套利的年化收益較低,但其可管理的資金量是令人恐怖的。在相同交易頻率的策略中,最看重夏普比率。高的夏普比率意味著可以運用杠桿來放大收益。
在追求高夏普比率的同時需要注意避免過擬合。過擬合就是在建模時把歷史數據的噪聲也擬合進去了,這會造成盡管在歷史回測的時候效果很好,但是一上實盤就虧損。所以,有效地優化策略參數是判斷研究員是否優秀的重要標準。當前行業共識是線性模型要優于非線性模型,精英因子要優于巨型因子。
基于編程語言易學性和數據分析的需求,量化研究員一般會主攻Python、R、MATLAB等動態語言,并且需要一定的SQL基礎,若想往高頻交易方向發展,則要求懂C++語言。
1.8.3 量化交易員
國內絕大部分交易員只是接收客戶或基金經理的指令,在一定時間內,盡可能低買高賣或者分批操作來降低沖擊成本,因為只是執行,又叫執行交易員。根據證券品種不同,可以分為下面幾種交易員。
● 股票交易員:熟悉幾百個股票代碼,而且手要快,快速執行基金經理下達的指令。
● 債券基金交易員:由于債券市場并不是競價交易,能否成交、成交的價格更多地取決于交易員在銀行界和投資界的社會資源。
● 期貨交易員:聞得出盤面的氣味,一個建倉或平倉大單,十個人能做出十個價。
● 外匯宏觀交易員:具有深厚的經濟學功底,能夠以宏觀、估值、資金流等看得見、摸得著的因素揣摩市場方向。
交易員若得到基金經理的賞識,有管理一部分資金的權力,可在承擔一定風險的情況下通過主觀判斷或者量化策略得到超額收益。量化交易員(Quant trader)就屬于這種具有主觀決策權的交易員。量化交易員不僅要懂市場,而且需要有把交易思路轉換成代碼的能力,推薦語言也是Python語言。
一些策略的特性決定它只能半自動交易,如期貨差價套利和期權波動性套利,需要綜合考慮最新的信息,如新政策、基本面信息、歷史均值回歸數據等,在開盤前設置參數,盤中監視操作界面,當出現突發事件,也需要改成人工操作。
盡管從功能上看,量化交易員和量化研究員比較類似,但存在根本上的區別,量化交易員的本質是交易員,而量化研究員的本質是寬客。當然,他們的努力方向是相同的,都需要在統計學、數學、金融和編程多方面加深研究,通過多年水滴石穿的行業積累,逐漸把握住賺錢的本質。
- Learning Single:page Web Application Development
- Apache ZooKeeper Essentials
- Node.js Design Patterns
- Learning Spring 5.0
- Building a Home Security System with Raspberry Pi
- Python自動化運維快速入門(第2版)
- Unity 2020 Mobile Game Development
- Software Testing using Visual Studio 2012
- Python高級編程
- Symfony2 Essentials
- MySQL從入門到精通(軟件開發視頻大講堂)
- 區塊鏈技術與應用
- Mastering Git
- 基于SpringBoot實現:Java分布式中間件開發入門與實戰
- 時空數據建模及其應用