以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请问老师同一公式加在同一品种的2个不同月份合约上,同时产生信号才对主力合约下单,怎么写?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=64970)

--  作者:雪球
--  发布时间:2014/5/14 7:49:07
--  请问老师同一公式加在同一品种的2个不同月份合约上,同时产生信号才对主力合约下单,怎么写?
请问老师同一公式加在同一品种的2个不同月份合约上,同时产生信号才对主力合约下单,怎么写?

Formula15日线:
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 (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
   空开: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 (islastbar and currenttime =closetime(0))or (not(islastbar)) then begin
    n1:=0;
    n2:=0;
end
持仓:holding,linethick0;
资产:asset,PRECISION1,linethick1,noaxis,COLOR8586D8;

 

 
例如Formula15日线加在日Krb00及日Krb01上,同时产生信号即对主力合约下单(rb10),请问老师怎么写。

--  作者:dlutzxj
--  发布时间:2014/5/14 9:01:32
--  

kd1:=STKINDI(\'Krb00\',\'Formula15日线.kd\',0,6);

kd2:=STKINDI(\'Krb01\',\'Formula15日线.kd\',0,6);

kd:=kd1&&kd2;


--  作者:jinzhe
--  发布时间:2014/5/14 9:08:53
--  
以下是引用dlutzxj在2014/5/14 9:01:32的发言:

kd1:=STKINDI(\'Krb00\',\'Formula15日线.kd\',0,6);

kd2:=STKINDI(\'Krb01\',\'Formula15日线.kd\',0,6);

kd:=kd1&&kd2;

就是这个,跨周期引用


--  作者:雪球
--  发布时间:2014/5/14 11:03:13
--  
以下是引用jinzhe在2014/5/14 9:08:53的发言:

就是这个,跨周期引用

谢谢。我也这样试过(加载在rb00日K上,且勾选连续合约下单),但感觉很卡的。老师还有更好的吗?
--  作者:雪球
--  发布时间:2014/5/14 11:14:45
--  
还有就是除了开仓信号外,如何取得平仓信号呢?
--  作者:jinzhe
--  发布时间:2014/5/14 11:17:27
--  
那也一样啊,stkindi引用
--  作者:雪球
--  发布时间:2014/5/14 11:21:50
--  
kk1:=STKINDI(\'rb00\',\'Formula15日线.空赢\',0,6); kk2:=STKINDI(\'rb01\',\'Formula15日线.空赢\',0,6); kk空赢:=kK1&&kk2; ?? IF? kk空嬴 THEN BEGIN? ??? ??? 空赢:SELLSHORT(1,1,MARKET);请问老师这样可以吗?
--  作者:jinzhe
--  发布时间:2014/5/14 11:30:05
--  
就和上面写的一样啊,

kd1:=STKINDI(\'Krb00\',\'Formula15日线.kd\',0,6);

kd2:=STKINDI(\'Krb01\',\'Formula15日线.kd\',0,6);

kd:=kd1&&kd2;

 

照着抄就行了,把引用里面的kd改成平仓条件就行了啊

 


--  作者:雪球
--  发布时间:2014/5/14 11:44:36
--  
kk1:=STKINDI(\'rb00\',\'Formula15日线.空赢\',0,6); kk2:=STKINDI(\'rb01\',\'Formula15日线.空赢\',0,6); kk空赢:=kK1&&kk2; IF kk空嬴 THEN BEGIN 空赢:SELLSHORT(1,1,MARKET);end请问老师这个好还是下面这个好? 在公式Formula15日线中加入KYTJ:=? ENTERPRICE-LOWPRICE>=30 and?? H >=LOWPRICE*(1+5/1000)and n2=0 ; kk1:=STKINDI(\'rb00\',\'Formula15日线.kytj\',0,6); kk2:=STKINDI(\'rb01\',\'Formula15日线.kytj\',0,6); kk空赢:=kk1&&kk2; IF kk空嬴 THEN BEGIN 空赢:SELLSHORT(1,1,MARKET);end 请问老师这两个效率那个高?
--  作者:jinzhe
--  发布时间:2014/5/14 13:24:56
--  

你打算把跨周期语句加入到原来的公式里面吗?

这个是不对的啊,不能和原来的被引用公式写一起