本帖最后由 技术009 于 2025-8-14 09:25 编辑
11楼的:
[PEL] 复制代码
n:=taccountcount;
for i=1 to n do
begin
id:=taccountindex(i);
//把id传入taccount2( , ) 读取指定的账户 字段值,这里暂时取总的权益,建议根据实际情况自行调整需要读取的值
动态权益:taccount2( 6,id);
下单资产:动态权益*0.05;//总资产的5%
//根据下单资产 作为资金量 计算下单手数 进行下单即可。
//假设是期货下单
marginratio:=taccount(41);//多头保证金比率. 这个要把合约信息设置里面的费率设置正确,否则函数取到的值可能是不对的。
bzj:=close*multiplier*marginratio;//一手保证金占用
ss1:=intpart(下单资产/(bzj));//根据资金zj计算的开仓手数
//针对指定账户id 对当前品种进行下单//这里使用了allowrepeat 来解除 单个K相同行下单语句只能执行一次的限制。但是相应的这里必须增加其他限制,否则会一直下单。
tbuy(ss1>0,ss1,mkt,0,0,id,''),allowrepeat;
end
这种用循环下单的务必要补充好其他限制条件,否则控制不好可能导致大量重复下单,建议先用模拟测试下效果 。
|