小幫手好
繼續上面的交易不加[1],但是選股加[1]的問題
今天看XQ的FB剛好看到一個例子,也是我常在寫選股策略時的困擾
這篇我常用的選股策略系列之11~ K在低檔回升且外資投信同步買超
程式碼如下
settotalbar(100);
var:rsv1(0),k1(0),d1(0);
stochastic(9,3,3,rsv1,k1,d1);
condition1=k1 cross over 20;
value1=GetField("外資買賣超","D");
value2=GetField("投信買賣超","D");
condition2=value1>500 and value2>200;
if condition1 and condition2 then ret=1;
GetField("外資買賣超","D") 和 GetField("投信買賣超","D")都沒有加[1] 1. 這個跟小幫手上面給的建議好像不符 2. 當天的選股,要在盤後才能做選股,所以不加[1],是正確的 3. 回測時 (廣達、日線、20210105-20211107),系統也很聰明,會是隔天開盤進場 以廣達為例,我增加print指令,訊號出現日期為20210818,進場日為20210819
Print顯示的是訊號出現那天的數值,這樣也沒錯 20210818.000000 565.000000 20210818.000000
settotalbar(100);
var:rsv1(0),k1(0),d1(0);
stochastic(9,3,3,rsv1,k1,d1);
condition1=k1 cross over 20;
value1=GetField("外資買賣超","D");
value2=GetField("投信買賣超","D");
condition2=value1>500 and value2>200;
if condition1 and condition2 then begin
ret=1;
print(date, GetField("外資買賣超","D"),getfielddate("外資買賣超"));
end;
然而,同樣的程式碼,放到雷達,就好像有問題
同樣是日線,進場選逐筆的情況,不管選下期開盤價或是當期收盤價,通通都是2021/8/18進場
同樣是日線,進場無逐筆的情況,選當期收盤價,進場日期是8/18, 選下期開盤價,進場日期是8/19
問題就出現在策略為何會8/18進場?
用雷達print,採用逐筆的方式,可以比較清楚呈現,就是20210818當天回測時,投信買賣超資料是有出現的
就是說,盤中已經用了當天收盤後才應該有的數值做判斷,取用了未來值
而小編上面說的(下方),似乎並未發生
無值,對位錯誤 -> getfielddate會取得0。
無值,往前對位 -> getfielddate會取得前期日期
20210818.000000 91300.000000 565.000000 20210818.000000
20210818.000000 91400.000000 565.000000 20210818.000000
20210818.000000 91500.000000 565.000000 20210818.000000
20210818.000000 91600.000000 565.000000 20210818.000000
20210818.000000 91700.000000 565.000000 20210818.000000
20210818.000000 91800.000000 565.000000 20210818.000000
20210818.000000 91900.000000 565.000000 20210818.000000
20210818.000000 92000.000000 565.000000 20210818.000000
20210818.000000 92100.000000 565.000000 20210818.000000
20210818.000000 92200.000000 565.000000 20210818.000000
20210818.000000 92300.000000 565.000000 20210818.000000
20210818.000000 92400.000000 565.000000 20210818.000000
以今天這樣回測,我也才注意到選股的回測會自動隔天進場
而雷達模組如果用到盤後資料,是需要人工選隔天,且進場還不能選逐筆,這個不知貴公司是否有提供這樣的說明?
或是在選股模組不加[1],但放到雷達要加[1],這樣才能保持回測的一致性
但我覺得,不管如何選,回測時能取用到未來值,這就是本身系統的bug問題
消費者肯定不會預期到,自己竟然會取用到未來值,系統應該要能判斷啊,不是嗎?
當然啦,要公司修這這一問題,我想是很難的,牽涉太廣
但建議
1. XQ能在有關盤後數據說明那,提供更清楚的警示說明
2. 或可有個防呆視窗通知,在使用盤後資料回測時,提醒無法選逐筆跟當期收盤,或甚至自動不給選
不然,真的會發生回測是聖杯,上線變靠北了
最後,還有個建議,希望貴公司也能考慮獎勵下討論區發掘出bug的網友,咱們花錢買模組,是要開發策略,
不是在幫貴公司debug的啊,常常為了bug,花一堆時間去確認,好歹也給些點數,可以換取月租減免吧
不然真的唉.........
9 評論