if (vbbaohan1(m) >=2 ) then n=n+1 end if end if
vbfenxing1(m) = bao+n '包含关系只视为一个k线
'vbfenxing1(m)=vbbaohan1(m) 'if (m>735) then 'exit for 'end if
if (vbfenxing(m)<>0) then if (bao+n>= 4) then
'分型间距离大于等于4 符合要求
if (vbfenxing(m)<>vbfenxing(lastfenxing)) then 'vbfenxing1(m)=vbfenxing(m) n=0 bao=0
lastfenxing1=lastfenxing lastfenxing=m else
if (vbfenxing(m)=1) then
if (vbh(m)>vbh(lastfenxing)) then 'exit for
vbfenxing(lastfenxing)=0 n=0 bao=0
lastfenxing1=lastfenxing lastfenxing=m else
vbfenxing(m)=0 end if else
if (vbl(m) lastfenxing1=lastfenxing lastfenxing=m else vbfenxing(m)=0 end if end if '顶要高的 底要低的 相等时要选时间在前面的 end if '将上一个分开型位置数据更新为当下位置 else '分型间距离小于4 要看情况 若与前分型不同且破坏前笔,可保留其它情况要去掉 '破坏前笔即相邻分型不同且高于上上个顶或低于上上个底 if (vbfenxing(m)<>vbfenxing(lastfenxing)) then 'vbfenxing1(m)=vbfenxing(m) 'i=lastfenxing-1 'do while (vbfenxing(i)<>vbfenxing(m)) 'i=i-1 'if (i=0) then 'Exit Do 'end if 'loop 'lastfenxing1=lastfenxing i=lastfenxing1 if (vbfenxing(m)=1) then if (vbl(m)>vbl1(m))then t1=vbl1(m) else t1=vbl(m) end if if (vbh(i)>vbh1(i))then t2=vbh(m) else t2=vbh1(m) end if if (t1>t2) then n=0 bao=0 lastfenxing1=lastfenxing lastfenxing=m else vbfenxing(m)=0 end if else if (vbh(m)>vbh1(m))then t1=vbh(m) else t1=vbh1(m) end if if (vbl(i)>vbl1(i))then t2=vbl(m) else t2=vbl1(m) end if if (t1 'if (vbh(m) lastfenxing1=lastfenxing lastfenxing=m else vbfenxing(m)=0 end if end if else if (vbfenxing(m)=1) then if (vbh(m)>vbh(lastfenxing)) then 'exit for vbfenxing(lastfenxing)=0 n=0 bao=0 lastfenxing1=lastfenxing lastfenxing=m else vbfenxing(m)=0 end if else if (vbl(m) lastfenxing1=lastfenxing lastfenxing=m else vbfenxing(m)=0 end if end if '顶要高的 底要低的 相等时要选时间在前面的 end if end if end if next '以上处理分型间距离不小于4的要求 '以下去掉连续的顶或底 i=0 do while (vbfenxing(i)=0) i=i+1 if (i>nlast) then Exit Do end if loop lastfenxing=i '取第一个分型位置 '下面去掉连续的顶或底 for m = lastfenxing+1+nlast to nlast if (vbfenxing(m)<>0) then if (vbfenxing(m)<>vbfenxing(lastfenxing)) then lastfenxing=m else if (vbfenxing(m)=1) then if (vbh(m)>vbh(lastfenxing)) then vbfenxing(lastfenxing)=0 lastfenxing=m else vbfenxing(m)=0 end if else if (vbl(m) vbfenxing(m)=0 end if end if '顶要高的 底要低的 相等时要选时间在前面的 'vbfenxing(m)=0 end if end if next '以下处理一个顶要大于相邻的两个底及一个底要小于相邻的两个顶的问题 '取第一个分型位置 i=0 do while (vbfenxing(i)=0) i=i+1 if (i>nlast) then Exit Do end if loop lastfenxing=i for m = lastfenxing+1 to nlast if (vbfenxing(m)<>0) then if (vbfenxing(m)>0) then if (vbh(m)>vbl(lastfenxing)) then '满足条件顶>底 lastfenxing=m else '不满足条件顶>底 两个全置为0,并查下一个 vbfenxing(m)=0 vbfenxing(lastfenxing)=0 m=m+1 do while (vbfenxing(m)=0) m=m+1 if (m>nlast) then Exit Do end if loop lastfenxing=m end if else if (vbl(m) '不满足条件底<顶 两个全置为0,并查下一个 vbfenxing(m)=0 vbfenxing(lastfenxing)=0 m=m+1 do while (vbfenxing(m)=0) m=m+1 if (m>nlast) then Exit Do end if loop lastfenxing=m end if end if end if next i=0 for m = 0 to nlast if (vbfenxing(m)<>0) then i=i+1 vbfennumber(m)=i end if next 'vbfennumber(nlast)=0 'vbfenxing(nlast)=-vbfenxing(lastfenxing) x1=0 x2=0 x3=0 x4=0 x5=0 x6=0 x7=0 bi=0 maxbi=0 zhsh=0 '先取三个分型数据,然后进入循环处理 a=0 'Do While (vbfenxing(a) = 0 and a <= nlast) Do While ( a < nlast) if ( vbfenxing(a) <> 0) then exit do end if a = a + 1 Loop x1=a a=x1+1 Do While ( a < nlast) if ( vbfenxing(a) <> 0) then exit do end if a = a + 1 Loop x2=a a=x2+1 Do While ( a < nlast) if ( vbfenxing(a) <> 0) then exit do end if a = a + 1 Loop x3=a a=x3+1 bi=0 zhshbegin=x1 zzg=0 zzd=0 zgg=0 zdd=0 zg=0 zd=0 gg=0 dd=0 FOR m=a TO nlast '(1)开始 按照找出不能形成线段(中枢)