tft每日頭條

 > 生活

 > 策略效果評估

策略效果評估

生活 更新时间:2024-06-26 09:23:53

策略評價與建立模拟


摘要

  • 評價策略回測的指标
  • 建立模拟交易
  • 未來函數
  • 運行過慢
  • 過拟合
  • 策略失效
  • 收益與風險的取舍
  • 自測與自學

  • 在學習了如何編寫策略後,我們将介紹下評價策略回測的指标,如何建立模拟交易,以及除回測之外還有哪些需要關注的方面。

策略回測指标

  • 如下圖,一個策略回測後會給出一些指标,可以在API文檔:風險指标查看這些指标的公式及基本說明。下文将補充介紹下幾個重要指标。

策略效果評估(策略評價與建立模拟)1

  • 策略收益。這是最基礎的指标,衡量回測期間策略收益率的。
  • 基準收益。基準默認是滬深300指數,所以此指标是回測期間基準收益率的。一般來說,基準收益代表市場整體的收益情況,所以如果策略收益長期低于基準收益,往往意味着策略是失敗的。通過set_benchmark()這個API可以自定義基準。
  • 年化收益率。年化收益率是一個衡量策略盈利能力的重要指标,越大越好。剛剛講的策略收益這個指标是和回測時間長短強相關的,比如一個普通策略運行10年肯定比優秀的策略跑半年策略收益高,但這樣就不利于比較策略的盈利能力。因此,通過數學方法,把策略收益統一互相化歸為一年時間的收益率,比如10年的變為平均每年的收益率,半年的變為以這半年盈利能力運行一年的收益率,如此一來,讓策略盈利能力在比較時有了一個大緻等同的時間标準。
  • 最大回撤率。最大回撤率是一個衡量策略風險的重要指标,越小越好。新手初見這個指标的時候可能會感到一點點的困難,其實這個指标是對應着一個很自然的想法的,比如,你現在要實盤用真錢去跟一個策略操作,而你現在是知道這個策略的過去一段時間的曆史收益曲線的,你覺得你的最大虧損率估計是多少?建議讀者自己随手畫下幾條曲線當做曆史收益曲線,思考下這個問題。一個經典的回答就是最大回撤率的含義,它的思路是這樣的,既然我們還在拿曆史數據做回測,說明我們應當還是相信曆史對未來有指導意義的,那麼我現在實盤用真錢去跟策略操作,接下來我們假設策略收益的未來走勢應當是跟曆史走勢相當的,曆史走勢有一直漲的時候,也有一直跌的時候,那麼我實盤跟策略最大虧損率應該就是,我剛開始跟策略就開始走的跟曆史走勢中一直跌的那一段那樣,而且是一直跌且跌的最多的那段,那麼曆史走勢中一直跌且跌的最多的那段跌跌了多少呢?用人眼一般很容易找到是哪段,而且聚寬的回測圖中也标出了,如下圖。不過不妨進一步思考下怎麼算出最大回撤率,然後看下文檔中的公式說明,看你的結果是否正确。當然,初學者知道最大回撤率越小越好可能就夠了,但有志者應該借機學習如何思考如何評估風險以及量化風險,因為難度相對不高。

策略效果評估(策略評價與建立模拟)2

  • 交易次數。交易次數其實是一個可以初步衡量策略回測結果是否可靠的指标,過少往往意味着回測結果不可靠。試想這樣一種情況,别人給你推薦一個策略,策略進行了10年曆史數據的回測,年化收益非常高,最大回撤非常小,你很高興,但仔細一看,交易次數隻有2次,此時,你願意用真金白銀去使用這個策略嗎?你難免會想可能隻是這2次操作運氣好而已,這樣的回測結果雖好但是不可信不可靠。其實這基于一個簡單統計學思想,樣本過少,則統計結果不可靠,所以足夠多的交易次數才能讓回測結果有說服力。目前,回測結果中不能直接看到交易次數了,可以通過回測結果頁面的其他指标中的盈利次數與虧損次數相加得到,也可以通過回測結果圖表下面的每日買賣大緻看出,位置如下圖。

策略效果評估(策略評價與建立模拟)3

  • Alpha(阿爾法)與Beta(貝塔)。在資本資産定價模型(CAPM)中,投資組合的收益被分為和市場系統風險相關與和市場系統風險無關的兩部分,而Beta與Alpha這兩個希臘字母則是該模型中的兩個重要系數,分别代表這相關部分與無關部分。其實策略持有的股票可以看成一個投資組合,基準收益作為市場系統收益,Beta則是代表相關部分的策略收益相對市場波動的倍率,如Beta為2則代表市場漲1%,相關部分的策略收益波動漲大概2%(統計意義上并非實時精确),beta為負數代表與市場反向變動。而Alpha則代表獨立于市場波動不受其影響的無關部分的策略收益,越大越好,所以如果策略年化收益為負但Alpha為正而且很大,說明策略有超過市場的盈利能力,不過策略整體盈利被與市場相關部分拉下來了。為了便于理解,Alpha與Beta的含義講的很粗暴,建議數理基礎不錯的有志者有空去自學下Alpha與Beta的構造思路與過程。
  • 夏普比率(Sharpe Ratio)。代表所承擔的單位風險所帶來的收益,越大越好。夏普比率是在資本資産定價模型進一步發展得來的,不展開講。

建立模拟交易

  • 之前講過回測是用曆史數據模拟執行策略,模拟交易是用未來的實際行情模拟執行策略,因此當策略完善的自以為差不多沒什麼問題時,建議建立一個模拟交易觀察一段時間,當作進一步的檢驗。建立的模拟交易的方法很簡單,點擊回測結果界面,如下圖,右上部紅色模拟交易按鈕,即可新建模拟交易。

策略效果評估(策略評價與建立模拟)4

  • 建立模拟交易成功後,點擊聚寬導航欄我的交易,可以看到創建的模拟交易,如下圖。

策略效果評估(策略評價與建立模拟)5

  • 點擊右邊的微信通知開關,将OFF調到ON,按照指示掃描二維碼,綁定微信,就能微信接收交易信号了。當策略買賣操作,微信會收到信号提醒類似下圖。自定義消息内容請看API send_message。

策略效果評估(策略評價與建立模拟)6

未來函數

  • 未來函數的前文講過,即指策略利用了曆史當時無法得到的信息,造成回測結果極大失真。未來函數排查方法一般是人工查看,重點看一切跟時間有關的地方,尤其注意各個API關于時間的默認處理方法。當然有時未來函數隐藏的很隐蔽,而更好但稍花時間的方法是用策略建立模拟交易,一般讓模拟交易運行幾天,多數未來函數問題都能被發現,因為模拟交易是不可能引入未來數據的,所以往往引入未來函數的策略無法成功運行模拟交易。
  • 需要注意的是有時同一個代碼的策略在模拟交易中是沒有引入未來函數的,而是在曆史回測中引入未來函數。此時會發現曆史回測結果很好,模拟交易也能正常運行,但回測結果是失真的,而模拟交易運行時間長了往往也與回測相去甚遠。一個具體的情況是,策略無意中引入了未來信息,導緻策略選的股票過去一年中漲的最好的股票買,那麼當然用過去一年做回測時效果會很好,但在模拟交易中可能就效果很差。
  • 一條判斷策略引入未來函數的經驗法則是,當你發現策略回測收益極高,回撤又極低,而且各個時間段表現都特别好,感覺自己發現了自動印鈔機式的交易策略時,則此策略大概率是引入未來函數了:)

運行過慢

  • 策略的運行效率也是需要關注的問題,盡管新手幾乎不會遇到,但需要簡單了解下,有個意識。有時策略比較複雜,計算量會很大,極端時可能會造成交易延遲,延誤買股票的時機,分鐘級策略尤其需要關注下耗時問題,而相關函數就是enable_profile() API文檔-性能分析
  • 用法就是把enable_profile()這行代碼複制粘貼放到策略代碼的第一行。然後你成功回測後可以在回測詳情頁面查看性能分析的結果,如下圖,從而可以查看哪行代碼耗時比較多,從而有目的性的去改進。

策略效果評估(策略評價與建立模拟)7

過拟合

  • 過拟合(overfitting)常用于描述這樣的情況。策略一般都有一些參數,如持股數量、交易頻率等,選擇不同的參數,固定的一份曆史數據下,策略的回測結果好壞也不同,人們往往會選回測結果最好的參數作為策略的參數使用,但随後若換了一份曆史數據(換一個時間段)做回測或随後用現實數據運行模拟或實盤,發現效果遠不如之前的回測結果,此時很可能策略的參數過拟合了,或說之前選回測結果最好的參數這一行為使參數過拟合了。當參數多的時候,更容易發生。
  • 過拟合的核心思想是,過度細緻的解讀樣本數據,從而沒有認識到本質的規律,從而使策略或系統失去了普适性,對原樣本數據表現極其優異,但對非原樣本數據外情況的有效性大大降低。
  • 一個關于幫助理解過拟合的比喻是,老師拿一個試卷(樣本數據)考學生(策略),學生成績不理想,老師要教學生(調整參數),此時老師不是教學生學科原理,而是教學生背試卷的答案(過度拟合),當然結果會導緻,當再考同一個試卷時學生肯定表現極度優異,但因為隻背了答案而沒理解原理,所以當換套題目或應用時學生就表現極差了。
  • 因此在選擇并優化策略的參數時,要考慮參數的魯棒性,即策略好壞對參數變化的敏感性。對于參數優化與選擇對應有複雜最優化理論與魯棒性測試,對初學者在此問題建議是,控制參數數量,多測幾組參數大緻看下參數變化對策略的影響,另外考慮進行樣本外測試,即用一份樣本數據回測挑選參數,用另一份樣本數據回測看選擇的參數在樣本外情況下表現如何。

策略失效

  • 策略一般是有時效的。當你的策略十分完善,并且模拟效果理想,實盤效果也很理想,不要以為策略就會像印鈔機一樣一直賺錢,策略可以失效的,比如當策略運行中出現曆史上罕見的情形時往往就要警惕了,比如最大回撤創曆史新高,策略收益率不再增加甚至減少等。如何判斷策略是否失效以及找出失效的原因并無通法,但策略失效的原因可能有以下幾種,可供參考。
  • 策略生效的邏輯基礎不再成立。比如策略的有效性是建立在漲跌停制度下的、或是建立在某行業不斷成長前提下的、或是建立在全球某資源持續稀缺前提下的等,當這些制度或前提不再成立,如制度調整、新政發布、科技進步等,那麼策略自然也就失效了。因此,理解策略有效的邏輯是十分重要的。
  • 操作資金量過大。更大的操作資金,會導緻更大的沖擊成本,即使買入時價更高、賣出時價更低,而當操作資金過大使市場流動性不足承載時,沖擊成本會極大的變高,大大降低利潤,甚至導緻虧損。所以策略是有資金容量的,建議逐步增大策略操作資金量。
  • 市場上運行的相似策略過多。同類相似的策略都想賺市場上的同一份錢,然而這份錢是有限的,所以這些策略彼此間會競争,導緻策略賺錢變難,甚至完全失效賺不到錢。具體的表現可能是要買的股票買不到、想賣的股票賣不到理想價位等。因此,交易行業是非常注意保密且不适合分享的行業,而有志者則要注重培養自學能力。
  • 市場出現了寄生策略。當你的策略被發現市場中的有心人發現并足夠程度的監測時,他可以寫出一個針對你策略的策略,從而寄生在你的策略上,比如在比你買之前買入,在你買後拉升股價後賣。這種針對你策略的寄生策略,往往會壓縮你策略的盈利空間,使策略失效。

收益與風險的取舍

  • 往往策略的收益能力與抗風險能力是互相制約不能兼顧的,兩者之間如何取舍建議是,達到基本的收益能力後,極力追求低風險,理由是盈利水平往往可以通過增加資金量來提高。具體的講就是,策略a是一個年化收益率300%,最大回撤率50%的策略,策略b是一個年化收益率30%,最大回撤率5%的策略,隻要給策略b提供相當于策略a的10倍的資金量,兩者盈利能力就是一樣的,但很難讓策略a有像策略b一樣的抗風險能力。

自測與自學

  • 嘗試下建立模拟以及用微信接收交易信号。
  • 到聚寬的策略擂台欄目看看他人的策略。
  • 策略成功回測後,體驗下歸因分析這個新功能,位置如圖。

策略效果評估(策略評價與建立模拟)8

策略效果評估(策略評價與建立模拟)9

策略效果評估(策略評價與建立模拟)10

策略效果評估(策略評價與建立模拟)11

策略效果評估(策略評價與建立模拟)12

策略效果評估(策略評價與建立模拟)13

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved