stardna在http://www.weistock.com/bbs/dispbbs.asp?boardid=2&Id=52164中写了一段代码,我拿来测试了一下。奇怪的是debugfile的结果和msgout的结果不同!
VARIABLE:qjbl=0;
aa:=0;
if islastbar and barpos>qjbl then
begin
aa:=1;
qjbl:=barpos;
end;
DEBUGFILE('e:\test2.txt',' aa=%.0f',aa);
ff:aa;
MSGOUT(1,NUMTOSTR(aa,0));

此主题相关图片如下:11.jpg

DEBUGFILE的结果:
2013-05-20 14:54:59.520 aa=1
2013-05-20 14:55:00.028 aa=1
2013-05-20 14:55:01.548 aa=1
2013-05-20 14:55:02.057 aa=1
2013-05-20 14:55:04.588 aa=1
2013-05-20 14:55:10.742 aa=1
2013-05-20 14:55:16.273 aa=1
2013-05-20 14:55:24.738 aa=1
2013-05-20 14:55:34.978 aa=1
2013-05-20 14:55:45.045 aa=1
2013-05-20 14:56:00.374 aa=1
2013-05-20 14:56:13.613 aa=1
2013-05-20 14:56:27.680 aa=1
另外,使用了msgout之后软件好像很容易崩溃,比如代码运行后再控制面板右键编辑公式,软件就崩溃了,我的电脑是i3二代3.1G
[此贴子已经被作者于2013-5-20 15:03:58编辑过]
MSGOUT 在逐k线下是所有周期都执行的,这是有区别的,你应该限制在最后周期运行这样就对了
在逐k线勾选仅刷新最后一根k线,或者直接代码加上 islastbar的判断