latincello
发表于 2014-6-5 22:24
LING:=HIGH;
FOXH:=HIGH;
FOXL:=LOW;
FOXBAOHAN:=LING;
FOXBAOHAN1:=LING;
foxbaohan2:=ling;
foxbaohan3:=ling;
foxfenxing:=ling;
foxfenxing1:=ling;
foxfenxing2:=ling;
foxfenxing3:=ling;
foxbaohanmax:=ling;
foxbaohanmin:=ling;
FOXGUANXI:=LING;
<%
vbh = FFL.VarData("foxh")
vbL = FFL.VarData("foxl")
vbh1 = FFL.VarData("foxh")
vbL1 = FFL.VarData("foxl")
vbh2 = FFL.VarData("foxh")
vbL2 = FFL.VarData("foxl")
vbbaohan = FFL.VarData("foxbaohan") '正值表示扩张,负值表示收敛
vbbaohan1 = FFL.VarData("foxbaohan1")
vbbaohan2 = FFL.VarData("foxbaohan2")
vbbaohan3 = FFL.VarData("foxbaohan3")
vbfenxing = FFL.VarData("foxfenxing")
vbfenxing1 = FFL.VarData("foxfenxing1")
vbfenxing2=FFL.VarData("foxfenxing2")
vbfenxing3=FFL.VarData("foxfenxing3")
vbbaohanmax = FFL.VarData("foxbaohanmax")
vbbaohanmin = FFL.VarData("foxbaohanmin")
vbguanxi = FFL.VarData("foxguanxi")
nlast = UBound( vbh ) 'K线数量
vbguanxi(0) = 1
for m=0 to nlast '查错用了三天
vbbaohan(m)=0
vbbaohan2(m)=0
vbbaohan3(m)=0
vbbaohanmax(m)=0
vbbaohanmin(m)=0
next
for m = 1 tonlast '判断K线区间涨跌
if (vbh(m)>vbh(m-1) and vbl(m)>vbl(m-1)) then
vbguanxi(m)=1 '涨
else
if (vbh(m)<vbh(m-1) and vbl(m)<vbl(m-1)) then
vbguanxi(m)=-1 '跌
else
vbguanxi(m) = 0'包含,复制前一K线涨跌
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
'vbguanxi(m)表示单根k线和前根包含处理后k线的涨跌关系--1上涨、-1下跌、包含的k线延续前一根的方向,vbbaohan(m)表示单根k线和前根k线的包含-----0没有包含、12表示扩张、-1-2表示收敛,vbh、vbl包含处理
'处理连续包含即:连续3个及以上K线间存在的包含关系,找到包含中的最高最低k线
for m = 0 tonlast
vbbaohan1(m) = vbbaohan(m)
vbbaohan3(m)=vbbaohan(m)
NEXT
i=0
do while (vbbaohan(i)=0)
i=i+1
if (i>nlast) then
Exit Do
end if
loop
'这段是找第一个包含的位置i,那里vbbaohan(i)<>0
lastfenxing=i
bao=0
existbao=0
for m = i tonlast
if (vbbaohan(m) <> 0) then 'vbbaohan数组由1,-1,2组成
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 'bao是合并包含处理的k线数
vbbaohan2(m)=bao
vbbaohan3(m)=bao
i=0
a=0
for n=m-bao+2 to m
i=i+1
if(vbh2(m-bao+1+a)<vbh2(n)) then
a=i
end if
next
vbbaohanmax(m)=bao-a-1
i=0
a=0
for n=m-bao+2 to m
i=i+1
if(vbl2(m-bao+1+a)>vbl2(n)) then
a=i
end if
next
vbbaohanmin(m)=bao-a-1
if (bao>2) then
existbao=BAO
for i = 1 tobao
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
vbbaohan2(m-bao+i)=0
vbbaohan3(m-bao+i)=-3
end if
next
end if
bao=0
end if
end if
else
bao=0
end if
next
'分型预处理
for m=0 to nlast
vbfenxing(m)=0
vbfenxing3(m)=0
next
existbao=vbguanxi(0)
for m = 1 tonlast
if(vbguanxi(m)<>existbao) then '这里用的也是涨跌状态变化,就是说也是三K线确定一分型,没有考虑延伸长度
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
vbfenxing3(m)=vbfenxing(m)
next
FFL.VarData("foxh") =vbh
FFL.VarData("foxl") =vbl
FFL.VarData("foxbaohan") = vbbaohan
FFL.VarData("foxbaohan1") = vbbaohan1
FFL.VarData("foxbaohan2") = vbbaohan2
FFL.VarData("foxbaohan3") = vbbaohan3
FFL.VarData("foxfenxing") = vbfenxing
FFL.VarData("foxfenxing1") = vbfenxing1
FFL.VarData("foxfenxing2") = vbfenxing2
FFL.VarData("foxfenxing3") = vbfenxing3
FFL.VarData("foxbaohanmax") = vbbaohanmax
FFL.VarData("foxbaohanmin") = vbbaohanmin
FFL.VarData("foxguanxi") = vbguanxi
%>
//drawnumber(foxbaohan3<0,h,foxbaohan3,1),pxup20,colormagenta,align1;
//drawnumber(foxbaohan3=0,h,foxbaohan3,1),pxdn5,colorgreen,align1;
//drawnumber(foxbaohan3>0,h,foxbaohan3,1),pxdn5,colorgreen,align1;
DRAWicon(foxfenxing=1,H+0.01,9);
DRAWicon(foxfenxing=-1,L-0.01,8);
drawnumber(foxfenxing=1,h,foxh,2),pxup40,colormagenta,align1;
drawnumber(foxfenxing=-1,l,foxl,2),pxdn10,colorgreen,align1;
DRAWLINE(((FOXBAOHAN1=1) OR (FOXBAOHAN1=-1)),FOXL,(FOXBAOHAN1>=2),FOXH,0),colorFFFFFF;
DRAWLINE(((FOXBAOHAN1=1) OR (FOXBAOHAN1=-1)),FOXH,(FOXBAOHAN1>=2),FOXL,0),colorFFFFFF;
latincello
发表于 2014-6-5 22:24
怎么发不了哈
latincello
发表于 2014-6-5 22:25
本帖最后由 latincello 于 2014-6-6 11:57 编辑
:#QIAOPI
latincello
发表于 2014-6-5 22:25
本帖最后由 latincello 于 2014-6-6 11:58 编辑
:#DAXIAO
latincello
发表于 2014-6-5 22:25
本帖最后由 latincello 于 2014-6-6 11:58 编辑
:WX:
latincello
发表于 2014-6-5 22:26
本帖最后由 latincello 于 2014-6-6 11:59 编辑
:#DAXIAO
latincello
发表于 2014-6-5 22:27
本帖最后由 latincello 于 2014-6-6 12:00 编辑
:#DAXIAO
latincello
发表于 2014-6-5 22:27
本帖最后由 latincello 于 2014-6-6 12:00 编辑
:#DAXIAO
latincello
发表于 2014-6-5 22:28
怎么回事,要审核,没发完
latincello
发表于 2014-6-5 22:30
飞狐c++语言编的源代码,没必要审核哈
latincello
发表于 2014-6-6 12:01
重新整理下版面,上面的是k线包含的源代码,笔和线段源代码有时间再发。
latincello
发表于 2014-6-6 12:05
代码运行效果图
latincello
发表于 2014-6-6 12:06
第一步只是处理包含和分型
latincello
发表于 2014-6-6 12:09
不需要源代码的,悟多的公式就够用了
latincello
发表于 2014-6-6 12:17
这里只有一个要求:自己用可以,千万别拿去骗人钱财。:handshake
latincello
发表于 2014-6-9 09:02
留言反映不会用。将公式导入飞狐,选择主图使用项。
ivan_sun
发表于 2014-6-9 11:52
这么高端的东西同花顺用不了,可惜了
huss99
发表于 2014-6-9 13:09
latincello 发表于 2014-6-9 09:02 static/image/common/back.gif
留言反映不会用。将公式导入飞狐,选择主图使用项。
这个包含处理很准呀,难得。
是不是只有飞狐和大智慧支持c语言编译
期待分笔和分段的公式
huss99
发表于 2014-6-9 13:42
latincello 发表于 2014-6-9 09:02 static/image/common/back.gif
留言反映不会用。将公式导入飞狐,选择主图使用项。
有个建议,顶分型或者底分型是包含关系的,建议顶分型标志或底分型标志放在最高或者最低的那根k线
latincello
发表于 2014-6-9 13:47
huss99 发表于 2014-6-9 13:42 static/image/common/back.gif
有个建议,顶分型或者底分型是包含关系的,建议顶分型标志或底分型标志放在最高或者最低的那根k线
这里只是第一版,后来有过优化。笔和线段源代码不在手边,看盘已经不用这些东西了。你去看看缠师530后的走势用笔和线段做图,还有大师的水准吗?