INPUT:n(88,1,138,1),p1(3,1,33,1) ,p2(1,1,20,1);
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,P1,1);
D:=SMA(K,P2,1);
J:=3*K-2*d;
SS:=1;
KD:= HOLDING=0 AND CROSS(J,K) ;
PD:= HOLDING>0 AND CROSS(K,J);
{
ref_J:=ref(j,1);
ref_k:=ref(k,1);
crossup:=J>k and ref_J<ref_K;
crossdown:=j<k and ref_j>ref_K;
}
{
KD:= HOLDING=0 AND crossup ;
PD:= HOLDING>0 AND crossdown ;
}
IF KD THEN BEGIN
BUY(1,SS,LIMITR,CLOSE);
END
IF PD THEN BEGIN
SELL(1,0,LIMITR,CLOSE);
END
上面是我的公式,如果p2的值是1的话,那么我理解j:=3*k-2*k; 也就是说j=k;
那么做开平仓判断的时候,cross函数要么一直成立,要么一直不成立,我测试的结果却不是这样,如果将cross函数改成我自己写的crossup 和crossdown,就没有交易了,用cross函数却又130次交易,请问是何问题
BUY(1 AND HOLDING=0,SS,LIMITR,CLOSE)
是不想重仓吗?按照上述编写
另外请描述清楚你的现象和结果之间具体的差别
CROSS是指线的状态,重叠如果趋势改变就会默认为形态做了转换