量化交易新手必看:回測策略的關鍵知識

土妹土妹
16粉絲
4 次觀看·2024年10月14日
《量化交易:如何建立自己的算法交易事業》第二期
hello 大家好
今天我們繼續來講如何建立自己的算法交易的事業這本書
今天的內容主要是講回測
因爲這本書之前已經跟我們講了很多
就是我們怎麼從網上去研究一下有哪些策略
找一找有什麼好的策略
怎麼識別這些策略之類的
然後當我們找到一個比較有潛力的策略的話
最主要的是對它進行回測
然後再對它進行一些調整
根據我們回測的結果
不停地去做一些微調做一些創新
然後讓它變成一個真正可以盈利的一個策略
所以這部分內容也是實戰中特別重要的
那我們就快開始吧
那首先我們在回測之前
先要看一下這個回測數據靠不靠譜
比如說回測數據會不會有一些常見的問題
比如說如果是這個股票經過分拆和股息調整的話
它的這個數據應該要調整的比較統一比較正確
所以我們首先要看一下股票的這個數據有沒有問題
然後第二個就是需要把存活偏差給考慮進去
就是一些業績比較差的股票可能早早就退市了
如果這個數據庫裏只有一些活下來的股票的話
那它就會有一些存活的偏差
那大部分的數據實際上都是有存活偏差的
沒有存活偏差的數據是很貴的
但我們需要把這個問題考慮在內
然後第三點它分享的一個心得就是說
很多時候我們最好用開盤價收盤價會比較靠譜一點
如果我們用日內的一個最高價和最低價的話
有時候經常會有很多的噪音
然後導致這個策略是會算出來有一些問題的
所以他建議我們用開盤價和收盤價去進行策略的計算
然後第四點的就是說
我們肯定要去查一下這數據有沒有問題
有沒有錯誤
然後他提供了一個比較快速的一個辦法
就是我們可以快速的計算一下
每日的收益有沒有不正常的值
如果每天的這個收益
它有哪天的這個收益值是特別偏離正常值的話
那可能他那幾天的數據就是有問題的
所以這是其中的一個辦法吧
當然我們數據都是需要做仔細的檢查
看這個數據有沒有什麼其他的一些問題
然後咱們做回撤呢
其實最主要我們要關注的是什麼東西
關注的指標是什麼
一個就是下譜比例
下譜比例的話是咱搞量化肯定是最關注的一個東西
那除了下譜比例以外
我們也會關心資金回撤
回撤的這個最長有多長時間
然後回撤的幅度最多會有多少
這些也都是我們特別關注的
因爲咱們做量化
一定要做一些比較穩定的一些交易策略
不能說你一下子賺很多一下子賺很少
這是肯定不行的
啊不對我這個說的有問題
就是說應該說一下子賺很多一下子虧很多
這種不穩定的策略是我們不應該考慮的
因爲做量化交易
我們一定要追求穩定的盈利
所以資金回撤是非常重要的一個指標
然後書中講到的一個小貼士
就是說當我們計算這個下譜比例的時候
如果我們這個策略
它不需要這個資金成本的話
那其實無風險利率也不需要去減掉
因爲在計算下譜比例的時候
我們是需要去α收益去減去β收益嘛
但是如果我們這個策略是不需要支付的話
其實可以不用減
比如說像貨幣中性策略的話
它其實已經考慮了這些因素
它這個是不需要支付資金成本的
所以是不需要去減去無風險利率的
然後書中跟咱們分享了這個數據回撤的時候
最常見的一些陷阱
最爲常見的就是前世偏差
這個其實大家真的不要小看
其實很不容易一不小心就踩坑了
一不小心你可能都沒有發現
就是其實你用了後面的數據
所以就是會有這個前世的偏差
也就是說你在今天
你不應該知道明天的事情
我們一定要知道這個數據是在什麼時刻
它是可以得到的
所以它可以得到的那個時間是非常重要的
然後我們不能在那個時間之前去用到這個數據
所以它是一個特別常見
也特別重要的一個偏差特別問題
比如說就是這是一個特別荒誕的一個策略
就是說你在每天的最低價的1%內買入股票
這個是不可能做到的一件事情
因爲在這一天結束之前
你根本不可能知道這一天的最低價是什麼
所以這個就是前世偏差的一個策略
是一個完全錯誤的策略
我們怎麼樣去檢查這個策略
它有沒有前世偏差呢
我們可以把歷史數據移除一部分
然後我們可以對着歷史數據和這個移除過的歷史數據
同時跑一遍這個策略
你看一下這個回色的結果是不是應該完全相同
因爲只要它沒有用到後面的數據
那去掉了一部分數據
應該對它的這個策略的運行是不應該受影響的
所以這是一個簡單的一個檢查的辦法
這個在實際的工作中可能是非常容易踩坑的一個坑
然後第二點就是數據遷就偏差
也就是我們經常說的過擬核
這個也是特別特別常見的
尤其在這個模型搞得很複雜
有很多參數的時候
我們就會變成遷就了一個歷史數據
它就變成一個過擬核的一個狀態了
其實本來來說我們一般在實際應用當中
只有近十年的數據才比較適合用來構建模型
因爲太早的數據它已經不太適應現在的市場了
所以一般來說我們不想要拿太久遠的數據
但是就是我們用更多的這個足夠多的回測數據
可以去減少過擬核的可能性
所以我們也是希望有儘可能多的大樣本的數據
這兩個是略微有些矛盾
那除了這個方面以外
就是最常見的辦法就是說叫樣本外測試
就是我們把歷史數據拿了一堆以後
一般來說正常的操作
我們都要把它分爲訓練級和測試級
然後其中測試級是隻能用於測試的
這是我們在進行策略微調的時候
一定要注意的一個問題
不能說爲了提高測試級的一個結果
我去調一個參數
這樣就是完全不對的
所以測試級是隻能用於測試的
其中作者是特別推崇這個仿真交易
就是模擬交易
就是我們在券商上面
比如說掛一個模擬賬戶
然後去進行交易
這樣的話比那個歷史回色的這個效果會更好
不過這裏面其實還有一個小坑
就是說咱們進行一個模擬交易的時候
其實交易成本里面這個市場衝擊的成本
其實是沒有辦法算在內的
我們也沒有辦法知道這個劃價會有多少
所以這個交易成本跟實際交易還是會有區別的
最主要的是我們自己買賣的這個行爲
會對這個市場造成一定的衝擊
就會有市場衝擊的這個成本
所以雖然模擬交易是非常非常好的一種回色的方法
但是離實際交易還是有一些差距
那最後一個是敏感性分析
所謂敏感性分析的話
就是說比如說咱們已經把一個策略已經調好了
各種參數各種什麼的
然後我們在回測的時候結果也非常好
那這個時候呢
如果我們稍微改動一下這個參數
它的結果不應該有太大的變化
如果有太大的變化的話
說明我們這個模型可能
這個參數選的還是有問題
或者說這個模型本身還是有些問題的
它對參數的這個調整是不應該太敏感
所以這個叫做敏感性分析
然後咱們繼續看
就說作者是特別推崇要簡化模型
就是隻要業績它沒有很顯著的降低的話
我們就應該儘量去移除
儘可能多的一些約束條件和參數
就是不要把模型越搞越複雜越搞越複雜
因爲咱們會情不自禁的把模型搞複雜
因爲爲了提高這個盈利
總是我們加了一些約束條件以後
可能在回測的結果比較好
但是回測的這個結果比較好
並不代表實際交易也會很好
往往能夠經得起時間考驗的
還是模型相對比較簡單的一些模型
所以作者認爲我們應該儘可能的去簡化模型
然後這張作者也重點跟咱們聊了一下
這個交易成本的一個問題
這個其實之前也跟大家聊過
就是有個策略它可能看起來非常好
它是那個下波比率非常高的
但是如果我們真的把交易成本算進去以後
可能就變得一點都不賺錢了
這個不僅僅是咱們平常看到這種佣金
或者說其他的一些費用
咱們也需要考慮這種流動性成本
滑點還有市場衝擊成本
尤其是如果咱們去交易一個小市值的一個股票
一些冷門的股票
它的流動性可能會大大低於你的想象
就正常來說
我們是不建議超過每天交易量的1%的
超過了1%的話
咱們的交易行爲會對這個股票的價格本身影響就太大了
你就變成做裝了對吧
但是呢有些冷門的股票
它可能交易的真的是很少
所以一不小心我們就會超過這個交易量的1%了
這對咱們獨立個人交易者來說也都是有可能的一件事情
所以也是需要去注意這個市場交易成衝擊成本的
然後滑點的話
就是說在我們決定要下單去購買這個股票
或者說賣出這個股票的時候
然後跟實際交易的這個金額之間的一個價差
就是有時候可能是咱們速度比較慢
然後它市場價格已經開始發生變化了等等
在實際的交易中就會存在這樣滑點的一個情況
那關於回色的內容就跟大家聊到這
如果大家有什麼想法的話
歡迎在評論區下方給我留言
我們一起來互動
如果你喜歡我的視頻的話
請幫我點個贊
我們下期再見
拜拜
