HE:=MA2;
WEIHEMACD:=0; WEIPINGMACD:=0; H1:=HIGH; L1:=LOW; FOXH:=HIGH; FOXL:=LOW;
FOXBAOHAN:=LING; FOXBAOHAN1:=LING; FOXGUANXI:=LING; FOXFENXING:=LING; FOXFENXING1:=LING; FOXFENNUMBER:=LING; FOXQUEKOU:=LING; FOXBICOUNT:=LING; FOXWEIBI:=LING; <%
vbquekou=FFL.VarData(\
vbfennumber=FFL.VarData(\ vbdatanumber = FFL.VarData(\ vbh = FFL.VarData(\ vbL = FFL.VarData(\ vbh1 = FFL.VarData(\ vbL1 = FFL.VarData(\
vbbaohan = FFL.VarData(\ vbbaohan1 = FFL.VarData(\ vbguanxi = FFL.VarData(\ vbfenxing = FFL.VarData(\ vbfenxing1 = FFL.VarData(\ vbbicount=FFL.Vardata(\ vbweibi=FFL.Vardata(\ nlast = UBound( vbh ) nvalue = 0.0000 nvaluefu = 0.0000 bianhua = 2
vbguanxi(0) = 1 for m = 1 to nlast
if (vbh(m)>vbh(m-1) and vbl(m)>vbl(m-1)) then vbguanxi(m)=1 else
if (vbh(m) vbguanxi(m) = 0 if (vbguanxi(m-1)=1) then vbguanxi(m)=1 if (vbh(m)>=vbh(m-1) and vbl(m)<=vbl(m-1)) then vbbaohan(m) = 2 vbbaohan(m-1) = 1 vbh(m-1)=vbh(m) vbl(m)=vbl(m-1) else vbbaohan(m-1) = -1 vbbaohan(m) = -2 vbh(m)=vbh(m-1) vbl(m-1)=vbl(m) end if else vbguanxi(m)=-1 if (vbh(m)>=vbh(m-1) and vbl(m)<=vbl(m-1)) then vbbaohan(m) = 2 vbbaohan(m-1) = 1 vbh(m)=vbh(m-1) vbl(m-1)=vbl(m) else vbbaohan(m-1) = -1 vbbaohan(m) = -2 vbh(m-1)=vbh(m) vbl(m)=vbl(m-1) end if end if end if end if next '处理连续包含即:连续3个及以上K线间存在的包含关系 for m = 0 to nlast vbbaohan1(m) = vbbaohan(m) NEXT i=0 do while (vbbaohan(i)=0) i=i+1 if (i>nlast) then Exit Do end if loop '第一个包含的位置 lastfenxing=i bao=0 existbao=0 for m = i to nlast if (vbbaohan(m) <> 0) then bao=bao+1 if (bao>=2) then if (vbbaohan(m)=2 and vbbaohan(m-1)=1 or vbbaohan(m)=-2 and vbbaohan(m-1)=-1) then vbbaohan1(m) = bao if (bao>2) then existbao=BAO for i = 1 to bao vbh(m-bao+i)=vbh(m) vbL(m-bao+i)=vbl(m) if (i = 1 or i=bao ) then else vbbaohan1(m-bao+i)=-3 end if next end if 'do while (bao>1) 'vbh(m-bao+1)=vbh(m) 'vbL(m-bao+1)=vbl(m) 'if (existbao=BAO or bao=existbao-1) then 'else 'vbbaohan1(m-bao+1)=-3 'end if 'bao=bao-1 'loop bao=0 end if end if else bao=0 end if next '分型预处理 existbao=vbguanxi(0) for m = 1 to nlast 'if (vbh(m-1)>=vbh(m-2) and vbh(m-1)>=vbh(m) and vbl(m-1)>=vbl(m-2) and vbl(m-1)>=vbl(m) or vbh(m-1)<=vbh(m-2) and vbh(m-1)<=vbh(m) and vbl(m-1) if (vbguanxi(m)<>existbao) then if (vbguanxi(m-1)=1) then vbfenxing(m-1) = 1 '顶 else vbfenxing(m-1) = -1 '底 end if existbao=vbguanxi(m) end if next '以上分型预处理 for m = 0 to nlast vbfenxing1(m) = vbfenxing(m) vbfenxing1(m) = 0 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+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 '以下处理分型间距离不小于4的要求同时处理连续的顶和底的问题 bao=0 i=0 n=0 existbao=vbfenxing(0) m=0 do while (vbbaohan1(i) <2) i=i+1 if (i>nlast) then Exit Do end if loop lastbaohan=i '第一个包含位置 i=0 do while (vbfenxing(i)=0) i=i+1 if (i>nlast) then Exit Do end if loop '第一个预备分型位置 lastfenxing=i lastfenxing1=lastfenxing i=0 for m = lastfenxing+1 to nlast if (vbbaohan(m) = 0) then bao=bao+1 else