你可以将测试公式,及测试结果的不对地方,贴到论坛上。便于我们进行核实,发现问题并及时修正
2.87版就是为了修正2.75的众多测试BUG而升级
老版本在回撤连亏的计算上有些误差,所以最新版做了不少修改,
可否贴出来测试结果,并且标注出来2.87版何处的计算有错误,并且是正确的值是多少,便于我们核实修正。
在家减仓模式下,评测结果确实是错误的
相关代码如下:
测试1分钟K线
if date=currentdate then begin
nn:=openminutes(time);
if nn=1 then buy(1,1,market);
if nn=2 then buy(1,1,market);
if nn=3 then sell(1,1,market);
if nn=4 then sell(1,1,market);
end
代码的意思也顺便解释一下
在最后一天的1分钟K线,第一根买入1手,第二根再买入1手,第三根平仓1手,第四根再平1手
买卖明细如下(为了说明问题,手续费为0)
此主题相关图片如下:qq截图20120420152139.png
第一次平仓,收益为 2605.6-2606.3=-0.7 收益为 -210 (和金字塔的算法209.91 一致)
可是第二次平仓,金字塔的算法里,成本价变了 ? 这个为什么会变?
我们从另外一个来验证结果,金字塔算法的盈利为 -0.7 和 -1.4 ,共亏损2.1
就这2笔交易,别搞迭代计算,用简单的加减 平多价格-开多价格=5.6 +5 -6.2 -6.4 = 2 ,只是亏损 2 而已
金字塔的算法里亏损却增加了,怎么算也对不上。
最后一栏的资产也想不通
按照金字塔算法,第一次平仓亏损210 (0.7*300) 资产应该为 999790 ,怎么会是999580.06 ?
第二次平仓亏损420 (1.4*300) 资产应该为 999370 ,怎么回事999400.06 ?
此主题相关图片如下:qq截图20120420155723--------.png
终于知道金字塔的算法了,应该没错
在这里解释给大家听一下
第一次平仓
成本价=(2578.6+2577.8+2578.6)/3=2578.3333333
收益 =(2579.6-2578.333)*300=1.2666*300=379.98
资产 =1000000+379.98*3 =1001139.94
第二次平仓
成本价就是未平仓仓位的开仓价格平均值
成本价=(2577.8+2578.6)/2=2578.2
收益=(2579.8-2578.2)*300 =480
资产 = 上一次资产 + (本次价格 - 上一次资产计算时价格)*300*仓位=1001139.94+(2579.8- 2579.6)*300*2=1001139.94+120=1001259.94
第三次平仓
成本价就是未平仓仓位的开仓价格平均值,也就是最后一次开仓价格
成本价=2578.6
收益=(2579.4-2578.6)*300=240
资产=上一次资产 + (本次价格 - 上一次资产计算时价格)*300*仓位=1001259.94+(2579.4-2579.8)*300*1=1001259.94-0.4*300=1001139.94
至于那些尾数的误差,是计算机精度造成的,不是很重要了
2012-04-20 14:22:39.708 【图表】IF00 运行完毕
2012-04-20 14:22:39.709 【图表】IF00 运行完毕
2012-04-20 14:23:39.866 【图表】IF00 运行完毕
2012-04-20 14:23:39.866 【图表】IF00 运行完毕
2012-04-20 14:24:43.774 【图表】IF00 运行完毕
2012-04-20 14:24:43.774 【图表】IF00 运行完毕
2012-04-20 14:25:41.837 【图表】IF00 运行完毕
2012-04-20 14:25:41.838 【图表】IF00 运行完毕
2012-04-20 14:26:41.384 【图表】IF00 运行完毕
2012-04-20 14:26:41.385 【图表】IF00 运行完毕
2012-04-20 14:27:41.330 【图表】IF00 运行完毕
2012-04-20 14:27:41.330 【图表】IF00 运行完毕
2.87版。模拟图表测试。
上下两个框架,2个不同公式。
公式都开启仅刷新最后一根K线
上框架,14:25分有平仓信号,但未发单。
我的一个单策略测试时间不同,最大回撤也不同!
前一个是2012年1月1日到4月的份的,后一个是2010年4月16日到2012年4月份的,结果时间短的回撤大,而后一个时间包括了前面的期间,最大回撤反而小,这就不对了!