MONEYBL0:=0.20; //总最大使用x%资金
LOSSMAXONE:=0.015; //单次最大亏损x%资金
MARGIN1:=0.15;
UNIT:=5;//一个点多少钱
MONEY1:=TACCOUNT(19);
CWMAX:=MONEY1*MONEYBL0/(UNIT*CLOSE*MARGIN1);//最大使用MONEYBL0资金下最大可开手数。
BUY(CLOSE>OPEN,CWMAX,THISCLOSE);
SELL(CLOSE<OPEN,100%,THISCLOSE);
我用100万测试沪铜指数,用单步调试,可是为什么MONEY1总是0呢?请老师看看什么地方出错了?
另外,我用这样的代码控制开仓手数应该可以吧!谢谢老师!
TACCOUNT是帐户函数,不是你认为的资金100万
谢谢老师,那请问我如何在代码里取得可用资金呢?而且这种控制头寸的写法是否正确?谢谢老师!
用函数ASSET。
如果你要使用一定量的资金去最大限度开仓 无须这么麻烦。
举例你的初始资金100万
你想用50万去开仓,则你的开仓可以这么写
buy(cond,50%,thisclose);
谢谢老师,还有一个问题,我测试沪铜指数的时候,测试时间:1996/04/02 - 2012/08/26
为什么我在单步跟踪的时候总是从93/4/7开始,这个似乎不应该啊,无论我本地数据是从那个日期开始的,测试选那天开始,单步跟踪的起始日期就应该是哪天啊!
这是因为交易测评的公式很多时候是需要多一些历史数据才能得到结果,因此金字塔会自动的从你的计算机中自动多取一些数据,但是真正的测评是从你设置的日期开始进行的
谢谢老师,好吧,就按照您说的必须要多一些历史数据,但是如果实际操作一下单步就知道了,从单步开始到我测试的时间,我需要点击几百次才能正式开始第一次的测试,有没有简便方法能直接跳转到我指定的位置开始单步运行啊!这样会让人崩溃的!
此主题相关图片如下:未命名.jpg

看图,鼠标右键,直接选择执行到某一天的指定BAR上