//本策略的意图是 买多一手,卖空一手,同步慢慢增加到买多持仓10手,卖空持仓10手
//然后再平多一手,平空一手,直到没有持仓为止
//过程中必须保证买多持仓和卖空持仓的敞口最多为1手
VARIABLE:HOLDINGMAX=10; //定义最大手数
VARIABLE:TBUYNUM=0; //定义买多持仓数
VARIABLE:TSELLNUM=0; //定义卖空持仓数
IF TIME>093500 AND TIME<143000 THEN
BEGIN
REPEAT //重复开仓,追仓的动作
BEGIN
TBUY(1,1,LMT,DYNAINFO(28)); //同时开多,开空
TSELL(1,1,LMT,DYNAINFO(34));
TCANCEL(1 ,0 ); //无条件撤销所有方向的未成交合约
TBUYNUM:=TBUYHOLDING(1); //查看现有持仓
TSELLNUM:=TSELLHOLDING(1);
REPEAT //如果缺退,一直追仓,直到多空仓位相等未知
BEGIN
IF TBUYNUM<>TSELLNUM THEN //如果买多持仓数不等于卖空持仓数,追单
BEGIN
IF TBUYNUM<TSELLNUM THEN
BEGIN
TBUY(1,1,LMT,DYNAINFO(28));
END
ELSE
BEGIN
TSELL(1,1,LMT,DYNAINFO(34));
END
END
TCANCEL(1 ,0 ); //无条件撤销所有方向的未成交合约
END
UNTIL TBUYNUM=TSELLNUM
TCANCEL(1 ,0 ); //无条件撤销所有方向的未成交合约
END
UNTIL TBUYNUM=TSELLNUM AND TBUYNUM=HOLDINGMAX //直到多头持仓和空头持仓都等于最大允许持仓数
REPEAT //重复平仓,追平仓的动作
BEGIN
TBUYSHORT(1,1,LMT,DYNAINFO(28)); //同时平多,平空
TSELLSHORT(1,1,LMT,DYNAINFO(34));
TCANCEL(1 ,0 ); //无条件撤销所有方向的未成交合约
TBUYNUM:=TBUYHOLDING(1); //查看现有持仓
TSELLNUM:=TSELLHOLDING(1);
REPEAT //如果缺退,一直追平仓,直到多空仓位相等未知
BEGIN
IF TBUYNUM<>TSELLNUM THEN //如果买多持仓数不等于卖空持仓数,追平单
BEGIN
IF TBUYNUM<TSELLNUM THEN
BEGIN
TBUYSHORT(1,1,LMT,DYNAINFO(28));
END
ELSE
BEGIN
TSELLSHORT(1,1,LMT,DYNAINFO(34));
END
END
TCANCEL(1 ,0 ); //无条件撤销所有方向的未成交合约
END
UNTIL TBUYNUM=TSELLNUM
TCANCEL(1 ,0 ); //无条件撤销所有方向的未成交合约
END
UNTIL TBUYNUM=TSELLNUM AND TBUYNUM=0 //直到多头持仓和空头持仓都等于最大允许持仓数
END
这个策略,编写好了,编译公式的时候,提示,语句末尾缺少分号,但是我检查了好几次,没有缺少,请您帮我编译一下,查找一下问题,谢谢