以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [原创]IF语句下变量的定义,请帮忙一下。  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=91686)

--  作者:c100010320
--  发布时间:2016/2/23 16:42:17
--  [原创]IF语句下变量的定义,请帮忙一下。
有那位老师可以帮我指点一下那里错了。。在开多单里,分为两种情况,在开空单里也分为两种情况。但平多和平空也只是用STOPL 和STOPH 这两个变量
下里的句子应该怎么改?

IF 开多条件 THEN BEGIN

   IF DIFF60>DEA60 AND HOLDING >0 THEN  BEGIN              
      STOPL:L65 ,COLORRED  ;
     END;
   
    IF DIFF60<  DEA60 AND HOLDING >0 THEN  BEGIN
      STOPL:L20 ,COLORRED  ;
     END;
     
     END;
 
IF 开空条件 THEN BEGIN

   IF DIFF60>DEA60 AND HOLDING >0 THEN  BEGIN
      STOPH:H20 ,COLORRED  ;
     END;
   
    IF DIFF60<  DEA60 AND HOLDING >0 THEN  BEGIN
      STOPH:H65 ,COLORRED  ;
     END;
     
     END;     
 
平多条件:=C< STOPL   AND HOLDING>0;   //下穿中轨平多
平空条件:=C> STOPH   AND HOLDING<0;  //上穿中轨平空
--  作者:jinzhe
--  发布时间:2016/2/23 16:44:26
--  
IF 开多条件 THEN BEGIN

   IF DIFF60>DEA60 AND HOLDING >0 THEN  BEGIN              
      STOPL:L65 ,COLORRED  ;
     END;
这样写赋值stopl的目的是为了什么?
--  作者:c100010320
--  发布时间:2016/2/23 16:50:56
--  
 止盈止损的位置。
--  作者:c100010320
--  发布时间:2016/2/23 16:53:25
--  
 h20:=ref(hhv(h,20),1);//20周期最高价
l20:=ref(llv(l,20),1);//20周期最低价
h65:=ref(hhv(h,65),1);//65周期最高价
l65:=ref(llv(l,65),1);//65周期最低价


之前已经定义了这些变量

--  作者:jinzhe
--  发布时间:2016/2/23 17:01:15
--  
用户把开仓语句写在哪里了?能否把整体的开仓语句都写出来?
--  作者:c100010320
--  发布时间:2016/2/23 17:16:14
--  
h20:=ref(hhv(h,20),1);//20周期最高价
l20:=ref(llv(l,20),1);//20周期最低价

h65:=ref(hhv(h,65),1);//65周期最高价
l65:=ref(llv(l,65),1);//65周期最低价

INPUT:M(35,5,300,30),N(2,0.1,10,1),SS(1,1,10000,1);
MID :=  MA(CLOSE,M);//中轨
UPPER:= MID + N*STD(CLOSE,M);//上轨
LOWER:= MID - N*STD(CLOSE,M);//下轨

DIFF60:=EMA(CLOSE,12*60) - EMA(CLOSE,26*60);  
DEA60:= EMA(DIFF60,9*60);
MACD60:=2*(DIFF60-DEA60);


手数:=SS;

开多条件:=C>UPPER AND HOLDING=0;//上穿上轨开多
开空条件:=C<LOWER AND HOLDING=0;//下穿下轨开空

IF 开多条件 THEN BEGIN

   IF DIFF60>DEA60 AND HOLDING >0 THEN  BEGIN
      STOPL:L65 ,COLORRED  ;
     END;
  
    IF DIFF60<  DEA60 AND HOLDING >0 THEN  BEGIN
      STOPL:L20 ,COLORRED  ;
     END;
    
     END;
 
IF 开空条件 THEN BEGIN

   IF DIFF60>DEA60 AND HOLDING >0 THEN  BEGIN
      STOPH:H20 ,COLORRED  ;
     END;
  
    IF DIFF60<  DEA60 AND HOLDING >0 THEN  BEGIN
      STOPH:H65 ,COLORRED  ;
     END;
    
     END;    
 
平多条件:=C< STOPL   AND HOLDING>0;  
平空条件:=C> STOPH   AND HOLDING<0; 

IF 开多条件 AND HOLDING =0 THEN BUY(1,手数,MARKET);

IF 开空条件 AND HOLDING =0 THEN BUYSHORT(1,手数,MARKET);

IF 平多条件 THEN SELL(1,手数,MARKET);
IF 平空条件 THEN SELLSHORT(1,手数,MARKET);



全部语句了

--  作者:c100010320
--  发布时间:2016/2/23 17:19:17
--  
 语句用在1分钟周期下的。
--  作者:jinzhe
--  发布时间:2016/2/23 17:23:41
--  

EMA(CLOSE,12*60)

要720个周期的数据是为了实现什么目的?


--  作者:c100010320
--  发布时间:2016/2/23 17:26:06
--  
 1分钟里看60分钟的MACD指标的方向变化。
--  作者:jinzhe
--  发布时间:2016/2/23 17:30:54
--  

h20:=ref(hhv(h,20),1);//20周期最高价
l20:=ref(llv(l,20),1);//20周期最低价

h65:=ref(hhv(h,65),1);//65周期最高价
l65:=ref(llv(l,65),1);//65周期最低价

INPUT:M(35,5,300,30),N(2,0.1,10,1),SS(1,1,10000,1);
MID :=  MA(CLOSE,M);//中轨
UPPER:= MID + N*STD(CLOSE,M);//上轨
LOWER:= MID - N*STD(CLOSE,M);//下轨

DIFF60:EMA(CLOSE,12*60) - EMA(CLOSE,26*60);  
DEA60: EMA(DIFF60,9*60);
MACD60:=2*(DIFF60-DEA60);


手数:=SS;

开多条件:=C>UPPER AND HOLDING=0;//上穿上轨开多
开空条件:=C<LOWER AND HOLDING=0;//下穿下轨开空

IF 开多条件 and holding=0 and barpos>65 THEN BEGIN
  BUY(1,手数,MARKETr);
   IF DIFF60>=DEA60 AND HOLDING >0 THEN  BEGIN
      STOPL:=L65 ,COLORRED  ;
     END;
  
    IF DIFF60<  DEA60 AND HOLDING >0 THEN  BEGIN
      STOPL:=L20 ,COLORRED  ;
     END;
    
     END;
 
IF 开空条件 and holding=0 and barpos>65 THEN BEGIN
   BUYSHORT(1,手数,MARKETr);
   IF DIFF60>=DEA60 AND HOLDING <0 THEN  BEGIN
      STOPH:=H20 ,COLORRED  ;
     END;
  
    IF DIFF60<  DEA60 AND HOLDING <0 THEN  BEGIN
      STOPH:=H65 ,COLORRED  ;
     END;
    
     END;    
 
平多条件:=C< STOPL   AND HOLDING>0;  
平空条件:=C> STOPH   AND HOLDING<0; 

 

IF 平多条件 THEN SELL(1,手数,MARKET);
IF 平空条件 and stoph<>0 THEN SELLSHORT(1,手数,MARKET);