以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=164499) |
-- 作者:oroute -- 发布时间:2018/7/19 20:30:17 -- 求助一个引用自身前值的写法 要计算一个关于tt的系列,表征类似于均线,
在计算中,需要引用tt的前两个到N个周期的值,简单一点,先说两个,ref(tt,1)和ref(tt,2) 比如 tt:=(c+ref(tt,1)+(tt,2))/3;
初始情况下 tt=close
是不是要用到全局变量?我还是写不好,请指点
|
-- 作者:oroute -- 发布时间:2018/7/19 21:30:24 -- and,要在逐K线模式下进行 |
-- 作者:wenarm -- 发布时间:2018/7/20 8:19:01 -- 如果你ff已经是序列变量了,那么你上面的方式直接使用aa:ma(ff,n);//就是你要的n个ff的平均值 |
-- 作者:oroute -- 发布时间:2018/7/20 15:09:35 -- 以下是引用wenarm在2018/7/20 8:19:01的发言:
如果你ff已经是序列变量了,那么你上面的方式直接使用aa:ma(ff,n);//就是你要的n个ff的平均值
我不是真的要ma啊,只是做个比方,每次算tt都要涉及到前两个tt |
-- 作者:oroute -- 发布时间:2018/7/20 15:11:29 -- 算法比较复杂,并且为了做交易模块,必须在逐K线模式下进行 |
-- 作者:oroute -- 发布时间:2018/7/20 15:13:42 --
试一下能不能引用 |
-- 作者:FireScript -- 发布时间:2018/7/20 15:28:10 -- 你这个只需要处理第一个K和第二个K位置的初始值即可。 类似这样: if BARPOS=1 then tt:=a; if BARPOS=2 then tt:=b; if BARPOS>=3 then tt:=(ref(tt,1)+ref(tt,2))/2; |
-- 作者:oroute -- 发布时间:2018/7/20 15:59:04 -- 以下是引用FireScript在2018/7/20 15:28:10的发言:
你这个只需要处理第一个K和第二个K位置的初始值即可。
类似这样:
if BARPOS=1 then tt:=a;
if BARPOS=2 then tt:=b; if BARPOS>=3 then tt:=(ref(tt,1)+ref(tt,2))/2; ===============
REF 函数在逐K线模式下不能直接在IF控制语句之内引用。请参阅帮助公式部分的解决方案。
http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=130 |
-- 作者:oroute -- 发布时间:2018/7/20 15:59:58 -- 我的源码是这样的
if BARPOS=1 then lltv:=c; if BARPOS>=3 then LLTv:=(a-a^2/4)*FC+(a^2/2)*ref(FC,1)-(a-3*a^2/4)*ref(FC,2)+2*(1-a)*ref(lltv,1)-(1-a)^2*ref(lltv,2); LLT:LLTV; |