以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- ref1的值还会变吗 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=180928) |
-- 作者:yesdgn -- 发布时间:2020/6/30 8:59:04 -- ref1的值还会变吗 比如: A:ref(B,1); 一分钟周期,在9:03:05用VBA运行这个公式, 这个A的值是1, 但是在16:00在副图看9:04周期这个A的值有可能变成了0. 这会是什么原因?而且从9:03:05到9:03:59这个A一直是1.
|
-- 作者:wenarm -- 发布时间:2020/6/30 9:02:14 -- 不知道,这个要看你的B是这么计算的了。 |
-- 作者:FireScript -- 发布时间:2020/6/30 9:07:26 -- 建议你本地观察下B的值是否也是有变化的。 这个和ref本身没多大关系,要看B是怎么计算的了。
|
-- 作者:yesdgn -- 发布时间:2020/6/30 9:18:38 -- 不管B是怎么计算的 我是ref 1啊 怎么也不会变化了吧 而且这个B也没有用到未来,像下面这个例子 ,他为什么会变呢? Var1:=(H+L)/2; AO:=SMA(Var1,5,1)-SMA(Var1,34,1); AC:=SMA((AO-SMA(AO,5,1)),5,1);
ref1AO:=ref(AO,1); y5:=ref(SMA(Var1,5,1),1); y34:=ref(SMA(Var1,34,1),1); x1:=(ref1AO*170+5*33*y34-34*4*y5)/29; ref1AC:=ref(AC,1); AOref1:=ref(sma(AO,5,1),1); AOref2:=ref(SMA((AO-SMA(AO,5,1)),5,1),1); z3:=34*4*5*y5-5*33*5*y34 -4*170*AOref1 +4*170*5*AOref2; z4:=-34*4*y5+5*33*y34+z3; x2:=(ref1AC*170*25-z4)/(29*4); A:ref(min(x1,x2),1); |
-- 作者:FireScript -- 发布时间:2020/6/30 9:22:09 -- 你是不是扩充了图表的数据起始位置,改变了K线图的起始位置了。你这里用到的sma函数对这个是敏感的。 建议你限定下图表上K线的起始位置试试: |
-- 作者:yesdgn -- 发布时间:2020/6/30 9:26:58 -- 就是默认的560个周期, 我没有改变什么, 按你说的指定起始日期 那不是会加载的周期数据越来越多吗? 是不是默认加载560周期 当时计算时 他肯定是最后一周期 所以前面是有560周期的数据 但是我后面再去看 他还是只加载560周期 但是当时时间点已经不是最后一周期了 相当于那个点前面的数据已经没有560周期数据了 所以SMA 就计算出不一样的值了? |
-- 作者:FireScript -- 发布时间:2020/6/30 9:35:04 -- 就是你理解的那样。这种默认560周期,那么这个起始位置就会是移动的。相当于一个尺子,一直往前移动,尺子的初始端起始是一直在变化的。 |
-- 作者:yesdgn -- 发布时间:2020/6/30 9:42:09 -- 但是我刚才测试了下 , 我人为的按方向下键把加载的周期拉的很大 都加载到6月8号了 那理论上昨天晚上的一个时间点的计算 加载的数据足够用了 我也就是34 再*10也是340周期 但是他的值还是和当初计算时不一样 而是和后面再去看他时的值是一样的 按我们的理解应该是后面看的时候过了好久周期不够计算了 才会数值错误 那我加载够了 应该一致了啊 |
-- 作者:wenarm -- 发布时间:2020/6/30 9:46:11 -- 建议你去研究下SMA 和ema的算法,他们都是递归算法,k线数量不一样,自然其结果也会存在差异。(只要k线数量变化了,他们就会变化,注:可能存在结果一样的,只是因为计算结果正好相同、)
你这个问题和ref没有半点关系. 就是看B是怎么算,上个k位置的B变化了,你取值才会不一样。
[此贴子已经被作者于2020/6/30 9:48:49编辑过]
|
-- 作者:yesdgn -- 发布时间:2020/6/30 9:54:59 -- 按你这说法 我只要改变加载数据的周期数 他计算的结果就应该变化? 我改成了860个周期 他还是一样的值啊 |