为理解金字塔程序化测试原理,用一个简单的破5日新高新低的系统来了解,为测试方便只编写多头系统。系统如下:
资产:ASSET,PRECISION0,NOAXIS,COLORFF00FF;
可用现金:CASH(0),PRECISION0,LINETHICK0;
持仓:HOLDING,LINETHICK0;
胜率:PERCENTWIN,LINETHICK0;
交易次数:TOTALTRADE,LINETHICK0;
bpk:=H>REF(HHV(H,5),1);
spk:=L0,HOLDING,market);
得出资产数,一手亏损19195元。对比信号图和资产变化数字,我发现asset这个返回的都是出信号的k线,下根开盘价来计算的资产变化数字,不考虑跳空的影响,近似于出信号的那根k线的收盘价,也就是asset这个是按照出信号的收盘价得出的测试结果,因为这个系统是破新高新低,所以指令价信号不会消失,用指令价格计算的结果最符合实盘,但是asset按照出信号的收盘价得出的测试结果,得出结论asset测试很不准确。采用另一方式来评测,利用菜单中的程序化交易评测来测试的话,这个测试方法与上面的第一种利用asset的测试结果原理完全一致,结果也是一致的。所以也与实盘指令价很不一致。请问各位高手,如何更好的利用指令价格来测试这个破新高新低的系统呢,也就是如何测试指令价不消失的交易系统。
测试时,类型可以用limitr 突破价格+/-N*MINDIFF 试试
条件下的limitr可靠性好些。
可以设定指定价,但设定指定价非常艺术,要非常小心,否则可能是自欺欺人。
符合实际,实盘能做到是设定指定价的基本要求。
资产:ASSET,PRECISION0,NOAXIS,COLORFF00FF;
可用现金:CASH(0),PRECISION0,LINETHICK0;
持仓:HOLDING,LINETHICK0;
胜率:PERCENTWIN,LINETHICK0;
交易次数:TOTALTRADE,LINETHICK0;
bpk:=H>REF(HHV(H,5),1);
spk:=L<ref(LLV(L,5),1);
BUY(bpk and HOLDING=0,1,limitr,max(O,REF(HHV(H,5),1))+3*mindiff);
SELL(spk and HOLDING>0,0,limitr,min(O,ref(LLV(L,5),1))-3*mindiff);
遇到上跳空,满足条件按开盘价+3*mindiff
或下跳空,满足条件按开盘价-3*mindiff
对于活跃品种,如胶等,可能实盘更好
但对于股指等较飘的,可能实盘更差
原来这样测试会更真,以前误导了