我根据指南中单均线模型修改了其它公式,结果图表上没有信号显示,问题出在哪里呢?请明示。
单均线模型:
INPUT:N(15,1,100,1);
MAN:=MA(CLOSE,N);
SP :=TIME>=145500 OR (CLOSE<MAN AND BARSLAST(CROSS(MAN,CLOSE ))>=3);
BP :=TIME>=145500 OR (CLOSE>MAN AND BARSLAST(CROSS(CLOSE,MAN ))>=3);
BK :=TIME>=091500 AND TIME<145500 AND CLOSE>MAN AND BARSLAST(CROSS(CLOSE,MAN ))>=3;
SK :=TIME>=090000 AND TIME<145500 AND CLOSE<MAN AND BARSLAST(CROSS(MAN,CLOSE ))>=3;
{平多} EXITLONG: SP,TFILTER;
{平空} EXITSHORT: BP,TFILTER;
{开多} ENTERLONG: BK,TFILTER;
{开空} ENTERSHORT: SK,TFILTER;
拟修改的模型修改前(可以正常操作):
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,P1,1);
D:=SMA(K,P2,1);
{平多} EXITLONG: CROSS(d,k),ORDERQUEUE,TFILTER;
{平空} EXITSHORT: CROSS(k,d),ORDERQUEUE,TFILTER;
{开多} ENTERLONG: CROSS(k,d),ORDERQUEUE,TFILTER;
{开空} ENTERSHORT: CROSS(d,k),ORDERQUEUE,TFILTER;
修改后(无信号显示):
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,P1,1);
D:=SMA(K,P2,1);
{平多} EXITLONG: CROSS(d,k)AND BARSLAST(CROSS(d,k))>=3,ORDERQUEUE,TFILTER;
{平空} EXITSHORT: CROSS(k,d)AND BARSLAST(CROSS(k,d))>=3,ORDERQUEUE,TFILTER;
{开多} ENTERLONG: CROSS(k,d)AND BARSLAST(CROSS(k,d))>=3,ORDERQUEUE,TFILTER;
{开空} ENTERSHORT: CROSS(d,k)AND BARSLAST(CROSS(d,k))>=3,ORDERQUEUE,TFILTER;
用这几行语句测试一下,注意看J和I的输出值可不可以同时为真(即,非0),楼主就知道问题出在哪里了。
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,P1,1);
D:=SMA(K,P2,1);
j:BARSLAST(CROSS(k,d)),linethick0;
i:CROSS(k,d),linethick0;
两个条件在所有周期上,都是-----一个为真时另一个为假。您不能这么设置条件呀!
{平空} EXITSHORT: CROSS(k,d) AND BARSLAST(CROSS(k,d))>=3,ORDERQUEUE,TFILTER;
在一根K线上,您的条件1--CROSS(k,d)和条件2--BARSLAST(CROSS(k,d))>=3,永远不可能同时为真
原因:当条件CROSS(k,d)成立的那根K线上,条件BARSLAST(CROSS(k,d))====0