以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请问老师日K线上公式怎么修改?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=65105)

--  作者:雪球
--  发布时间:2014/5/16 14:01:18
--  请问老师日K线上公式怎么修改?
公式1加载在rb00日K线上,要求平空后当天及第二天不开空,平多后当天及第二天不开多(但反向不限即平多后当天及第二天可以开空,平空后当天及第二天可以开多),请问老师公式怎么修改?
公式1:

variable:n1=0,n2=0;
VARIABLE:HIGHPRICE=0,LOWPRICE=0;
B:=REF(MA(C,20),1),PRECISION1,LINETHICK0;
KD1:=CROSS(MA(CLOSE,5),MA(CLOSE,30));
Kk1:=CROSS(MA(CLOSE,30),MA(CLOSE,5));
KD2:=CROSS(MA(CLOSE,10),MA(CLOSE,30));
Kk2:=CROSS(MA(CLOSE,30),MA(CLOSE,10));
KD:=(KD1 and n1=0 )OR( KD2 and n1=0 );
KK:=(KK1 and n2=0) OR( KK2 and n2=0);

t1:=currenttime>=t0totime(timetot0(closetime(0))-5*60)and currenttime<t0totime(timetot0(closetime(0))-30);//开仓时间
t2:=currenttime>=t0totime(timetot0(closetime(0))-5*60);//平仓时间

 

IF HOLDING=0 THEN BEGIN
IF ( t1 AND KK and islastbar and ENTERBARS!=0 )or (not(islastbar) and kk and ENTERBARS!=0 )THEN BEGIN
空开:BUYSHORT(1=1,1,marketr);
LOWPRICE:=ENTERPRICE;
IF islastbar THEN BEGIN
DEBUGFILE(\'D:\\TEST.TXT\',\' T1f\'&numtostr(T1,0)&\' ENTERBARS!=0:\'&numtostr(ENTERBARS!=0,1)&\' KK:\'&numtostr(KK,0)&\' N2:\'&numtostr(N2,0),0); //输出开仓条件
DEBUGFILE(\'D:\\TEST.TXT\',\' 空开:%.0f\',空开);//输出空开
DEBUGFILE(\'D:\\TEST.TXT\',\'holding:%.0f\',holding);//输出HOLDING
//DEBUGFILE(\'D:\\TEST.TXT\',\'N2:%.0f\',N2);//输出N2
END
END
END


IF HOLDING<0   THEN BEGIN
IF (t2 AND CLOSE>B and n2=0  and islastbar )or (not(islastbar) and  CLOSE>B and n2=0)  THEN BEGIN 
 收盘空平:SELLSHORT(1,1,marketr);
 n2:=1;
 IF islastbar THEN BEGIN
   DEBUGFILE(\'D:\\TEST.TXT\',\'  收盘空平:%.0f\',收盘空平);//输出收盘空平
   DEBUGFILE(\'D:\\TEST.TXT\',\'holding:%.0f\',holding);//输出HOLDING
   DEBUGFILE(\'D:\\TEST.TXT\',\'N2:%.0f\',N2);//输出N2
 END
END
 IF H>=ENTERPRICE*(1+0.02) and n2=0  THEN BEGIN
 
  空损:SELLSHORT(1,1,marketr);
 
  n2:=1;
  IF islastbar THEN BEGIN
   DEBUGFILE(\'D:\\TEST.TXT\',\'  空损:%.0f\',空损);//输出空损
   DEBUGFILE(\'D:\\TEST.TXT\',\'holding:%.0f\',holding);//输出HOLDING
   DEBUGFILE(\'D:\\TEST.TXT\',\'N2:%.0f\',N2);//输出N2
 END
 END
  IF L<LOWPRICE THEN LOWPRICE:=L;
 
   
  IF ENTERPRICE-LOWPRICE>=30 THEN BEGIN
   IF  H >=LOWPRICE*(1+5/1000)and n2=0 THEN BEGIN 
   
    空赢:SELLSHORT(1,1,MARKET);
    n2:=1;
    IF islastbar THEN BEGIN
   DEBUGFILE(\'D:\\TEST.TXT\',\'  空赢:%.0f\',空赢);//输出空赢
   DEBUGFILE(\'D:\\TEST.TXT\',\'holding:%.0f\',holding);//输出HOLDING
   DEBUGFILE(\'D:\\TEST.TXT\',\'N2:%.0f\',N2);//输出N2
 END
   END
  END
 END  
 
 
IF HOLDING=0 THEN BEGIN
IF ( t1 AND KK and islastbar and ENTERBARS!=0 )or (not(islastbar) and kk and ENTERBARS!=0 )THEN BEGIN

多开:BUY(1=1,1,marketr);
LOWPRICE:=ENTERPRICE;
END
END

IF HOLDING>0   THEN BEGIN
IF (t2 AND CLOSE>B and n2=0  and islastbar )or (not(islastbar) and  CLOSE>B and n2=0)  THEN BEGIN 
 收盘多平:SELL(1,1,marketr);
 n2:=1;
 END
  
 

多损:SELL(1,1,marketr);
 
  n2:=1;
   END
  IF L<LOWPRICE THEN LOWPRICE:=L;
 
   
  IF ENTERPRICE-LOWPRICE>=30 THEN BEGIN
   IF  H >=LOWPRICE*(1+5/1000)and n2=0 THEN BEGIN  
    
   
多赢:SELL(1,1,MARKET);
    n2:=1;
       END
  END
 END  
 
 
if (islastbar and currenttime =closetime(0))or (not(islastbar)) then begin
    n1:=0;
    n2:=0;
end
持仓:holding,linethick0;
资产:asset,PRECISION1,linethick1,noaxis,COLOR8586D8;

 

 


 


--  作者:jinzhe
--  发布时间:2014/5/16 14:04:53
--  

这种不好改,等高人吧


--  作者:雪球
--  发布时间:2014/5/16 14:57:16
--  
哦。是金字塔的局限性。老师持仓=0历时大于2天怎么表达?

--  作者:jinzhe
--  发布时间:2014/5/16 15:02:25
--  

holding=0 and typebar()>2

typebar怎么用看下函数说明,很好理解的


--  作者:雪球
--  发布时间:2014/5/16 15:08:08
--  
老师:自从Sell:1成立以来大于2天(2根)又怎么表达?

--  作者:jinzhe
--  发布时间:2014/5/16 15:25:28
--  

还是用typebar

typebar(1,2)>2


--  作者:雪球
--  发布时间:2014/5/16 15:28:43
--  
谢谢
先消化再来问老师

--  作者:雪球
--  发布时间:2014/5/16 23:16:39
--  
开多加上typebar(1,2)>2,开空加上typebar(1,4)>2; 但前提是要有首次正常开平后才能成立的,否则什么信号都没有了。所以问老师怎么写:首次正常开多平多及开空平空之后,再开多条件加上typebar(1,2)>2,开空条件加上typebar(1,4)>2;
--  作者:雪球
--  发布时间:2014/5/19 15:58:32
--  
已解决。谢谢