IF TSELLHOLDINGEX('','',2)>=空头开仓数 AND TSELLHOLDINGEX('','',1)<空头开仓数 THEN
BEGIN
TCANCEL(TSELLHOLDINGEX('','',3)>0,4);
空头开仓数=TSELLHOLDINGEX('','',2);
END
//3.总空头持仓比现在开仓数要少
IF TSELLHOLDINGEX('','',2)<=空头开仓数 THEN
BEGIN
TCANCEL(TSELLHOLDINGEX('','',3)>0,4);
空头开仓数=INTPART(空头开仓数-TSELLHOLDINGEX('','',1));
//3.1 达到开空条件, 先检测程序化是否平衡先, 如果是平衡状态, 开始空
IF(INTPART(空头开仓数)<1 ,1,INTPART(空头开仓数));//空头开仓数不能为0
//a.看成交量
//b.看卖一和买一的中间加个 DYNAINFO(34)卖一价;DYNAINFO(28)买一价; DYNAINFO(208)最小变动单位;
//成交量比例是自己设置的, 取5日的平均数。 千分之5那么多, 建议分两次下而且用加仓的方式来操作。
IF 空头开仓数>24 or 成交量比例>=4 THEN
BEGIN
IF DYNAINFO(34)-DYNAINFO(28)>3*DYNAINFO(208) THEN
BEGIN
TBUYSHORT(1,空头开仓数/8,LMT,DYNAINFO(34)+DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/8,LMT,DYNAINFO(34)),NOATTACK;
TBUYSHORT(1,空头开仓数/8,LMT,DYNAINFO(34)-DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/8,LMT,DYNAINFO(34)-2*DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/8,LMT,DYNAINFO(34)-3*DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/8,LMT,DYNAINFO(28)+3*DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/8,LMT,DYNAINFO(28)+2*DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/8,LMT,DYNAINFO(28)+DYNAINFO(208)),NOATTACK;
END
IF DYNAINFO(34)-DYNAINFO(28)>DYNAINFO(208) AND DYNAINFO(34)-DYNAINFO(28)<=3*DYNAINFO(208) THEN
BEGIN
TBUYSHORT(1,空头开仓数/4,LMT,DYNAINFO(34)+DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/4,LMT,DYNAINFO(34)),NOATTACK;
TBUYSHORT(1,空头开仓数/4,LMT,DYNAINFO(34)-DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/4,LMT,DYNAINFO(28)+DYNAINFO(208)),NOATTACK;
END
IF DYNAINFO(34)-DYNAINFO(28)=DYNAINFO(208) THEN
BEGIN
IF DYNAINFO(25)>DYNAINFO(31) THEN
BEGIN //DYNAINFO(31) 是买一量, DYNAINFO(25) 是卖一量,
TBUYSHORT(1,空头开仓数/3,LMT,DYNAINFO(34)+DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,2*空头开仓数/3,LMT,DYNAINFO(34)),NOATTACK;
END
IF DYNAINFO(25)<DYNAINFO(31) THEN
BEGIN
TBUYSHORT(1,空头开仓数/2,LMT,DYNAINFO(34),NOATTACK;
TBUYSHORT(1,空头开仓数/2,LMT,DYNAINFO(28)),NOATTACK;
END
END
END
IF 空头开仓数<=24 AND 空头开仓数>=4 AND 成交量比例<4 THEN
BEGIN
IF DYNAINFO(34)-DYNAINFO(28)>3*DYNAINFO(208) THEN
BEGIN
TBUYSHORT(1,空头开仓数/3,LMT,DYNAINFO(28)+3*DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/3,LMT,DYNAINFO(28)+2*DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/3,LMT,DYNAINFO(28)+DYNAINFO(208)),NOATTACK;
END
IF DYNAINFO(34)-DYNAINFO(28)>=DYNAINFO(208) AND DYNAINFO(34)-DYNAINFO(28)<=3*DYNAINFO(208) THEN
BEGIN
TBUYSHORT(1,空头开仓数/2,LMT,DYNAINFO(34)-DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/2,LMT,DYNAINFO(28)+DYNAINFO(208)),NOATTACK;
END
END
IF 空头开仓数<=3 AND 空头开仓数>=2 AND 成交量比例<4 THEN //注意holding是策略的理论持仓,他不管实际仓位
BEGIN //DYNAINFO(31) 是买一量, DYNAINFO(25) 是卖一量,
IF DYNAINFO(25)>DYNAINFO(31) THEN TBUYSHORT(1,空头开仓数,LMT,DYNAINFO(34)),NOATTACK;
IF DYNAINFO(25)<DYNAINFO(31) THEN TBUYSHORT(1,空头开仓数,LMT,DYNAINFO(28)),NOATTACK;
END
END
下面已经按照你的要求,TSELLHOLDINGEX('','',1)用了单引号, 空头开仓数:=TSELLHOLDINGEX('','',1)用了冒号, 还是出错说引用的括号不完整
//1.如果之前的开空持仓剩余数并且比现在空头开仓数还要多, 那就用之前的开空持仓剩余数,不需要开空。
IF TSELLHOLDINGEX('','',1)>=空头开仓数 THEN 空头开仓数:=TSELLHOLDINGEX('','',1);
//2.如果有平空挂单,之前的开空持仓剩余数比现在空头开仓数少, 总空头持仓比现在开仓数要多,那就用把要撤的单取消掉。
IF TSELLHOLDINGEX('','',2)>=空头开仓数 AND TSELLHOLDINGEX('','',1)<空头开仓数 THEN
BEGIN
TCANCEL(TSELLHOLDINGEX('','',3)>0,4);
空头开仓数:=TSELLHOLDINGEX('','',2);
END
//3.总空头持仓比现在开仓数要少
IF TSELLHOLDINGEX('','',2)<=空头开仓数 THEN
BEGIN
TCANCEL(TSELLHOLDINGEX('','',3)>0,4);
空头开仓数:=INTPART(空头开仓数-TSELLHOLDINGEX('','',1));
//3.1 达到开空条件, 先检测程序化是否平衡先, 如果是平衡状态, 开始空
IF(INTPART(空头开仓数)<1 ,1,INTPART(空头开仓数));//空头开仓数不能为0
//a.看成交量
//b.看卖一和买一的中间加个 DYNAINFO(34)卖一价;DYNAINFO(28)买一价; DYNAINFO(208)最小变动单位;
//成交量比例是自己设置的, 取5日的平均数。 千分之5那么多, 建议分两次下而且用加仓的方式来操作。
IF 空头开仓数>24 or 成交量比例>=4 THEN
BEGIN
IF DYNAINFO(34)-DYNAINFO(28)>3*DYNAINFO(208) THEN
BEGIN
TBUYSHORT(1,空头开仓数/8,LMT,DYNAINFO(34)+DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/8,LMT,DYNAINFO(34)),NOATTACK;
TBUYSHORT(1,空头开仓数/8,LMT,DYNAINFO(34)-DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/8,LMT,DYNAINFO(34)-2*DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/8,LMT,DYNAINFO(34)-3*DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/8,LMT,DYNAINFO(28)+3*DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/8,LMT,DYNAINFO(28)+2*DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/8,LMT,DYNAINFO(28)+DYNAINFO(208)),NOATTACK;
END
IF DYNAINFO(34)-DYNAINFO(28)>DYNAINFO(208) AND DYNAINFO(34)-DYNAINFO(28)<=3*DYNAINFO(208) THEN
BEGIN
TBUYSHORT(1,空头开仓数/4,LMT,DYNAINFO(34)+DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/4,LMT,DYNAINFO(34)),NOATTACK;
TBUYSHORT(1,空头开仓数/4,LMT,DYNAINFO(34)-DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/4,LMT,DYNAINFO(28)+DYNAINFO(208)),NOATTACK;
END
IF DYNAINFO(34)-DYNAINFO(28)=DYNAINFO(208) THEN
BEGIN
IF DYNAINFO(25)>DYNAINFO(31) THEN
BEGIN //DYNAINFO(31) 是买一量, DYNAINFO(25) 是卖一量,
TBUYSHORT(1,空头开仓数/3,LMT,DYNAINFO(34)+DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,2*空头开仓数/3,LMT,DYNAINFO(34)),NOATTACK;
END
IF DYNAINFO(25)<DYNAINFO(31) THEN
BEGIN
TBUYSHORT(1,空头开仓数/2,LMT,DYNAINFO(34),NOATTACK;
TBUYSHORT(1,空头开仓数/2,LMT,DYNAINFO(28)),NOATTACK;
END
END
END
IF 空头开仓数<=24 AND 空头开仓数>=4 AND 成交量比例<4 THEN
BEGIN
IF DYNAINFO(34)-DYNAINFO(28)>3*DYNAINFO(208) THEN
BEGIN
TBUYSHORT(1,空头开仓数/3,LMT,DYNAINFO(28)+3*DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/3,LMT,DYNAINFO(28)+2*DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/3,LMT,DYNAINFO(28)+DYNAINFO(208)),NOATTACK;
END
IF DYNAINFO(34)-DYNAINFO(28)>=DYNAINFO(208) AND DYNAINFO(34)-DYNAINFO(28)<=3*DYNAINFO(208) THEN
BEGIN
TBUYSHORT(1,空头开仓数/2,LMT,DYNAINFO(34)-DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/2,LMT,DYNAINFO(28)+DYNAINFO(208)),NOATTACK;
END
END
IF 空头开仓数<=3 AND 空头开仓数>=2 AND 成交量比例<4 THEN //注意holding是策略的理论持仓,他不管实际仓位
BEGIN //DYNAINFO(31) 是买一量, DYNAINFO(25) 是卖一量,
IF DYNAINFO(25)>DYNAINFO(31) THEN TBUYSHORT(1,空头开仓数,LMT,DYNAINFO(34)),NOATTACK;
IF DYNAINFO(25)<DYNAINFO(31) THEN TBUYSHORT(1,空头开仓数,LMT,DYNAINFO(28)),NOATTACK;
END
END