tj7:
=count(zg>zd,barslast(var3=1))>0;
not(zg>zd)&&tj3&&tj7&&tj4&&tj5&&tj6;
end;
一买是模糊的,不准确的,三买就比较标准了,同样背驰需自行判断,否则不背驰就跌回中枢了:
begin
ifDATAPERIOD=0thenminbi:
="fbase.var2#min1";ifDATAPERIOD=1thenminbi:
="fbase.var2#min5";ifDATAPERIOD=2thenminbi:
="fbase.var2#min30";ifDATAPERIOD=3thenminbi:
="fbase.var2#min60";ifDATAPERIOD=4thenminbi:
="fbase.var2#day";ifDATAPERIOD=5thenminbi:
="fbase.var2#day";ifDATAPERIOD=6thenminbi:
="fbase.var2#week";ifDATAPERIOD=7thenminbi:
="fbase.var2#month";ifDATAPERIOD=8thenminbi:
="fbase.var2#year";
var001:
="fbase.var2#min30";
ifdatatype=3thenvar001:
="fbase.var2#min60";
ifdatatype=4thenvar001:
="fbase.var2#day";
var1:
="chzhshch@kxian";
var2:
="chzhshch@bi";{处理笔关系}
var3:
="chzhshch@tongji"(minbi);{同级别分解}
zg:
="chzhshch@zg"(var3);//一定要先调用ZG
zd:
="chzhshch@zd"(var3);
var1:
="chzhshch@kxian";
var2:
="chzhshch@bi";
var4:
=barslast(var001<>0);
tj1:
=ref(var001,var2)=-1;//上级别是底
var5:
=sum(abs(var2),var2);
tj2:
=var5=1;//第一个回调才算
tj3:
=count(abs(var3),barslast(var3=-1))=0;
zswz:
=barslast(zg>zd);
tj4:
=count(zg>zd,barslast(var3=-1))>0;
tj5:
=count(var2=1,barslast(var2=-1))=1;
tj6:
=count(var2=1,zswz-1)=1;
tj7:
=ref(l,barslast(var2=1))>ref(zg,barslast(zg>zd));
not(zg>zd)&&tj3&&tj4&&tj5&&tj6&&tj7;
end;
MA10:
=MA(CLOSE,10);
MA5:
=MA(CLOSE,5);
MA1:
=MA5-MA10;
MA2:
=MA10;
MA3:
=MA10;
DATANUMBER:
=DATATYPE;
DATANUMBER1:
=DATATYPE;
DATANUMBER2:
=DATATYPE;
DATANUMBER3:
=DATATYPE;
LING:
=HIGH;
<%
vbdatanumber=FFL.VarData("datanumber")
vbdatanumber1=FFL.VarData("datanumber1")
vbdatanumber2=FFL.VarData("datanumber2")
vbdata=1
vbdata1=0.001vbdata2=1
SelectCasevbdatanumber
Case0
vbdata=0.015vbdata1=0.001vbdata2=0.015Case1
vbdata=0.018vbdata1=0.001vbdata2=0.018Case2
vbdata=0.037vbdata1=0.001vbdata2=0.037Case3
vbdata=0.052vbdata1=0.001vbdata2=0.052Case4
vbdata=0.067vbdata1=0.001vbdata2=0.067Case5
vbdata=0.13vbdata1=0.001vbdata2=0.13Case6
vbdata=0.28vbdata1=0.001vbdata2=0.28Case7
vbdata=0.45vbdata1=0.001vbdata2=0.45Case8
vbdata=0.73vbdata1=0.001vbdata2=0.73Case9
vbdata=1.2
vbdata1=0.001vbdata2=1.2Case10
vbdata=0.6
vbdata1=0.001
vbdata2=0.6
Case11
vbdata=0.1
vbdata1=0.001
vbdata2=0.1
Case12
vbdata=0.02
vbdata1=0.001
vbdata2=0.02
Caseelse
vbdata=2
vbdata1=0.001
vbdata2=2
EndSelect
FFL.VarData("datanumber")=vbdata
FFL.VarData("datanumber1")=vbdata1
FFL.VarData("datanumber2")=vbdata2
vbling=FFL.VarData("ling")vbma=FFL.VarData("ma1")vbma2=FFL.VarData("ma2")vbma3=FFL.VarData("ma3")nlast=UBound(vbma)nvalue=0.0000
nvaluefu=0.0000
bianhua=2
oldbianhua=0
form=0tonlast
vbma2(m)=0
vbma3(m)=0
vbling(m)=0
next
m=0
fori=0tonlast
m=m+1
'nlast-m
'vbma2(i)=0
if(vbma(i)>0)thenbianhua=1
nvalue=nvalue+vbma(i)else
bianhua=2
nvaluefu=nvaluefu+vbma(i)
endif
if(oldbianhua=bianhua)thenelse
vbma3(i)=m
m=0
if(bianhua=1)then
vbma2(i)=nvaluefu
nvaluefu=0
'nvaluefu=0
else
vbma2(i)=nvalue
nvalue=0
'nvalue=0
endif
endif
oldbianhua=bianhua
next
FFL.VarData("ma2")=vbma2FFL.VarData("ma3")=vbma3FFL.VarData("ling")=vbling%>
DRAWNUMBER(REF(MA2,0)<0AND0=1,LLV(LOW,5),REF(MA2,0)*1000,0),colorFF00;
DRAWNUMBER(REF(MA2,0)<0AND0=1,LLV(LOW,5)-DATANUMBER,REF(MA3,0),0),colorFFFF;
DRAWNUMBER(REF(MA2,0)<0AND0=1,LLV(LOW,5)-DATANUMBER*2,REF(MA2,0)*1000/REF(MA3,0),0),colorFF00;
DRAWNUMBER(REF(MA2,0)>0AND0=1,HHV(HIGH,5),REF(MA2,0)*1000,0),colorFF;
DRAWNUMBER(REF(MA2,0)>0AND0=1,HHV(HIGH,5)+DATANUMBER,REF(MA3,0),0),colorFFFF;
DRAWNUMBER(REF(MA2,0)>0AND0=1,HHV(HIGH,5)+DATANUMBER*2,REF(MA2,0)*1000/REF(MA3,0),0),colorFF;
MA1:
=MA5-MA10;
WEIHE:
=LING;
WEIPING:
=LING;
<%
vbhe=FFL.VarData("weihe")vbping=FFL.VarData("weiping")vbma=FFL.VarData("ma1")nlast=UBound(vbma)
nvalue=0.0000
nvaluefu=0.0000
bianhua=2
oldbianhua=0
i=0
m=nlast
if(vbma(nlast)>0)thenDoWhile(vbma(m)>0)nvalue=vbma(m)+nvaluei=i+1
m=m-1
if(m<0)then
exitdo
endif
Loop
else
DoWhile(vbma(m)<0)nvalue=vbma(m)+nvaluei=i+1
m=m-1
if(m<0)then
exitdo
endif
Loop
endif
if(i=0)then
i=1
endif
nvaluefu=nvalue/i
vbhe(nlast)=nvaluevbping(nlast)=nvaluefuFFL.VarData("weihe")=vbheFFL.VarData("weiping")=vbping%>
DRAWNUMBER(WEIHE<>0AND0=1,IF(WEIHE>0,HIGH,LOW),WEIHE*1000,0),colorFF;
DRAWNUMBER(WEIHE<>0AND0=1,(IF(WEIHE>0,HIGH,LOW))-DATANUMBER*2,WEIPING*1000,0),colorFF00;
DRAWNUMBER(WEIPING<>0AND0=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=FFL.VarData("foxquekou")vbfennumber=FFL.VarData("foxfennumber")vbdatanumber=FFL.VarData("datanumber")vbh=FFL.VarData("foxh")
vbL=FFL.VarData("foxl")
vbh1=FFL.VarData("foxh")
vbL1=FFL.VarData("foxl")
vbbaohan=FFL.VarData("foxbaohan")vbbaohan1=FFL.VarData("foxbaohan1")vbguanxi=FFL.VarData("foxguanxi")vbfenxing=FFL.VarData("foxfenxing")vbfenxing1=FFL.VarData("foxfenxing1")vbbicount=FFL.Vardata("foxbicount")vbweibi=FFL.Vardata("foxweibi")nlast=UBound(vbh)
nvalue=0.0000
nvaluefu=0.0000
bianhua=2
vbguanxi(0)=1
form=1tonlast
if(vbh(m)>vbh(m-1)andvbl(m)>vbl(m-1))then
vbguanxi(m)=1
else
if(vbh(m)vbguanxi(m)=-1
else
vbguanxi(m)=0
if(vbguanxi(m-1)=1)then
vbguanxi(m)=1
if(vbh(m)>=vbh(m-1)andvbl(m)<=vbl(m-1))then
vbbaohan(m)=2vbbaohan(m-1)=1vbh(m-1)=vbh(m)vbl(m)=vbl(m-1)else
vbbaohan(m-1)=-1vbbaohan(m)=-2vbh(m)=vbh(m-1)vbl(m-1)=vbl(m)endif
else
vbguanxi(m)=-1
if(vbh(m)>=vbh(m-1)andvbl(m)<=vbl(m-1))then
vbbaohan(m)=2vbbaohan(m-1)=1vbh(m)=vbh(m-1)vbl(m-1)=vbl(m)else
vbbaohan(m-1)=-1vbbaohan(m)=-2vbh(m-1)=vbh(m)vbl(m)=vbl(m-1)endif
endif
endif
endif
next
'处理连续包含即:
连续3个及以上K线间存在的包含关系
form=0tonlastvbbaohan1(m)=vbbaohan(m)
NEXT
i=0
dowhile(vbbaohan(i)=0)
i=i+1
if(i>nlast)thenExitDo
endif
loop
'第一个包含的位置
lastfenxing=i
bao=0
existbao=0
form=itonlast
if(vbbaohan(m)<>0)thenbao=bao+1
if(bao>=2)then
if(vbbaohan(m)=2andvbbaohan(m-1)=1orvbbaohan(m)=-2and
vbbaohan(m-1)=-1)thenvbbaohan1(m)=bao
if(bao>2)then
existbao=BAO
fori=1tobao
vbh(m-bao+i)=vbh(m)
vbL(m-bao+i)=vbl(m)
if(i=1ori=bao)thenelse
vbbaohan1(m-bao+i)=-3endif
next
endif
'dowhile(bao>1)
'vbh(m-bao+1)=vbh(m)
'vbL(m-bao+1)=vbl(m)
'if(existbao=BAOorbao=existbao-1)then
'else
'vbbaohan1(m-bao+1)=-3'endif
'bao=bao-1
'loop
bao=0
endif
endif
else
bao=0
endif
next
'分型预处理
existbao=vbguanxi(0)
form=1tonlast
'if(vbh(m-1)>=vbh(m-2)andvbh(m-1)>=vbh(m)andvbl(m-1)>=vbl(m-2)and
vbl(m-1)>=vbl(m)orvbh(m-1)<=vbh(m-2)andvbh(m-1)<=vbh(m)and
vbl(m-1)'endif
if(vbguanxi(m)<>existbao)then
if(vbguanxi(m-1)=1)then
vbfenxing(m-1)=1
'顶
else
vbfenxing(m-1)=-1'底
endif
existbao=vbguanxi(m)endif
next
'以上分型预处理
form=0tonlastvbfenxing1(m)=vbfenxing(m)vbfenxing1(m)=0
next
i=0
dowhile(vbfenxing(i)=0)i=i+1
if(i>nlast)then
ExitDo
endif
loop
lastfenxing=i
'取第一个分型位置
'下面去掉连续的顶或底
form=lastfenxing+1+nlasttonlast
if(vbfenxing(m)<>0)thenif(vbfenxing(m)<>vbfenxing(lastfenxing))then
lastfenxing=m
else
if(vbfenxing(m)=1)thenif(vbh(m)>vbh(lastfenxing))then
vbfenxing(lastfenxing)=0lastfenxing=m
else
vbfenxing(m)=0
endif
else
if(vbl(m)vbfenxing(lastfenxing)=0lastfenxing=m
else
vbfenxing(m)=0
endif
endif
'顶要高的底要低的相等时要选时间在前面的'vbfenxing(m)=0
endif
endif
next
'以下处理分型间距离不小于4的要求同时处理连续的顶和底的问题
bao=0
i=0
n=0
existbao=vbfenxing(0)m=0
dowhile(vbbaohan1(i)<2)i=i+1
if(i>nlast)then
ExitDo
endif
loop
lastbaohan=i
'第一个包含位置
i=0
dowhile(vbfenxing(i)=0)i=i+1
if(i>nlast)then
ExitDo
endif
loop
'第一个预备分型位置
lastfenxing=i
lastfenxing1=lastfenxingi=0
form=lastfenxing+1tonlast
if(vbbaohan(m)=0)thenbao=bao+1
else
if(vbbaohan1(m)>=2)thenn=n+1
endif
endif
vbfenxing1(m)=bao+n'包含关系只视为一个k线
'vbfenxing1(m)=vbbaohan1(m)'if(m>735)then
'ex