以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- SUMBARS函数及MACD求和的问题 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=172452) |
-- 作者:fengmu166 -- 发布时间:2019/10/16 22:32:34 -- SUMBARS函数及MACD求和的问题 条件选股公式,假定当前MACD>0,比较两波红柱子之和: DEA:=EMA(DIFF,9); MACD:=2*(DIFF-DEA); N1:=SUMBARS(MACD>0 AND REF(MACD<0,1),1); N2:=SUMBARS(MACD<0 AND REF(MACD>0,1),1); N3:=SUMBARS(MACD>0 AND REF(MACD<0,1),2); M1:=SUM(MACD,N1); M2:=REF(SUM(MACD,N3),N2); M1>=M2; 问题1:N1,N2,N3周期区间是否正确(变量导出图形验证是正确的,帮忙再确认一下) 问题2:公式M1,M2是否为下图所示红柱之和? 问题3:按此条件选股,有明显M1<M2的股票入选,可能是什么原因? 谢谢! |
-- 作者:FireScript -- 发布时间:2019/10/17 8:52:51 -- 1.N1-N3是正确的。 2.M变量是要求单纯红柱只和,绿柱值算不算在内?因为如果当前是绿柱,M用sum计算时候绿柱值也是累加进去的。 这样就是只红柱累计进去。 M1:=SUM(if(MACD>0,MACD,0),N1);
|
-- 作者:FireScript -- 发布时间:2019/10/17 10:20:18 -- 你修改下m的定义方式,把绿柱时候值设成0. 你当前macd大于0 但是你sum时候还是会覆盖到前面绿柱时候的值。 |
-- 作者:fengmu166 -- 发布时间:2019/10/17 11:41:29 -- 好的。 M2:=REF(SUM(MACD,N3),N2); M2的定义方式有问题吗?应该不会把绿柱覆盖吧?
|
-- 作者:FireScript -- 发布时间:2019/10/17 13:47:55 -- 一样的如果当前是绿柱还会有点问题的。 可以这样做: DIFF:=EMA(CLOSE,12) - EMA(CLOSE,26);DEA:=EMA(DIFF,9); MACD:=2*(DIFF-DEA); N2:SUMBARS(MACD>0 AND REF(MACD<0,1),2); M0:SUM(IF(MACD>0,MACD,0),N2);//最近2段红柱值的总和 M1:SUM(if(MACD>0,MACD,0),N1);//最近一段红柱总和 M2:M0-M1;//倒数第二段红柱总和 这样应该简洁点吧,而且就算当前是绿柱也无所谓。 |
-- 作者:fengmu166 -- 发布时间:2019/10/17 15:05:51 -- 非常感谢! |