的连续三笔中的中间那笔是两个线段(中枢)的分界标志
'其它则是不同级别的中枢和线段的思路设计
'在大盘和指数中分笔与1分中1分级别要大一些,在个股中1分要大一些因有的个股1分钟内可能无成交 if (vbfenxing(m)<>0) then
'(2) begin 只在分型不为0时进行处理,即:是分型时处理 bi=bi+1 x4=m
if (zhshbegin=0) then zhshbegin=x4 end if
if (vbfenxing(x1)>0) then
'以顶分型开始,x1,x3取高点x2,x4取低点,线段及中枢区间取高点中的低者,低点中的高者
zg=min(vbh(x1),vbh(x3)) '临时中枢高点
zd=max(vbl(x2),vbl(x4)) '临时中枢低点
gg=max(vbh(x1),vbh(x3)) '临时中枢高高点
dd=min(vbl(x2),vbl(x4)) '临时中枢低低点 else
'以底分型开始,x2,x4取高点x1,x3取低点 zg=min(vbh(x2),vbh(x4)) '临时中枢高点
zd=max(vbl(x1),vbl(x3)) '临时中枢低点
gg=max(vbh(x2),vbh(x4)) '临时中枢高高点
dd=min(vbl(x1),vbl(x3)) '临时中枢低低点 end if
if (zd>zg ) then
'(3)中枢低点大于高点,即未形成中枢,要将x2,x3的位置记录出来 vbweibi(x2)=1 vbweibi(x3)=2
'msgbox(\当前的vbweibi(x3):\maxbi=max(maxbi,bi) vbbicount(x2)=bi bi=-1
zhshbegin=0 else
'(3)中枢低点小于等于高点,即形成中枢,不用记录位置 end if
'(3)结束,将x1,x2,x3的值分别换成x2,x3,x4的值,也即向前推进一个分型,然后再返回进行比较 x1=x2 x2=x3 x3=x4 end if
'(2) 结束 NEXT
'(1)结束找出所有连续三笔无重叠的位置,即不能形成中枢的候选位置,以下要对这些位置进行筛选并逐个分析,看图时要特别注意这些位置'以下为自定义函数部分 Function max(a, b) If (a >= b) Then max = a Else
max = b End If
End Function
Function min(a, b) If (a <= b) Then min = a Else min = b End If
End Function
FFL.Vardata(\FFL.Vardata(\FFL.VarData(\FFL.VarData(\
FFL.VarData(\FFL.VarData(\FFL.VarData(\ FFL.VarData(\FFL.VarData(\
FFL.VarData(\FFL.VarData(\%>
FOXXIAN:=LING; FOXXIANG:=LING; FOXXIAND:=LING; FOXTEG:=LING; FOXTED:=LING; FOXTEGX:=LING;
FOXTEG1:=LING; FOXTED1:=LING; FOXTEGX1:=LING;
FOXDATATYPE:=DATATYPE; FOXTEBAO:=LING; FOXTEBAO1:=LING; FOXTEGUANXI1:=LING; FOXFENNUMXIAN:=LING;
FOXZQDM:=STRLEFT(STKLABEL,2); FOXXIAOSHU:=0; <%
vbquekou=FFL.VarData(\
vbfennumber=FFL.VarData(\ vbdatanumber = FFL.VarData(\ vbfennumxian=FFL.VarData(\vbxiaoshu=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(\ vbzqdm = FFL.VarData(\ vbxian=FFL.Vardata(\vbxiang=FFL.Vardata(\ vbxiand=FFL.Vardata(\ vbteg=FFL.Vardata(\vbted=FFL.Vardata(\vbtegx=FFL.Vardata(\vbtebao=FFL.Vardata(\ vbtebao1=FFL.Vardata(\ vbteg1=FFL.Vardata(\vbted1=FFL.Vardata(\vbtegx1=FFL.Vardata(\ vbweibi=FFL.Vardata(\ vbbicount=FFL.Vardata(\ nlast = UBound( vbh )
'msgbox(\当前的数据类型为:\
IF ( vbzqdm =\or vbzqdm =\or vbzqdm =\or vbzqdm =\or vbzqdm =\ vbxiaoshu=3
else
vbxiaoshu=2 end if
IF ((vbdatanumber>=0 OR vbdatanumber=1 ) )THEN
'IF ((vbdatanumber=0 OR vbdatanumber=1 ) and ( vbzqdm =\or vbzqdm =\or vbzqdm =\or vbzqdm =\or vbzqdm =\or vbzqdm =\ELSE
FOR m=0 TO nlast
if (vbfenxing(m)<>0) then vbxian(m)=vbfenxing(m) vbxiang(m)=vbh(m) vbxiand(m)=vbl(m) end if NEXT ENd IF
'笔的数据是按K线数据自动计算的即:vbfenxing
'初始计算相关数据置为0 当数据类型为0和1即分笔和1分钟时要按笔-线段的过程组成中枢
'其它级别(指5分钟及以上)时用笔组成中枢此时要将笔的数据即:分型位置代入线段数组中
IF ((vbdatanumber>=0 OR vbdatanumber=1 ) )THEN
'IF ((vbdatanumber=0 OR vbdatanumber=1 ) and ( vbzqdm =\or vbzqdm =\or vbzqdm =\or vbzqdm =\or vbzqdm =\or vbzqdm =\
'(1)分笔和1分钟 计算线段数据 vbzqdm =0 为指数
'公式还未考虑开始连续三笔无重叠不能形成线段的处理,缠论中对此也未明确不能形成线段的笔应发生属于那个线段
'对走势中间连续三笔无重叠不能形成线段的处理也未明确不能形成线段的笔应属于那个线段
'缠论中规定线段是连续的且以不同的分型作为两个端点即:不能顶到顶和底到底,此规定要考虑的 i = 0 ex=0
Do While ( i <= nlast)
If (vbfenxing(i) <> 0 ) then exit do end if i = i + 1 Loop x1 = i
xianbegin = x1 i = x1 + 1
Do While ( i <= nlast)
If (vbfenxing(i) <> 0 ) then exit do end if i = i + 1 Loop x2 = i i = x2 + 1
Do While ( i <= nlast)
If (vbfenxing(i) <> 0 ) then exit do end if i = i + 1 Loop x3 = i i = x3 + 1
Do While ( ex=0 ) '()
if (x3>nlast or x2>nlast ) then
'msgbox(\当前的1 x2:\当前的1 x3:\当前的nlast:\exit do end if
if ( vbweibi(x2)=0 or vbweibi(x3)=0 or vbweibi(x3)=1 or vbweibi(x2)=2 )