MA1:=MA(CLOSE,120);
CONDB:=CROSS(CLOSE,MA1);
BUY(CONDB,1,THISCLOSE);
CONDS:=CROSS(MA1,CLOSE);
SELL(CONDS,100%,THISCLOSE);
ZiChan:=CASH(0),NOAXIS;
IF BARPOS=1 THEN
BEGIN
MaxAsSet:=ZiChan;
MaxHuiChe:=0;
FirstZiChan:=ZiChan;
END
IF ZiChan>MaxAsset THEN MaxAsset:=ZiChan;
IF MaxAsset-ZiChan>MaxHuiChe THEN MaxHuiChe:=MaxAsset-ZiChan;
交易次数:TOTALTRADE,LINETHICK0;
胜率:PERCENTWIN,LINETHICK0;
盈利率:(ZiChan-FirstZiChan)/FirstZiChan*100,LINETHICK0;
最大回撤率:MaxHuiChe/MaxAsset*100,LINETHICK0;
最大连亏次数:MAXSEQLOSS,LINETHICK0;
最大连盈次数:MAXSEQWIN,LINETHICK0;
做了一个简单的模型,然后统计沪铜指数上市第一天到2012.09.09号的日线数据,从k线图界面上的统计结果,胜率、盈利率、交易次数和最大回撤率都和策略测试中的有误差,我的费率设置,保证金设置都是一样的。我当时以为是CASH(0)的问题,我换成了AsSet,可还是不一致。请老师看看是怎么回事?谢谢!
[此贴子已经被作者于2012-9-9 8:27:14编辑过]
将测评报告中的成交明细导出来,然后再与图表上的交易信号挨个对比,看看问题具体出在什么地方
为了方便比较,我把代码改了一下,然后测试沪铜指数,月线:MA1:MA(CLOSE,100);
CONDB:=REF(CROSS(CLOSE,MA1),1) AND CLOSE>MA1;
BUY(CONDB,1,THISCLOSE);
CONDS:=CROSS(MA1,CLOSE);
SELL(CONDS,100%,THISCLOSE);
ZiChan:=CASH(0),NOAXIS;
IF BARPOS=1 THEN
BEGIN
MaxAsSet:=ZiChan;
MaxHuiChe:=0;
FirstZiChan:=ZiChan;
END
IF ZiChan>MaxAsset THEN MaxAsset:=ZiChan;
IF MaxAsset-ZiChan>MaxHuiChe THEN MaxHuiChe:=MaxAsset-ZiChan;
交易次数:TOTALTRADE,LINETHICK0;
胜率:PERCENTWIN,LINETHICK0;
盈利率:(ZiChan-FirstZiChan)/FirstZiChan*100,LINETHICK0;
最大回撤率:MaxHuiChe/MaxAsset*100,LINETHICK0;
最大连亏次数:MAXSEQLOSS,LINETHICK0;
最大连盈次数:MAXSEQWIN,LINETHICK0;
测试沪铜指数月线:用策略测试是2次交易。而加载到图上根本就不对!请老师看一下吧!
[此贴子已经被作者于2012-9-9 9:39:58编辑过]
加载到图上也是2次,与测试一致,见下图。

此主题相关图片如下:qq截图20120909114604.jpg

有误差是正常的。根据你最大回撤的定义:
IF MaxAsset-ZiChan>MaxHuiChe 但是,此时的资产是以close的价位核定的,而不是以此根K线上最不利你单子的价格去核定,与金字塔测试中的定义不符。
以下链接为金字塔测试报告中各名词的详细解释。请参考此文档中的解释,在一致的统计口径下,若有明显的差错,欢迎提意见。
http://www.weistock.com/WeisoftHelp/jiaoyiceshibaogaoshuyuxiangjie.htm
感谢老师的解答。
但是我在出场规则中没有勾选任何项目,费用等也都是一样的。
然后选择结束时计算平仓收益。
其他的都一致(不一致是因为最后一次强制平仓造成的,把这个加上,胜率,交易次数就相等了),但是就是利润率不一样,把最后一次算上也不一样。
策略测试的利润率是0.14%,而k线图上显示的盈利率是0.107%。
我的口径都是一样的,也是按收盘价平仓计算的,可是还是有误差。麻烦老师看看是怎么回事!我实在是弄不清了。虽然只差一点点,但是这也是一手,而且就只交易了一次,如果放大,误差是就大了。
MID : MA(CLOSE,100);
CONDBK:=CROSS(CLOSE,MID);
CONDSPQ:=CROSS(MID,CLOSE);
//资金管理
MONEYBL0:=0.5; //总最大使用x%资金
MARGIN1:=0.15;
UNIT:=multiplier;//一个点多少钱
MONEY1:=ASSET; //作为模型使用
CWMAX:=MONEY1*MONEYBL0/(UNIT*CLOSE*MARGIN1);//最大使用MONEYBL0资金下最大可开手数。
BUY(CONDBK AND STATE=0 AND CWMAX>=1,CWMAX,THISCLOSE);
SELL(CONDSPQ AND STATE=1,100%,THISCLOSE);
//用于反转k线统计
ZiChan:=ASSET,NOAXIS;
IF BARPOS=1 THEN
BEGIN
MaxAsSet:=ZiChan;
MaxHuiChe:=0;
FirstZiChan:=ZiChan;
END
IF ZiChan>MaxAsset THEN MaxAsset:=ZiChan;
IF MaxAsset-ZiChan>MaxHuiChe THEN MaxHuiChe:=MaxAsset-ZiChan;
交易次数:TOTALTRADE,LINETHICK0;
胜率:PERCENTWIN,LINETHICK0;
盈利率:(ZiChan-FirstZiChan)/FirstZiChan*100,LINETHICK0;
最大回撤率:MaxHuiChe/MaxAsset*100,LINETHICK0;
最大连亏次数:MAXSEQLOSS,LINETHICK0;
最大连盈次数:MAXSEQWIN,LINETHICK0;
用以上代码进行测试,沪铜指数,月线图。还有是误差啊,麻烦jinzhe老师抽空在看看!万分感激!

此主题相关图片如下:未命名.jpg

非常感谢
jinzhe
老师的多次帮助,给您造成的不便实在抱歉。可是还是有问题,我将手续费全都设置为0,用沪铜指数,周线测试,还是有误差。实在找不到问题在哪里了。还要麻烦
jinzhe 老师在给看看。非常感谢!

此主题相关图片如下:1.jpg


此主题相关图片如下:2.jpg