该范例使用3.9BEAT2版本新增的若干后台交易函数对指定账户做全平操作
注意:由于后台的工作特殊性,每个监控品种都会扫描执行,如果要执行下面的全平操作,只要监控一个品种就好了。
//只在最后周期有效,防止逐K线模式前面K线刷新进入,可以提高效率。对序列模式不影响。
IF NOT(ISLASTBAR) THEN
EXIT;
//取得当前活动账户的总持仓品种数量
HC:=THOLDCOUNT('');
//MSGOUT(1,NUMTOSTR(HC,0));
//循环取得持仓
FOR I = 1 TO HC do
BEGIN
//获取第I个序号的账户持仓品种代码
HLABEL:= THOLDINDEXLABEL(I,'');
//MSGOUT(1,HLABEL);
//取该品种多仓数量,然后平仓
THC:=TBUYHOLDINGEX('' ,HLABEL,1);
//MSGOUT(1,'buyholdig'&NUMTOSTR(THC,0));
TSELL(THC>0,THC,MKT,0,0,'',HLABEL),ALLOWREPEAT;
//取空仓数量,然后平仓
THC:=TSELLHOLDINGEX('' ,HLABEL,1);
//MSGOUT(1,'sellholdig'&NUMTOSTR(THC,0));
TSELLSHORT(THC>0,THC,MKT,0,0,'',HLABEL),ALLOWREPEAT;
END
建议增加一个取得每个品种持仓方向的保证金函数,这样才能计算轧差保证金,隔夜仓的风险控制,有时候是用轧差保证金来计算的。