金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 797|回复: 5

【经验分享】顾比倒数线专帖

[复制链接]

19

主题

256

帖子

341

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-18
曾用名:
发表于 2025-2-7 16:26 | 显示全部楼层 |阅读模式
本贴主要介绍顾比倒数线,以及顾比倒数线,作为移动止损止盈的应用。

目录如下:
1. 顾比倒数线原理---2楼
2. 顾比移动止损(多头)---3楼
3. 顾比移动止损(空头)---4楼
4. 顾比倒数线移动止损止盈---5楼
5. 基于SAR指标的止损---6楼
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

19

主题

256

帖子

341

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-18
曾用名:
 楼主| 发表于 2025-2-7 16:30 | 显示全部楼层
顾比倒数线一般用于止损,和均线等指标配合,也可用于止盈。
截图202502071644261856.png
//转自旧论坛版主阿火,感谢阿火。
顾比倒数线,以下跌趋势为例,如何寻找顾比倒数线:
      首先找到下跌趋势线的最低点(标注为1的那条蜡烛线),这是第一只“重要的蜡烛线”。
      然后沿着这条蜡烛线向左移动,直到遇见另一只“最高价高于蜡烛线1”的蜡烛线,这就是我们要找的第二只“重要的蜡烛线”。
      再沿着这只蜡烛线向左移动,直到遇见下一只“最高价的蜡烛线”,这就是第三只“重要的蜡烛线”。此时,沿着第三只蜡烛线的顶端画一条直线,这就是“顾比倒数线”;
     上升曲线同理!

以前看过一个文华版本的顾比倒数线,用了很大篇幅的代码。
金字塔只要10行。以下代码把每根K线图的“第三只重要蜡烛线”的高点、低点全部计算出来了
[PEL] 复制代码
{
指标说明:判断趋势转折的可靠指标。
指标用途:
                1、下跌趋势转为新的上升趋势时,作为确认信号;
                2、交易发生后,作为止损信号;
                3、在上升趋势即将转化为新的下跌趋势时,作为获取最佳利润的止盈信号。
}
DISTL:=NEWLBARS(L,1);          //当根K线最低价,创多少日新低
DISTH:=NEWHBARS(H,1);          //当根K线最高价,创多少日新高
HI20:=REF(HHV(H,20),1);        //前20日最低价
LO20:=REF(LLV(L,20),1);        //前20日最高价

//顾比倒数线低点连线
GBD1:=REF(L,DISTL);             //第一只重要蜡烛线的低点
GBD2:=REF(GBD1,DISTL);          //第二只重要蜡烛线的低点
//若无第三只蜡烛线(比如第二只已经是历史最低点),用20日低点代替
GBD:IF(GBD2>0,MAX(LLV(L,20),GBD2),LLV(L,20));   //第三只重要蜡烛线的低点

//顾比倒数线高点连线
GBG1:=REF(H,DISTH);             //第一只重要蜡烛线的高点
GBG2:=REF(GBG1,DISTH);          //第二只重要蜡烛线的高点
//若无第三只蜡烛线(比如第二只已经是历史最高点),用20日高点代替
GBG:IF(GBG2>0,MIN(HHV(H,20),GBG2),HHV(H,20));   //第三只重要蜡烛线的高点
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

19

主题

256

帖子

341

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-18
曾用名:
 楼主| 发表于 2025-2-7 16:33 | 显示全部楼层
顾比倒数线移动止损示例(多头) 多头.png
[PEL] 复制代码
{
策略说明:基于顾比倒数线的浮动止损系统-多头
系统要素:
                1、最近3周期,SAR向上突破K线,并且MACD在0线附近金叉,开多单。
                2、用顾比倒数线构建移动止损线。当最高价创新高,同时顾比低点创新高,上移止损线,重新定位止损离场位,实现浮动止损。
                3、上根K线最高价下破顾比倒数移动止损线后离场,平多单。
入场条件:
                1、最近3周期,有SAR向上突破K线,并且MACD在0线附近金叉,开多单
出场条件:
                1、上根K线最高价下破顾比倒数移动止损线后离场,平多单。
}
INPUT:P(26,20,40,2),S(12,5,30,3),M(9,2,20,2);  // MACD参数
INPUT:手数(1,1,10000,10);  //开仓手数参数
VARIABLE:ZS=C;      //ZS开仓后顾比低点的较高点连线
VARIABLE:MAXHL=C;   //MAXHL开多仓后最高价

//顾比倒数线,一般用于止损止盈,和均线等指标配合
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));    //顾比高点连线

SAR1:SAR(10,2,20),CIRCLEDOT;//SAR指标
//MACD指标
//DIFF线:收盘价短期、长期指数平滑移动平均线间的差
//DEA线:DIFF线的M日指数平滑移动平均线
//MACD线:DIFF线与DEA线的差
DIFF :=EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  :=EMA(DIFF,M);
MACD :=2*(DIFF-DEA);

//交易条件
//最近3周期,SAR向上突破K线,并且MACD在0线附近金叉,开多单
COND1:=ANY(REF(SAR1>HIGH,1) AND SAR1<HIGH,3)=1; //最近3周期,有SAR向上突破K线
COND2:=ANY(CROSS(DIFF,DEA),3)=1 AND DIFF<5;     //最近3周期,MACD在0线附近金叉
开多条件:=COND1 AND COND2;//开多条件

平多条件:= REF(HIGH,1)<ZS ;       //上根K线最高价下破移动止损线后离场
多损上移条件:=HIGH>MAXHL AND GBD>ZS;  //多损上移条件

//开多:最近3周期,SAR向上突破K线,MACD在0线附近金叉
IF 开多条件 AND HOLDING=0 THEN BEGIN
    BUY(1,手数,MARKET);  //开多仓
    ZS:=GBD;      //调用开多仓时顾比倒数低点连线的值,做为多单止损初始值
    MAXHL:= HIGH; //记录开多仓时的最高价
END
//用顾比倒数低点连线构建多头移动止损线。当最高价创新高,同时顾比低点创新高,上移止损线,重新定位止损离场位,实现多头浮动止损。
IF 多损上移条件 AND HOLDING>0 THEN BEGIN
    ZS:=GBD;     //创新高后,止损价赋值为当时的GBD,重新定位止损离场位,实现浮动止损
    MAXHL:=HIGH; //创新高后,记录当时的最高价
END

//止损止盈模块
//多头止盈止损平仓:上根K线最高价下破止损线,平多仓离场
IF 平多条件 AND HOLDING>0 AND ENTERBARS>1 THEN SELL(1,HOLDING,MARKET);    //平多:下破止损线,平多仓离场
止损线:ZS;



金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

19

主题

256

帖子

341

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-18
曾用名:
 楼主| 发表于 2025-2-7 16:35 | 显示全部楼层
顾比倒数线移动止损示例(空头)
[PEL] 复制代码
{
策略说明:基于顾比倒数线的浮动止损系统-空头
系统要素:
		1、最近3周期,SAR向下跌破K线,并且MACD死叉,开空单。
		2、用顾比倒数线构建移动止损线。当最低价创新低,同时顾比高点创新低,下移止损线,重新定位止损离场位,实现浮动止损。
		3、上根最低价上穿顾比倒数移动止损线后离场,平空单。
入场条件:
		1、最近3周期,有SAR向上突破K线,并且MACD死叉,开空单
出场条件:
		1、上根最低价上穿顾比倒数移动止损线后离场,平空单。
}
INPUT:P(26,20,40,2),S(12,5,30,3),M(9,2,20,2);  // MACD参数
INPUT:手数(1,1,10000,10);  //开仓手数参数
VARIABLE:ZS=C;      //ZS开仓后顾比高点的较低点连线
VARIABLE:MINLOW=C;  //MINLOW开空仓后最低价

//顾比倒数线,一般用于止损,和均线等指标配合
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));    //顾比高点连线

SAR1:=SAR(10,2,20),CIRCLEDOT;//SAR指标
//MACD指标
//DIFF线:收盘价短期、长期指数平滑移动平均线间的差
//DEA线:DIFF线的M日指数平滑移动平均线
//MACD线:DIFF线与DEA线的差
DIFF :=EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  :=EMA(DIFF,M);
MACD :=2*(DIFF-DEA);

//交易条件
//最近3周期,SAR向下跌破K线,并且MACD死叉,开空单
CONK1:=ANY(REF(SAR1<LOW,1) AND SAR1>LOW,3)=1; //最近3周期,有SAR向下突破K线
CONK2:=ANY(CROSS(DEA,DIFF),3)=1; //最近3周期,MACD金叉
开空条件:=CONK1 AND CONK2;//开空条件

平空条件:= REF(LOW,1)>ZS ;    //上根最低价上穿移动止损线后离场
空损下移条件:=LOW<MINLOW AND GBG<ZS;  //空损下移条件

//开空:最近3周期,SAR向下跌破K线,并且MACD死叉,开空单。
IF 开空条件 AND HOLDING=0 THEN BEGIN
    BUYSHORT(1,1,MARKET);//开空仓
    ZS:=GBG;        //调用开空仓时顾比倒数高点连线的值,做为空单止损初始值
    MINLOW:=LOW;    //记录开空仓时的最低价
END
//用顾比倒数高点连线构建空头移动止损线。当最低价创新低,同时顾比高点创新低后,下移止损线,重新定位止损离场位,实现空头浮动止损 
IF 空损下移条件 AND HOLDING<0 THEN BEGIN
    ZS:=GBG;     //创新低后,止损价赋值为当时的GBG,重新定位止损离场位,实现浮动止损
    MINLOW:=LOW; //创新低后,记录当时的最低价
END

//止损止盈模块
//空头止盈止损平仓:上根最低价上穿移动止损线,平空仓离场
IF 平空条件 AND HOLDING<0 AND enterbars>1 THEN  SELLSHORT(1,HOLDING,MARKET);      //平空:上穿移动止损线,平空仓离场
止损线:ZS;
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

19

主题

256

帖子

341

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-18
曾用名:
 楼主| 发表于 2025-2-7 16:37 | 显示全部楼层
顾比倒数线移动止损止盈(多头+空头)
[PEL] 复制代码
{
策略说明:基于顾比倒数线的浮动止损止盈系统
系统要素:
		1、最近3周期,SAR向上突破K线,并且MACD在0线附近金叉,开多单。
		   最近3周期,SAR向下跌破K线,并且MACD死叉,开空单。
		2、用顾比倒数线构建移动止损线。当最高价创新高,同时顾比低点创新高,上移止损线,重新定位止损离场位,实现浮动止损。
		   用顾比倒数线构建移动止损线。当最低价创新低,同时顾比高点创新低,下移止损线,重新定位止损离场位,实现浮动止损。
		3、上根K线最高价下破顾比倒数移动止损线后离场,平多单。
入场条件:
		1、最近3周期,有SAR向上突破K线,并且MACD在0线附近金叉,开多单
		2、最近3周期,有SAR向上突破K线,并且MACD死叉,开空单
出场条件:
		1、上根K线最高价下破顾比倒数移动止损线后离场,平多单。
		2、上根最低价上穿顾比倒数移动止损线后离场,平空单。
}
INPUT:P(26,20,40,2),S(12,5,30,3),M(9,2,20,2);  // MACD参数
INPUT:手数(1,1,10000,10);  //开仓手数参数
VARIABLE:ZS=C;      //ZS开仓后顾比低点的较高点连线
VARIABLE:MAXHL=C;   //MAXHL开多仓后最高价
VARIABLE:MINLOW=C;  //MINLOW开空仓后最低价

//顾比倒数线,一般用于止损,和均线等指标配合
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));    //顾比高点连线

SAR1:=SAR(10,2,20),CIRCLEDOT;//SAR指标
//MACD指标
//DIFF线:收盘价短期、长期指数平滑移动平均线间的差
//DEA线:DIFF线的M日指数平滑移动平均线
//MACD线:DIFF线与DEA线的差
DIFF :=EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  :=EMA(DIFF,M);
MACD :=2*(DIFF-DEA);

//交易条件
//最近3周期,SAR向上突破K线,并且MACD在0线附近金叉,开多单
COND1:=ANY(REF(SAR1>HIGH,1) AND SAR1<HIGH,3)=1; //最近3周期,有SAR向上突破K线
COND2:=ANY(CROSS(DIFF,DEA),3)=1 AND DIFF<5;     //最近3周期,MACD在0线附近金叉
开多条件:=COND1 AND COND2;//开多条件:最近3周期,SAR向上突破K线,并且MACD在0线附近金叉,开多单

//最近3周期,SAR向下跌破K线,并且MACD死叉,开空单
CONK1:=ANY(REF(SAR1<LOW,1) AND SAR1>LOW,3)=1; //最近3周期,有SAR向下突破K线
CONK2:=ANY(CROSS(DEA,DIFF),3)=1; //最近3周期,MACD金叉
开空条件:=CONK1 AND CONK2;//开空条件:最近3周期,有SAR向上突破K线,并且MACD死叉,开空单

多损上移条件:=HIGH>MAXHL AND GBD>ZS;  //多损上移条件:当最高价创新高,同时顾比低点创新高,上移止损线
空损下移条件:=LOW<MINLOW AND GBG<ZS;  //空损下移条件:当最低价创新低,同时顾比高点创新低,下移止损线

平多条件:= REF(HIGH,1)<ZS ;       //上根K线最高价下破移动止损线后离场
平空条件:= REF(LOW,1)>ZS ;        //上根K线最低价上穿移动止损线后离场

//开多:最近3周期,SAR向上突破K线,MACD在0线附近金叉
IF 开多条件 AND HOLDING=0 THEN BEGIN
    BUY(1,手数,MARKET); //开多仓
    ZS:=GBD;      //调用开多仓时顾比倒数低点连线的值,做为多单止损初始值
    MAXHL:= HIGH; //记录开多仓时的最高价
END
//用顾比倒数低点连线构建多头移动止损线。当最高价创新高,同时顾比低点创新高,上移止损线,重新定位止损离场位,实现多头浮动止损。
IF 多损上移条件 AND HOLDING>0 THEN BEGIN
    ZS:=GBD;     //创新高后,止损价赋值为当时的GBD,重新定位止损离场位,实现浮动止损
    MAXHL:=HIGH; //创新高后,记录当时的最高价
END

//开空:最近3周期,SAR向下跌破K线,并且MACD死叉,开空单。
IF 开空条件 AND HOLDING=0 THEN BEGIN
    BUYSHORT(1,1,MARKET);//开空仓
    ZS:=GBG;        //调用开空仓时顾比倒数高点连线的值,做为空单止损初始值
    MINLOW:=LOW;    //记录开空仓时的最低价
END
//用顾比倒数高点连线构建空头移动止损线。当最低价创新低,同时顾比高点创新低后,下移止损线,重新定位止损离场位,实现空头浮动止损 
IF 空损下移条件 AND HOLDING<0 THEN BEGIN
    ZS:=GBG;     //创新低后,止损价赋值为当时的GBG,重新定位止损离场位,实现浮动止损
    MINLOW:=LOW; //创新低后,记录当时的最低价
END

//止损止盈模块
//多头止盈止损平仓:上根K线最高价下破止损线,平多仓离场
IF 平多条件 AND HOLDING>0 AND ENTERBARS>1 THEN SELL(1,HOLDING,MARKET);    //平多:下破止损线,平多仓离场
//空头止盈止损平仓:上根K线最低价上穿移动止损线,平空仓离场
IF 平空条件 AND HOLDING<0 AND enterbars>1 THEN  SELLSHORT(1,HOLDING,MARKET); //平空:上穿移动止损线,平空仓离场
止损线:ZS;


金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

19

主题

256

帖子

341

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-18
曾用名:
 楼主| 发表于 2025-2-7 16:56 | 显示全部楼层
从3楼到5楼,开仓条件里,都用到了SAR指标,
其实,SAR指标,也可以做成止损,用于策略中。

需求:请帮写一个基于SAR指标的止损模块,出现第二个红点“空单止损”,出现第二个绿点“多单止损”
截图202502071655391012.png
[PEL] 复制代码
SAR0:=SAR(10,2,20),CIRCLEDOT;
SAR1:=ref(SAR0,1);
SAR2:=ref(SAR0,2);
 
KS:=SAR0>SAR1 and SAR1<SAR2;//SAR为最低值,即出现第二个红点,KS为1,平空单止损
DS:=SAR0<SAR1 and SAR1>SAR2;//SAR为最高值,即出现第二个绿点, DS为1,平多单止损

//止损模块
//多头止损平仓:SAR为最高值,即出现第二个绿点, DS为1,平多单止损离场
IF DS AND HOLDING>0 AND ENTERBARS>1 THEN SELL(1,HOLDING,MARKET);   
//空头止损平仓:SAR为最低值,即出现第二个红点,KS为1,平空单止损离场
IF KS AND HOLDING<0 AND enterbars>1 THEN  SELLSHORT(1,HOLDING,MARKET);
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-5-20 04:32 , Processed in 0.186451 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表