以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  总共16个begin和16个end, 为什么说end缺少begin?  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=175858)

--  作者:OscarDeng
--  发布时间:2020/5/5 10:35:26
--  总共16个begin和16个end, 为什么说end缺少begin?
//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("","",1)<=空头开仓数 THEN
BEGIN
TCANCEL(TSELLHOLDINGEX("","",3)>0,4);
空头开仓数=INTPART(空头开仓数-TSELLHOLDINGEX("","",1));
//3.1 达到开空条件, 先检测程序化是否平衡先, 如果是平衡状态, 开始空
IF(INTPART(空头开仓数)<1 ,1,INTPART(空头开仓数));//空头开仓数不能为0
//注意holding是策略的理论持仓,他不管实际仓位, TSELLHOLDINGEX是实际开空数

//a.看成交量
//b.看卖一和买一的中间加个 DYNAINFO(34)卖一价;DYNAINFO(28)买一价; DYNAINFO(208)最小变动单位;
    IF 空头开仓数>16 AND 成交量比例>2 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,空头开仓数/5,LMT,DYNAINFO(34)+DYNAINFO(208)),NOATTACK;
  TBUYSHORT(1,空头开仓数/5,LMT,DYNAINFO(34)),NOATTACK;
  TBUYSHORT(1,空头开仓数/5,LMT,DYNAINFO(34)-DYNAINFO(208)),NOATTACK;
  TBUYSHORT(1,空头开仓数/5,LMT,DYNAINFO(34)-2*DYNAINFO(208)),NOATTACK;
    TBUYSHORT(1,空头开仓数/5,LMT,DYNAINFO(28)+DYNAINFO(208)),NOATTACK;
      END       
      IF DYNAINFO(34)-DYNAINFO(28)=DYNAINFO(208) THEN
      BEGIN 
TBUYSHORT(1,空头开仓数/3,LMT,DYNAINFO(34)+DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/3,LMT,DYNAINFO(34)),NOATTACK;
    TBUYSHORT(1,空头开仓数/3,LMT,DYNAINFO(28)),NOATTACK;
      END     
   END   
   IF 空头开仓数>16 AND 成交量比例<=2 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 
TBUYSHORT(1,空头开仓数/3,LMT,DYNAINFO(34)+DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/3,LMT,DYNAINFO(34)),NOATTACK;
    TBUYSHORT(1,空头开仓数/3,LMT,DYNAINFO(28)),NOATTACK;
      END     
   END   
   IF 空头开仓数<=16 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       
      IF DYNAINFO(34)-DYNAINFO(28)=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 THEN //注意holding是策略的理论持仓,他不管实际仓位   
   BEGIN 
  TBUYSHORT(1,空头开仓数/2,LMT,DYNAINFO(34)-DYNAINFO(208)),NOATTACK;
TBUYSHORT(1,空头开仓数/2,LMT,DYNAINFO(28)+DYNAINFO(208)),NOATTACK;
   END
   IF 空头开仓数=1 THEN //注意holding是策略的理论持仓,他不管实际仓位   
   BEGIN
    IF DYNAINFO(25)>DYNAINFO(31) THEN TBUYSHORT(1,空头开仓数,LMT,DYNAINFO(34)),NOATTACK;//DYNAINFO(31) 是买一量, DYNAINFO(25) 是卖一量,
  IF DYNAINFO(25)<DYNAINFO(31) THEN TBUYSHORT(1,空头开仓数,LMT,DYNAINFO(28)),NOATTACK;
   END   //开空信号

END


--  作者:yukizzc
--  发布时间:2020/5/5 17:41:38
--  

 IF TSELLHOLDINGEX(\'\',\'\',1)>=空头开仓数 THEN 空头开仓数:=TSELLHOLDINGEX(\'\',\'\',1); 



默认值用两个单引号,不是双引号。

赋值语句是:=不是=