if (开仓额度+DYNAINFO( 56))/ASSET <仓位 then begin
buy(1,开仓额度/close);
end
//如果即将开仓的开仓额度+原有股票市值在总帐户额度的比例小于仓位,则开仓;反之大于仓位,则不开仓;
请问这段代码是不是函数没用对?
DYNAINFO( 56)
这种函数都不能在图表策略里面参与下单信号或者下单条件的,因为会影响到历史信号。这种动态函数只有最新值,这意味着你的策略在历史K上也都是这个总市值,而这显然是有问题的。
能的。不过你要的是限制到实际账号仓位的吧?
如果是这样那就要说明下:图表策略代码逻辑所限制仓位的是策略本身的虚拟持仓的仓位,这个虚拟持仓是从K线图上第一个K开始(加载的第一个K)到当前位置,根据一个虚拟资金以及你的策略代码执行的虚拟交易得出的交易结果。 所以它现在是这么个情况,假设图表策略里面做了仓位限制,不能持仓超过五手,现在最新K位置的虚拟持仓是2手,而实际持仓是4手。那么这种情况下后续开仓条件满足还是会开仓,最多开三手。也就是会基于虚拟持仓的仓位来实施仓位限制的。
目前后台程序化是直接操作实际账号的。