回台回测中,希望每次开仓的时候,如果账户金额大于历史最大账户金额的60%,则按历史最大账户金额的60%下单;
如果账户金额小于历史最大账户金额的60%,则按实际账户金额的60%下单;
请问如何写代码,谢谢
MarginRatio:=TACCOUNT(41);//多头保证金比率. 这个要把合约信息设置里面的费率设置正确,否则函数取到的值可能是不对的。
bzj:=Close*Multiplier*MarginRatio;//一手保证金占用
maxAsset:hhv(TASSET,0);
ss:=Intpart(0.6*maxAsset/(bzj));//按照历史最大资金百分比计算的开仓手数
if 开仓条件 then
begin
if TASSET>=0.6*maxAsset then tbuy(1,ss,MKT);
if TASSET<0.6*maxAsset then tbuy(1,60%,MKT),PERTRADER;//按照当前资金60%下单时候,不需要额外计算下下单手数,直接用百分比交易的函数就行了。
end
这样试下。上面是多头,空头也是一样的处理方式。