Vars
Series<Numeric> RefIndex(1); // 基准K线位置序列
Series<Bool> IsRefUp(false); // 基准K线是否为阳线
Numeric Offset;
Numeric RefC;
Numeric RefH;
Numeric RefL;
Numeric RefO;
Bool Contained;
Begin
// 初始化首根K线
If (BarCount == 1)
{
RefIndex = 1;
IsRefUp = (Close > Open);
};
// 从第二根K线开始处理
If (CurrentBar > 1)
{
// 仅在需要比较时处理
If (CurrentBar > RefIndex)
{
Offset = CurrentBar - RefIndex;
RefC = Close[Offset]; // 基准K线收盘价
RefH = High[Offset]; // 基准K线最高价
RefL = Low[Offset]; // 基准K线最低价
RefO = Open[Offset]; // 基准K线开盘价
// 判断包含关系
If (IsRefUp )
Contained = (High <= RefC) And (Low >= RefL); // 阳线包含条件
Else
Contained = (High <= RefH) And (Low >= RefC); // 阴线包含条件
// 更新基准K线
If (Not Contained)
{
RefIndex = CurrentBar; // 更新基准位置为当前Bar
IsRefUp = (Close > Open); // 记录新基准的阴阳属性
};
};
};
END
新建函数去了?函数最后需要一个return返回值的