QianH:=ref(h,1);
QianL:=ref(L,1);
direction:0; ////当前K线方向,初值暂定为1
status:0; //当前K线的状态,是否为顶或者底,或者两者都不是。
s_direction:ref(direction,1); //前一K线的方向,应该有0,1,-1三个选项。
s_status:ref(status,1),NOAXIS;
czsc_high:0;//当前K线高点,初值暂定为前K高
czsc_low:0; //当前K线低点,初值暂定为前K低
s_czsc_high:ref(czsc_high,1);//前一K线处理完包含关系之后的高,初值暂定为前K高
s_czsc_low:ref(czsc_low,1);//前一K线处理完包含关系之后的低,初值暂定为前K低
//分型
f1:(s_czsc_high>0 or s_czsc_low>0); //如果前一缠K高>零,或者前一缠K高>0
f2:((s_czsc_high>High and s_czsc_low<Low) or (High>s_czsc_high and Low<s_czsc_low));
//如果前一缠K高>本K高,同时前一缠K低<本k低,或者(本K高>前一缠K高,同时本K低<前一缠K低)
f3:s_direction>0;//如果前一K线方向大于0
f4:s_direction<0;//如果前一K线方向<0
f5:s_direction>0;
f6:High<s_czsc_high;
f7:s_direction<0;
f8:Low>s_czsc_low;
f9:((High>ref(h,1) and Low<ref(L,1)) or (ref(h,1)>High and ref(L,1)<Low));
f10:ref(H,1)>ref(H,2);
f11:ref(L,2)>ref(L,1);
f12:ref(H,2)<ref(H,1);
f13:ref(H,1)>High;
f14:ref(L,2)>ref(L,1);
f15:ref(L,1)<Low;//当前K线状态(0.表示延续方向 1.表示K线转变方向)
///---------------第一组判断开始
If f1 and f2 and f3 then begin //如果前高大于零或者前低大于零 IF1 //存在缠中说禅K线的
direction=1;
status=0;
czsc_high=Max(s_czsc_high,High);
czsc_low=Max(s_czsc_low,Low);
end //对应IF3
//更新最高点和最低点
If f1=1 and f2=1 and f3=0 and f4=1 then begin
direction=-1;
status=0;
czsc_high=Min(s_czsc_high,High);
czsc_low=Min(s_czsc_low,Low);
end//对应IF4
///---------------第二组判断开始
If f1=1 and f2=0 and f5=1 and f6=1 then begin //如果前高大于零或者前低大于零 IF1 //不存在包含关系
direction=-1;
status=1;
czsc_high=High;
czsc_low=Low;
end
If f1=1 and f2=0 and f5=1 and f6=0 then begin //如果前高大于零或者前低大于零 IF1 //不存在包含关系
direction=1;
status=0;
czsc_high=Max(s_czsc_high,High);
czsc_low=Max(s_czsc_low,Low);
end
///---------------第三组判断开始
If f1=1 and f2=0 and f5=0 and f7=1 and f8=1 then begin
direction=1;
status=1;
czsc_high=High;
czsc_low=Low;
end
If f1=1 and f2=0 and f5=0 and f7=1 and f8=0 then begin
direction=-1;
status=0;
czsc_high=min(s_czsc_high,High);
czsc_low=min(s_czsc_Low,Low);
end
///---------------第四组判断开始 ,从这里 开始f1为0了
If f1=0 and f9=1 and f10=1 then begin
direction=1;
status=0;
czsc_high=Max(QianH,High);
czsc_low=Max(QianL,Low);
end
If f1=0 and f9=1 and f10=0 and f11=1 then begin //判断方向
direction=-1;
status=0;
czsc_high=Min(QianH,High);
czsc_low=Min(QianL,Low);
end
///---------------第五组判断开始
If f1=0 and f9=0 and f12=1 and f13=1 then begin
direction=-1;
status=1;
czsc_high=High;
czsc_low=Low;
end
If f1=0 and f9=0 and f12=1 and f13=0 then begin
direction=1;
status=0;
czsc_high=Max(QianH,High);
czsc_low=Max(QianL,Low);
end
///---------------第六组判断开始
If f1=0 and f9=0 and f12=0 and f14=1 and f15=1 then begin
direction=1;
status=1;
czsc_high=High;
czsc_low=Low;
end
If f1=0 and f9=0 and f12=0 and f14=1 and f15=0 then begin
direction=-1;
status=0;
czsc_high=Min(QianH,High);
czsc_low=Min(QianL,Low);
end
STICKLINE(czsc_low>0 and czsc_high>0,czsc_low,czsc_high,0.8,1),colorYellow; //输出缠中说禅K线