旗舰版有个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公式修改和重写的权利

//------------------------------------------------------------------------

OpenD,CloseD
请教BarsSinceToday函数
OpenD函数的意思
OpenD函数在股票上获取的值一直是0
barssincetoday barcount 等bar相关函数的应用和变形
CloseD回溯
这两个函数有何区别
date函数在旗舰版里如何控制开平仓时间
是否有头寸监控类似的代码或案例
closed

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