缠论一买、三买选股公式(飞狐 +悟多公式) MA10:=MA(CLOSE,10); MA5 MA1 MA2 MA3
MA(CL0SE,5); MA5-MA10; MA10; MA10;
DATANUMBER:二DATAT YPE; DATANUMBER1:=DATAT
YPE; DATANUMBER2:=DATAT YPE; DATANUMBER3:=DATAT YPE; LING:二HIGH; <% vbdata nu mber = (\"data nu mber\") vbdata nu mber1 = (\"data nu mber1\") vbdata nu mber2 = (\"data nu mber2\") vbdata=1 vbdata仁 vbdata2=1 Select Case vbdata nu mber Case 0 vbdata= vbdata仁 vbdata2= Case 1 vbdata= vbdata仁 vbdata2二
Case 2 vbdata= vbdata1= vbdata2= Case 3 vbdata= vbdata1= vbdata2=
Case 4 vbdata= vbdata1= vbdata2=
Case 5 vbdata= vbdata1= vbdata2= Case 6 vbdata= vbdata1= vbdata2=
Case 7 vbdata= vbdata1= vbdata2=
Case 8 vbdata= vbdata1= vbdata2=
Case 9 vbdata= vbdata1= vbdata2=
Case 10 vbdata= vbdata1= vbdata2=
Case 11 vbdata= vbdata1= vbdata2= Case 12 vbdata= vbdata1= vbdata2= Case else vbdata=2
vbdata1= vbdata2=2 End Select (\"datanumber\") =vbdata (\"datanumber1\") =vbdata1 (\"datanumber2\") =vbdata2 vbling = (\"ling\") vbma = (\"ma1\") vbma2 = (\"ma2\") vbma3 = (\"ma3\") nlast = UBound( vbma ) nvalue = nvaluefu = bianhua = 2 oldbianhua = 0 for m = 0 to nlast vbma2(m) = 0 vbma3(m) = 0 vbling(m)=0 next m= 0 for i = 0 to nlast m=m+1 'nlast - m 'vbma2(i) = 0 if (vbma(i) > 0) then bianhua = 1 nvalue = nvalue + vbma(i) else bianhua = 2 nvaluefu = nvaluefu + vbma(i) end if if (oldbianhua = bianhua) then else vbma3(i) = m m=0
if (bianhua = 1) then vbma2(i) = nvaluefu nvaluefu = 0 'nvaluefu = 0 else vbma2(i) = nvalue nvalue = 0 'nvalue = 0
end if end if oldbianhua = bianhua next (\"ma2\") = vbma2 (\"ma3\") = vbma3 (\"ling\") =vbling %> DRAWNUMBER(REF(MA2,0)<0 0=1,LLV(LOW,5),REF(MA2,0)*1000,0),colorFF00; DRAWNUMBER(REF(MA2,0)<0 0=1,LLV(LOW,5)-DATANUMBER,REF(MA3,0),0),colorFFFF; DRAWNUMBER(REF(MA2,0)<0 0=1,LLV(LOW,5)-DATANUMBER*2,REF(MA2,0)*1000/REF(MA3,0),0),colorFF00;
DRAWNUMBER(REF(MA2,0)>0 AND 0=1,HHV(HIGH,5),REF(MA2,0)*1000,0),colorFF; DRAWNUMBER(REF(MA2,0)>0 0=1,HHV(HIGH,5)+DATANUMBER,REF(MA3,0),0),colorFFFF; DRAWNUMBER(REF(MA2,0)>0 AND
0=1,HHV(HIGH,5)+DATANUMBER*2,REF(MA2,0)*1000/REF(MA3,0),0),colorFF; MA1:=MA5-AND AND
MA10;
WEIHE:=LING; WEIPING:=LING;
<% vbhe=(\"weihe\") vbping=(\"weiping\") vbma = (\"ma1\") nlast = UBound( vbma )
nvalue = nvaluefu = bianhua = 2 oldbianhua = 0 i= 0 m= nlast if (vbma(nlast) > 0) then Do While (vbma(m)>0) nvalue = vbma(m) + nvalue i=i+1 m=m-1 if(m<0) then exit do end if Loop else
AND AND
Do While (vbma(m)<0) nvalue = vbma(m) + nvalue i=i+1 m=m-1 if(m<0) then exit do end if Loop end if if (i=0) then i=1 end if nvaluefu = nvalue/i vbhe(nlast) = nvalue vbping(nlast) = nvaluefu (\"weihe\") =vbhe (\"weiping\")= vbping %> DRAWNUMBER(WEIHE<>0 0=1,IF(WEIHE>0,HIGH,LOW),WEIHE*1000,0),colorFF; DRAWNUMBER(WEIPING<>0 AND 0=1,(IF(WEIHE>0,HIGH,LOW))-DATANUMBER,WEIHE/WEIPING ,0),colorFFFF; DIFF:=EMA(CLOSE,12)-EMA(CLOSE,26); DEA:=EMA(DIFF,9); MACD:=2*(DIFF-DEA); MA1:=MACD; MA2:=MACD; MA3:=MACD; MA1WE:=MACD; 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=(\"foxquekou\") vbfennumber=(\"foxfennumber\") vbdatanumber = (\"datanumber\") vbh = (\"foxh\") vbL = (\"foxl\") vbh1 = (\"foxh\") vbL1 = (\"foxl\") vbbaohan = (\"foxbaohan\") vbbaohan1 = (\"foxbaohan1\") vbguanxi = (\"foxguanxi\") vbfenxing = (\"foxfenxing\") vbfenxing1 = (\"foxfenxing1\") vbbicount=(\"foxbicount\") vbweibi=(\"foxweibi\") nlast = UBound( vbh ) nvalue = nvaluefu = 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) 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 '第一 AND AND DRAWNUMBER(WEIHE<>0 0=1,(IF(WEIHE>0,HIGH,LOW))-DATANUMBER*2,WEIPING*1000,0),colorFF00; 个包含的位置 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 1)>=vbl(m) or vbh(m-1)<=vbh(m-2) and vbh(m-1)<=vbh(m) and vbl(m-1) 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 vbl(m-1)>=vbl(m-2) and vbl(m- 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 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 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) 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 (vbl(m) 间距离不小于 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) 下处理一个顶要大于相邻的两个底及一个底要小于相邻的两个顶的问题 '取第一个分型位置 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) 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)开始 按照找出不能形成线段 (中枢)的连续三笔中的中间那笔是两个线段 (中枢 )的 分界标志 '其它则是不同级别的中枢和线段的思路设计 '在大盘和指数中分笔与 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) :\" & cstr(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 (\"foxweibi\")=vbweibi (\"foxbicount\")=vbbicount (\"foxh\") =vbh (\"foxl\") =vbl (\"foxbaohan\") = vbbaohan (\"foxbaohan1\") = vbbaohan1 (\"foxguanxi\") = vbguanxi (\"foxfenxing\") = vbfenxing (\"foxfenxing1\") = vbfenxing1 (\"foxfennumber\") = vbfennumber (\"foxquekou\") = vbquekou %> 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=(\"foxquekou\") vbfennumber=(\"foxfennumber\") vbdatanumber = (\"foxdatatype\") vbfennumxian=(\"foxfennumxian\") vbxiaoshu=(\"foxxiaoshu\") vbh = (\"foxh\") vbL = (\"foxl\") vbh1 = (\"foxh\") vbL1 = (\"foxl\") vbbaohan = (\"foxbaohan\") vbbaohan1 = (\"foxbaohan1\") vbguanxi = (\"foxguanxi\") vbfenxing = (\"foxfenxing\") vbfenxing1 = (\"foxfenxing1\") vbzqdm = (\"foxzqdm\") vbxian=(\"foxxian\") vbxiang=(\"foxxiang\") vbxiand=(\"foxxiand\") vbteg=(\"foxteg\") vbted=(\"foxted\") vbtegx=(\"foxtegx\") vbtebao=(\"foxtebao\") vbtebao1=(\"foxtebao1\") vbteg1=(\"foxteg1\") vbted1=(\"foxted1\") vbtegx1=(\"foxtegx1\") vbweibi=(\"foxweibi\") vbbicount=(\"foxbicount\") nlast = UBound( vbh ) 'msgbox(\"当前的数据类型为:\"& cstr(vbzqdm)) IF ( vbzqdm =\"58\" or vbzqdm =\"90\" or vbzqdm =\"03\" or vbzqdm =\"18\" or vbzqdm =\"50\" or vbzqdm =\"51\" or vbzqdm =\"52\" ) THEN vbxiaoshu=3 else vbxiaoshu=2 end if IF ((vbdatanumber>=0 OR vbdatanumber=1 ) )THEN 'IF ((vbdatanumber=0 OR vbdatanumber=1 ) and ( vbzqdm =\"88\" or vbzqdm =\"1b\" or vbzqdm =\"1B\" or vbzqdm =\"1a\" or vbzqdm =\"1A\" or vbzqdm =\"39\" ) )THEN 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 =\"88\" or vbzqdm =\"1b\" or vbzqdm =\"1B\" or vbzqdm =\"1a\" or vbzqdm =\"1A\" or vbzqdm =\"39\" ) )THEN '(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: \" & cstr(x2) & \"当前的 1 x3: \" & cstr(x3) & \"当前的 nlast: \" & cstr(nlast) ) exit do end if if ( vbweibi(x2)=0 or vbweibi(x3)=0 or vbweibi(x3)=1 or vbweibi(x2)=2 ) then 'msgbox(\"当前的 1 x2: \" & cstr(x2) & \"当前的 1 x3: \" & cstr(x3) & \"当前的 nlast: \" & cstr(nlast) ) exit do else x1=x2 x2=x3 Do While ( i <= nlast) If (vbfenxing(i) <> 0 ) then exit do end if i = i + 1 Loop x3 = i i = x3 + 1 end if loop '() i = x3 + 1 xianbegin = x1 tewei = x2 if (x3<=nlast) then If (vbfenxing(x1) = 1) Then xianfang = -1 '以顶分型开始 ,线段方向向下 vbted(tewei) = vbl(tewei) vbteg(tewei) = vbh(x3) Else xianfang = -1 '以底分型开始 ,线段方向向上 vbteg(tewei) = vbl(tewei) vbted(tewei) = vbh(x3) End If vbtegx(tewei) = xianfang '定义出第一个特征序列 ,及关系即 :是上升的还是下降的 end if 'tewei = x4 tenumber = 0 i = x3 + 1 vbxian(xianbegin) = vbfenxing(xianbegin) vbxiang(xianbegin) = vbh(xianbegin) vbxiand(xianbegin) = vbl(xianbegin) 'vbxiang(xianbegin) = gg 'vbxiand(xianbegin) = dd For m = i To nlast '(2) Do While ( m <= nlast) If (vbfenxing(m) <> 0 ) then exit do end if m = m + 1 Loop x4 = m m = x4 + 1 Do While ( m <= nlast) If (vbfenxing(m) <> 0 ) then exit do end if m = m + 1 Loop x5 = m m = x5 + 1 newtewei = x4 if ( x5 > nlast) then exit for end if If (xianfang = -1) Then 'xianfang=-1 以顶分型开始 ,线段方向向下 vbted(newtewei) = vbl(newtewei) vbteg(newtewei) = vbh(x5) Else 'xianfang=1 以底分型开始 ,线段方向向上 vbteg(newtewei) = vbh(newtewei) vbted(newtewei) = vbl(x5) End If '判断方向 /缺口及包含 vbtegx(newtewei) = xianfang tenumber = 1 + tenumber 'if (tenumber >= 1) then If (vbted(newtewei) > vbted(tewei) And vbteg(newtewei) > vbteg(tewei) Or vbted(newtewei) < vbted(tewei) And vbteg(newtewei) < vbteg(tewei)) Then '(3)向上或向下即 :不是包含 If (vbted(newtewei) > vbted(tewei) And vbteg(newtewei) > vbteg(tewei)) Then '(4) 特征序列的方向向上 tefang = 1 Else tefang = -1 '(4)特征序列的方向向下 End If vbtegx(newtewei) = tefang If (xianfang <> tefang) Then '(5)线段方向与特征序列的方向不同 ,即 :出现了特征序列的分型 线段方向与特征序 列关系不同 ,出现分型 , '首先判断自 tewei(x2) 开始的三笔是否构成线段 ,构成线段则下一步 ,不构成线段返回 原线段继续 ,再判断第一个 (tewei 的前一个特征序列 )与第二个 (tewei) 之间是否有缺口 if ( vbweibi(x4)=0 or vbweibi(x3)=0 or vbweibi(x4)=1 or vbweibi(x3)=2 ) then 'if ( vbweibi(x6)=0 or vbweibi(x5)=0 ) then '{} 构成线段 ,新线段从 newtewei 开始 ,原线段在 newtewei 处结束 还要判断顶是否大 于底 if (tenumber <= 1) then '(te number)此情况发生在三笔构成线段但线段的两端不是其最高点或最低点的情况 当下 只有三笔不能开始新线段否则就出现一笔构成一个线段的现象了 i=m Do While ( i <= nlast) If (vbfenxing(i) <> 0 ) then exit do end if i = i + 1 Loop x6 = i if ( x6 > nlast) then 'msgbox( \" {} 当前的 x6:\" & cstr(x6) & \" 当前的 nlast:\" & cstr(nlast) ) exit for end if '再判断 x5,x6 是否构成线段 ,构成则新线段否则原线段继续 if ( vbweibi(x6)=0 or vbweibi(x5)=0 or vbweibi(x6)=1 or vbweibi(x5)=2 ) then '开始 构成新线段 ,新线段在 newtewei 开始 xianbegin=newtewei vbxian(xianbegin) = vbfenxing(xianbegin) vbxiang(xianbegin) = vbh(xianbegin) vbxiand(xianbegin) = vbl(xianbegin) x2=x5 x3=x6 tewei=x2 m = x6 + 1 If (vbfenxing(xianbegin) = 1) Then xianfang = -1 '以顶分型开始 ,线段方向向下 vbted(tewei) vbteg(tewei) Else xianfang = 1 '以底分型开始 ,线段方向向上 vbteg(tewei) = vbh(tewei) vbted(tewei) = vbl(x3) End If vbtegx(tewei) = xianfang tenumber = 0 = else 'else vbl(tewei) 原线段继续 = vbh(x3) tewei=newtewei vbtegx(newtewei) = xianfang x2=x4 x3=x5 m = x5 + 1 end if '开始结束 else '(tenumber) tenumber = 0 bao = 0 xianbegin = tewei vbxian(xianbegin) = vbfenxing(xianbegin) vbxiang(xianbegin) = vbh(xianbegin) vbxiand(xianbegin) = vbl(xianbegin) x2 = X3 x3 = x4 tewei = x2 If (vbfenxing(xianbegin) = 1) Then xianfang = -1 '以顶分型开始 ,线段方向向下 vbted(tewei) vbteg(tewei) Else xianfang = 1 '以底分型开始 ,线段方向向上 vbteg(tewei) = vbh(tewei) vbted(tewei) = vbl(x3) End If = vbl(tewei) = vbh(x3) vbtegx(tewei) = xianfang m = x3+1 end if '(tenumber) else '{} 不构成线段 ,原线段继续 tewei=newtewei vbtegx(newtewei) = xianfang x2=x4 x3=x5 m = x5 + 1 end if '{} Else '(5)线段方向与特征序列关系相同 , 未出现分型 tewei 的值更新为 newtewei 'tenumber = 1+tenumber vbtegx(newtewei) = xianfang tewei=newtewei x2=x4 x3=x5 End If '(5) Else '(3)包含 vbtegx(newtewei) = xianfang If (vbted(tewei) >= vbted(newtewei) And vbteg(tewei) <= vbteg(newtewei)) Then '后面 包含前面 newtewei 是后面的 tewei 在前面 1 为 tewei 被后一个包含 2 为 newtewei 包含前一个 vbtebao(tewei) = 1 vbtebao(newtewei) = 2 Else '前面包含后面-1为tewei包含后一个-2为newtewei被前一个包含 vbtebao(tewei) = -1 vbtebao(newtewei) = -2 End If If (xianfang = -1) Then '线段方向向下取向下包含 temp = min(vbted(newtewei), vbted(tewei)) vbted(newtewei) = temp vbted(tewei) = temp temp = min(vbteg(newtewei), vbteg(tewei)) vbteg(newtewei) = temp vbteg(tewei) = temp Else '线段方向向上取向上包含 temp = max(vbted(newtewei), vbted(tewei)) vbted(newtewei) = temp vbted(tewei) = temp temp = max(vbteg(newtewei), vbteg(tewei)) vbteg(newtewei) = temp vbteg(tewei) = temp End If '判断与 tewei 的前面是否有连续的包含关系 temp = tewei - 1 ex = 0 bao = 0 Do While (ex = 0) Do While ( temp >=0) If (vbteg(temp) <> 0 ) then exit do end if temp = temp - 1 Loop if (temp<0) then 'msgbox(\"当前的 10 temp: \" & cstr(temp) & ” 当前的 nlast: \" & cstr(nlast)) exit do end if If (vbtebao(temp) = 0 Or vbtebao(temp) >= 2 Or vbtebao(temp) = -2 Or vbtegx(temp) <> xianfang) Then ex = 1 Else bao = bao + 1 End If temp = temp - 1 Loop '有几个连续包含,指大于三个K线的包含,BAO的值是包含的K线数减2,当只有两个 连续 K 线包含时 BAO 为 0 temp = tewei - 1 For i = 1 To bao Do While ( temp >=0) If (vbteg(temp) <> 0 ) then exit do end if temp = temp - 1 Loop if (temp<0) then 'msgbox(\"当前的 11 temp: \" & cstr(temp) & ” 当前的 nlast: \" & cstr(nlast)) exit for end if vbteg(temp) = vbteg(tewei) vbted(temp) = vbted(tewei) temp = temp - 1 Next vbtebao(newtewei) = bao + 2 temp = tewei - 1 For i = 1 To bao + 2 If (i = 1 Or i = bao + 2) Then Else Do While ( temp >0) If (vbteg(temp) <> 0 ) then exit do end if temp = temp - 1 Loop if (temp<0) then 'msgbox(\"当前的 12 temp: \" & cstr(temp) & \"当前的 nlast: \" & cstr(nlast)) exit for end if vbtebao(temp) = -3 temp = temp - 1 End If Next tewei=newtewei x2=x4 x3=x5 m = x5 + 1 End If '(3) Next '(2) For i = 0 To nlast If (vbtebao(i) = -2) Then vbtebao(i) = 2 End If If (vbtebao1(i) = -2) Then vbtebao1(i) = 2 End If Next '包含关系标准化 ,即结束标志都为 2 及以上 '处理线段的两个端点满足条件顶 >= 底 i=0 do while (vbxian(i)=0) i=i+1 if (i>nlast) then Exit Do end if loop lastfenxing=i for m = lastfenxing+1+ nlast to nlast if (vbxian(m)<>0) then if (vbxian(m)>0) then if (vbxiang(m)>=vbxiand(lastfenxing)) then '满足条件顶 >=底 lastfenxing=m else '不满足条件顶 <底 两个全置为 0,并查下一个 vbxian(m)=0 vbxian(lastfenxing)=0 vbxiang(m)=0 vbxiang(lastfenxing)=0 vbxiand(m)=0 vbxiand(lastfenxing)=0 m=m+1 do while (vbxian(m)=0) m=m+1 if (m>nlast) then Exit Do end if loop lastfenxing=m end if else if (vbxiand(m)<=vbxiang(lastfenxing)) then '满足条件底 < 顶 lastfenxing=m else '不满足条件底 <顶 两个全置为 0,并查下一个 vbxian(m)=0 vbxian(lastfenxing)=0 vbxiang(m)=0 vbxiang(lastfenxing)=0 vbxiand(m)=0 vbxiand(lastfenxing)=0 m=m+1 do while (vbxian(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 do while (vbxian(i)=0) i=i+1 if (i>nlast) then Exit Do end if loop lastfenxing=i 'vbxiang(i)=vbh(i) 'vbxiand(i)=vbl(i) gg=vbxiang(i) dd=vbxiand(i) for m = lastfenxing+1+ nlast to nlast if (vbfenxing(m)<>0) then gg=max(gg,vbh(m)) dd=min(dd,vbl(m)) if (vbxian(m)<>0) then vbxiang(i)=gg vbxiand(i)=dd if (vbxian(m)>0) then else end if gg=vbh(m) dd=vbl(m) end if end if next end if '(1) i=nlast do while (vbxian(i)=0) i=i-1 if (i>nlast or i<0) then Exit Do end if loop lastfenxing=i 'vbxian(nlast) = -vbxian(lastfenxing) 'vbxiang(nlast) = vbh(nlast) 'vbxiand(nlast) = vbl(nlast) 'vbteg(newtewei) = 0 'vbted(newtewei) = 0 '以下为自定义函数部分 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 (\"foxxiaoshu\") =vbxiaoshu (\"foxteg\")=vbteg (\"foxted\")=vbted (\"foxtegx\")=vbtegx (\"foxteg1\")=vbteg1 (\"foxted1\")=vbted1 (\"foxtegx1\")=vbtegx1 (\"foxtebao\")=vbtebao (\"foxtebao1\")=vbtebao1 (\"foxxian\")=vbxian (\"foxxiang\")=vbxiang (\"foxxiand\")=vbxiand %> FOXWEI:=LING; FOXBUYSELL:=LING; <% vbdatanumber3 = (\"datanumber3\") vbbicount=(\"foxbicount\") vbweibi=(\"foxweibi\") vbquekou=(\"foxquekou\") vbfennumber=(\"foxfennumber\") vbfennumxian=(\"foxfennumxian\") vbh = (\"foxh\") vbL = (\"foxl\") vbh1 = (\"foxh\") vbL1 = (\"foxl\") vbbaohan = (\"foxbaohan\") vbbaohan1 = (\"foxbaohan1\") vbguanxi = (\"foxguanxi\") vbfenxing = (\"foxfenxing\") vbfenxing1 = (\"foxfenxing1\") vbbuysell=(\"foxbuysell\") vbwei=(\"foxwei\") vbxian=(\"foxxian\") vbxiang=(\"foxxiang\") vbxiand=(\"foxxiand\") vbteg=(\"foxteg\") vbted=(\"foxted\") vbtegx=(\"foxtegx\") vbteg1=(\"foxteg1\") vbted1=(\"foxted1\") vbtegx1=(\"foxtegx1\") nlast = UBound( vbh ) i=0 for m = 0 to nlast if (vbxian(m)<>0) then i=i+1 vbfennumxian(m)=i end if next 'vbfennumxian(nlast)=0 x1=0 x2=0 x3=0 x4=0 x5=0 x6=0 x7=0 bi=0 maxbi=0 zhsh=0 '先取三个分型数据 ,然后进入循环处理 a=0 'Do While (vbxian(a) = 0 and a <= nlast) Do While ( a < nlast) if ( vbxian(a) <> 0) then exit do end if a = a + 1 Loop x1=a a=x1+1 Do While ( a < nlast) if ( vbxian(a) <> 0) then exit do end if a = a + 1 Loop x2=a a=x2+1 Do While ( a < nlast) if ( vbxian(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 'vbbicount=(\"foxbicount\") 'vbweibi=(\"foxweibi\") FOR m=a TO nlast '(1)开始 按照找出不能形成线段 (中枢)的连续三笔中的中间那笔是两个线段 (中枢 )的 分界标志 '其它则是不同级别的中枢和线段的思路设计 '在大盘和指数中分笔与 1分中 1分级别要大一些 ,在个股中 1分要大一些因有的个股 1 分钟内可能无成交 if (vbxian(m)<>0) then '(2) begin 只在分型不为 0时进行处理 ,即:是分型时处理 bi=bi+1 x4=m if (zhshbegin=0) then zhshbegin=x4 end if if (vbxian(x1)>0) then '以顶分型开始,x1,x3取高点x2,x4取低点,线段及中枢区间取高点中的低者,低点中的 高者 zg=min(vbxiang(x1),vbxiang(x3)) '临时中枢高点 zd=max(vbxiand(x2),vbxiand(x4)) '临时中枢低点 gg=max(vbxiang(x1),vbxiang(x3)) '临时中枢高高点 dd=min(vbxiand(x2),vbxiand(x4)) '临时中枢低低点 else '以底分型开始,x2,x4取高点x1,x3取低点 zg=min(vbxiang(x2),vbxiang(x4)) '临时中枢高点 zd=max(vbxiand(x1),vbxiand(x3)) '临时中枢低点 gg=max(vbxiang(x2),vbxiang(x4)) '临时中枢高高点 dd=min(vbxiand(x1),vbxiand(x3)) '临时中枢低低点 end if if (zd>zg ) then '(3)中枢低点大于高点,即未形成中枢,要将x2,x3的位置记录出来 vbwei(x2)=1 vbwei(x3)=2 '还要计算上一个中枢的级别和中枢区间及波动区间 ,计算中枢的级别根据 bi 记数器 的值,中枢计算完毕后笔记数器 bi 清零 'bi记数器的值小于等于6时为本级别中枢,值为7或8时可能为本级别两个中枢,大于 或等于 9时为上一级别的中枢 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)结束找出所有连续三线段无重叠的位置 ,即不能形成中枢的候选位置 ,以下要对这 些位置进行筛选并逐个分析 ,看图时要特别注意这些位置 (\"foxweibi\")=vbweibi (\"foxbicount\")=vbbicount 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 (\"foxwei\")=vbwei (\"datanumber3\") =maxbi (\"foxbicount\")=vbbicount (\"foxfennumxian\") = vbfennumxian %> FOXZHSH:=LING; FOXZHSHG:=LING; FOXZHSHD:=LING; FOXZHSHGG:=LING; FOXZHSHDD:=LING; FOXZHSH5:=LING; FOXZHSHG5:=LING; FOXZHSHD5:=LING; FOXZHSHGG5:=LING; FOXZHSHDD5:=LING; FOXZHSH15:=LING; FOXZHSHG15:=LING; FOXZHSHD15:=LING; FOXZHSHGG15:=LING; FOXZHSHDD15:=LING; FOXZHSH30:=LING; FOXZHSHG30:=LING; FOXZHSHD30:=LING; FOXZHSHGG30:=LING; FOXZHSHDD30:=LING; FOXZHSH60:=LING; FOXZHSHG60:=LING; FOXZHSHD60:=LING; FOXZHSHGG60:=LING; FOXZHSHDD60:=LING; FOXZHSHR:=LING; FOXZHSHGR:=LING; FOXZHSHDR:=LING; FOXZHSHGGR:=LING; FOXZHSHDDR:=LING; FOXZHSHZ:=LING; FOXZHSHGZ:=LING; FOXZHSHDZ:=LING; FOXZHSHGGZ:=LING; FOXZHSHDDZ:=LING; FOXZHSHY:=LING; FOXZHSHGY:=LING; FOXZHSHDY:=LING; FOXZHSHGGY:=LING; FOXZHSHDDY:=LING; FOXZHSHN:=LING; FOXZHSHGN:=LING; FOXZHSHDN:=LING; FOXZHSHGGN:=LING; FOXZHSHDDN:=LING; FOXZHSHMM:=LING; FOXZHSHMM5:=LING; FOXZHSHMM15:=LING; FOXZHSHMM30:=LING; FOXZHSHMM60:=LING; FOXZHSHMMR:=LING; FOXZHSHMMZ:=LING; FOXZHSHMMY:=LING; FOXZHSHMMN:=LING; FOXYANWEI:=LING; DATANUMBER4:=DATATYPE; FOXYANBICOUNT:=LING; <% vbquekou=(\"foxquekou\") vbfennumber=(\"foxfennumber\") vbh = (\"foxh\") vbL = (\"foxl\") vbh1 = (\"foxh\") vbL1 = (\"foxl\") vbbaohan = (\"foxbaohan\") vbbaohan1 = (\"foxbaohan1\") vbguanxi = (\"foxguanxi\") vbfenxing = (\"foxfenxing\") vbfenxing1 = (\"foxfenxing1\") vbbuysell=(\"foxbuysell\") vbwei=(\"foxwei\") vbxian=(\"foxxian\") vbxiang=(\"foxxiang\") vbxiand=(\"foxxiand\") vbzhsh = (\"foxzhsh\") vbzhshg = (\"foxzhshg\") vbzhshd = (\"foxzhshd\") vbzhshgg = (\"foxzhshgg\") vbzhshdd = (\"foxzhshdd\") vbzhsh5 = (\"foxzhsh5\") vbzhshg5 = (\"foxzhshg5\") vbzhshd5 = (\"foxzhshd5\") vbzhshgg5 = (\"foxzhshgg5\") vbzhshdd5 = (\"foxzhshdd5\") vbzhsh15 = (\"foxzhsh15\") vbzhshg15 = (\"foxzhshg15\") vbzhshd15 = (\"foxzhshd15\") vbzhshgg15 = (\"foxzhshgg15\") vbzhshdd15 = (\"foxzhshdd15\") vbzhsh30 = (\"foxzhsh30\") vbzhshg30 = (\"foxzhshg30\") vbzhshd30 = (\"foxzhshd30\") vbzhshgg30 = (\"foxzhshgg30\") vbzhshdd30 = (\"foxzhshdd30\") vbzhsh60 = (\"foxzhsh60\") vbzhshg60 = (\"foxzhshg60\") vbzhshd60 = (\"foxzhshd60\") vbzhshgg60 = (\"foxzhshgg60\") vbzhshdd60 = (\"foxzhshdd60\") vbzhshr = (\"foxzhshr\") vbzhshgr = (\"foxzhshgr\") vbzhshdr = (\"foxzhshdr\") vbzhshggr = (\"foxzhshggr\") vbzhshddr = (\"foxzhshddr\") vbzhshz = (\"foxzhshz\") vbzhshgz = (\"foxzhshgz\") vbzhshdz = (\"foxzhshdz\") vbzhshggz = (\"foxzhshggz\") vbzhshddz = (\"foxzhshddz\") vbzhshy = (\"foxzhshy\") vbzhshgy = (\"foxzhshgy\") vbzhshdy = (\"foxzhshdy\") vbzhshggy = (\"foxzhshggy\") vbzhshddy = (\"foxzhshddy\") vbzhshn = (\"foxzhshn\") vbzhshgn = (\"foxzhshgn\") vbzhshdn = (\"foxzhshdn\") vbzhshggn = (\"foxzhshggn\") vbzhshddn = (\"foxzhshddn\") vbzhshmm=(\"foxzhshmm\") vbzhshmm5=(\"foxzhshmm5\") vbzhshmm15=(\"foxzhshmm15\") vbzhshmm30=(\"foxzhshmm30\") vbzhshmm60=(\"foxzhshmm60\") vbzhshmmr=(\"foxzhshmmr\") vbzhshmmz=(\"foxzhshmmz\") vbzhshmmy=(\"foxzhshmmy\") vbzhshmmn=(\"foxzhshmmn\") vbyanwei=(\"foxyanwei\") maxyanbi=(\"datanumber4\") vbyanbicount=(\"foxyanbicount\") nlast = UBound( vbh ) foxbicount=0 x1=0 x2=0 x3=0 x4=0 x5=0 x6=0 x7=0 '先取三个分型数据 ,然后进入循环处理 a=0 if (a <= nlast) then Do While ( vbxian(a) = 0 and a = a + 1 if (a = nlast) then exit do end if Loop end if x1=a a=x1+1 if (a <= nlast) then Do While ( vbxian(a) = 0 and a = a + 1 if (a = nlast) then exit do end if Loop end if x2=a a=x2+1 if (a <= nlast) then Do While ( vbxian(a) = 0 and a = a + 1 if (a = nlast) then exit do end if Loop end if x3=a a=x3+1 bi=0 zhshbegin=x1 zhshxing=0 ' 是否已形成中枢 zhshhoubi=0 '形成中枢后笔 记数器 yanshen=0 '是否延伸 yanshenbi=0 ' 延伸的笔数 qushi=0 ' 趋势 zhshend=0 maxbi=0 <= nlast ) <= nlast ) <= nlast ) FOR m=a TO nlast '⑴开始 中枢级别为:1分,5分,15分,30分,60分,日周,月年,分别用vbdata nu mber代表 即:1,2,3,4,5,6,7,8,9 if (vbxian(m)<>0) then '(2) begin 只在分型不为 0时进行处理 ,即:是分型时处理 if (zhshxing=1) then zhshhoubi=zhshhoubi+1 end if x4=m if (zhshbegin=0) then zhshbegin=x1 end if if (zhshxing=0) then '(3)开始 没有中枢形成的情况 if (vbxian(x1)>0) then '以顶分型开始,x1,x3取高点x2,x4取低点,线段及中枢区间取高点中的低者,低点中的 高者 zg=min(vbxiang(x1),vbxiang(x3)) zd=max(vbxiand(x2),vbxiand(x4)) gg=max(vbxiang(x1),vbxiang(x3)) dd=min(vbxiand(x2),vbxiand(x4)) else '以底分型开始,x2,x4取高点x1,x3取低点 zg=min(vbxiang(x2),vbxiang(x4)) zd=max(vbxiand(x1),vbxiand(x3)) gg=max(vbxiang(x2),vbxiang(x4)) dd=min(vbxiand(x1),vbxiand(x3)) end if if (zg>=zd) then '(4)开始 形成中枢 if (zhshxing=0) then vbzhsh(zhshbegin)=1 vbzhshg(zhshbegin)=zg vbzhshd(zhshbegin)=zd vbzhshgg(zhshbegin)=gg vbzhshdd(zhshbegin)=dd end if zhshxing=1 zhshend=m else '(4)else未形成中枢,下移一笔继续返回分析 zhshbegin=x2 x1=x2 x2=x3 x3=x4 end if '(4)结束 else '(3)else 有中枢形成的情况 'if (zhshhoubi Mod 2 =1) then '(5)begin 中枢后的单数笔要判断中枢否结束 ,中枢结束的标志是中枢后的单数笔不回 到中枢区间内 (可能是震荡或趋势 ),中枢后的单数笔回到中枢区间内则为中枢延伸 '单数笔肯定回到波动区间 ,但不一定回中枢区间; 不回中枢区间则要看下面走势的发 展若其后走势不回到波动区间则构成趋势 ,若其后走势回到波动区间是中枢振荡 ',回中枢区间也是振荡.新中枢自当下 M的分型开始,原中枢自zhshend(上一个M)处 结束.此处与教材不同 ,比教材要早确认一个分型 if (vbxian(m)>0) then '(6)顶分型,要比较三种情况即:vbxiang(m)是否大于等于GG,ZG,ZD,大于等于ZD为延 伸,大于 等于 ZG,大于 等于 GG,若下一个(即:zhshhoubi Mod 2 =0)底回到中枢 (即:vbxiand(m)v二ZG)则为延伸否则为三卖 if (vbxiang(m)>=zd) then '(7) begin中枢后的单数笔回到中枢区间内则为中枢延伸 ,要记录下来,vbxiang(m)肯 定于大于等于dd,因是相邻伐肯定要大于底,在计算笔时已有保证,要计算延伸中枢四 个数据 yanshen=1 yanshenbi=yanshenbi+1 maxyanbi=max(maxyanbi,yanshenbi) vbyanwei(m)=m vbyanbicount(m)=yanshenbi if (yanshenbiv6) then zhshend=m else '延伸超过 6笔构成级别扩展vbzhsh(zhshend)=2 vbzhshg(zhshend)=zg vbzhshd(zhshend)=zd vbzhshgg(zhshend)=gg vbzhshdd(zhshend)=dd vbzhsh(zhshbegin)=1 vbzhshg(zhshbegin)=zg vbzhshd(zhshbegin)=zd vbzhshgg(zhshbegin)=gg vbzhshdd(zhshbegin)=dd yanshen=0 yanshenbi=0 zhshxing=0 vbzhsh5(m)=2 vbzhsh5(zhshbegin)=1 ,上一级别中枢结束 ,新的本级别中枢开始 a=m+1 if (a <= nlast) then Do While ( vbxian(a) = 0 and a = a + 1 if (a = nlast) then exit do end if Loop end if x1=a zhshbegin=x1 a=x1+1 if (a <= nlast) then Do While ( vbxian(a) = 0 and a = a + 1 if (a = nlast) then exit do end if Loop end if x2=a a=x2+1 if (a <= nlast) then Do While ( vbxian(a) = 0 and a = a + 1 if (a = nlast) then exit do end if Loop end if x3=a m=x3+1 zhshhoubi=0 <= nlast) <= nlast) <= nlast) end if else '(7) else 单数笔不回到中枢区间内 ,形成第三类卖点 ,应标记出来 ,同时老中枢结束新 中枢开始,老中枢在zhshend处结束 新中枢在当下 m处理开始,形成中枢振荡 yanshen=0 yanshenbi=0 vbzhshmm(m)=-1 '-1为卖与分型数正好相反,1为买,将中枢结束信息记录到zhsheng位置,再取两个分 型 进行比较,因第一个分型即是m所以x1的值的为m,x1不用计算只取x2和x3 zhshxing=0 vbzhsh(zhshend)=2 vbzhshg(zhshend)=zg vbzhshd(zhshend)=zd vbzhshgg(zhshend)=gg vbzhshdd(zhshend)=dd vbzhsh(zhshbegin)=1 vbzhshg(zhshbegin)=zg vbzhshd(zhshbegin)=zd vbzhshgg(zhshbegin)=gg vbzhshdd(zhshbegin)=dd if (yanshenbi>=6) then '(12)begin 延 伸超过 6笔构成级别扩展 ,计算上一级别 (5 分)中枢的中枢区间及波动区 间,ygg,yzg,yzd,ydd 已经计算 vbzhsh5(zhshbegin)=1 vbzhsh5(m)=2 end if '(12)结束 zhshbegin=m x1=m a=x1+1 if (a <= nlast) then Do While ( vbxian(a) = 0 and a <= nlast) a = a + 1 if (a = nlast) then exit do end if Loop end if x2=a a=x2+1 if (a <= nlast) then Do While ( vbxian(a) = 0 and a <= nlast) a = a + 1 if (a = nlast) then exit do end if Loop end if x3=a m=x3+1 zhshhoubi=0 end if '(7)结束 else '(6) else底分型,要比较三种情况即:vbxiand(m)是否小于等于ZGZDQD,小于等于ZG 为延伸,小于等于 ZG,小于等于 DD,若下一个(即:zhshhoubi Mod 2 =0)顶回到中枢 (即:vbxiang(m)>=ZD)则为延伸否则为三买 if (vbxiand(m)<=zg) then '(8) begin中枢后的单数笔回到中枢区间内则为中枢延伸 yanshen=1 yanshenbi=yanshenbi+1 maxyanbi=max(maxyanbi,yanshenbi) vbyanwei(m)=m vbyanbicount(m)=yanshenbi if (yanshenbi<6) then zhshend=m else '延伸超过 6笔构成级别扩展 ,上一级别中枢结束 ,新的本级别中枢开始 vbzhsh(zhshend)=2 vbzhshg(zhshend)=zg vbzhshd(zhshend)=zd vbzhshgg(zhshend)=gg vbzhshdd(zhshend)=dd vbzhsh(zhshbegin)=1 vbzhshg(zhshbegin)=zg vbzhshd(zhshbegin)=zd vbzhshgg(zhshbegin)=gg vbzhshdd(zhshbegin)=dd yanshen=0 yanshenbi=0 zhshxing=0 vbzhsh5(m)=2 vbzhsh5(zhshbegin)=1 a=m+1 Do While ( vbxian(a) = 0 and a <= nlast) a = a + 1 if (a = nlast) then exit do ,要记录下来,vbxiand(m)肯 定于小于等于gg,因是相邻伐肯定要大于底,在计算笔时已有保证 end if Loop x1=a zhshbegin=x1 a=x1+1 if (a <= nlast) then Do While ( vbxian(a) = 0 and a <= nlast) a = a + 1 if (a = nlast) then exit do end if Loop end if x2=a a=x2+1 if (a <= nlast) then Do While ( vbxian(a) = 0 and a <= nlast) a = a + 1 if (a = nlast) then exit do end if Loop end if x3=a m=x3+1 zhshhoubi=0 end if else '(8) else 单数笔不回到中枢区间内 ,形成第三类买点 ,应标记出来 ,同时老中枢结束新 中枢开始,老中枢在zhshend处结束新中枢在当下m处开始,形成中枢振荡 yanshen=0 yanshenbi=0 vbzhshmm(m)=1 '-1为卖与分型数正好相反,1为买,将中枢结束信息记录到zhsheng位置,再取两个分 型 进行比较,因第一个分型即是 m所以x1的值的为m,x1不用计算只取x2和x3 zhshxing=0 vbzhsh(zhshend)=2 vbzhshg(zhshend)=zg vbzhshd(zhshend)=zd vbzhshgg(zhshend)=gg vbzhshdd(zhshend)=dd vbzhsh(zhshbegin)=1 vbzhshg(zhshbegin)=zg vbzhshd(zhshbegin)=zd vbzhshgg(zhshbegin)=gg vbzhshdd(zhshbegin)=dd if (yanshenbi>=6) then '(13)begin 延伸超过 6笔构成级别扩展 ,计算上一级别 (5分)中枢的中枢区间及波动区 间,ygg,yzg,yzd,ydd 已经计算 vbzhsh5(zhshbegin)=1 vbzhsh5(m)=2 end if '(13)结束 zhshbegin=m x1=m a=x1+1 if (a <= nlast) then Do While ( vbxian(a) = 0 and a <= nlast) a = a + 1 if (a = nlast) then exit do end if Loop end if x2=a a=x2+1 if (a <= nlast) then Do While ( vbxian(a) = 0 and a <= nlast) a = a + 1 if (a = nlast) then exit do end if Loop end if x3=a m=x3+1 zhshhoubi=0 end if '(8)结束 end if '(6)结束 'else '(5)else 'end if '(5)结束 end if '(3)结束 end if '(2) 结束 NEXT '(1)结束 if (zhshxing=1) then vbzhsh(nlast)=2 vbzhshg(nlast)=zg vbzhshd(nlast)=zd vbzhshgg(nlast)=gg vbzhshdd(nlast)=dd end if a=0 FOR m=0 TO nlast if (vbzhsh5(m)>0) then if (vbzhsh5(m)=2) then if (a>0) then vbzhsh5(a)=0 end if a=m else a=0 end if end if next a=0 ygg=0 ydd=0 FOR m=0 TO nlast if (vbxian(m)<>0 ) then '1 begin if (vbzhsh(m)=1) then '2 BEGIN gg=vbzhshgg(m) dd=vbzhshdd(m) a=1 end if '2 END if (a=1) then '3 BEGIN if (vbxian(m)=1 ) then if (vbxiang(m)=gg and ygg=0) then vbzhshgg(m)=gg ygg=1 end if else if (vbxiand(m)=dd and ydd=0) then vbzhshdd(m)=dd ydd=1 end if end if end if '3 END if (vbzhsh(m)=2) then a=0 ygg=0 ydd=0 end if end if '1 end next '将本级别 vbzhsh 高高点和低低点的数据也计算 出来 ,后面要用到 FOR m=0 TO nlast '延伸成高级别中枢的情况应先分成三个连续的三段每段取最高点和最低点然后再 按高点中的低者 ,低点中的高者的规则计算高级中枢的中枢区间及高高点和低低点 if (vbxian(m)<>0) then if (vbzhsh5(m)=1) then zhshbegin=m x1 x2 x3 x4 x5 x6 x7 end if if (x1>=1 ) then x1=x1+1 if (x1<=3) then x2=max(x2,vbxiang(m)) x3=min(x3,vbxiand(m)) else if (x1<=6) then x4=max(x4,vbxiang(m)) x5=min(x5,vbxiand(m)) else x6=max(x6,vbxiang(m)) x7=min(x7,vbxiand(m)) end if end if if (vbzhsh5(m)=2) then zg=min(x2,x4) zg=min(zg,x6) gg=max(x2,x4) gg=max(gg,x6) zd=max(x3,x5) zd=max(zd,x7) dd=min(x3,x5) dd=min(dd,x7) vbzhshg5(zhshbegin)=zg vbzhshd5(zhshbegin)=zd vbzhshgg5(zhshbegin)=gg vbzhshdd5(zhshbegin)=dd vbzhshg5(m)=zg vbzhshd5(m)=zd vbzhshgg5(m)=gg vbzhshdd5(m)=dd x1=0 end if end if end if next '计算 5 分即 :本级中枢延伸柢成的上一级别中枢的数据 Function max(a, b) If (a >= b) Then max = a 0 1000000 0 1000000 0 1000000 Else max = b End If End Function Function min(a, b) If (a <= b) Then min = a Else min = b End If End Function (\"foxzhsh\") = vbzhsh (\"foxzhshg\") = vbzhshg (\"foxzhshd\") = vbzhshd (\"foxzhshgg\") = vbzhshgg (\"foxzhshdd\") = vbzhshdd (\"foxzhsh5\") = vbzhsh5 (\"foxzhshg5\") = vbzhshg5 (\"foxzhshd5\") = vbzhshd5 (\"foxzhshgg5\") = vbzhshgg5 (\"foxzhshdd5\") = vbzhshdd5 (\"foxzhsh15\") = vbzhsh15 (\"foxzhshg15\") = vbzhshg15 (\"foxzhshd15\") = vbzhshd15 (\"foxzhshgg15\") = vbzhshgg15 (\"foxzhshdd15\") = vbzhshdd15 (\"foxzhsh30\") = vbzhsh30 (\"foxzhshg30\") = vbzhshg30 (\"foxzhshd30\") = vbzhshd30 (\"foxzhshgg30\") = vbzhshgg30 (\"foxzhshdd30\") = vbzhshdd30 (\"foxzhsh60\") = vbzhsh60 (\"foxzhshg60\") = vbzhshg60 (\"foxzhshd60\") = vbzhshd60 (\"foxzhshgg60\") = vbzhshgg60 (\"foxzhshdd60\") = vbzhshdd60 (\"foxzhshr\") = vbzhshr (\"foxzhshgr\") = vbzhshgr (\"foxzhshdr\") = vbzhshdr (\"foxzhshggr\") = vbzhshggr (\"foxzhshddr\") = vbzhshddr (\"foxzhshz\") = vbzhshz (\"foxzhshgz\") = vbzhshgz (\"foxzhshdz\") = vbzhshdz (\"foxzhshggz\") = vbzhshggz (\"foxzhshddz\") = vbzhshddz (\"foxzhshy\") = vbzhshy (\"foxzhshgy\") = vbzhshgy (\"foxzhshdy\") = vbzhshdy (\"foxzhshggy\") = vbzhshggy (\"foxzhshddy\") = vbzhshddy (\"foxzhshn\") = vbzhshn (\"foxzhshgn\") = vbzhshgn (\"foxzhshdn\") = vbzhshdn (\"foxzhshggn\") = vbzhshggn (\"foxzhshddn\") = vbzhshddn (\"foxzhshmm\")= vbzhshmm (\"foxzhshmm5\")= vbzhshmm5 (\"foxzhshmm15\")= vbzhshmm15 (\"foxzhshmm30\")= vbzhshmm30 (\"foxzhshmm60\")= vbzhshmm60 (\"foxzhshmmr\")= vbzhshmmr (\"foxzhshmmz\")= vbzhshmmz (\"foxzhshmmy\")= vbzhshmmy (\"foxzhshmmn\")= vbzhshmmn (\"datanumber3\") =maxbi (\"foxyanwei\")=vbyanwei (\"datanumber4\") =maxyanbi (\"foxyanbicount\")=vbyanbicount %> DRAWLINE(FOXZHSH=1 AND AND AND AND FOXZHSHDD>0,FOXZHSHG ,FOXZHSH=2,FOXZHSHG ,0),colorFF; DRAWLINE(FOXZHSH=1 FOXZHSHDD>0,FOXZHSHD,FOXZHSH=2,FOXZHSHD,0),colorFF; STICKLINE(FOXZHSH=1 FOXZHSHDD>0,FOXZHSHDD,FOXZHSHGG ,0,0),LINEDASHDOT,colorFF; STICKLINE(FOXZHSH=2 FOXZHSHDD>0,FOXZHSHDD,FOXZHSHGG ,0,0),LINEDASHDOT,colorFF; DRAWTEXT(FOXZHSH=1 AND FOXZHSHDD>0,FOXZHSHG ,'\\n 本\\n 级'),colorFF; DRAWLINE(FOXZHSH=1 FOXZHSHDD>0,FOXZHSHGG ,FOXZHSH=2,FOXZHSHGG ,0),LINEDASHDOT,color FF; DRAWLINE(FOXZHSH=1 FOXZHSHDD>0,FOXZHSHDD,FOXZHSH=2,FOXZHSHDD,0),LINEDASHDOT,colo rFF; AND AND AND DRAWTEXT(FOXZHSHMM>=1 FOXZHSHDD>0,IF(FOXL FOXZHSHDD>0,IF(FOXL DRAWTEXT(FOXZHSHMM>=3 FOXZHSHDD>0,IF(FOXL DRAWTEXT(FOXZHSHMM>=4 FOXZHSHDD>0,IF(FOXL DRAWICON(FOXZHSHMM>=1 FOXZHSHDD>0,IF(FOXL vbquekou=(\"foxquekou\") vbfennumber=(\"foxfennumber\") vbh = (\"foxh\") vbL = (\"foxl\") '),colorFFFF; AND vbh1 = (\"foxh\") vbL1 = (\"foxl\") vbbaohan = (\"foxbaohan\") vbbaohan1 = (\"foxbaohan1\") 本级 00 买 '),colorFF; AND 本级 00 卖 '),colorFFFF; AND AND AND vbguanxi = (\"foxguanxi\") vbfenxing = (\"foxfenxing\") vbfenxing1 = (\"foxfenxing1\") vbbuysell=(\"foxbuysell\") vbwei=(\"foxwei\") vbxian=(\"foxxian\") vbxiang=(\"foxxiang\") vbxiand=(\"foxxiand\") vbzhsh = (\"foxzhsh\") vbzhshg = (\"foxzhshg\") vbzhshd = (\"foxzhshd\") vbzhshgg = (\"foxzhshgg\") vbzhshdd = (\"foxzhshdd\") vbzhsh5 = (\"foxzhsh5\") vbzhshg5 = (\"foxzhshg5\") vbzhshd5 = (\"foxzhshd5\") vbzhshgg5 = (\"foxzhshgg5\") vbzhshdd5 = (\"foxzhshdd5\") vbzhsh15 = (\"foxzhsh15\") vbzhshg15 = (\"foxzhshg15\") vbzhshd15 = (\"foxzhshd15\") vbzhshgg15 = (\"foxzhshgg15\") vbzhshdd15 = (\"foxzhshdd15\") vbzhsh30 = (\"foxzhsh30\") vbzhshg30 = (\"foxzhshg30\") vbzhshd30 = (\"foxzhshd30\") vbzhshgg30 = (\"foxzhshgg30\") vbzhshdd30 = (\"foxzhshdd30\") vbzhsh60 = (\"foxzhsh60\") vbzhshg60 = (\"foxzhshg60\") vbzhshd60 = (\"foxzhshd60\") vbzhshgg60 = (\"foxzhshgg60\") vbzhshdd60 = (\"foxzhshdd60\") vbzhshr = (\"foxzhshr\") vbzhshgr = (\"foxzhshgr\") vbzhshdr = (\"foxzhshdr\") vbzhshggr = (\"foxzhshggr\") vbzhshddr = (\"foxzhshddr\") vbzhshz = (\"foxzhshz\") vbzhshgz = (\"foxzhshgz\") vbzhshdz = (\"foxzhshdz\") vbzhshggz = (\"foxzhshggz\") vbzhshddz = (\"foxzhshddz\") vbzhshy = (\"foxzhshy\") vbzhshgy = (\"foxzhshgy\") vbzhshdy = (\"foxzhshdy\") vbzhshggy = (\"foxzhshggy\") vbzhshddy = (\"foxzhshddy\") vbzhshn = (\"foxzhshn\") vbzhshgn = (\"foxzhshgn\") vbzhshdn = (\"foxzhshdn\") vbzhshggn = (\"foxzhshggn\") vbzhshddn = (\"foxzhshddn\") vbzhshmm=(\"foxzhshmm\") vbzhshmm5=(\"foxzhshmm5\") vbzhshmm15=(\"foxzhshmm15\") vbzhshmm30=(\"foxzhshmm30\") vbzhshmm60=(\"foxzhshmm60\") vbzhshmmr=(\"foxzhshmmr\") vbzhshmmz=(\"foxzhshmmz\") vbzhshmmy=(\"foxzhshmmy\") vbzhshmmn=(\"foxzhshmmn\") vbyanwei=(\"foxyanwei\") maxyanbi=(\"datanumber4\") vbyanbicount=(\"foxyanbicount\") nlast = UBound( vbh ) foxbicount=0 x1 0 0 0 0 0 0 0 '先取三个分型数据 ,然后进入循环处理 '要逐分型判断 ,取第一个 1分x2 中枢的高高和低低位置及信息 ,zhshxingci 为次级别中枢 形成标志,qushi为次级别x3 趋势标志0为无趋势1为上上升-1为下降 a=0 x0=0 zhshhoubi=0 zhshxing=0 zhshbegin=0 x4 zhshend=0 yanshen=0 yanshenbi=0 qushi=0 zhshbeginci=0 zhshendci=0 x5 x6 zhshbeginci1=0 x7 zhshendci1=0 '找第一个 1分中枢 ,找到后检查 1分中枢开始位置是否也是 5分中枢的开始位置 (指 是不是 1 分延伸出的 5 分,程序中对延伸的处理使用得延伸出的高级别中枢与次 级别 中枢在同一位置开始 ,结束位置不一样 ) FOR a=a TO nlast if (vbxian(a)<>0) then '(a)是分型时处理 if (zhshxing=0) then '(b)是否已形成了 5分中枢 if (zhshbeginci=0) then '(c)是否已形成了 1分中枢 if (vbzhsh(a) = 1) then '(d)是1分中枢开始位置;以1分中枢的数据为基础形成5分的中枢数据,要先判断1 分的 数据 if (vbzhsh5(a) = 1) then '(e)是5分中枢开始位置 zhshxing=1 zhshbegin=a zhshbeginci=0 zhshendci=0 yanshen=0 yanshenbi=0 qushi=0 zhshbeginci=0 zhshendci=0 zhshbeginci1=0 zhshendci1=0 zg=vbzhshg5(zhshbegin) gg=vbzhshgg5(zhshbegin) zd=vbzhshd5(zhshbegin) dd=vbzhshdd5(zhshbegin) else '(e) zhshxing=0 zhshbegin=a zhshbeginci=a ygg=vbzhshgg(zhshbeginci) ydd=vbzhshdd(zhshbeginci) end if '(e) end if '(d) else '(c) if (vbxian(a)=1 and vbxiang(a)=ygg ) then x1=a end if if (vbxian(a)=-1 and vbxiand(a)=ydd ) then x2=a end if if (vbzhsh(a) = 2) then zhshendci=a exit for end if end if '(c) else '(b) if (vbzhsh5(a) = 2) then zhshend=a exit for end if end if '(b) end if '(a) next a=a+1 FOR m=a TO nlast '⑴开始,此时m为第1个1分或第1个5分中枢结束位置加上1,zhshxing=1为5分0 为 1 分,其下一个分型有可能为 5分开始或 1 分开始或只是一笔三种情况 if ( vbxian(m)<>0 ) then '(2)开始 分型时处理 ,先判断是不是 5分中枢再判断是不是 1 分中枢最后才是是不是 笔 if (vbzhsh5(m)=1 ) then '(3)开始是5分中枢开始,不论上一个m位置是1分5分还是单独的一笔均结束要取 新5 分的数据后返回,要判断此时zhshxing的值为1时要结束上一个5分中枢 if (zhshxing=1) then vbzhsh5(zhshbegin)=1 vbzhsh5(zhshend)=2 vbzhshg5(zhshbegin)=zg vbzhshgg5(zhshbegin)=gg vbzhshd5(zhshbegin)=zd vbzhshdd5(zhshbegin)=dd vbzhshg5(zhshend)=zg vbzhshgg5(zhshend)=gg vbzhshd5(zhshend)=zd vbzhshdd5(zhshend)=dd end if zhshxing=1 zhshbegin=m qushi=0 a=m if (a <= nlast) then Do While ( vbzhsh5(a) < 2 and a <= nlast) a = a + 1 if (a = nlast) then exit do end if Loop end if zhshend=a '5分中枢结束位置为zhshend开始位置为zhshbegin即xO(值为当下m) zg二vbzhshg5(zhshbegi n) gg=vbzhshgg5(zhshbegin) zd=vbzhshd5(zhshbegin) dd=vbzhshdd5(zhshbegin) m = a + 1 else '(3)else 不是 5分中枢开始判断是否为 1分的开始 if (vbzhsh(m)=1 ) then '(4)开始 是1分中枢开始,要先取新1分的数据,要据zhshxing的值判断是否已有5分 还1分中枢存在,已有1分高高点及低低点位置保存在 x1,x2中,5分开始位置置为当 下M if (zhshbegin=O) then 'zhshbegin=m end if FOR a=m TO nlast if (vbxian(a)<>O) then if (vbzhsh(a) = 1) then zhshbeginci1=a ygg1=vbzhshgg(zhshbeginci1) ydd1=vbzhshdd(zhshbeginci1) end if if (vbxian(a)=1 and vbxiang(a)=ygg1 ) then x3=a end if if (vbxian(a)=-1 and vbxiand(a)=ydd1 ) then x4=a end if if (vbzhsh(a) = 2) then zhshendci1=a exit for end if end if next '此时a为1分中枢结束位置,开始位置此时只记录了第一个 1分中枢的高高点和低低 点即:x3和x4它们是构成5分中枢的点位 a = a + 1 m=a if (zhshxing=0) then '(0)开始 无 5分即有 1分存在 ,有 1 分存在(不是 5分延伸后的 1分要是 5分破坏后的 1 分)要判断是构成 1 分的趋势还是 1 分的振荡 ,若是 1 分的振荡就构成了 5 分中枢 , 要计算新 5 分数据并返回 '先取本 1 分的高高点低低点 , 还要判断是否构成二类买卖点应取高高点低低点的位 置保存到 x3,x4 if (ygg if (qushi1<>0 ) then zhshendci=zhshendci1 zhshbeginci=zhshbeginci1 ygg=ygg1 ydd=ydd1 if ( qushi<>qushi1 and qushi<>0 ) then '1分趋势被破坏形成 5分中枢,记录位置及信息并返回 ,形成 1分的 1类买卖点要记录 并 区分出类型 ,上升趋势被破坏形成 1类卖点 ,下降趋势被破坏形成 1类买点 ,1类买卖 点要滞后与教材相反 ,要在趋势被破坏后才能判断出来; zhshxing=1 'zhshbegin=zhshbeginci qushi=0 zhshend=zhshendci1 '5 分中枢结束位置为 zhshendci1 vbzhsh5(zhshbegin)=1 vbzhsh5(zhshend)=2 zg=min(ygg,ygg1) gg=max(ygg,ygg1) zd=max(ydd,ydd1) dd=min(ydd,ydd1) vbzhshg5(zhshbegin)=zg vbzhshgg5(zhshbegin)=gg vbzhshd5(zhshbegin)=zd vbzhshdd5(zhshbegin)=dd vbzhshg5(zhshend)=zg vbzhshgg5(zhshend)=gg vbzhshd5(zhshend)=zd vbzhshdd5(zhshend)=dd if (qushi=1) then if (ydd=dd) then vbzhshmm5(x2)=3 else vbzhshmm5(x4)=3 end if else if (ygg=gg) then vbzhshmm5(x1)=-3 else vbzhshmm5(x3)=-3 end if end if qushi=0 else ' 1 分趋势未破坏没有形成 5 分中枢 , 将 ygg 换成 ygg1 的值 ygg=ygg1 ydd=ydd1 zhshbeginci=zhshbeginci1 zhshendci=zhshendci1 x3=x1 x4=x2 end if else if (qushi1<>0) then '形成趋势 qushi=qushi1 zhshendci=zhshendci1 zhshbeginci=zhshbeginci1 else '趋势为 0,即是形成了高级中枢要记录并返回 zhshxing=1 'zhshbegin=zhshbeginci qushi=0 zhshend=zhshendci1 '5分中枢结束位置为 zhshendcil开始位置为zhshbeginc1 vbzhsh5(zhshbegin)=1 vbzhsh5(zhshend)=2 zg=min(ygg,ygg1) gg=max(ygg,ygg1) zd=max(ydd,ydd1) dd=min(ydd,ydd1) vbzhshg5(zhshbegin)=zg vbzhshgg5(zhshbegin)=gg vbzhshd5(zhshbegin)=zd vbzhshdd5(zhshbegin)=dd vbzhshg5(zhshend)=zg vbzhshgg5(zhshend)=gg vbzhshd5(zhshend)=zd vbzhshdd5(zhshend)=dd m = a end if end if else '(0)else 有5分存在要判断是否枢成 5分的延伸 ,还是 5分中枢的破坏 ,5分中枢的破坏 就构成二类买卖点 ,二类买卖点是一分中枢的高高或低低点若此点也是三类买卖点 , 则二 /三类买卖点重合 ,要特别注意 '5分中枢破坏的标准为 :5分中枢后的 1分中枢的高高点或低低点不回到 5分内即 :不 是延伸就是破坏 ,为与教材一致此处仍分单数与双数进行处理并要处理延伸的数量 不超过 6为 5分中枢等于 6即形成 15分中枢要返回处理 '要先取 1 分中枢的高高点和低低点的位置及数值 if (zhshxing=1) then zhshhoubi=zhshhoubi+1 end if 'if (zhshhoubi Mod 2 =1) then '(5)begin 中枢后的单数笔要判断中枢否结束 ,中枢结束的标志是中枢后的单数笔不回 到 中枢区间内 (可能是震荡或趋势 ).此处与教材不同 ,比教材要早确认一个分型 if (ygg1 '(7) begin 未回到 5分中枢内 ,判断条件为 1分的低低点大于 5分的高点或 1 分的高高 点小于 5 分的低点 ',应标记出来,同时5分中枢结束新5分中枢开始,老5分中枢在zhshend处结束,新5 分 中枢在zhshbeginci1处开始在zhshendcil处结束 '此时要判断买卖点 ,若 1 分低低点大于 5分高点则 1 分低低点为 5分二买,若1 分高高 点小于 5 分低点则 1 分高高点为 5 分二卖 if (ygg1 vbzhshdd5(zhshbegin)=dd zhshend=zhshendci1 zhshbegin=zhshbeginci1 ygg=ygg1 ydd=ydd1 zhshbeginci=zhshbeginci1 zhshendci=zhshendci1 x1=x3 x2=x4 '取下一个 1 分或 5分中枢的位置 zhshhoubi=0 zhshxing=0 'zhshbegin=0 'zhshend=0 yanshen=0 yanshenbi=0 qushi=0 'zhshbeginci=0 'zhshendci=0 zhshbeginci1=0 zhshendci1=0 a=a+1 m=a else '(7) else 单数笔回到中枢区间内 ,不形成买卖点 , 要记录下来 ,5 分中枢结束标志 zhshend更新为 zhshendcil yanshen=1 yanshenbi=yanshenbi+1 maxyanbi=max(maxyanbi,yanshenbi) 'vbyanwei(m)=m 'vbyanbicount(m)=yanshenbi zhshend=zhshendci1 if (yanshenbi<6) then vbzhsh5(zhshend)=2 vbzhshg5(zhshend)=zg vbzhshd5(zhshend)=zd vbzhshgg5(zhshend)=gg vbzhshdd5(zhshend)=dd else '延伸超过 6 笔构成级别扩展 ,上一级别中枢结束 ,新的本级别中枢开始 yanshen=0 yanshenbi=0 zhshxing=0 vbzhsh5(zhshend)=2 vbzhsh5(zhshbegin)=1 vbzhshg5(zhshend)=zg vbzhshd5(zhshend)=zd vbzhshgg5(zhshend)=gg vbzhshdd5(zhshend)=dd vbzhshg5(zhshbegin)=zg vbzhshd5(zhshbegin)=zd vbzhshgg5(zhshbegin)=gg vbzhshdd5(zhshbegin)=dd vbzhsh15(zhshendci1)=2 vbzhsh15(zhshbegin)=1 zhshhoubi=0 '取下一个 1 分或 5分中枢的位置 zhshhoubi=0 zhshxing=0 zhshbegin=0 zhshend=0 yanshen=0 yanshenbi=0 qushi=0 zhshbeginci=0 zhshendci=0 zhshbeginci1=0 zhshendci1=0 '找第一个 1分中枢 ,找到后检查 1分中枢开始位置是否也是 5分中枢的开始位置 (指 是 不是 1 分延伸出的 5 分,程序中对延伸的处理使用得延伸出的高级别中枢与次级别 中枢在同一位置开始 ,结束位置不一样 ) FOR a=m TO nlast if (vbxian(a)<>0) then '(a)是分型时处理 if (zhshxing=0) then '(b)是否已形成了 5分中枢 if (zhshbeginci=0) then '(c)是否已形成了 1分中枢 if (vbzhsh(a) = 1) then '(d)是1分中枢开始位置;以1分中枢的数据为基础形成5分的中枢数据,要先判断1 分的 数据 if (vbzhsh5(a) = 1) then '(e)是5分中枢开始位置 zhshxing=1 zhshbegin=a zhshbeginci=0 zhshendci=0 yanshen=0 yanshenbi=0 qushi=0 zhshbeginci=0 zhshendci=0 zhshbeginci1=0 zhshendci1=0 zg gg zd dd else '(e) zhshxing=0 zhshbegin=a zhshbeginci=a ygg=vbzhshgg(zhshbeginci) ydd=vbzhshdd(zhshbeginci) end if '(e) end if '(d) else '(c) if (vbxian(a)=1 and vbxiang(a)=ygg ) then x1=a end if if (vbxian(a)=-1 and vbxiand(a)=ydd ) then x2=a end if if (vbzhsh(a) = 2) then zhshendci=a exit for end if end if '(c) else vbzhshg5(zhshbegin) vbzhshgg5(zhshbegin) vbzhshd5(zhshbegin) vbzhshdd5(zhshbegin) '(b) if (vbzhsh5(a) = 2) then zhshend=a exit for end if end if '(b) end if '(a) next a=a+1 m=a end if end if '(7)结束 'else '(5)else 中枢后的双数笔要判断中枢否结束 ,中枢结束的标志是中枢后的双数笔不回 到中枢区间内 (可能是震荡或趋势 ),中枢后的双数笔回到中枢区间内则为中枢延伸 '双数笔回到波动区间内则为中枢振荡 中枢振荡 . '此处与教材一致,新中枢自当下 M的分型开始,原中枢自zhshend(上一个M)处结束 'end if '(5)结束 end if '(0)结束 else '(4)else 是单独的一笔 ,此种情况出现在两个 1 分中枢间以两笔或两笔以上连接的情 况,此时要判断是不是 1 分的趋势若是趋势则此点为第一类买卖点 ,若与其它买卖点 ,不回中枢区间也不回到波动区间则要看下面 ,若其后走势回到波动区间是 走势的发展若其后走势仍不回到波动区间则构成趋势 重合则相当重要 if (qushi=1) then '()begin ,vbzhshmm5(m)的值为1,-1为五分的三类买卖点,为2,-2为五分的二类买卖点, 为 3,-3 为五分的一类买卖点 , '为 4,-4为五分的零类买卖点 ,它是在趋势后又创新高或创新低 (不完全是 )的笔的端 点 , 创新高或创新低的判断标准再考虑 if (vbxian(m)=1) then if (vbxiangg(m)>gg) then vbzhshmm5(m)=4 end if else if (vbxiandd(m) if (zhshxing=1) then vbzhsh5(nlast)=2 vbzhshg5(nlast)=zg vbzhshd5(nlast)=zd vbzhshgg5(nlast)=gg vbzhshdd5(nlast)=dd end if a=0 FOR m=0 TO nlast if (vbzhsh5(m)>0) then if (vbzhsh5(m)=2) then if (a>0) then vbzhsh5(a)=0 end if a=m else a=0 end if end if next a=0 ygg=0 ydd=0 FOR m=0 TO nlast if (vbxian(m)<>0 ) then '1 begin if (vbzhsh5(m)=1) then '2 BEGIN gg=vbzhshgg5(m) dd=vbzhshdd5(m) a=1 end if '2 END if (a=1) then '3 BEGIN if (vbxian(m)=1 ) then if (vbxiang(m)=gg and ygg=0) then vbzhshgg5(m)=gg ygg=1 end if else if (vbxiand(m)=dd and ydd=0) then vbzhshdd5(m)=dd ydd=1 end if end if end if '3 END if (vbzhsh5(m)=2) then a=0 ygg=0 ydd=0 end if end if '1 end next vbzhsh5(0)=0 '将本级别 vbzhsh5 高高点和低低点的数据也计算出来 ,后面要用到 FOR m=0 TO nlast '延伸成高级别中枢的情况应先分成三个连续的三段每段取最高点和最低 点然后再 按高点中的低者 ,低点中的高者的规则计算高级中枢的中枢区间及高高点和低低点 if (vbxian(m)<>0) then if (vbzhsh15(m)=1) then zhshbegin=m x1=1 x2=0 x3=1000000 x4=0 x5=1000000 x6=0 x7=1000000 end if if (x1>=1 ) then x1=x1+1 if (x1<=3) then x2=max(x2,vbxiang(m)) x3=min(x3,vbxiand(m)) else if (x1<=6) then x4=max(x4,vbxiang(m)) x5=min(x5,vbxiand(m)) else x6=max(x6,vbxiang(m)) x7=min(x7,vbxiand(m)) end if end if if (vbzhsh15(m)=2) then zg=min(x2,x4) zg=min(zg,x6) gg=max(x2,x4) gg=max(gg,x6) zd=max(x3,x5) zd=max(zd,x7) dd=min(x3,x5) dd=min(dd,x7) vbzhshg15(zhshbegin)=zg vbzhshdd15(zhshbegin)=dd vbzhshd15(zhshbegin)=zd vbzhshg15(m)=zg vbzhshgg15(zhshbegin)=gg vbzhshgg15(m)=gg vbzhshd15(m)=zd vbzhshdd15(m)=dd x1=0 end if end if end if next '计算 5分即:本级中枢延伸柢成的上一级别中枢 (15分中枢 )的数据 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 (\"foxzhsh\") = vbzhsh (\"foxzhshg\") = vbzhshg (\"foxzhshd\") = vbzhshd (\"foxzhshgg\") = vbzhshgg (\"foxzhshdd\") = vbzhshdd (\"foxzhsh5\") = vbzhsh5 (\"foxzhshg5\") = vbzhshg5 (\"foxzhshd5\") = vbzhshd5 (\"foxzhshgg5\") = vbzhshgg5 (\"foxzhshdd5\") = vbzhshdd5 (\"foxzhsh15\") = vbzhsh15 (\"foxzhshg15\") = vbzhshg15 (\"foxzhshd15\") = vbzhshd15 (\"foxzhshgg15\") = vbzhshgg15 (\"foxzhshdd15\") = vbzhshdd15 (\"foxzhsh30\") = vbzhsh30 (\"foxzhshg30\") = vbzhshg30 (\"foxzhshd30\") = vbzhshd30 (\"foxzhshgg30\") = vbzhshgg30 (\"foxzhshdd30\") = vbzhshdd30 (\"foxzhsh60\") = vbzhsh60 (\"foxzhshg60\") = vbzhshg60 (\"foxzhshd60\") = vbzhshd60 (\"foxzhshgg60\") = vbzhshgg60 (\"foxzhshdd60\") = vbzhshdd60 (\"foxzhshr\") = vbzhshr (\"foxzhshgr\") = vbzhshgr (\"foxzhshdr\") = vbzhshdr (\"foxzhshggr\") = vbzhshggr (\"foxzhshddr\") = vbzhshddr (\"foxzhshz\") = vbzhshz (\"foxzhshgz\") = vbzhshgz (\"foxzhshdz\") = vbzhshdz (\"foxzhshggz\") = vbzhshggz (\"foxzhshddz\") = vbzhshddz (\"foxzhshy\") = vbzhshy (\"foxzhshgy\") = vbzhshgy (\"foxzhshdy\") = vbzhshdy (\"foxzhshggy\") = vbzhshggy (\"foxzhshddy\") = vbzhshddy (\"foxzhshn\") = vbzhshn (\"foxzhshgn\") = vbzhshgn (\"foxzhshdn\") = vbzhshdn (\"foxzhshggn\") = vbzhshggn (\"foxzhshddn\") = vbzhshddn (\"foxzhshmm\")= vbzhshmm (\"foxzhshmm5\")= vbzhshmm5 (\"foxzhshmm15\")= vbzhshmm15 (\"foxzhshmm30\")= vbzhshmm30 (\"foxzhshmm60\")= vbzhshmm60 (\"foxzhshmmr\")= vbzhshmmr (\"foxzhshmmz\")= vbzhshmmz (\"foxzhshmmy\")= vbzhshmmy (\"foxzhshmmn\")= vbzhshmmn (\"datanumber3\") =maxbi (\"foxyanwei\")=vbyanwei (\"datanumber4\") =maxyanbi (\"foxyanbicount\")=vbyanbicount %> DRAWTEXT(FOXZHSH5=1 AND FOXZHSHDD5>0,FOXZHSHGG5,'\\n 上 '),colorFFFFFF; DRAWICON(FOXZHSHMM5>=1 FOXZHSHDD5>0,IF(FOXL FOXZHSHDD5>0,IF(FOXL FOXZHSHDD5>0,IF(FOXL FOXZHSHDD5>0,IF(FOXL vbquekou=(\"foxquekou\") vbfennumber=(\"foxfennumber\") vbh = (\"foxh\") vbL = (\"foxl\") vbh1 = (\"foxh\") vbL1 = (\"foxl\") vbbaohan = (\"foxbaohan\") vbbaohan1 = AND 上级二买 '),colorFFFFFF; (\"foxbaohan1\") vbguanxi = (\"foxguanxi\") vbfenxing = (\"foxfenxing\") vbfenxing1 = (\"foxfenxing1\") vbbuysell=(\"foxbuysell\") vbwei=(\"foxwei\") vbxian=(\"foxxian\") vbxiang=(\"foxxiang\") vbxiand=(\"foxxiand\") vbzhsh = (\"foxzhsh\") vbzhshg = (\"foxzhshg\") vbzhshd = (\"foxzhshd\") vbzhshgg = 上级一买 '),colorFFFFFF; AND AND AND \\n 级 上级三卖 '),colorFFFFFF; 上级二卖 '),colorFFFFFF; AND 上级 00 买'),colorFFFFFF; 上级三买 '),colorFFFFFF; AND AND AND (\"foxzhshgg\") vbzhshdd = (\"foxzhshdd\") vbzhsh5 = (\"foxzhsh5\") vbzhshg5 = (\"foxzhshg5\") vbzhshd5 = (\"foxzhshd5\") vbzhshgg5 = 上级一卖 '),colorFFFFFF; (\"foxzhshgg5\") vbzhshdd5 = (\"foxzhshdd5\") vbzhsh15 = (\"foxzhsh15\") vbzhshg15 AND = (\"foxzhshg15\") vbzhshd15 = (\"foxzhshd15\") vbzhshgg15 = (\"foxzhshgg15\") AND vbzhshdd15 = (\"foxzhshdd15\") vbzhsh30 = (\"foxzhsh30\") vbzhshg30 = 上级 00 卖'),colorFFFFFF; (\"foxzhshg30\") vbzhshd30 = (\"foxzhshd30\") vbzhshgg30 = (\"foxzhshgg30\") vbzhshdd30 = (\"foxzhshdd30\") vbzhsh60 = (\"foxzhsh60\") vbzhshg60 = (\"foxzhshg60\") vbzhshd60 = (\"foxzhshd60\") vbzhshgg60 = (\"foxzhshgg60\") vbzhshdd60 = (\"foxzhshdd60\") vbzhshr = (\"foxzhshr\") vbzhshgr = (\"foxzhshgr\") vbzhshdr = (\"foxzhshdr\") vbzhshggr = (\"foxzhshggr\") vbzhshddr = (\"foxzhshddr\") vbzhshz = (\"foxzhshz\") vbzhshgz = (\"foxzhshgz\") vbzhshdz = (\"foxzhshdz\") vbzhshggz = (\"foxzhshggz\") vbzhshddz = (\"foxzhshddz\") vbzhshy = (\"foxzhshy\") vbzhshgy = (\"foxzhshgy\") vbzhshdy = (\"foxzhshdy\") vbzhshggy = (\"foxzhshggy\") vbzhshddy = (\"foxzhshddy\") vbzhshn = (\"foxzhshn\") vbzhshgn = (\"foxzhshgn\") vbzhshdn = (\"foxzhshdn\") vbzhshggn = (\"foxzhshggn\") vbzhshddn = (\"foxzhshddn\") vbzhshmm=(\"foxzhshmm\") vbzhshmm5=(\"foxzhshmm5\") vbzhshmm15=(\"foxzhshmm15\") vbzhshmm30=(\"foxzhshmm30\") vbzhshmm60=(\"foxzhshmm60\") vbzhshmmr=(\"foxzhshmmr\") vbzhshmmz=(\"foxzhshmmz\") vbzhshmmy=(\"foxzhshmmy\") vbzhshmmn=(\"foxzhshmmn\") vbyanwei=(\"foxyanwei\") maxyanbi=(\"datanumber4\") vbyanbicount=(\"foxyanbicount\") nlast = UBound( vbh ) foxbicount=0 x1=0 x2=0 x3=0 x4=0 x5=0 x6=0 x7=0 '先取三个分型数据 ,然后进入循环处理 '要逐分型判断 ,取第一个 5 分中枢的高高和低低位置及信息 ,zhshxingci 为次级别中枢 形成标志 ,qushi 为次级别趋势标志 0为无趋势 1为上上升 -1 为下降 a=0 x0=0 zhshhoubi=0 zhshxing=0 zhshbegin=0 zhshend=0 yanshen=0 yanshenbi=0 qushi=0 zhshbeginci=0 zhshendci=0 zhshbeginci1=0 zhshendci1=0 '找第一个 5分中枢 ,找到后检查 5分中枢开始位置是否也是 15分中枢的开始位置 (指 是不是 15分延伸出的 5 分,程序中对延伸的处理使用得延伸出的高级别中枢与次级 别中枢在同一位置开始 ,结束位置不一样 ) FOR a=a TO nlast if (vbxian(a)<>0) then '(a)是分型时处理 if (zhshxing=0) then '(b)是否已形成了 15分中枢 if (zhshbeginci=0) then '(c)是否已形成了 5分中枢 if (vbzhsh5(a) = 1) then '(d)是5分中枢开始位置;以5分中枢的数据为基础形成5分的中枢数据,要先判断5 分的 数据 if (vbzhsh15(a) = 1) then '(e)同时也是15分中枢开始位置 zhshxing=1 zhshbegin=a zhshbeginci=0 zhshendci=0 yanshen=0 yanshenbi=0 qushi=0 zhshbeginci=0 zhshendci=0 zhshbeginci1=0 zhshendci1=0 zg=vbzhshg15(zhshbegin) gg=vbzhshgg15(zhshbegin) zd=vbzhshd15(zhshbegin) dd=vbzhshdd15(zhshbegin) else '(e) zhshxing=0 zhshbegin=a zhshbeginci=a ygg=vbzhshgg15(zhshbeginci) ydd=vbzhshdd15(zhshbeginci) end if '(e) end if '(d) else '(c) if (vbxian(a)=1 and vbxiang(a)=ygg ) then x1=a end if if (vbxian(a)=-1 and vbxiand(a)=ydd ) then x2=a end if if (vbzhsh5(a) = 2) then zhshendci=a exit for end if end if '(c) else '(b) if (vbzhsh15(a) = 2) then zhshend=a exit for end if end if '(b) end if '(a) next a=a+1 FOR m=a TO nlast '⑴开始,此时m为第1个5分或第1个15分中枢结束位置加上1,zhshxing=1为15分 0为 5 分,其下一个分型有可能为 15分开始或 5分开始或只是 5分以下三种情况 if ( vbxian(m)<>0 ) then '(2)开始 分型时处理 ,先判断是不是 1 5分中枢再判断是不是 5分中枢最后才是是不是 5 分以下三种 if (vbzhsh15(m)=1 ) then '(3)开始 是5分中枢开始,不论上一个m位置是15分5分还是单独的一笔均结束要取 新5 分的数据后返回,要判断此时zhshxing的值为1时要结束上一个15分中枢 if (zhshxing=1) then vbzhsh15(zhshbegin)=1 vbzhsh15(zhshend)=2 vbzhshg15(zhshbegin)=zg vbzhshgg15(zhshbegin)=gg vbzhshd15(zhshbegin)=zd vbzhshdd15(zhshbegin)=dd vbzhshg15(zhshend)=zg vbzhshgg15(zhshend)=gg vbzhshd15(zhshend)=zd vbzhshdd15(zhshend)=dd end if zhshxing=1 zhshbegin=m qushi=0 a=m 'if (a <= nlast) then 'Do While ( vbzhsh15(a) < 2 and a <= nlast) 'a = a + 1 'if (a = nlast) then 'exit do 'end if 'Loop 'end if Do While (a < nlast) if (vbzhsh15(a) = 2 ) then exit do end if a = a + 1 Loop zhshend=a '5分中枢结束位置为zhshend开始位置为zhshbegin即xO(值为当下m) zg二vbzhshg15(zhshbeg in) gg=vbzhshgg15(zhshbegin) zd=vbzhshd15(zhshbegin) dd=vbzhshdd15(zhshbegin) m = a + 1 else '(3)else 不是 15分中枢开始判断是否为 5分的开始 if (vbzhsh5(m)=1 ) then '(4)开始 是 5分中枢开始 ,要先取新 5分的数据 ,要据 zhshxing 的值判断是否已有 15 分还 5 分中枢存在 , 已有 5 分高高点及低低点位置保存在 x1,x2 中 ,5 分开始位置置为 当下 M if (zhshbegin=O) then 'zhshbegin=m end if FOR a=m TO nlast if (vbxian(a)<>0) then if (vbzhsh5(a) = 1) then zhshbeginci1=a ygg1=vbzhshgg5(zhshbeginci1) ydd1=vbzhshdd5(zhshbeginci1) end if if (vbxian(a)=1 and vbxiang(a)=ygg1 ) then x3=a end if if (vbxian(a)=-1 and vbxiand(a)=ydd1 ) then x4=a end if if (vbzhsh5(a) = 2) then zhshendci1=a exit for end if end if next '此时a为5分中枢结束位置,开始位置此时只记录了第一个 5分中枢的高高点和低低 点即:x3和x4它们是构成5分中枢的点位 a = a + 1 m=a if (zhshxing=0) then '(0)开始 无 15分即有 5分存在,有5分存在(不是 15分延伸后的 5分要是 15分破坏后 的 5分)要判断是构成 5分的趋势还是 5分的振荡 ,若是 5分的振荡就构成了 5分中枢, 要计算新 5分数据并返回 '先取本 5 分的高高点低低点 ,还要判断是否构成二类买卖点应取高高点低低点的位 置保存到 x3,x4 if (ygg if (qushi1<>0 ) then zhshendci=zhshendci1 zhshbeginci=zhshbeginci1 ygg=ygg1 ydd=ydd1 if ( qushi<>qushi1 and qushi<>0 ) then '5分趋势被破坏形成 15分中枢 ,记录位置及信息并返回 ,形成 5分的 1类买卖点要记 录 并区分出类型 ,上升趋势被破坏形成 1类卖点 ,下降趋势被破坏形成 1类买点,1类买 卖点要滞后与教材相反 ,要在趋势被破坏后才能判断出来; zhshxing=1 'zhshbegin=zhshbeginci qushi=0 zhshend=zhshendci1 '5 分中枢结束位置为 zhshendci1 vbzhsh15(zhshbegin)=1 vbzhsh15(zhshend)=2 zg=min(ygg,ygg1) gg=max(ygg,ygg1) zd=max(ydd,ydd1) dd=min(ydd,ydd1) vbzhshg15(zhshbegin)=zg vbzhshgg15(zhshbegin)=gg vbzhshd15(zhshbegin)=zd vbzhshdd15(zhshbegin)=dd vbzhshg15(zhshend)=zg vbzhshgg15(zhshend)=gg vbzhshd15(zhshend)=zd vbzhshdd15(zhshend)=dd if (qushi=1) then if (ydd=dd) then vbzhshmm15(x2)=3 else vbzhshmm15(x4)=3 end if else if (ygg=gg) then vbzhshmm15(x1)=-3 else vbzhshmm15(x3)=-3 end if end if qushi=0 else '5分趋势未破坏没有形成5分中枢,将ygg换成ygg1的值 ygg=ygg1 ydd=ydd1 zhshbeginci=zhshbeginci1 zhshendci=zhshendci1 x3=x1 x4=x2 end if else if (qushi1<>0) then '形成趋势 qushi=qushi1 zhshendci=zhshendci1 zhshbeginci=zhshbeginci1 else '趋势为 0,即是形成了高级中枢要记录并返回 zhshxing=1 'zhshbegin=zhshbeginci qushi=0 zhshend=zhshendci1 '5分中枢结束位置为 zhshendcil开始位置为zhshbeginc1 vbzhsh15(zhshbegi n)=1 vbzhsh15(zhshend)=2 zg=min(ygg,ygg1) gg=max(ygg,ygg1) zd=max(ydd,ydd1) dd=min(ydd,ydd1) vbzhshg15(zhshbegin)=zg vbzhshgg15(zhshbegin)=gg vbzhshd15(zhshbegin)=zd vbzhshdd15(zhshbegin)=dd vbzhshg15(zhshend)=zg vbzhshgg15(zhshend)=gg vbzhshd15(zhshend)=zd vbzhshdd15(zhshend)=dd m = a end if end if else '(0)else 有5分存在要判断是否枢成 5分的延伸 ,还是 5分中枢的破坏 ,5分中枢的破坏 就构成二类买卖点 ,二类买卖点是一分中枢的高高或低低点若此点也是三类买卖点 , 则二 /三类买卖点重合 ,要特别注意 '5分中枢破坏的标准为 :5分中枢后的 5分中枢的高高点或低低点不回到 5分内即:不 是延伸就是破坏 ,为与教材一致此处仍分单数与双数进行处理并要处理延伸的数量 不超过 6为 5分中枢等于 6即形成 1 5分中枢要返回处理 '要先取 5分中枢的高高点和低低点的位置及数值 if (zhshxing=1) then zhshhoubi=zhshhoubi+1 end if 'if (zhshhoubi Mod 2 =1) then '(5)begin 中枢后的单数笔要判断中枢否结束 ,中枢结束的标志是中枢后的单数笔不回 到 中枢区间内 (可能是震荡或趋势 ).此处与教材不同 ,比教材要早确认一个分型 if (ygg1 '(7) begin 未回到 5分中枢内 ,判断条件为 5分的低低点大于 5分的高点或 5 分的高高 点小于 5 分的低点 ',应标记出来,同时5分中枢结束新5分中枢开始,老5分中枢在zhshend处结束,新5 分 中枢在zhshbeginci1处开始在zhshendcil处结束 '此时要判断买卖点 ,若 5分低低点大于 5分高点则 5分低低点为 5分二买,若5分高高 点小于 5分低点则 5分高高点为 5分二卖 if (ygg1 end if yanshen=0 yanshenbi=0 zhshxing=0 vbzhsh15(zhshend)=2 vbzhshg15(zhshend)=zg vbzhshd15(zhshend)=zd vbzhshgg15(zhshend)=gg vbzhshdd15(zhshend)=dd vbzhsh15(zhshbegin)=1 vbzhshg15(zhshbegin)=zg vbzhshd15(zhshbegin)=zd vbzhshgg15(zhshbegin)=gg vbzhshdd15(zhshbegin)=dd zhshend=zhshendci1 zhshbegin=zhshbeginci1 ygg=ygg1 ydd=ydd1 zhshbeginci=zhshbeginci1 zhshendci=zhshendci1 x1=x3 x2=x4 ' 取下一个 5 分或 5 分中枢的位置 zhshhoubi=0 zhshxing=0 'zhshbegin=0 'zhshend=0 yanshen=0 yanshenbi=0 qushi=0 'zhshbeginci=0 'zhshendci=0 zhshbeginci1=0 zhshendci1=0 a=a+1 m=a else '(7) else 单数笔回到中枢区间内 ,不形成买卖点 , 要记录下来 ,5 分中枢结束标志 zhshend更新为 zhshendcil yanshen=1 yanshenbi=yanshenbi+1 maxyanbi=max(maxyanbi,yanshenbi) 'vbyanwei(m)=m 'vbyanbicount(m)=yanshenbi zhshend=zhshendci1 if (yanshenbi<6) then vbzhsh15(zhshend)=2 vbzhshg15(zhshend)=zg vbzhshd15(zhshend)=zd vbzhshgg15(zhshend)=gg vbzhshdd15(zhshend)=dd else '延伸超过 6 笔构成级别扩展 ,上一级别中枢结束 ,新的本级别中枢开始 yanshen=0 yanshenbi=0 zhshxing=0 vbzhsh15(zhshend)=2 vbzhsh15(zhshbegin)=1 vbzhshg15(zhshend)=zg vbzhshd15(zhshend)=zd vbzhshgg15(zhshend)=gg vbzhshdd15(zhshend)=dd vbzhshg15(zhshbegin)=zg vbzhshd15(zhshbegin)=zd vbzhshgg15(zhshbegin)=gg vbzhshdd15(zhshbegin)=dd vbzhsh30(zhshendci1)=2 vbzhsh30(zhshbegin)=1 zhshhoubi=0 '取下一个 5 分或 5分中枢的位置 zhshhoubi=0 zhshxing=0 zhshbegin=0 zhshend=0 yanshen=0 yanshenbi=0 qushi=0 zhshbeginci=0 zhshendci=0 zhshbeginci1=0 zhshendci1=0 '找第一个 5分中枢 ,找到后检查 5分中枢开始位置是否也是 5分中枢的开始位置 (指 是 不是 5 分延伸出的 5 分,程序中对延伸的处理使用得延伸出的高级别中枢与次级别 中枢在同一位置开始 ,结束位置不一样 ) FOR a=m TO nlast if (vbxian(a)<>0) then '(a)是分型时处理 if (zhshxing=0) then '(b)是否已形成了 5分中枢 if (zhshbeginci=0) then '(c)是否已形成了 5分中枢 if (vbzhsh5(a) = 1) then '(d)是5分中枢开始位置;以5分中枢的数据为基础形成 5分的中枢数据,要先判断5 分 的数据 if (vbzhsh15(a) = 1) then '(e)是5分中枢开始位置 zhshxing=1 zhshbegin=a zhshbeginci=0 zhshendci=0 yanshen=0 yanshenbi=0 qushi=0 zhshbeginci=0 zhshendci=0 zhshbeginci1=0 zhshendci1=0 zg=vbzhshg15(zhshbegin) gg=vbzhshgg15(zhshbegin) zd=vbzhshd15(zhshbegin) dd=vbzhshdd15(zhshbegin) else '(e) zhshxing=0 zhshbegin=a zhshbeginci=a ygg=vbzhshgg5(zhshbeginci) ydd=vbzhshdd5(zhshbeginci) end if '(e) end if '(d) else '(c) if (vbxian(a)=1 and vbxiang(a)=ygg ) then x1=a end if if (vbxian(a)=-1 and vbxiand(a)=ydd ) then x2=a end if if (vbzhsh5(a) = 2) then zhshendci=a exit for end if end if '(c) else '(b) if (vbzhsh15(a) = 2) then zhshend=a exit for end if end if '(b) end if '(a) next a=a+1 m=a end if end if '(7)结束 'else '(5)else 中枢后的双数笔要判断中枢否结束 ,中枢结束的标志是中枢后的双数笔不回 到中枢区间内 (可能是震荡或趋势 ),中枢后的双数笔回到中枢区间内则为中枢延伸 '双数笔回到波动区间内则为中枢振荡 中枢振荡 . '此处与教材一致,新中枢自当下M的分型开始,原中枢自zhshend(上一个M)处结束 'end if '(5)结束 end if '(0)结束 else '(4)else 是单独的一笔 ,此种情况出现在两个 5 分中枢间以两笔或两笔以上连接的情 ,不回中枢区间也不回到波动区间则要看下面 ,若其后走势回到波动区间是 走势的发展若其后走势仍不回到波动区间则构成趋势 况 ,此时要判断是不是 5 分的趋势若是趋势则此点为第一类买卖点 重合则相当重要 if (qushi=1) then ,若与其它买卖点 '()begin ,vbzhshmm5(m)的值为1,-1为五分的三类买卖点,为2,-2为五分的二类买卖点, 为 3,-3 为五分的一类买卖点 , '为 4,-4为五分的零类买卖点 ,它是在趋势后又创新高或创新低 (不完全是 )的笔的端 点 , 创新高或创新低的判断标准再考虑 if (vbxian(m)=1) then if (vbxiangg(m)>gg) then vbzhshmm15(m)=4 end if else if (vbxiandd(m) FOR m=0 TO nlast if (vbzhsh15(m)>0) then if (vbzhsh15(m)=2) then if (a>0) then vbzhsh15(a)=0 end if a=m else a=0 end if end if next a=0 ygg=0 ydd=0 FOR m=0 TO nlast if (vbxian(m)<>0 ) then '1 begin if (vbzhsh15(m)=1) then '2 BEGIN gg=vbzhshgg15(m) dd=vbzhshdd15(m) a=1 end if '2 END if (a=1) then '3 BEGIN if (vbxian(m)=1 ) then if (vbxiang(m)=gg and ygg=0) then vbzhshgg15(m)=gg ygg=1 end if else if (vbxiand(m)=dd and ydd=0) then vbzhshdd15(m)=dd ydd=1 end if end if end if '3 END if (vbzhsh15(m)=2) then a=0 ygg=0 ydd=0 end if end if '1 end next '将本级别 vbzhsh5 高高点和低低点的数据也计算出来 ,后面要用到 FOR m=0 TO nlast '延伸成高级别中枢的情况应先分成三个连续的三段每段取最高点和最低点然后再 按高点 中的低者 ,低点中的高者的规则计算高级中枢的中枢区间及高高点和低低点 if (vbxian(m)<>0) then if (vbzhsh30(m)=1) then zhshbegin=m x1 x2 x3 x4 x5 x6 x7 end if if (x1>=1 ) then x1=x1+1 if (x1<=3) then x2=max(x2,vbxiang(m)) x3=min(x3,vbxiand(m)) else if (x1<=6) then x4=max(x4,vbxiang(m)) x5=min(x5,vbxiand(m)) else x6=max(x6,vbxiang(m)) 0 1000000 0 1000000 0 1000000 x7=min(x7,vbxiand(m)) end if end if if (vbzhsh30(m)=2) then zg=min(x2,x4) zg=min(zg,x6) gg=max(x2,x4) gg=max(gg,x6) zd=max(x3,x5) zd=max(zd,x7) dd=min(x3,x5) dd=min(dd,x7) vbzhshg30(zhshbegin)=zg vbzhshdd30(zhshbegin)=dd vbzhshd30(zhshbegin)=zd vbzhshg30(m)=zg vbzhshgg30(zhshbegin)=gg vbzhshgg30(m)=gg vbzhshd30(m)=zd vbzhshdd30(m)=dd x1=0 end if end if end if next '计算 30分即:本级中枢延伸柢成的上一级别中枢 (30 分中枢)的数据 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 (\"foxzhsh\") = vbzhsh (\"foxzhshg\") = vbzhshg (\"foxzhshd\") = vbzhshd (\"foxzhshgg\") = vbzhshgg (\"foxzhshdd\") = vbzhshdd (\"foxzhsh5\") = vbzhsh5 (\"foxzhshg5\") = vbzhshg5 (\"foxzhshd5\") = vbzhshd5 (\"foxzhshgg5\") = vbzhshgg5 (\"foxzhshdd5\") = vbzhshdd5 (\"foxzhsh15\") = vbzhsh15 (\"foxzhshg15\") = vbzhshg15 (\"foxzhshd15\") = vbzhshd15 (\"foxzhshgg15\") = vbzhshgg15 (\"foxzhshdd15\") = vbzhshdd15 (\"foxzhsh30\") = vbzhsh30 (\"foxzhshg30\") = vbzhshg30 (\"foxzhshd30\") = vbzhshd30 (\"foxzhshgg30\") = vbzhshgg30 (\"foxzhshdd30\") = vbzhshdd30 (\"foxzhsh60\") = vbzhsh60 (\"foxzhshg60\") = vbzhshg60 (\"foxzhshd60\") = vbzhshd60 (\"foxzhshgg60\") = vbzhshgg60 (\"foxzhshdd60\") = vbzhshdd60 (\"foxzhshr\") = vbzhshr (\"foxzhshgr\") = vbzhshgr (\"foxzhshdr\") = vbzhshdr (\"foxzhshggr\") = vbzhshggr (\"foxzhshddr\") = vbzhshddr (\"foxzhshz\") = vbzhshz (\"foxzhshgz\") = vbzhshgz (\"foxzhshdz\") = vbzhshdz (\"foxzhshggz\") = vbzhshggz (\"foxzhshddz\") = vbzhshddz (\"foxzhshy\") = vbzhshy (\"foxzhshgy\") = vbzhshgy (\"foxzhshdy\") = vbzhshdy (\"foxzhshggy\") = vbzhshggy (\"foxzhshddy\") = vbzhshddy (\"foxzhshn\") = vbzhshn (\"foxzhshgn\") = vbzhshgn (\"foxzhshdn\") = vbzhshdn (\"foxzhshggn\") = vbzhshggn (\"foxzhshddn\") = vbzhshddn (\"foxzhshmm\")= vbzhshmm (\"foxzhshmm5\")= vbzhshmm5 (\"foxzhshmm15\")= vbzhshmm15 (\"foxzhshmm30\")= vbzhshmm30 (\"foxzhshmm60\")= vbzhshmm60 (\"foxzhshmmr\")= vbzhshmmr (\"foxzhshmmz\")= vbzhshmmz (\"foxzhshmmy\")= vbzhshmmy (\"foxzhshmmn\")= vbzhshmmn (\"datanumber3\") =maxbi (\"foxyanwei\")=vbyanwei (\"datanumber4\") =maxyanbi (\"foxyanbicount\")=vbyanbicount %> FOXMACDWEI:=LING; FOXZHSHMACD:=LING; DATATYPEGG:=DATATYPE; DATATYPEDD:=DATATYPE; BEICHI:=LING; BIBEICHI:=LING; FH:=HIGH; FL:=LOW; FOXBIMACDWEI:=LING; FOXBIMACD:=LING; <% vbfenxing=(\"foxfenxing\") vbbimacdwei=(\"foxbimacdwei\") vbbimacd=(\"foxbimacd\") vbfh = (\"fh\") vbfL = (\"fl\") vbbeichi=(\"beichi\") vbbibeichi=(\"bibeichi\") vbxian=(\"foxxian\") vbxiang=(\"foxxiang\") vbxiand=(\"foxxiand\") vbzhshgg=(\"foxzhshgg\") vbzhshdd =(\"foxzhshdd\") vbmacdwei=(\"foxmacdwei\") vbzhsh =(\"foxzhsh\") vbzhshmacd=(\"foxzhshmacd\") vbmacd=(\"macd\") nlast=ubound(vbfh) a=nlast Do While (vbxian(a)=0) a=a-1 if (a<0) then exit do end if loop vbxian(nlast)=-vbxian(a) vbxiang(nlast)=vbfh(nlast) vbxiand(nlast)=vbfl(nlast) 'FOR a=0 TO nlast 'vbzhshmacd(a)=0 'vbbeichi(a)=0 'vbmacdwei(a)=0 'next 'a=nlast m=0 mnumber=0 'FOR a=0 TO nlast 'if (vbzhsh(a) = 1) then 'mnumber=m 'm = a 'end if 'next mnum=0 mnumber=0 FOR a=mnumber TO nlast mnum=mnum+abs(vbmacd(a))*1000 if (vbxian(a)<>0) then vbzhshmacd(a)=mnum mnum=0 else if (a=nlast) then vbzhshmacd(a)=mnum end if end if next beforeweig=0 beforeweid=0 FOR a=mnumber TO nlast if (vbxian(a)<>0) then if (beforeweig>0 ) then if (vbxian(a)>0) then if( vbzhshmacd(a) if( vbzhshmacd(a) if( vbzhshmacd(a) if( vbzhshmacd(a) beforeweid=a end if beforewei=a end if next mnum=0 'FOR a=beforewei TO nlast 'mnum=mnum+abs(vbmacd(a))*1000 'next 'vbzhshmacd(beforewei)=mnum vbmacdwei(nlast)=vbzhshmacd(nlast) if (vbxian(beforewei)>0) then if( vbzhshmacd(nlast) if( vbzhshmacd(nlast) Do While (vbfenxing(a)=0) a=a-1 if (a<0) then exit do end if loop vbfenxing(nlast)=-vbfenxing(a) FOR a=mnumber TO nlast mnum=mnum+abs(vbmacd(a))*1000 if (vbfenxing(a)<>0) then vbbimacd(a)=mnum mnum=0 else if (a=nlast) then vbbimacd(a)=mnum end if end if next beforeweig=0 beforeweid=0 FOR a=mnumber TO nlast if (vbfenxing(a)<>0) then if (beforeweig>0 ) then if (vbfenxing(a)>0) then if( vbbimacd(a) if( vbbimacd(a) if (beforeweid>0 ) then if (vbfenxing(a)>0) then if( vbbimacd(a) if( vbbimacd(a) beforeweid=a end if beforewei=a end if next mnum=0 'FOR a=beforewei TO nlast 'mnum=mnum+abs(vbmacd(a))*1000 'next 'vbbimacd(beforewei)=mnum vbmacdwei(nlast)=vbbimacd(nlast) if (vbfenxing(beforewei)>0) then if( vbbimacd(nlast) vbbibeichi(nlast)=1 end if else if( vbbimacd(nlast) vbdatatypegg =(\"datatypegg\") vbdatatypedd =(\"datatypedd\") vbdatatypegg =vbzhshgg(nlast) vbdatatypedd =vbzhshdd(nlast) (\"foxmacdwei\")=vbmacdwei (\"beichi\")=vbbeichi (\"datatypegg\") = vbdatatypegg (\"datatypedd\") = vbdatatypedd (\"foxzhshmacd\") = vbzhshmacd (\"foxfenxing\") =vbfenxing (\"foxxian\") =vbxian (\"bibeichi\") =vbbibeichi %> DRAWLINE(FOXXIAN<0,FOXXIAND,FOXXIAN>0,FOXXIANG ,0),colorFF; DRAWLINE(FOXXIAN>0,FOXXIANG ,FOXXIAN<0,FOXXIAND,0),colorFF00; DRAWNUMBER(FOXXIAN<0 AND FOXFENNUMXIAN>0,IF(FOXL DRAWTEXT(BEICHI=-1,IF(FOXL DRAWTEXT(BIBEICHI=-1,IF(FOXL AND FOXFENXING<0,FOXL,FOXWEIBI=2 FOXFENXING>0,FOXH,0),POINTDOT,LINETHICK2,colorFFFFFF; DRAWLINE(FOXWEIBI=1 AND FOXFENXING>0,FOXH,FOXWEIBI=2 FOXFENXING<0,FOXL,0),POINTDOT,LINETHICK2,colorFFFF; AND AND DRAWLINE(FOXWEI=1 AND FOXXIAN<0,FOXXIAND,FOXWEI=2 FOXXIAN>0,FOXXIANG ,0),LINETHICK4,colorFF; DRAWLINE(FOXWEI=1 AND FOXXIAN>0,FOXXIANG ,FOXWEI=2 FOXXIAN<0,FOXXIAND,0),LINETHICK4,colorFF00; DRAWNUMBER(FOXZHSH=2,FOXZHSHG ,FOXZHSHG,FOXXIAOSHU),colorFF; DRAWNUMBER(FOXZHSH=2,FOXZHSHD,FOXZHSHD,FOXXIAOSHU),colorFF; AND AND 因篇幅问题不能全部显示,请点此查看更多更全内容