/------------------------------------------------------------------------
// 简称: 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公式修改和重写的权利
//------------------------------------------------------------------------
建议直接叠加日线数据,比这种函数合成更稳定