//向上分形
//定义序列数组
VARIABLE: FX_UP_KX[] = 0 ;//向上分形算法中每根K线对应的最高值的序列数组
FX_UP_KX_TMP :HIGH ;//用于将序列变量转换为数组的临时变量。向上分形算法中每根K线对应的最高值的序列数组的临时变量
FX_UP_KX := FX_UP_KX_TMP;//将序列数组HIGH通过临时变量FX_UP_KX_TMP赋值到数组 FX_UP_KX[]中并自动扩充数组的大小。
VARIABLE: FX_UP_ZT[] = 0;//向上分形状态,空数组初始化为0
VARIABLE: FX_UP_SZ[] = 0 ;//向上分形数值,空数组初始化为0
VARIABLE: FX_UP_WZ[] = 0 ;//向上分形位置,空数组初始化为0
//定义变量
FX_UP_LSWZ := 2 ;// 向上分形临时位置,初始化为序列数组的倒数2根K线(即倒数第3根K,第1根是倒数0根,即datacount)
FX_UP_KX_LONG :UBOUND(FX_UP_KX);//FX_UP_KX数组长度
FX_UP_LSWZ_HIGH := FX_UP_KX [FX_UP_KX_LONG - FX_UP_LSWZ] ;//向上分形临时位置的最高值
//判断向上分性临时位置>后2根and后1根K线,ELSE 不成立goto向下分形。成立判断临时位置>前2根线and前1根线。
//成立,这是向上分形,输出分形状态、数值、位置,显示分形位置,退出。不成立判断临时位置<前2根或前1根,成立退出;不成立进入循环。
//循环条件前2根或前1根K线=临时位置。
//临时位置<前2根或前1根,成立退出;不成立判断临时位置=前2根。
//成立临时位置移到前2根;不成立临时位置移到前1位。
//drawicon(1,FX_UP_LSWZ_HIGH,4,2);
IF FX_UP_LSWZ_HIGH > FX_UP_KX [FX_UP_KX_LONG-(FX_UP_LSWZ-1)] AND FX_UP_LSWZ_HIGH > FX_UP_KX [FX_UP_KX_LONG-(FX_UP_LSWZ-2)] THEN
BEGIN
IF FX_UP_LSWZ_HIGH > FX_UP_KX [FX_UP_KX_LONG-FX_UP_LSWZ+2] OR FX_UP_LSWZ_HIGH > FX_UP_KX [FX_UP_KX_LONG-FX_UP_LSWZ+1] THEN
BEGIN
FX_UP_ZT := 1;
FX_UP_SZ := FX_UP_LSWZ_HIGH ;
FX_UP_WZ := BARPOS ;//如何定位并前移2根K线?
drawicon(FX_UP_ZT = 1,FX_UP_LSWZ_HIGH,4,2);//如何在最后的K线的前面的第2根K线上做标记.
//drawicon(1,FX_UP_LSWZ_HIGH,4,2);
EXIT;
END;
IF FX_UP_LSWZ_HIGH < FX_UP_KX [datacount-FX_UP_LSWZ+2] OR FX_UP_LSWZ_HIGH < FX_UP_KX [datacount-FX_UP_LSWZ+1] THEN EXIT;
WHILE FX_UP_LSWZ_HIGH = FX_UP_KX [datacount-FX_UP_LSWZ+2] OR FX_UP_LSWZ_HIGH = FX_UP_KX [datacount-FX_UP_LSWZ+1] DO
BEGIN
IF FX_UP_LSWZ_HIGH < FX_UP_KX [datacount-FX_UP_LSWZ+2] OR FX_UP_LSWZ_HIGH < FX_UP_KX [datacount-FX_UP_LSWZ+1] THEN EXIT;
IF FX_UP_LSWZ_HIGH = FX_UP_KX [datacount-FX_UP_LSWZ+2] THEN FX_UP_LSWZ = FX_UP_LSWZ+2; //如何把K线的位置前移2位
FX_UP_LSWZ = FX_UP_LSWZ+1; //如何把K线的位置前移1位
END;
END;
ELSE GOTO 向下分形;