对IF语句中的变量如何执行判断的,有点困惑,请斑竹指教
例如今天FU05最高价4508,现在收盘价4598
IF CLOSE>4500 THEN
BEGIN
ACTIVE:=1;
DEBUGFILE('E:\DEBUG.txt','HERE EXECUTED%.0f',ACTIVE);
EXTGBDATASET(STKLABEL&'ACTIVE',1);
END
对上面语句,会发现DEBUGFILE中没有输出,但是全局变量却执行了设置,有点困惑,请斑竹指教
原因很简单,
你看DEBUGFILE的说明就知道,他只在最后一个周期才执行的函数,FU05最后一个价格是4498,所以不会执行DEBUGFILE的部分,你指的全局变量有数据,那是因为全局变量没有最后一个周期的限制,是之前的周期满足条件后写进去的.
DEBUGFILE只所以使用最后一个周期来完成数据写入,是基于效率考虑,因为DEBUGFILE是给做后台程式化交易调试用的,金字塔的后台程式化交易的指令都是基于最后一个周期的信号发出
明白了,谢谢!