顾比倒数线,以下跌趋势为例,如果寻找顾比倒数线:
首先找到下跌趋势线的最低点(标注为1的那条蜡烛线),这是第一只“重要的蜡烛线”。然后沿着这条蜡烛线向左移动,直到遇见另一只“最高价高于蜡烛线1”的蜡烛线,这就是我们要找的第二只“重要的蜡烛线”。再沿着这只蜡烛线向左移动,直到遇见下一只“最高价的蜡烛线”,这就是第三只“重要的蜡烛线”。此时,沿着第三只蜡烛线的顶端画一条直线,这就是“顾比倒数线”;
上升曲线同理!
以前看过一个文华版本的顾比倒数线,用了很大蝙蝠的代码。
金字塔只要10行。以下代码把每根K线图的“第三只重要蜡烛线”的高点、低点全部计算出来了
逐K线模式和序列模式均适用:
DISTL:=NEWLBARS(L,1);
DISTH:=NEWHBARS(H,1);
HI20:=REF(HHV(H,20),1);
LO20:=REF(LLV(L,20),1);
GBD1:=REF(L,DISTL);
GBD2:=REF(GBD1,DISTL);
GBD:IF(GBD2>0,MAX(LLV(L,20),GBD2),LLV(L,20));//第三只重要蜡烛线的低点
GBG1:=REF(H,DISTH);
GBG2:=REF(GBG1,DISTH);
GBG:IF(GBG2>0,MIN(HHV(H,20),GBG2),HHV(H,20));//第三只重要蜡烛线的高点
注意:如果第三只重要的蜡烛线找不到的话(比如第二只已经是历史最高点或者最低点),就用20周期的高点(低点)代替
顾比倒数线一般用于止损,和均线等指标配合,也可用于止盈
比如:进场后,5个点止损,浮动盈利达到15个点后,启动顾比倒数线止损。具体用法大家各自发挥
申请加精!
老师好!我把你的顾比倒数线放到模型中,虽然有连线,但是没有看出高低价突破连线,不知道如何止损,麻烦指点一下。注:图表上的买卖箭头是我的模型出来的。
我写的只是 顾比倒数线。具体运用还结合自己的买卖条件
比如 :cross(ma5,ma30) 买入,用顾比倒数线做浮动止损
我是把2条线都做出来,定义好趋势后,自行按需调用
看来不懂的人还是挺多,我这里给个实例吧
variable:zs=c,maxhl=c;
//把以上顾比线的代码复制一下
DISTL:=NEWLBARS(L,1);
DISTH:=NEWHBARS(H,1);
HI20:=REF(HHV(H,20),1);
LO20:=REF(LLV(L,20),1);
GBD1:=REF(L,DISTL);
GBD2:=REF(GBD1,DISTL);
GBD:=IF(GBD2>0,MAX(LLV(L,20),GBD2),LLV(L,20));
GBG1:=REF(H,DISTH);
GBG2:=REF(GBG1,DISTH);
GBG:=IF(GBG2>0,MIN(HHV(H,20),GBG2),HHV(H,20));
nn:=barslast(date<>ref(date,1))+1;
entertime:=nn>=m and time<=144500;
exittime:=time>=150900;
if holding>0 then 止损1:zs;
if holding<0 then 止损2:zs;
ma5:=ma(c,5);
ma30:=ma(c,30);
long:=cross(ma5,ma30);//多单进场条件
short:=cross(ma30,ma5);//空单进场条件
//下破移动止损线后离场
if holding>0 and (c<zs or exittime) then sell(1,1,limitr,c);
if holding<0 and (c>zs or exittime) then sellshort(1,1,limitr,c);
//开仓语句
if holding=0 and entertime and long then begin
buy(1,1,limitr,c);
zs:=gbd;//调用顾比倒数线做为止损
maxhl:=h;//记录当时的高点
end
if holding=0 and entertime and short then begin
buyshort(1,1,limitr,c);
zs:=gbg;//调用顾比倒数线做为止损
maxhl:=L;
end
if holding<0 and l<maxhl then begin //创新低后,重新定位离场位,以实现浮动止损
maxhl:=l;
zs:=gbg;
end
if holding>0 and h>maxhl then begin //创新高后,重新定位离场位,以实现浮动止损
zs:=gbd;
maxhl:=h;
end
//飞狐顾比倒数源码公式:
ff:=l;
fhf:=h;
fgf:=h;
ftf:=l;
fdf:=l;
zdtf:=c;
zqf:=c;
zqtf:=c;
{顾比倒数进场}
<%
f=ffl.vardata("ff")
fh=ffl.vardata("fhf")
fg=ffl.vardata("fgf")
ft=ffl.vardata("ftf")
fd=ffl.vardata("fdf")
zq=ffl.vardata("zqf")
zqt=ffl.vardata("zqtf")
zdt=ffl.vardata("zdtf")
zq(1)=0
zq(2)=0
zqt(1)=0
zqt(2)=0
tj=0
n=ubound(f)
for i=2 to n
k1=0
k2=0
k3=0
ii=i-2
for j=ii to 2 step -1
if f(j)<f(j-1) and f(j)<f(j-2) and f(j)<f(j+1) and f(j)<f(j+2) then
k1=j
exit for
end if
next
j=k1-1
while j>=0 and tj=0
if fh(j)>fh(k1) then
k2=j
tj=1
else
j=j-1
end if
wend
j=k2-1
tj=0
while j>=0 and tj=0
if fh(j)>fh(k2) then
k3=j
tj=1
else
j=j-1
end if
wend
if k3>0 then
fg(i)=fh(k3)
zq(i)=k3
else
fg(i)=fg(i-1)
zq(i)=zq(i-1)+1
end if
next
ffl.vardata("fgf")=fg
ffl.vardata("zqf")=zq
'止损线'
for i=2 to n
k1=0
k2=0
k3=0
ii=i-2
for j=ii to 2 step -1
if fh(j)>fh(j-1) and fh(j)>fh(j-2) and fh(j)>fh(j+1) and fh(j)>fh(j+2) then
k1=j
exit for
end if
next
tj=0
j=k1-1
while j>=0 and tj=0
if fh(j)<fh(k1) then
k2=j
tj=1
else
j=j-1
end if
wend
if k2>0 then
fd(i)=fh(k2)
zdt(i)=k2
else
fd(i)=fd(i-1)
zdt(i)=zdt(i-1)+1
end if
j=k2-1
tj=0
while j>0 and tj=0
if fh(j)<fh(k2) then
k3=j
tj=1
else
j=j-1
end if
wend
if k3>0 then
ft(i)=fh(k3)
zqt(i)=k3
else
ft(i)=ft(i-1)
zq(i)=zqt(i-1)+1
end if
next
ffl.vardata("ftf")=ft
ffl.vardata("fdf")=fd
ffl.vardata("zqtf")=zqt
ffl.vardata("zdtf")=zdt
%>
止赢线:ftf,linethick1,colorwhite,LINEDOT;//如果想把止损位提高,可选第二根K线做参考线,把ftf改成fdf就可以了;
顾比倒数:fgf,COLORGREEN;//,LINEDOT