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.001
vbdata2=1
SelectCasevbdatanumber
Case0
vbdata=0.015
vbdata1=0.001
vbdata2=0.015
Case1
vbdata=0.018
vbdata1=0.001
vbdata2=0.018
Case2
vbdata=0.037
vbdata1=0.001
vbdata2=0.037
Case3
vbdata=0.052
vbdata1=0.001
vbdata2=0.052
Case4
vbdata=0.067
vbdata1=0.001
vbdata2=0.067
Case5
vbdata=0.13
vbdata1=0.001
vbdata2=0.13
Case6
vbdata=0.28
vbdata1=0.001
vbdata2=0.28
Case7
vbdata=0.45
vbdata1=0.001
vbdata2=0.45
Case8
vbdata=0.73
vbdata1=0.001
vbdata2=0.73
Case9
vbdata=1.2
vbdata1=0.001
vbdata2=1.2
Case10
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=0to nlast
vbma2(m)=0
vbma3(m)=0
vbling(m)=0
next
m=0
fori=0to 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)
endif
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
endif
endif
oldbianhua=bianhua
next
FFL.VarData("ma2")=vbma2
FFL.VarData("ma3")=vbma3
FFL.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)then
DoWhile(vbma(m)>0)
nvalue=vbma(m)+nvalue
i=i+1
m=m-1
if(m<0)then
exitdo
endif
Loop
else
DoWhile(vbma(m)<0)
nvalue=vbma(m)+nvalue
i=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)=nvalue
vbping(nlast)=nvaluefu
FFL.VarData("weihe")=vbhe
FFL.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=1to nlast
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)=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)
endif
else
vbguanxi(m)=-1
if(vbh(m)>=vbh(m-1)andvbl(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)
endif
endif
endif
endif
next
'处理连续包含即:
连续3个及以上K线间存在的包含关系
form=0to nlast
vbbaohan1(m)=vbbaohan(m)
NEXT
i=0
dowhile(vbbaohan(i)=0)
i=i+1
if(i>nlast)then
ExitDo
endif
loop
'第一个包含的位置
lastfenxing=i
bao=0
existbao=0
form=ito nlast
if(vbbaohan(m)<>0)then
bao=bao+1
if(bao>=2)then
if(vbbaohan(m)=2andvbbaohan(m-1)=1orvbbaohan(m)=-2andvbbaohan(m-1)=-1)then
vbbaohan1(m)=bao
if(bao>2)then
existbao=BAO
fori=1to bao
vbh(m-bao+i)=vbh(m)
vbL(m-bao+i)=vbl(m)
if(i=1ori=bao)then
else
vbbaohan1(m-bao+i)=-3
endif
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=1to nlast
'if(vbh(m-1)>=vbh(m-2)andvbh(m-1)>=vbh(m)andvbl(m-1)>=vbl(m-2)andvbl(m-1)>=vbl(m)orvbh(m-1)<=vbh(m-2)andvbh(m-1)<=vbh(m)andvbl(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=0to nlast
vbfenxing1(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+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
endif
else
if(vbl(m)vbfenxing(lastfenxing)=0
lastfenxing=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=lastfenxing
i=0
form=lastfenxing+1to nlast
if(vbbaohan(m)=0)then
bao=bao+1
else
if(vbbaohan1(m)>=2 )then
n=n+1
endif
endif
vbfenxing1(m)=bao+n
'包含关系只视为一个k线
'vbfenxing1(m)=vbbaohan1(m)
'if(m>735)then
'exitfor
'endif
if (vbfenxing(m)<>0)then
if(bao+n>=4)then
'分型间距离大于等于4符合要求
if(vbfenxing(m)<>vbfenxing(lastfenxing))then
'vbfenxing1(m)