A:=HHV(H,5);
B:=LLV(L,5);
MA1:=MA(CLOSE,5);
KD:=CROSS(CLOSE,REF(A,1));
KK:=CROSS(REF(B,1),CLOSE);
IF(KD) THEN
BEGIN
if HOLDING = 0 then
BEGIN
buy(1,3,MARKET);
MSGOUT(1,'开多');
end
if holding < 0 THEN
begin
sellshort(1,HOLDING,MARKET);
buy(1,3,MARKET);
MSGOUT(1,'平空开多');
end
End
if (KK) then
begin
if HOLDING = 0 then
begin
buyshort(1,3,MARKET);
MSGOUT(1,'开空');
end;
if holding > 0 THEN
begin
SELL(1,HOLDING,MARKET);
buyshort(1,3,MARKET);
MSGOUT(1,'平多开空');
end
end;
在if1209 品种上,直接单步调试,上穿下穿返回的变量都为True
思路:穿越前期高点,做多(有多仓不加仓,有空仓,先平空,再做多),反之同理
A:=HHV(H,5); //5周期高点
B:=LLV(L,5); //5周期低点
MA1:=MA(CLOSE,5);//没用
KD:=CROSS(CLOSE,REF(A,1));//收盘价(最新价) 向上穿越5周期高点
KK:=CROSS(REF(B,1),CLOSE);//收盘价(最新价) 向下穿越5周期低点
IF(KD=1) THEN
BEGIN
if HOLDING = 0 then
BEGIN
buy(1,3,MARKET);
MSGOUT(1,'开多');
end
if holding < 0 THEN
begin
sellshort(1,HOLDING,MARKET);
buy(1,3,MARKET);
MSGOUT(1,'平空开多');
end
End
if (KK=1) then
begin
if HOLDING = 0 then
begin
buyshort(1,3,MARKET);
MSGOUT(1,'开空');
end;
if holding > 0 THEN
begin
SELL(1,HOLDING,MARKET);
buyshort(1,3,MARKET);
MSGOUT(1,'平多开空');
end
end;
穿越前期高点,做多(有多仓不加仓,有空仓,先平空,再做多),反之同理
基本思路是这样的,把条件填进去就行了
if 穿越前期高点 then begin
sellshort(holding<0,0,market);
buy(holding=0,1,market);
end
if 反向操作 then begin
sell(holding>0,0,market);
buyshort(holding=0,1,market);
end
没有找到具体哪根K线有问题的,经过一些修改,让公式输出划线,其实你自己就很容易通过十字光标的移动查出问题来的
A:HHV(H,5); //5周期高点
B:LLV(L,5); //5周期低点
MA1:=MA(CLOSE,5);//没用
KD:CROSS(CLOSE,REF(A,1)),NODRAW;//收盘价(最新价) 向上穿越5周期高点
KK:CROSS(REF(B,1),CLOSE),NODRAW;//收盘价(最新价) 向下穿越5周期低点
IF(KD=1) THEN
BEGIN
if HOLDING = 0 then
BEGIN
buy(1,3,MARKET);
MSGOUT(1,'开多');
end
if holding < 0 THEN
begin
sellshort(1,HOLDING,MARKET);
buy(1,3,MARKET);
MSGOUT(1,'平空开多');
end
End
if (KK=1) then
begin
if HOLDING = 0 then
begin
buyshort(1,3,MARKET);
MSGOUT(1,'开空');
end;
if holding > 0 THEN
begin
SELL(1,HOLDING,MARKET);
buyshort(1,3,MARKET);
MSGOUT(1,'平多开空');
end
end;