以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- sumbars函数 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=169768) |
-- 作者:qucheng686 -- 发布时间:2019/5/8 22:56:52 -- sumbars函数 老师请问: 上次:=barslast(x); 上上次:ref(barslast(x),a1+1)+a1+1; 与 上上次:sumbars(x); 这两种写法是等价的吗? 我这边输出的值 第一种写法比第二种写法多一天,哪个是对的呢? |
-- 作者:wenarm -- 发布时间:2019/5/9 8:27:19 -- 第二种是对的。sumbars是从1开始计数的。而barslast从0开始计数 两种实现思路都没有错。但是第一种的算法写错了。你理解下下面的代码就知道了。两个barslast的结果是存在2个0,所以应该加2. //上次:barslast(time=133000); 上次:barslast(time=133000)+1; |
-- 作者:qucheng686 -- 发布时间:2019/5/9 14:40:00 -- 试了下发现有点问题, 请老师看看哪里不对 交叉值2的值用sumbars取不到 ma1:ma(c,5); ma2:ma(c,10); 交叉:cross(ma1,ma2); 交叉距离1:BARSLAST(交叉); 交叉值1:ref(交叉,交叉距离1); 交叉距离2:sumbars(交叉,1); 交叉值2:ref(交叉,交叉距离2); 输出值: <SC0000 原油连续> 时间:19/05/09 18:36:30 序列:7150 开:482.5 高:482.5 低:482.5 收:482.5 量:2 额:966656 <test3> MA1: 482.500 MA2: 482.560 交叉: 0.000 交叉距离1: 19.000 交叉值1: 1.000 交叉距离2: 20.000 交叉值2: 0.000 |
-- 作者:wenarm -- 发布时间:2019/5/9 14:51:00 -- 交叉值1:ref(交叉,交叉距离1);有值的原因是:你这个位置始终获得的都是上根交叉位置。 交叉值2:ref(交叉,交叉距离2);没有值的原因是:你始终得到的是交叉位置上一根k的结果,自然始终是0.
你自己想一下:如果在某根k上“交叉距离1”等于4 ,那么“交叉距离2”就是等于5。那你向前引用的结果向前数4根就是交叉位置。数5根就是交叉的上一根
|
-- 作者:qucheng686 -- 发布时间:2019/5/9 14:54:40 -- 理解了, sumbars和ref 配合用的时候, ref要-1 才对. |