IF HOLDING=0 THEN SECSTA:=STKINDI('','0T.SECST',0,6,0);
请问,为什么上述语句中的条件没有作用?
也就是,无论HOLDING的值是否为0,都会执行THEN 后面的STKINDI指令,为什么呢?
你是怎么判断他执行的。你可以输出HOLDING。看下其条件的值。
或者也可以加debugfile函数在if语句中进行输出holding的值。
我的用这个命令的本意是:已经开仓后的情况下,不要刷新读取SECSTA参数值。
但是,这个命令下,即使已开仓(即HOLDING不等0),公式仍然会读取最新的引用SECSTA值,,,
我怎么才能达到我的本意?
我是在实时盘中,观察公式运行时,发现在已开仓的情况下,SECSTA的值仍然会被刷新的。。。
SECSTA是一个序列变量。赋给他的值,砸没有再次赋值前,它始终都是一个值,这个值你在其他位置调用时,是可以读取到的。
不理台理解你3楼的意思。举个例说下
你说的会刷新,指的是SECSTA:=STKINDI('','0T.SECST',0,6,0);这句话在执行?
是的,这个SECSTA变量值按说没有这句话的执行,它不应该刷新变化的。三楼是我编写这个条件执行的用意说明,,,也许是我对函数的理解不到位,以致于无法做到条件控制。。。
但是,若能用别的方式达到这个目的,我是欣然接受的!
我的目的是:
已开仓的情况下,不要刷新读取变量值SECSTA;
在没有开仓的情况下,则保持同步引用STKINDI('','0T.SECST',0,6,0);
不知能否做到?
是的,这个SECSTA变量值按说没有这句话的执行,它不应该刷新变化的。
你是怎么判断它刷新的?你在你的语句里加入一句话,要是能输出的HOLDING不是0,则说明,这个判断语句进入。
IF HOLDING=0 THEN begin
SECSTA:=STKINDI('','0T.SECST',0,6,0);
DEBUGFILE('D:\TEST.TXT','进入判断语句,holding=%.2f',HOLDING);
end
当公式已经持仓,有显示开仓信号及资金曲线变化,此时 HOLDING是不是非零状态?反之,公式无持仓,即为零状态,对否?
是的,holding是你图表上的虚拟市场。不是指你账户栏里的持仓。
你可以单独输出HOLDING,在图表上看下。它是有3中状态,正,负,0