等级: 专业版
- 注册:
- 2022-1-11
- 曾用名:
|
我用下面的代码计算下单手数,遇到的疑惑是:输出SF05 一手保证金是4284,两手应该是4284*2=8568,为什么在金字塔软件里实际是17860,如图所示。能帮忙解释一下原因吗?
资金量:=TACCOUNT(6);
MarginRatio:=TACCOUNT(41);//多头保证金比率
bzj:=Close*Multiplier*MarginRatio;//一手保证金占用
ss1:=INTPART(资金量*0.01/(bzj));//根据资金的1%计算的开仓手数,向上舍入
//ss1可能会有计算出为0 的情况,而恰好为手数参数为0在函数中是满仓开的含义。因此再次处理下,当ss1为0情况下默认按下一手处理。
手数:if(ss1>0,ss1,1);
DEBUGFILE('D:\CESHI.TXT',stklabel+'资金量:%.2f',资金量);
DEBUGFILE('D:\CESHI.TXT',stklabel+'保证金比率:%.2f',MarginRatio);
DEBUGFILE('D:\CESHI.TXT',stklabel+'一手保证金:%.2f',bzj);
DEBUGFILE('D:\CESHI.TXT',stklabel+'可开手数:%.2f',ss1);
2023-08-31 10:09:02.631 SF05资金量:1120519.46
2023-08-31 10:09:02.631 SF05保证金比率:0.12
2023-08-31 10:09:02.631 SF05一手保证金:4284.00
2023-08-31 10:09:02.631 SF05可开手数:2.00
|
|