以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=34025)

--  作者:fjyezn
--  发布时间:2012/12/26 6:04:05
--  [求助]

YE161文件

SHORT:=12;
LONG:=26;
M:=9;
DIFF := EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);//定义DIFF
DEA := EMA(DIFF,M);//定义DEA
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;//定义RSV
K:=SMA(RSV,3,1); //定义K
D:=SMA(K,3,1); //定义D
MA1:=MA(C,60);
MA2:=MA(C,10);
A:=DIFF>DEA;
B:=DIFF<DEA;

主程序

HA:STKINDI(\' \',\'YE161.A\',0,3);
HB:STKINDI(\' \',\'YE161.B\',0,3);
VARIABLE : TN=0 ;
CMI:=abs(close-ref(close,29))/(hhv(high,30)-LLV(L,30))*100;//0-100 取值越大,说明趋势越强,CMI<20震荡模式,反之为趋势SHORT:=12;
PA:=7;
N:=7;
PL:=10;
SHORT:=12;
LONG:=26;
M:=9;
DIFF:= EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);//定义DIFF
DEA := EMA(DIFF,M);//定义DEA
BIAS1 :=(CLOSE-MA(CLOSE,12))/MA(CLOSE,12)*100;
BIAS2 :=(CLOSE-MA(CLOSE,26))/MA(CLOSE,26)*100;
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;//定义RSV
K:=SMA(RSV,3,1); //定义K
D:=SMA(K,3,1); //定义D
MA3:=MA(C,60);
MA1:=EMA(C,5);
MA2:=EMA(C,30);
HH:=HHV(HIGH,N);//HH为N个周期内的最高值
LL:=LLV(LOW,N);//LL为N个周期内的最低H
BH:=HHV(BIAS1,N);
BL:=LLV(BIAS1,N);
QZH1:=QZH;
QZL1:=QZL;
KD1:=HA&&C<QZH1&&CROSS(MA1,MA2)&&TIME<1430;
KK1:=HB&&C>QZL1&&CROSS(MA2,MA1)&&TIME<1430;
PK1:=MA1>MA2&&DIFF>DEA&&TIME<1512;
PD1:=MA1<MA2&&DIFF<DEA&&TIME<1512;
KD2:=HA&&C<QZH1&&MA1>MA2&&DIFF>DEA&&TIME<1430;
KK2:=HB&&C>QZL1&&MA1<MA2&&DIFF<DEA&&TIME<1430;
//上面是跨周期
A1:=BARSLAST(REF(CROSS(DIFF,DEA),1));
B1:=REF(C,A1+1)>C AND REF(DIFF,A1+1)<DIFF AND CROSS(DIFF,DEA);
C1:=BARSLAST(REF(CROSS(DEA,DIFF),1));
D1:=REF(C,C1+1)<C AND REF(DIFF,C1+1)>DIFF AND CROSS(DEA,DIFF);
KD3:=HA&&C<QZH1&&B1&&TIME<1430;
KK3:=HB&&C>QZL1&&D1&&TIME<1430;
//上面是背离
PK2:=TIME>=1509;
PD2:=TIME>=1509;
KD:=KD1||KD2||KD3;          //开多条件
PD:=PD1||PD2;          //平多条件
KK:=KK1||KK2||KK3;          //开空条件
PK:=PK1||PK2; 
if PK AND TN=-1 then begin
SELLSHORT(1,1,THISCLOSE);
TN=0;
END;                
if KD&&CMI>20 AND TN=0 then begin
BUY(1,1,THISCLOSE);
TN=1;
END;
if PD AND TN=1 then begin    
SELL(1,1,THISCLOSE);
TN=0;
END;                   
if KK&&CMI>20 AND TN=0 then begin
BUYSHORT(1,1,THISCLOSE);
TN=-1;
END;   
持仓:holding,linethick0;
资产:asset,noaxis;
可用现金:cash(0),linethick0;

 

 

问题:原来是用文华的,改写成金之塔程序,1.跨周期没有信号,2,开平仓没有信号,如有开仓,没有平仓。

请老师帮助修改,谢谢

 


--  作者:jinzhe
--  发布时间:2012/12/26 9:15:02
--  
把后面开平仓语句里面的TN=0之类的全部改为TN:=0
--  作者:fjyezn
--  发布时间:2012/12/26 14:12:50
--  

 跨周期怎么会没有引用结果,HA,HB没有值


--  作者:jinzhe
--  发布时间:2012/12/26 14:22:27
--  
跨周期没数据就补充下对应的历史数据
--  作者:fjyezn
--  发布时间:2012/12/26 14:35:53
--  
补过的,能帮忙测一下吗
--  作者:jinzhe
--  发布时间:2012/12/26 15:09:49
--  

把YE161改成逐k线

把TIME>1509之类的都改成TIME>150900

这些细节改动下


--  作者:fjyezn
--  发布时间:2012/12/27 6:49:34
--  

谢谢,我试一下,还有就是用图表交易,像这样的3分钟跨周期模型能运行几个,保证程序正常运行为好


--  作者:fjyezn
--  发布时间:2012/12/27 9:22:52
--  最后K线走完后只输出一次信息,用IF NOT(ISLASTBAR) THEN EXIT;行不行?

还是不能用,请帮忙改一下,谢谢


--  作者:fjyezn
--  发布时间:2012/12/27 9:28:52
--  

还是不能用,请老师能完全改好,给我用好吗


--  作者:jinzhe
--  发布时间:2012/12/27 9:33:33
--  
qzh和qzl是什么?