HB:=COST(99.9);
LB:=COST(0.1);
B3:=(HB-LB)/50;
A:=0;
B:=0;
IF BARSTATUS=2 THEN BEGIN
FOR I=1 TO 49 DO BEGIN
BB:=HB-B3*I;
AA:=WINNER(HB-B3*(I-1))*100-WINNER(BB)*100;
B:=IF(AA>A,BB,B);
A:=IF(AA>A,AA,A);
END;
END;
筹码股价:B,pointdot,linethick5;
KD:=cross(c,筹码股价); //开多条件
PD:=cross(筹码股价,c); //平多条件
开多:BUY(KD AND HOLDING=0,round(10000/c),nextopen); //开多信号
平多:SELL(PD and holding>0,100%,THISCLOSE);
[此贴子已经被作者于2013/10/16 15:05:07编辑过]
不是,是交易系统里B点就不正确,和指标图表值不一样!
你这是序列模式的公式,搞到逐K线模式运行当然没法用了
试试改到ENTERLONG旧图表交易吧,这样可以使用序列模式
[此贴子已经被作者于2013/10/16 15:56:32编辑过]
在技术指标里,因为是序列模式,B值正确正常。
在交易系统里,因为是逐K模式,B点的计算与技术指标中不一样,导致错误,下图那个竖线是逐K模式下错误的B值,正确的B值是曲线。

此主题相关图片如下:截图1381910135.png
[此贴子已经被作者于2013/10/16 15:58:17编辑过]
颜色为colorcyan的线是技术指标里的B值,没有0值
而竖线那个B值在今日以前都计算为0值
两者代码都是一样的,就是序列和逐K的属性不一样

此主题相关图片如下:截图1381910451.png

老师,能帮我把下面序列模式的公式改成逐K模式的公式吗?谢谢
HB:=COST(99.9);
LB:=COST(0.1);
B3:=(HB-LB)/50;
A:=0;
B:=0;
IF BARSTATUS=2 THEN BEGIN
FOR I=1 TO 49 DO BEGIN
BB:=HB-B3*I;
AA:=WINNER(HB-B3*(I-1))*100-WINNER(BB)*100;
B:=IF(AA>A,BB,B);
A:=IF(AA>A,AA,A);
END;
END;
筹码股价:B,pointdot,linethick5;
自己改好了,谢谢。
把IF BARSTATUS=2 THEN BEGIN 这句删除,逐K下的值就对了,当然效率很低很慢。
逐K 每根K线你都会去FOR循环,当然会很慢! 勾选仅刷最后根K线,提升下运行效率