您现在的位置:程序化交易>> 股票公式>> 通达信>> 通达信知识>>正文内容

[分享] 你会写跨周期调用吗? [通达信]

  • 咨询内容:  

    跨周期调用实例详解


    看到好几个人的帖子写的跨周期调用都犯了“习惯性”错误。例如,在日线公式里,为读取上一天的收盘价,写:

                    ref(c,1)

    为读取上一周的周收盘价,很习惯地就写成:

                c1:=   ref(c#week,1) ;

     错了。(但也并非总错,在某些天可能是对的。*注1)


    一般地,ref(x,1)是昨天的x,于是,c1=ref(c#week,1)就是昨天的c#week,所以,如果当前是星期三,c1则是本周星期二所在周的收盘价,星期二和星期三都是本周的,所以应该有相同的周收盘价。(这里假定星期二和星期三都开盘。)


    如果你一定要在日线公式里,用c#week来得到上一周的周收盘价c1,应该怎样写呢?

    可以这样写:

            A:=barslast(weekofyear != ref(weekofyear,1));  *注2

           c1:=ref(c#week, A+1);

     

    当然,此时直接写

          c1:=ref(c,A+1);  *注3

    也行。


     

    正确的跨周期调用的写法(读取上周的收盘价、成交量)

     

    1)       建立一个(被调用的)指标公式,例如取名为“zuotian”,其内容是:

       {zuotian}

       c1:ref(c,1);

       v1:ref(v,1);


    2)      在主公式里

     

    为了读取上一周的收盘价,写

    c1:=zuotian.c1#week;   {接收变量名任意,并非一定取名c1}

     

    为了读取上一周的成交量,写

    v1:=zuotian.v1#week;


    为了读取上一月的收盘价,写

    c1:=zuotian.c1#month;

     

    为了读取上一月的成交量,写

    v1:=zuotian.v1#month;


    为什么要这样? 现以在日线公式里执行 c1:=zuotian.c1#week 为例说明:

     

    按通达信的语法,

          D1:=zuotian.c1;

    是调用指标公式zuotian,令它在(本股票的)相同的周期(此时是日线)下执行,并把它在当前日K线上的输出C1赋值给本公式的D1变量。即D1将是昨天的收盘价, 因为公式zuotian在日周期下执行,输出的c1=ref(c,1)当然是昨天的close。


    现在解释

          c1:=zuotian.c1#week;

    按通达信语法,该语句的语意是:调用指标公式zuotian,令它在week周期下执行,并把它在(本日K线所对应的)周K线上的输出c1赋值给本公式的c1变量。

    公式zuotian在week周期下执行,输出在周K线上的c1=ref(c,1)当然是上一周的close。


    注: 本日所对应的周/月是指本日所在的周/月。如果在日线中用 #MIN60跨周期调用,本日所对应的小时K线是指本日的最后交易小时即15:00那条60分钟K线。


    如果你愿意,请回答以下问题:

    *注1 “但也并非总错,在某些天可能是对的。”  在哪些天是对的?

    *注2  本语句这种写法也是不全对。你知道在什么情况下它是错的吗?

    *注3  c1:=ref(c,A+1)为什么对? 为得上周的成交量,写v1:=ref(v,A+1)对吗?              


    本人仔细阅读了tdxluntan老师的有关跨周期的帖子,现在把心得贴出来,与大家分享。借此对tdxluntan老师表示深谢。

     


     

  • 通达信技术部:

    学习下。

     

    只是这个网页被太多弹窗及不良提示链接了。那些管理或版主们你们被猪了???

     

     

  • 通达信客服: 本人写这个帖子花了差不多1个小时,有30个人看过了,只有一个人回帖,太不够意思了。本人郑重声明,以后只帮在此贴回贴的人-- 因为他们可能是性情中人,值得你去交的朋友。没回帖的人,也许也是性情中人,只是因为他看此贴并没有收获才不回。那说明他已经不需要别人帮助了。(根本没看此贴的人就不得而知了,请勿怪失言。)哈,就这么定了。

     

  • 网友交流: 顶楼主,我正为此烦恼,终于有所明白了

     

  • 网友交流: c1:zuotian.c1#MIN15;

    在日线中c1显示的是开盘价,在15分钟图中c1显示的是收盘价

    我想做一个13:45-14:00的条件预警,不知怎么搞?

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 511411198  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


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

相关文章

    没有相关内容