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

在15分钟周期上,如何知道当前的K线是本周开始的第一根bar - TradeBlazer公式 [开拓者 TB]

  • 咨询内容: 在15分钟周期上,如何知道当前的K线是本周开始的第一根bar和最后一根bar?

     

  • TB技术人员: 第一根bar
    numericseries wd;
    wd=weekday();
    if(wd<wd[1] ||date-date[1]>=7)....
    最后一根bar应该不太好写,因为有各种节假日

    写得不对请指正

     

  • TB客服: 本帖最后由 z7c9 于 2012-5-7 11:24 编辑
    zzzlondon 发表于 2012-5-6 08:56
    第一根bar
    numericseries wd;
    wd=weekday();


    跨月的周就有问题了,比如

    2012年3月1日是周四,但是201203001-20120229=72

    也会认为是一周的开始

    跨月周和跨年周应该都会有问题

     

  • 网友回复:
    z7c9 发表于 2012-5-7 11:23
    跨月的周就有问题了,比如

    2012年3月1日是周四,但是201203001-20120229=72

    你说得对,之前自己没好好测试,这样写:
    1. Vars
    2.         NumericSeries wd;
    3. Begin
    4.         wd=weekday();
    5.         if(wd<wd[1] ||DateDiff(date[1],date)>=7)PlotBool("1",true);
    6. end
    复制代码似乎是可以的

     

  • 网友回复: 最后一根bar也是可以的,但是要调用未来函数,只能用于历史测试不能用于实盘
    1. Vars
    2.         NumericSeries wd;
    3.         Numeric wd2;
    4. Begin
    5.         wd=weekday();
    6.         if(wd<wd[1] ||DateDiff(date[1],date)>=7)PlotBool("1",true);
    7.        
    8.         wd2=WeekdayFromDateTime(date[-1]);
    9.         if(BarStatus<2){
    10.                 if(wd>wd2 ||DateDiff(date,date[-1])>=7)PlotBool("2",false);
    11.         }
    12. end
    复制代码

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

相关文章

    没有相关内容