旗舰版有个closeD,openD,BarsSinceToday函数,如何编写类似的closeW,openW,BarsSincethisweek函数

/------------------------------------------------------------------------// 简称: CloseD// 名称: 求N天前的收盘价// 类别: 用户函数// 类型: 内建函数// 输出: 数值型//------------------------------------------------------------------------Params Numeric daysAgo(2);Vars NumericSeries barCnt; NumericSeries dayClose; Numeric i; Numeric j; Numeric nIndex(0); Numeric CBIndex;Begin CBIndex = CurrentBar; If(CBIndex == 0 || TrueDate(0)!=TrueDate(1)) { barCnt = 1; }Else { barCnt = barCnt + 1; } dayClose = Close; If(daysAgo == 0) { return dayClose; }Else { For i = 1 To daysAgo { If( i == 1) { j = 0; }Else { j = j + BarCnt[j]; } If (j > CBIndex ) Return InvalidNumeric; nIndex = nIndex + BarCnt[j]; } Return dayClose[nIndex]; }End//------------------------------------------------------------------------// 编译版本 GS2013.07.08// 版权所有 TradeBlazer Software 2003-2013// 更改声明 TradeBlazer Software保留对TradeBlazer平// 台每一版本的TradeBlazer公式修改和重写的权利//------------------------------------------------------------------------//------------------------------------------------------------------------// 简称: OpenD// 名称: 求N天前的开盘价// 类别: 用户函数// 类型: 内建函数// 输出: 数值型//------------------------------------------------------------------------Params Numeric daysAgo(2);Vars NumericSeries barCnt; NumericSeries dayOpen; Numeric i; Numeric j; Numeric nIndex(0); Numeric CBIndex;Begin CBIndex = CurrentBar; If(CBIndex == 0 || TrueDate(0)!=TrueDate(1)) { barCnt = 1; dayOpen = Open; }Else { barCnt = barCnt + 1; } If(daysAgo == 0) { return dayOpen; }Else { For i = 1 To daysAgo { If( i == 1) { j = 0; }Else { j = j + BarCnt[j]; } If (j > CBIndex ) Return InvalidNumeric; nIndex = nIndex + BarCnt[j]; } Return dayOpen[nIndex]; }End//------------------------------------------------------------------------// 编译版本 GS2013.07.08// 版权所有 TradeBlazer Software 2003-2013// 更改声明 TradeBlazer Software保留对TradeBlazer平// 台每一版本的TradeBlazer公式修改和重写的权利//------------------------------------------------------------------------//------------------------------------------------------------------------// 简称: BarsSinceToday// 名称: 当天的第一个数据到当前的Bar数// 类别: 用户函数// 类型: 内建函数// 输出: 数值型//------------------------------------------------------------------------Vars NumericSeries ReBars;Begin If(CurrentBar == 0 || TrueDate(0)!=TrueDate(1)) { ReBars = 0; }Else { ReBars = ReBars + 1; } Return ReBars;End//------------------------------------------------------------------------// 编译版本 GS2013.07.08// 版权所有 TradeBlazer Software 2003-2013// 更改声明 TradeBlazer Software保留对TradeBlazer平// 台每一版本的TradeBlazer公式修改和重写的权利//------------------------------------------------------------------------

建议直接叠加日线数据,比这种函数合成更稳定