后台程序如下:只测试600917,300692,时间段为2017.12.18-2017.12.22的1分钟。
variable:dayclose=0;
refc1:=ref(c,1);
if date<>ref(date,1) then begin
dayclose:=refc1;
end
if islastbar then begin
debugfile('D:\金字塔.txt',stklabel+'dayclose:%.2f',dayclose);
end
测试结果如下:
2017-12-22 19:01:50.574 300692dayclose:10.16
2017-12-22 19:01:50.574 600917dayclose:10.16
2017-12-22 19:01:50.574 300692dayclose:10.16
2017-12-22 19:01:50.575 600917dayclose:10.16
2017-12-22 19:01:50.575 300692dayclose:10.16
2017-12-22 19:01:50.575 600917dayclose:10.16
2017-12-22 19:01:50.576 300692dayclose:10.16
2017-12-22 19:01:50.576 600917dayclose:10.16
2017-12-22 19:01:50.576 300692dayclose:10.16
2017-12-22 19:01:50.577 600917dayclose:10.16
2017-12-22 19:01:50.577 300692dayclose:10.16
2017-12-22 19:01:50.578 600917dayclose:10.16
2017-12-22 19:01:50.578 300692dayclose:10.16
2017-12-22 19:01:50.578 600917dayclose:10.16
2017-12-22 19:01:50.579 300692dayclose:10.16
2017-12-22 19:01:50.579 600917dayclose:10.16
2017-12-22 19:01:50.579 300692dayclose:10.16
2017-12-22 19:01:50.580 600917dayclose:10.16
2017-12-22 19:01:50.580 300692dayclose:10.16
2017-12-22 19:01:50.580 600917dayclose:10.16
2017-12-22 19:01:50.580 300692dayclose:10.16
2017-12-22 19:01:50.582 600917dayclose:10.16
两个票的输出价格为同一个,这是怎么回事呢?用globalvariable代替variable也是这个结果。
用在什么周期?
你代码想表达什么意思?就是你想要输出什么值?
[此贴子已经被作者于2017/12/22 23:32:42编辑过]
您把这两个股票在图表上加载一下呢,加载后看下是否有值呢?
模拟debugfile:
2017-12-25 10:01:35.155 300692dayclose:41.73
2017-12-25 10:01:35.190 600917dayclose:11.18
2017-12-25 10:01:35.191 300692dayclose:41.73
2017-12-25 10:01:35.192 600917dayclose:11.18
图表debugfile:
2017-12-25 10:06:31.226 300692dayclose:41.73
以下是引用yin8jun在2017/12/25 10:06:32的发言:
图表和模拟时,值都是正确的。但是测试时就错误。
测试时就错误,是指后台测试输出值错误吗? 还有你要取前一天的收盘价,一定要通过txt输出吗?
对的,后台测试时,两个股票错误地取了一个值。txt输出我是为了看是否取值正确,不一定要txt输出。
您补充相应周期的历史数据再试一下呢? 然后看下您指定刷新计算的K线数量输入的是多少根呢?
[此贴子已经被作者于2017/12/25 11:16:04编辑过]
每天都下载数据的。数据是齐全的。上周五我测过好几组,都是这个问题。一会我再测一下。要不要改成序列模型?dfjb:=barslast(date<>ref(date,1));
dayclose:=ref(c,dfjb+1);
if islastbar then begin
debugfile('D:\金字塔.txt',stklabel+'dayclose:%.2f',dayclose);
end