[轉] 量化策略風險控制
無庸置疑,在量化投資領域,交易中風險無處不在,無論是人工交易還是自動化的程序化交易,都必須要認真對待風險控制這一重要工作環(huán)節(jié)。量化交易中的風險多種多樣,大到市場行情的突變,超出現有策略模型的范疇,小到某部分實現代碼的隱藏BUG在特定情況下被觸發(fā),都可能隨時給交易系統帶來嚴重的損失甚至是災難。
單有事后風控顯然是不夠的,風險必須提前防范。怎么防范呢?筆者認為應該建立一套完整的量化交易體系,借助系統的力量來進行。
系統的力量,通常,成熟的量化交易者都講要建立自己的交易系統,符合個人交易風格的系統千人千面,但往往都有一個共同的點,強調執(zhí)行的紀律性,其中最最關鍵的部分其實說的就是風險控制。
很多人都有自己下廚做菜的經歷,個人感覺做飯是一項挺復雜的系統工程,尤其是前期的準備工作,費時費力,大廚的掌勺工作那部分到是考究天賦和技術的,工作量并不太大,但前期的準備工作量非常大,其中的切菜也是個危險活,做過飯的人應該有體會。
沒有做過飯的人至少應該都見過“切菜”吧,電視上還偶爾有廚藝比賽,其中一項就是比"刀工",如何把菜切得又漂亮,又方便烹飪,并且速度還要快,這確實不是一件容易的事,更可怕的是經常還會不小心切到手,我在這里告訴大家一個秘訣,可以保證你以后絕對不會切到手。
秘訣源自小時候奶奶的教導,切菜時,按住菜的手暴露在刀口下,是最危險的,但只要把四個指頭自然彎曲起來,指頭向下輕按住要切的菜,保持第二指節(jié)豎直向下,四個手指的第二指節(jié)會共同形成一個立面,然后刀背貼著這個立面上下運動,因為正常人的手指做這個動作后,指頭都會縮到這個立面遠離刀的一側,正好避開了刀鋒,這樣,無論你怎樣運刀如飛,都不會切到手指了。這就是系統的力量!不是靠你保持謹慎,專心致志地才能防范,那樣一旦忽視它就又會跳出導致破壞,而是通過精妙的設計,形成一個安全的"防火墻"系統,來確保系統整體是安全可控的。
資金層面的風險控制
從大的層面來講,資金層面的風險控制應該是第一位的,無論你用傳統的資金分配法構造投資組合也好,還是用Risk Parity方法來構造你的投組也好,都是從資金層面對風險進行宏觀的控制。在掘金量化交易平臺上,我們提供了帳戶資金分配層面的控制,一個交易策略組使用同一個或同一組帳戶(如股票+期貨),組內的每個量化交易策略是一個虛擬的子帳戶,各個策略可以進行獨立的資金量的控制,平臺會利用風控規(guī)則進行檢查,避免某個交易策略因為錯誤過多地使用了資金,從而避免的風險暴露的增加。
策略層面的風險控制
具體到策略層面,可以進行一些更為具體的風險控制,策略層面的風險控制可以是在策略內部實現的,也可能是實現在策略外部的,比如掘金量化交易平臺中的風控規(guī)則系統,就提供了各類常用的風控規(guī)則,這樣策略可以根據需要掛載,不同策略間也可以共用,避免了重復開發(fā)。
站在基金經理,或公司管理者層面來講,策略內部邏輯是一個具體而細節(jié)的東西,很多時候不太可能逐個去詳細核實檢查,這樣的工作量太大而且很難真正落到實處。 如果能從策略執(zhí)行的角度,在策略交易時進行事中的實時檢查,避免風險會更有現實的意義,掘金量化平臺就提供了實時的風控檢查機制,通過預先設定的各種風控規(guī)則來阻止意外的發(fā)生,例如,通過限制交易代碼、限制持倉量等措施避免策略因為各種原因產生的錯誤的交易指令發(fā)到柜臺,從而確保即使策略邏輯中出現了某種錯誤,其帶來的風險總體上仍然是可控的。
策略內部的風控
對于一個交易策略而言,其核心邏輯就是要在合適的時候發(fā)出“入場信號”和“出場信號”。 但不管怎樣調優(yōu),策略師也很難保證策略發(fā)出的每個信號都是正確的,只能通過一些輔助的手段來修正。 例如,根據歷史數據的回測結果設定某個條件下入場信號的贏利概率,根據這些數據對入場信號的交易量進行適當的控制,通過倉位的管理來增加贏面。
此外,入場信號在策略內部往往是一系列敏感信號過濾后的結果,具體來講,就是通過模型的一些條件邊界的設定,各個信號閥值的設定,模型內部經過邏輯處理后才最終發(fā)出的交易指令,這實際上就是在最后發(fā)出交易信號前進行了風險控制;此外,通常還會在策略內部設置了倉位的管理邏輯,通過逐步加倉、或者是第一個信號時只是試探性加倉,在趨勢回調時再趁機補倉,從而更好地控制持倉成本;
另外,策略內部往往還有止贏止損的“出場信號”, 常用的有固定的止贏或止損,例如,贏利10個點或虧損3個點就結束這次交易;也有移動的止贏,例如,當價格從最高點回落3個點后止贏,或者是價格穿過MA均線后再止贏,來爭取比固定止贏更多的贏利。
策略外部的風控
首先,風控邏輯是無法完全實現在策略內部的,策略本身是一個獨立完備的實體,但無論策略師怎樣努力,都無法避免一些錯誤,也無法完整地考慮到市場可能出現的所有情況,此外,策略的核心目的是為了賺錢,把所有的可能的情況完整地分析并實現在策略代碼邏輯中也基本上是不可能的,這樣的策略代碼會變得非常臃腫并且難以維護; 其次,很多風控的邏輯是相同的,如果把類似的代碼在不同的策略中復制粘貼也不是一個好的管理辦法,一方面浪費開發(fā)精力,另一方面也可能會導致一些不必要的錯誤。因此一些通用的、共性的策略風控邏輯應該獨立提取出來,以風控規(guī)則的形式來實現靈活的使用配置,根據不同的策略模型來選擇性地加載一些風控規(guī)則,可以靈活地調節(jié)風險控制與策略執(zhí)行效率的平衡。 最后,一些策略模型因為自身的特殊性,需要一些特殊的風險控制邏輯,可以單獨進行定制的風控規(guī)則開發(fā),然后掛到系統中,這樣能夠把策略邏輯和風險控制適當地隔離,從而獲得更好的贏利穩(wěn)定性。
與其在策略內部實現復雜的邏輯,不如在策略外部進行限制措施,確保一些對套利交易會造成傷害、現有策略邏輯下可能會發(fā)生的錯誤能在最后關口被阻止,以第三方的角度來控制策略風險,從這個意義上來講,策略外部的風控無論從實現成本還是客觀性上都更加地有意義。
單有事后風控顯然是不夠的,風險必須提前防范。怎么防范呢?筆者認為應該建立一套完整的量化交易體系,借助系統的力量來進行。
系統的力量,通常,成熟的量化交易者都講要建立自己的交易系統,符合個人交易風格的系統千人千面,但往往都有一個共同的點,強調執(zhí)行的紀律性,其中最最關鍵的部分其實說的就是風險控制。
很多人都有自己下廚做菜的經歷,個人感覺做飯是一項挺復雜的系統工程,尤其是前期的準備工作,費時費力,大廚的掌勺工作那部分到是考究天賦和技術的,工作量并不太大,但前期的準備工作量非常大,其中的切菜也是個危險活,做過飯的人應該有體會。
沒有做過飯的人至少應該都見過“切菜”吧,電視上還偶爾有廚藝比賽,其中一項就是比"刀工",如何把菜切得又漂亮,又方便烹飪,并且速度還要快,這確實不是一件容易的事,更可怕的是經常還會不小心切到手,我在這里告訴大家一個秘訣,可以保證你以后絕對不會切到手。
秘訣源自小時候奶奶的教導,切菜時,按住菜的手暴露在刀口下,是最危險的,但只要把四個指頭自然彎曲起來,指頭向下輕按住要切的菜,保持第二指節(jié)豎直向下,四個手指的第二指節(jié)會共同形成一個立面,然后刀背貼著這個立面上下運動,因為正常人的手指做這個動作后,指頭都會縮到這個立面遠離刀的一側,正好避開了刀鋒,這樣,無論你怎樣運刀如飛,都不會切到手指了。這就是系統的力量!不是靠你保持謹慎,專心致志地才能防范,那樣一旦忽視它就又會跳出導致破壞,而是通過精妙的設計,形成一個安全的"防火墻"系統,來確保系統整體是安全可控的。
資金層面的風險控制
從大的層面來講,資金層面的風險控制應該是第一位的,無論你用傳統的資金分配法構造投資組合也好,還是用Risk Parity方法來構造你的投組也好,都是從資金層面對風險進行宏觀的控制。在掘金量化交易平臺上,我們提供了帳戶資金分配層面的控制,一個交易策略組使用同一個或同一組帳戶(如股票+期貨),組內的每個量化交易策略是一個虛擬的子帳戶,各個策略可以進行獨立的資金量的控制,平臺會利用風控規(guī)則進行檢查,避免某個交易策略因為錯誤過多地使用了資金,從而避免的風險暴露的增加。
策略層面的風險控制
具體到策略層面,可以進行一些更為具體的風險控制,策略層面的風險控制可以是在策略內部實現的,也可能是實現在策略外部的,比如掘金量化交易平臺中的風控規(guī)則系統,就提供了各類常用的風控規(guī)則,這樣策略可以根據需要掛載,不同策略間也可以共用,避免了重復開發(fā)。
站在基金經理,或公司管理者層面來講,策略內部邏輯是一個具體而細節(jié)的東西,很多時候不太可能逐個去詳細核實檢查,這樣的工作量太大而且很難真正落到實處。 如果能從策略執(zhí)行的角度,在策略交易時進行事中的實時檢查,避免風險會更有現實的意義,掘金量化平臺就提供了實時的風控檢查機制,通過預先設定的各種風控規(guī)則來阻止意外的發(fā)生,例如,通過限制交易代碼、限制持倉量等措施避免策略因為各種原因產生的錯誤的交易指令發(fā)到柜臺,從而確保即使策略邏輯中出現了某種錯誤,其帶來的風險總體上仍然是可控的。
策略內部的風控
對于一個交易策略而言,其核心邏輯就是要在合適的時候發(fā)出“入場信號”和“出場信號”。 但不管怎樣調優(yōu),策略師也很難保證策略發(fā)出的每個信號都是正確的,只能通過一些輔助的手段來修正。 例如,根據歷史數據的回測結果設定某個條件下入場信號的贏利概率,根據這些數據對入場信號的交易量進行適當的控制,通過倉位的管理來增加贏面。
此外,入場信號在策略內部往往是一系列敏感信號過濾后的結果,具體來講,就是通過模型的一些條件邊界的設定,各個信號閥值的設定,模型內部經過邏輯處理后才最終發(fā)出的交易指令,這實際上就是在最后發(fā)出交易信號前進行了風險控制;此外,通常還會在策略內部設置了倉位的管理邏輯,通過逐步加倉、或者是第一個信號時只是試探性加倉,在趨勢回調時再趁機補倉,從而更好地控制持倉成本;
另外,策略內部往往還有止贏止損的“出場信號”, 常用的有固定的止贏或止損,例如,贏利10個點或虧損3個點就結束這次交易;也有移動的止贏,例如,當價格從最高點回落3個點后止贏,或者是價格穿過MA均線后再止贏,來爭取比固定止贏更多的贏利。
策略外部的風控
首先,風控邏輯是無法完全實現在策略內部的,策略本身是一個獨立完備的實體,但無論策略師怎樣努力,都無法避免一些錯誤,也無法完整地考慮到市場可能出現的所有情況,此外,策略的核心目的是為了賺錢,把所有的可能的情況完整地分析并實現在策略代碼邏輯中也基本上是不可能的,這樣的策略代碼會變得非常臃腫并且難以維護; 其次,很多風控的邏輯是相同的,如果把類似的代碼在不同的策略中復制粘貼也不是一個好的管理辦法,一方面浪費開發(fā)精力,另一方面也可能會導致一些不必要的錯誤。因此一些通用的、共性的策略風控邏輯應該獨立提取出來,以風控規(guī)則的形式來實現靈活的使用配置,根據不同的策略模型來選擇性地加載一些風控規(guī)則,可以靈活地調節(jié)風險控制與策略執(zhí)行效率的平衡。 最后,一些策略模型因為自身的特殊性,需要一些特殊的風險控制邏輯,可以單獨進行定制的風控規(guī)則開發(fā),然后掛到系統中,這樣能夠把策略邏輯和風險控制適當地隔離,從而獲得更好的贏利穩(wěn)定性。
與其在策略內部實現復雜的邏輯,不如在策略外部進行限制措施,確保一些對套利交易會造成傷害、現有策略邏輯下可能會發(fā)生的錯誤能在最后關口被阻止,以第三方的角度來控制策略風險,從這個意義上來講,策略外部的風控無論從實現成本還是客觀性上都更加地有意義。
第 1- 0 條, 共 0 條.
您需要 [注冊] 或 [登陸] 后才能發(fā)表點評