以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- [求助]MACD混合周期指标函数写法 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=5353) |
-- 作者:webzhang -- 发布时间:2011/3/4 16:38:51 -- [求助]MACD混合周期指标函数写法 [求助]MACD混合周期指标函数写法 目标在1分钟K线上记录 “5分钟周期”的每1分钟时候的 MACD值,做历史回归用; 直接调用跨周期的方法没有用,因为的 5分钟周期的指标最终由其最后的第5分钟最后确定,期间的1到4分钟的值没有体现出来;
MACD 的基本算法 DIFF : EMA(C,12) - EMA(C,26);
算法实现的原理上 把第1个C数据用本 分钟的,后面的数据 是5分钟周期的历史数据;
算法不难,但是在金字塔里面如何实现? 求助 版主和各位高手 给个 函数 ,VBA的也行;
|
-- 作者:fly -- 发布时间:2011/3/4 17:18:03 -- if MINUTE%5=0 then
//也可写成,同样也是本周期--1分钟周期的数据 i:="macd.diff";
|
-- 作者:董小球 -- 发布时间:2011/3/4 17:18:05 -- 看你写的貌似是要引用本周期之后的四个周期的数据 对么? 你可以看看REFX这个函数 但是你这相当于引用了未来的数据,请注意规避风险! |
-- 作者:webzhang -- 发布时间:2011/3/5 10:02:48 -- 回复FLY: 还是没有解决问题,因为 5分钟周期 引用的历史数据是 和 1分钟周期引用的历史数据是不同的 例如: DIFF : EMA(C,12) - EMA(C,26) 中 的 EMA(C,12)
对于 1分钟周期,C数据 引用的是 C(1,1),C(1,2) ,C(1,3) ..... C(1,12) ; 对于 5分钟周期,C数据 引用的是 C(5,1),C(5,2) ,C(5,3) ..... C(5,12) ; 其中 第5分钟末 C(5,1)=C(1,5);
现在: 在1分钟中 引用 5分钟 , 第1分钟 是 C(1,1), C(5,2) ,C(5,3) ..... C(5,12) ; 因为 C(5,1)还没有形成 用C(1,1)代替 第2分钟 是 C(1,2), C(5,2) ,C(5,3) ..... C(5,12) ; 因为 C(5,1)还没有形成 用C(1,2)代替 第3分钟 是 C(1,3), C(5,2) ,C(5,3) ..... C(5,12) ; 因为 C(5,1)还没有形成 用C(1,3)代替 第4分钟 是 C(1,4), C(5,2) ,C(5,3) ..... C(5,12) ; 因为 C(5,1)还没有形成 用C(1,4)代替 第5分钟 是 C(5,1), C(5,2) ,C(5,3) ..... C(5,12) ; 此时 C(5,1)=C(1,5)
现在直接引用,在当时的每1分钟,5分钟的每个数据都是确定的,但是前 4分钟无法记录,历史的图上根本看不到,无法用于历史回归;
[此贴子已经被作者于2011-3-5 10:09:46编辑过]
|
-- 作者:阿火 -- 发布时间:2011/3/5 10:11:27 -- 要把原来的macd稍微修改一下,加入ema12:ema(c,12); ema26:ema(c,26);用于被引用,这样就可以了 [此贴子已经被作者于2011-3-5 10:27:20编辑过]
|
-- 作者:阿火 -- 发布时间:2011/3/5 10:26:54 -- 完整代码如下: ema1:=stkindi(stklabel,\'macd.ema12\',0,2,-1); |
-- 作者:webzhang -- 发布时间:2011/3/5 12:05:30 -- 谢谢 上面各位,已经可以用了 |