您现在的位置:程序化交易>> 期货公式>> 交易开拓者(TB)>> 开拓者知识>>正文内容

写了一个跨周期求日线MACD的副图公式,欢迎沟通交流! [开拓者 TB]

  • 咨询内容: 适用于日线以下的分钟级别。
    Params
            Numeric    Duan(12);    //短日周期
            Numeric    Chang(26);    //长日周期
            Numeric    Jun(9);    //均值
    Vars
            NumericSeries    DIFF;
            NumericSeries    DEA;
            NumericSeries    MACD;
            NumericSeries    i(0);    //运行天数
            Numeric    x(1);    //临时计算天数
            Numeric    y(0);    //临时计算是哪根线收盘
            Numeric    z;    //计数器,越大越好
            Numeric    TempCum(0);
    Begin
            If(TrueDate(0)<>TrueDate(1))    i=i+1;    //基数天数
            If(i<Chang+Jun)    Return;    //过滤前期数据不正确天数
            DIFF=AverageD(1,Duan)-AverageD(1,Chang);    //求当前DIFF
            For z=0 To 10000{
                    y=NthCon(TrueDate(z)<>TrueDate(z+1),x);    //求更换天数的[K]线位置,默认从第一天开始
                    TempCum=TempCum+DIFF[y+1];    //临时求和,前几天的[DIFF]总和,不包括当天
                    x=x+1;    //天数增加一天
                    If(x>=Jun)    Break;    //天数满足,退出循环
            }
            DEA=(DIFF+TempCum)/Jun;    //临时和+当天最新值再平均
            MACD=DIFF-DEA;
            PlotNumeric("DIFF",DIFF,0,Red);
            PlotNumeric("DEA",DEA,0,Yellow);
            PlotNumeric("MACD",MACD);
            PlotNumeric("零线",0);  
           
    End


    //------------------------------------------------------------------------
    // 编译版本        GS2015.12.25
    // 用户版本        2019/12/15 21:54:50
    // 版权所有        jacyjie
    // 更改声明        TradeBlazer Software保留对TradeBlazer平台
    //                        每一版本的TradeBlazer公式修改和重写的权利
    //------------------------------------------------------------------------

     

     来源:CXH99.COM

  • TB技术人员: y=NthCon(TrueDate(z)<>TrueDate(z+1),x);    //求更换天数的[K]线位置,默认从第一天开始
    错误号 W0201

     

  • TB客服: 本帖最后由 xianjie2048 于 2019-12-18 10:27 编辑

    昨天太晚了,有点困。
            For z=0 To 10000{
                    y=NthCon(TrueDate(z)<>TrueDate(z+1),x);    //求更换天数的[K]线位置,默认从第一天开始
                    TempCum=TempCum+DIFF[y+1];    //临时求和,前几天的[DIFF]总和,不包括当天
                    x=x+1;    //天数增加一天
                    If(x>=Jun)    Break;    //天数满足,退出循环
            }
    确实有错误,但是对比了下,数据结果是对的。
    我觉得写出来的程序有漏洞,但是又得到正确的结果,想不透,所以来论坛咨询下。

 

有思路,想编写各种指标公式,交易模型,选股公式,还原公式的朋友

可联系技术人员 QQ: 262069696  点击在线交流或微信号:cxh99cxh99  进行 有偿收费 编写!

怎么收费,代编流程等详情请点击阅读!

(注:由于人数限制,QQ或微信请选择方便的一个联系我们就行,加好友时请简单备注下您的需求,否则无法通过。谢谢您!)


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容