以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 变量赋值和重置的问题 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=183185) |
-- 作者:winnerlvwei -- 发布时间:2020/11/25 10:15:55 -- 变量赋值和重置的问题 请教一下假设我有一个变量,是统计每天下午14点到15点的成交量 我一开始写 if time >= 1400 then TotalVol = TotalVol + vol; 问题1:这个时候编译提示这个v这个变量没有定义过; 并且这个变量是每天要重置为0的,因为第二天要重新统计,我这样写 if CURRENTDATE <> ref(CURRENTDATE, 1) then begin TotalVol := 0; end; 问题2:这个时候变异提示这个变量重复了 请问这2个问题该如何解决?
|
-- 作者:FireScript -- 发布时间:2020/11/25 10:54:13 -- 1. TotalVol = TotalVol + vol; 如果这个TotalVol 在此之前没有定义,你这样写肯定不行。逻辑上成了你用一个未定义的变量来定义一个变量,到头来还是一个未定义的变量。 你至少应该把它定义成一个全局变量。 2.“CURRENTDATE <> ref(CURRENTDATE, 1)” 这样的判断也是无效的。CURRENTDATE始终是最新值,而你用ref是想用它的历史值,这是不可以的。 VARIABLE:TotalVol:=0; if TODAYBAR=1 then TotalVol:=0; if time>180000 then TotalVol:=TotalVol+vol; showTotalVol:TotalVol;//会随着K线变化而变化,也就是值取决于位置。 showTotalVol2:VALUEWHEN(time=190000,showTotalVol);//取最近一次收盘时候的showTotalVol |