前言
相信最近一些小伙伴可能發(fā)現(xiàn)一些問題,就是同一個策略回測的結(jié)果好像跟之前不太一樣了蚕涤。?
回測效果貌似沒有之前好了筐赔。是記錯了嗎,是代碼被改了嗎揖铜?都不是茴丰,是我們回測的復(fù)權(quán)機(jī)制改了。
什么是復(fù)權(quán)
復(fù)權(quán)就是對股價和成交量進(jìn)行權(quán)息修復(fù)天吓,股票的實際價值沒有變贿肩,只是數(shù)量與價格變化了而已。如:原來20元的股票龄寞,十送十之后為10元汰规,但實際還是相當(dāng)于20元。從K線圖上看這個價位看似很低萄焦,但很可能就是一個歷史高位控轿。復(fù)權(quán)的作用是為了讓股價連續(xù)冤竹,消除價格、指標(biāo)的走勢畸變茬射。
常見的復(fù)權(quán)機(jī)制
1.前復(fù)權(quán)?
向前復(fù)權(quán)鹦蠕,就是保持現(xiàn)有價位不變,將以前的價格縮減在抛,將除權(quán)前的K線向下平移钟病,使圖形吻合,保持股價走勢的連續(xù)性刚梭。?
2.后復(fù)權(quán)?
向后復(fù)權(quán)肠阱,就是保持先前的價格不變,而將以后的價格增加朴读。上面的例子采用的就是向后復(fù)權(quán)屹徘。
回測里的復(fù)權(quán)機(jī)制
動態(tài)復(fù)權(quán)?
就是以策略回測當(dāng)前日期為基準(zhǔn)進(jìn)行前復(fù)權(quán)。目的是為了更貼近真實的交易環(huán)境衅金。?
前復(fù)權(quán)雖然修正了指標(biāo)的走勢畸變和價格斷層噪伊,但也損失了原始價格的原有的屬性。比如有些選股策略是挑選價格低的股票氮唯,這時候一些高送轉(zhuǎn)的股票就會被選中鉴吹,其實這些股票本應(yīng)不改入選的,只是前復(fù)權(quán)的機(jī)制讓他們之前的價格變低了惩琉。?
所以動態(tài)復(fù)權(quán)就是為了修復(fù)這些弊端豆励,以回測那天作為基準(zhǔn),進(jìn)行前復(fù)權(quán)瞒渠。以原始價格作為交易價格良蒸。舉個例子,?
平安銀行在2016-06-16做了一個分紅配股在孝,價格從10塊多變?yōu)?塊多诚啃,那么當(dāng)回測日期為2016-06-15日的時候,分紅配股這件事沒發(fā)生私沮, 那么2016-06-15該天價格還是10塊多不變始赎。當(dāng)回測日期走到2016-06-16這一天時,分紅配股發(fā)生仔燕,價格變?yōu)?塊多造垛,那么以2016-06-16為基準(zhǔn),則2016-06-15這天的價格為8塊多晰搀。五辽,即何時何刻,都以回測當(dāng)天作為基準(zhǔn)外恕,做的前復(fù)權(quán)杆逗。
京東量化的處理方式
所以在京東量化平臺上乡翅,我們具體修改的函數(shù)有:?
1.get_history 函數(shù)采用新的動態(tài)前復(fù)權(quán)計算價格;?
2.因為有的同學(xué)還是喜歡用前復(fù)權(quán)的數(shù)據(jù)罪郊,所以kline 函數(shù)依舊采用前復(fù)權(quán)蠕蚜,后續(xù)是否改成動態(tài)前復(fù)權(quán)看是否有需求。?
3.同時使用這兩個函數(shù)的要注意數(shù)據(jù)的區(qū)別悔橄,推薦采用get_history來獲取數(shù)據(jù)靶累。
影響:
可能會對回測的結(jié)果產(chǎn)生影響,回測收益下降癣疟。降低 模擬盤里猛如虎挣柬,一到實盤慫如鼠 的情況。
另外:
特別感謝QQ群里小金魚反饋的各種bug睛挚,送你一朵小紅花邪蛔。