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

请问如何在日线上提取上周的最高和最低价? - TradeBlazer公式 [开拓者 TB]

  • 咨询内容: 如题,日线有highD()函数,周线怎么办?

     

  • TB技术人员: 本帖最后由 追涨杀跌 于 2011-7-28 11:10 编辑

    回复 1# 盛世长城

    可以参照HighD写个类似的HighW,呵呵
    1. Params
    2.         Numeric WeeksAgo(1);
    3. Vars
    4.         NumericSeries barCnt;
    5.         NumericSeries WeekHigh;
    6.         Numeric i;
    7.         Numeric j;
    8.         Numeric nIndex(0);
    9.         Numeric CBIndex;
    10. Begin
    11.         CBIndex = CurrentBar;
    12.         If(CBIndex == 0 || IntPart(DateDiff(19700105,Date)/7) != IntPart(DateDiff(19700105,Date[1])/7))
    13.         {
    14.                 barCnt = 1;
    15.                 WeekHigh = High;
    16.         }Else
    17.         {
    18.                 barCnt = barCnt + 1;
    19.                 If(High > WeekHigh)
    20.                         WeekHigh = High;
    21.         }
    22.        
    23.         If(WeeksAgo == 0)
    24.         {
    25.                 return WeekHigh;
    26.         }Else
    27.         {
    28.                 For i = 1 To WeeksAgo
    29.                 {
    30.                         If( i == 1)
    31.                         {       
    32.                                 j = 0;
    33.                         }Else
    34.                         {
    35.                                 j = j + BarCnt[j];
    36.                         }
    37.                         If (j > CBIndex )
    38.                                 Return InvalidNumeric;
    39.                         nIndex = nIndex + BarCnt[j];
    40.                 }
    41.                 Return WeekHigh[nIndex];
    42.         }
    43. End
    复制代码

     

  • TB客服: 呵呵,好像不行啊,程序不认这个HighW~

     

  • 网友回复: 回复 3# 盛世长城

    我的意思是,你自己新建一个用户函数HighW,我照葫芦画瓢写了一个,你试试吧

     

  • 网友回复: 回复 3# 盛世长城
    参考一下这个:
    1. Params
    2.         Numeric weeksAgo(2);
    3. Vars
    4.         NumericSeries barCnt;
    5.         NumericSeries weekHigh;
    6.         Numeric i;
    7.         Numeric j;
    8.         Numeric nIndex(0);
    9. Begin
    10.         If (Day-Day[1]>1 Or Day-Day[1]<0)
    11.         {
    12.                 barCnt = 1;
    13.                 weekHigh = High;
    14.         }Else
    15.         {
    16.                 barCnt = barCnt[1] + 1;
    17.                 If(High > weekHigh)
    18.                         weekHigh = High;
    19.         }

    20.         If (weeksAgo == 0)
    21.         {
    22.                 Return weekHigh;
    23.         }Else
    24.         {
    25.                 For i = 1 To weeksAgo
    26.                 {
    27.                         If (i == 1)
    28.                         {
    29.                                 j = 0;
    30.                         }Else
    31.                         {
    32.                                 j = j + barCnt[j];
    33.                         }
    34.                         If (j > CurrentBar)
    35.                                 Return InvalidNumeric;
    36.                         nIndex = nIndex + barCnt[j];
    37.                 }
    38.                 Return weekHigh[nIndex];
    39.         }
    40. End
    复制代码

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

相关文章

    没有相关内容