做精細(xì)化歷史測評時(shí)發(fā)現(xiàn)的幾個(gè)問題
作者:金字塔 來源:cxh99.com 發(fā)布時(shí)間:2021年09月01日
-
咨詢內(nèi)容:
我的精細(xì)化歷史測評的幾個(gè)參數(shù)設(shè)定:
前高位置:=peakbars(1,8,1);
前高價(jià):=ref(close,前高位置);
QianGaoDate:=ref(date+19000000,前高位置);
精細(xì)化歷史測評時(shí)間段:2020年4月15日-10月15日,測試品種247只股,按固定間隔60秒回測
測評結(jié)果看日志發(fā)現(xiàn)有如下幾個(gè)問題,前三個(gè)和
peakbars相關(guān),第4個(gè)是關(guān)于回測時(shí)的買入邏輯
:
1、剛開始產(chǎn)生符合判斷條件的交易的第一天內(nèi)發(fā)生peakbars取到的peakbars有問題,
案例:柏楚電子,6月30日判斷突破前高,但前高價(jià)
的賦值是
-1.#QO -1.#R%,
QianGaoDate的值是-1,不知道系統(tǒng)是取到哪天的值作為前高了,截圖如下:
此主題相關(guān)圖片如下:wx20201024-233032@2x.png
2、取到了前高的值,但基于前高日期查到的前高價(jià)和實(shí)際當(dāng)日的收盤價(jià)不一致。案例:天邑股份,6月30日突破5月21日的前高,前高價(jià)為27.067。但5月21日實(shí)際的收盤價(jià)是27.28。截圖如下:
此主題相關(guān)圖片如下:wx20201024-233402@2x.png
3、如果將
QianGaoDate命名為中文“前高日期”,
前高日期
:=ref(date+19000000,前高位置); msgout(1,numtostr(
前高日期,0)
會(huì)導(dǎo)致無法輸出,經(jīng)過幾次驗(yàn)證發(fā)現(xiàn),如果將中文的“
前高日期
”改為字母類型的名稱,比如
QianGaoDate,就不會(huì)出問題
4、做精細(xì)化歷史測評前我已經(jīng)補(bǔ)充了日線、1分鐘線、5分鐘線等主要數(shù)據(jù),買入條件是一旦突破前高,則以前高價(jià)、5日均線價(jià)格掛單買入。根據(jù)回測明細(xì)發(fā)現(xiàn),以
天邑股份為例,6月30日
當(dāng)股價(jià)突破前高價(jià)時(shí),當(dāng)前價(jià)格已經(jīng)高于5日均線26.482且之后也一直沒有回踩5日均線位置,但由于當(dāng)日開盤時(shí)曾經(jīng)跌破過5日均線,所以回測結(jié)果顯示5日均線價(jià)26.482的掛單也成交了。這在現(xiàn)實(shí)情況下是不可能發(fā)生的。按說我已經(jīng)補(bǔ)充了1分鐘和5分鐘的數(shù)據(jù),即便不依靠分筆數(shù)據(jù),系統(tǒng)也應(yīng)該可以判斷出不可能在5日均線價(jià)成交才對。天邑股份6月30日的分時(shí)圖截圖如下:
此主題相關(guān)圖片如下:圖片15a.png
?
?來源: www.kzuj.com.cn
-
金字塔客服:
完全的文字描述我們是無法幫助到你的,請將可以呈現(xiàn)問題的公式代碼一并貼出,并最好詳細(xì)闡述使用過程。部分的價(jià)格不同,建議看一下是否是復(fù)權(quán)問題產(chǎn)生的
?
-
用戶回復(fù):
經(jīng)過我排查發(fā)現(xiàn)出現(xiàn)前高價(jià)
的賦值=
-1.#QO -1.#R%這種詭異情況的原因是由于在我設(shè)定的回測時(shí)間段內(nèi)的當(dāng)前時(shí)間往前到回測起始時(shí)間peakbars(1,8,1)沒有找到符合條件的峰值。
例如以
柏楚電子為例
,我設(shè)定的精細(xì)化歷史評測時(shí)間段是2020年4月15日至2020年10月25日,當(dāng)前時(shí)間在2020年6月30日
在6月30日檢查peakbars(1,8,1), 由于在4月15日至6月30日這段時(shí)間內(nèi)沒有找到符合8%條件的峰值,導(dǎo)致peakbars(1,8,1)輸出了
-1.#QO -1.#R%,繼而導(dǎo)致我引用
ref(close,
peakbars(1,8,1)
)輸出了
-1.#QO -1.#R%
程序的這種邏輯我認(rèn)為是有漏洞的,雖然我指定了回測時(shí)間段是2020年4月30日開始,但是在計(jì)算peakbars指標(biāo)時(shí),
只要我本地下載的歷史數(shù)據(jù)足夠,
應(yīng)該以當(dāng)前時(shí)間往前找出符合條件的峰值位置,哪怕這個(gè)峰值位置是在4月30日之前。否則就會(huì)導(dǎo)致發(fā)生這樣的錯(cuò)誤
[此貼子已經(jīng)被作者于2020/10/29 12:11:38編輯過]
?
-
網(wǎng)友回復(fù):
回測是按時(shí)間段去判斷的,在這個(gè)時(shí)間段之前就算有數(shù)據(jù)也不會(huì)去參與計(jì)算,所以?peakbars 返回的就是一個(gè)空值
?
-
網(wǎng)友回復(fù):
這樣的規(guī)則設(shè)定不符合實(shí)際情況啊,我設(shè)置從4月15號開始回測,意味著從4月15號開始就需要開始尋找買點(diǎn)。而判斷是否4月15號有沒有買點(diǎn),是要基于4月15號之前若干天的歷史數(shù)據(jù)做判斷的。如果僅因?yàn)樵O(shè)置了從4月15號開始回測,就把4月15號之前的指標(biāo)輸出置空,那等于我實(shí)際的有效回測時(shí)間就不是從4月15號開始了