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

哪位老师指导我学习一下跨周期调用 [通达信]

  • 咨询内容: 如题。先感谢了。回帖或短信都欢迎。如果我有收获,还会再感谢!!!

     

  • 通达信技术部:

    http://tdx.com.cn/dispbbs.asp?boardid=15&id=289447&page=&star=1

     

     

    公式学习网址
    http://tdx.com.cn/dispbbs.asp?boardid=12&Id=282467
    http://tdx.com.cn/dispbbs.asp?boardid=47&Id=255723
    上面的是实战的 照着写一些应该学的快些 下面网址偏理论
    其实主要是自己ctrl+F 公式管理器里面 新建 插入函数
    这个系统自带的东西 多看看 多用用 多实践
    http://help.tdx.com.cn/book.asp 红宝书全系列

     

  • 通达信客服:

    谢谢版主指导。

     

    以下是引用tdxluntan在2012-12-6 18:44:00的发言(摘自版主的帖子):

     

    关于跨周期问题。红宝书是这样写的:

     

    使用跨周期引用数据时要注意:
     1.可供引用的周期类型有:
        MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH
        分别表示将1,5,15,30,60分钟K线数据,以及日,周,月K线数据,代入被引用的公式,进行运算。
     2.意义:
        可将大周期内跑的数据,引用到小周期内来跑;也可将小周期内跑的数据,引用到大周期内来跑。

       3.切勿对开高低收以外的数据直接使用变周期转换!

       4.切勿对大周期内跑的数据使用小周期转换!无论是开高低收等基本数据、还是自定义变量,都无法从大周期数据直接转换成小周期数据,只能通过公式引用来获得小周期数据。

     

    上述2和4把我说糊涂了。只好实际试试了。 是否容许在大周期运行的公式里引用小周期数据呢?例如在周线中引用日线数据,如

              c1:c#day;
              k1:kdj.k#day;

     

              我刚才试了一下,在000422(湖北宜化)周线,最后三周3条K线上显示的数据分别为:

                    c1=9.74, k1=42.67;     9.03, 18.82;     9.23; 41.00

              再去日线图,看最后三周周末那天的c和k,正是这3组数据。

              这证明“在周线中引用日线数据”是成功的。

     

              不过,以前我在日线中引用60分钟的数据,结果是不对的 -- 差1天,很有规律。(刚才没试,因为我没下载5分钟数据。)

     

    所以,关于“大周期引用小周期”,我认为通达信的本意是允许的,只是存在BUGs。

     

     

     

  • 网友交流:
    以下是引用tdxluntan在2012-12-7 10:34:00的发言:

    谢谢版主回复,虽然有点失望。跨周期引用哪有像您说的那么复杂啊?

     

    一个大周期包含N个小周期,如下图N=4,相当于日线周期与小时周期的对应关系: 

     

    大周期K线:   K    K    K    K    K    K    K    (日K线)

    小周期K线:KKKK KKKK KKKK KKKK KKKK KKKK KKKK    (小时K线)

     

    确定对应关系:大周期的K线与它所包含的N个小周期的最后一条K线对应,如日K线对应于15:00那条小时K线。

     

    所谓跨周期引用,无论“小周期引用大周期”或“大周期引用小周期”,无非就是引用对应K线上的输出值。实现起来应该是很简单的,只要别把“对应”的K线找错了就行。

    原来如此,确实不太复杂。谢谢tdxluntan。

     

  • 网友交流:

    以下还是tdxluntan老师的回帖内容:

     

    (1)20121206  问题:在日线里,求13周(或月)的最高值。    有2种办法。

     

    A) 办法1.   在日线里根据日线数据直接求,你贴中给出了公式,但说 “{缺陷:如果哪个周一是节假日 就会多统计一周,但是已经是没有办法了}”。为什么用“周一”来判断啊?这个问题很好解决,这里不说这些了。

    B) 办法2.   我们现在关心的是 “跨周期引用”,所以只用跨周期写法写。你贴中写的是

    13周内的最高价线:

          十三周最高:HHV(H,13)#WEEK;

    13个月的最高价线:

          十三月最高:HHV(H,13)#MONTH;


     这种写法把概念弄错了。正确的写法如下:


    {公式}

        十三周最高:AAA.hh#week(13);

        十三月最高:AAA.hh#month(13);

     --------

     

    被调用的指标公式AAA:

     

    {AAA}

    {参数N=1,1000,5}

       hh:hhv(h,N);

       c0:c;

       c1:ref(c,1);

       ma1:ma(c,N);

     

     (这个公式还将被下面的公式调用) 

     

     

    (2)20120820 能否烦请您写一个给我?

    条件如下:

    条件1:要求当月的收盘价与上月收盘价相比,涨幅大于20%

    条件2:=要求当月的最后一个交易日的涨幅为9.5%以上。

    条件1 与 条件2 同时满足。

     

    甲) 只用日线数据。贴中给的公式仍有问题,因为也很简单,就写在这儿吧:

       a:=barslast(month!=ref(month,1));

       c/ref(c,a+1)-1>20/100 and c/ref(c,1)-1>9.5/100;


    月收盘价和(最后交易日的)日收盘价是一回事。(不考虑历史阶段选股)

     

    乙) 用跨周期:

       c0:=AAA.c0#month;  {或 c0:=c;}

       c1:=AAA.c1#month;

       c0/c1-1>20/100 and c/ref(c,1)-1>9.5/100;


     

    3) 20120825  #小周期引用大周期数据的问题,因为在小周期,连续的几个周期取的大周期的数值都是相等的。所以不能达到ma(c#week,5)就和周k线中的ma(c,5)一样的效果。所以下面的是一个在日线周期下面展示周均线的例子。... ...

     

    在日线里不用跨周期而求5周均线,虽然可以,但当然是麻烦的。如果只关心在每一天的5周均线值,还是用跨周期简单,只须写:

        五周均线:AAA.ma1#WEEK(5);


     

    4) 20120914{分钟周期下的选股}

    选股:日线满足C>MA(C,10), 同时60分钟线收盘价满足C>MA(C,30),应该怎么编呢,诚心求教 .


    a) 用60分钟周期选股:

      c>ma(c,30) and c>AAA.ma1#DAY(10);

    b) 日线周期选股:

      c>ma(c,10) and c>AAA.ma1#MIN60(30);

      {可惜实验表明在日线指标公式中#min60返回数据不对。}

     

     

    以上公式都是理论上应该的写法。我做过指标公式若干,至于通达信是否支持“跨周期”选股,我不敢说。我也没有去试过。

    我回此贴只想说明,“跨周期”其实就是如此简单而不是很复杂。

     

     

 

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

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


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

相关文章

    没有相关内容