我原使用文华WH8,想转换为金字塔。下面是我转换后的代码示例:
{选用30分钟K线,IF13股指指数}
N:=TODAYBAR;//当天开盘以来共有多少根K线
C1:=REF(CLOSE,N);//昨收
C2:=REF(CLOSE,(N+9));//前收
C3:=REF(CLOSE,(N+18));//大前收
MAC:(C1+C2+C3)/3;
Z:=CROSS(CLOSE-1,MAC);
D:=CROSS(MAC,CLOSE+1);
IF Z THEN BEGIN
TSELLSHORT(THOLDING<0,2,CLOSE+100);
TBUY(TBUYHOLDING(1)=0,2,CLOSE+100);
END;
IF D THEN BEGIN
TSELL(THOLDING>0,2,CLOSE+100);
TBUYSHORT(TSELLHOLDING(1)=0,2,CLOSE+100);
END;
FILTER(Z OR D,1);
以上公式编译正常,但是执行公式测评时,没有出现任何信号,请问是咋回事?
另外,类似文华里,过滤的如下2条指令,金字塔是否有什么替换的语句?
转换成图表交易的指令也一样,评测结果上都是0.
{
选用30分钟K线,IF13股指指数
}
N:=TODAYBAR;//当天开盘以来共有多少根K线
C1:=REF(CLOSE,N);//昨收
C2:=REF(CLOSE,(N+9));//前收
C3:=REF(CLOSE,(N+18));//大前收
MAC:(C1+C2+C3)/3;
Z:=CROSS(CLOSE-1,MAC);
D:=CROSS(MAC,CLOSE+1);
IF Z THEN BEGIN
SELLSHORT(HOLDING<0,2,CLOSE+100);
BUY(HOLDING=0,2,CLOSE+100);
END;
IF D THEN BEGIN
SELL(HOLDING>0,2,CLOSE+100);
BUYSHORT(HOLDING=0,2,CLOSE+100);
END;
FILTER(Z OR D,1);
本来想用市价指令,用不好,干脆就下这个价格,相当于市价吧
噢,开空和平多的市价交易价格错了,应该是这样:
IF D THEN BEGIN
SELL(HOLDING>0,2,CLOSE-100);
BUYSHORT(HOLDING=0,2,CLOSE-100);
END;
但这不影响评测呀
你这个和市价不一样啊,要么就写市价,你写的价格根本就不能成交啊,有白色箭头了
N:=TODAYBAR;//当天开盘以来共有多少根K线
C1:=REF(CLOSE,N);//昨收
C2:=REF(CLOSE,(N+9));//前收
C3:=REF(CLOSE,(N+18));//大前收
MAC:(C1+C2+C3)/3;
Z:=CROSS(CLOSE-1,MAC);
D:=CROSS(MAC,CLOSE+1);
IF Z THEN BEGIN
SELLSHORT(HOLDING<0,2,market);
BUY(HOLDING=0,2,market);
END;
IF D THEN BEGIN
SELL(HOLDING>0,2,market);
BUYSHORT(HOLDING=0,2,market);
END;
给改成市价了
信号效果图,有信号就测评没问题了。
以后不管什么策略,改完后先应用到图上看看有没有信号,再去弄测评

此主题相关图片如下:1.png
是指令问题,加一个限价指令就OK了:BUY(HOLDING=0,2,LIMITR,CLOSE+0.6);
另外,主界面出了问题,30分钟K线丢失。至少,今天9:15~9:45这根K线丢失了,怎么回事?怎么挽救?谢谢!