以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=187914) |
-- 作者:mikael_luo -- 发布时间:2021/4/19 9:25:54 -- 在程序中变量自己需要引用自己怎么解决? A的值和之前一根K线的值相关. 假如条件B成立,A的值等于之前的值,否则等于之前的值乘-1. |
-- 作者:FireScript -- 发布时间:2021/4/19 9:47:49 -- 这个你要处理的是初始值的问题。也就是第一个K位置时候,它必须有一个初始值。 但是你这个逻辑。你这个值的结果几乎就2个值。 初始值和 乘上-1的初始值。 你可以用全局变量处理: VARIABLE:x:=1;//初始值是1
x:=if(条件A,-x,x); showx:x;//全局变量默认不输出指标线,所以用普通变量来显示它的值。 |
-- 作者:mikael_luo -- 发布时间:2021/4/19 10:03:36 -- 如果条件b成立则a的值等于之前的值,否则a的值+1. 如何表达呢? |
-- 作者:mikael_luo -- 发布时间:2021/4/19 10:06:30 -- 初始值还是设置为1 |
-- 作者:FireScript -- 发布时间:2021/4/19 10:09:40 -- 一样的,if第二个参数这里你改下逻辑就行了。 x:=if(条件A,1+x,x);
|
-- 作者:mikael_luo -- 发布时间:2021/4/20 9:21:39 -- 好像要加入一句,否则输出结果不同。RUNMODE:0; 我怀疑和这一句有关, VARIABLE:x:=1;//初始值是1 |
-- 作者:FireScript -- 发布时间:2021/4/20 9:24:42 -- 你逐K模式还是序列模式啊。这个全局变量 序列模式无效的。所以你只能用RUNMODE去改变模式。 |
-- 作者:mikael_luo -- 发布时间:2021/4/20 10:19:51 -- 哦,明白了,全局变量必须是逐K模式 |