乐于分享
好东西不私藏

多周期自适应高低拐点箱体指标源码-自动标记涨跌提示完整公式

多周期自适应高低拐点箱体指标源码-自动标记涨跌提示完整公式
说明:源码都是为大家精挑细选,并且免费奉献给各位,点赞、转发、评论是我的创作动力!
多周期自适应高低拐点箱体指标源码-自动标记涨跌提示完整公式
文华主图指标,可自动适配日线、小时、分钟周期,识别行情高低拐点,绘制区间箱体,满足形态条件时标注涨跌文字,源码完整可直接新建指标使用。
工具部分代码:(主图)

// 获取当前周期类型

CURRENT_PERIOD := PERIOD; // 文华财经内置函数,返回当前周期类型

// 根据不同周期自适应调整参数

M := 

    IF(CURRENT_PERIOD = 8, 5,        // 日线

    IF(CURRENT_PERIOD = 14, 8,      // 4小时

    IF(CURRENT_PERIOD = 7, 10,     // 1小时

    IF(CURRENT_PERIOD = 5, 12,     // 15分钟

    5))));                                     // 默认值

G:=MA(C,5),NODRAW;

D:=MA(C,10),NODRAW;

NNH:=BARSLAST(H=HHV(H,M)) ,NODRAW;

NNL:=BARSLAST(L=LLV(L,M)) ,NODRAW;

NN:=IF(REF(G,NNH)>REF(D,NNH) AND NNH<=M-3,NNH,IF(REF(G,NNL)<REF(D,NNL) AND NNL<=M-3,NNL,M-2)) ,NODRAW;

NNN:=IF(ISLASTBAR AND NN>0,NN,M-2) ,NODRAW;

H1:=REF(H,NNN)=HHV(H,M-1);

L1:=REF(L,NNN)=LLV(L,M-1);

FG01:=BACKSET(H1,NNN+1)>BACKSET(H1,NNN),NODRAW;

FD01:=BACKSET(L1,NNN+1)>BACKSET(L1,NNN) ,NODRAW;

FG02:=FG01=FD01 AND G>D,NODRAW;

FD02:=FG01=FD01 AND G<D,NODRAW;

TTTT:=BARSLAST(FD01),NODRAW;

FG0:=FG01 AND IF(FG02=1,H=HHV(H,BARSLAST(REF(FD01,1))+1),H=HHV(H,IF(BARSLAST(L=LLV(L,M))>=M-2,M-2,BARSLAST(FD01)))) AND FD02=0 ,NODRAW;

FD0:=FD01 AND IF(FD02=1,L=LLV(L,BARSLAST(REF(FG01,1))+1),L=LLV(L,IF(BARSLAST(H=HHV(L,M))>=M-2,M-2,BARSLAST(FG01))))  AND FG02=0 ,NODRAW;

GT:=BARSLAST(FG0),NODRAW;

DT:=BARSLAST(FD0),NODRAW;

LLLL:=DT=0 AND REF(DT,1)<GT AND L>REF(L,REF(DT,1)+1),NODRAW;

FG1:=BACKSET(REFX(GT,1)=0 AND GT<DT AND REFX(H,1)>=REF(H,GT),GT+1),NODRAW;

FD1:=BACKSET(REFX(DT,1)=0 AND DT<GT AND REFX(L,1)<=REF(L,DT),DT+1),NODRAW;

FG11:=IF(GT=0 AND REF(GT,1)<DT AND IF(REF(G,BARSLAST(L=LLV(L,M)))>REF(D,BARSLAST(L=LLV(L,M))),BARSLAST(L=LLV(L,M))<M-2,1) AND  H<REF(H,REF(GT,1)+1),1,0),NODRAW;

FD11:=IF(DT=0 AND REF(DT,1)<GT AND IF(REF(G,BARSLAST(H=HHV(H,M)))<REF(D,BARSLAST(H=HHV(H,M))),BARSLAST(H=HHV(H,M))<M-2,1) AND L>REF(L,REF(DT,1)+1),1,0),NODRAW;

GT1:=BARSLAST(FG11<>1 AND FG1<>1 AND FG0),NODRAW;

DT1:=BARSLAST(FD11<>1 AND FD1<>1 AND FD0),NODRAW;

FD2:=BACKSET(REFX(GT1,1)=0 AND DT1<3 AND GT1-DT1<4 AND REF(L,DT1)>LLV(L,GT1+M-2),DT1+1),NODRAW;

FG2A:=BACKSET(REFX(GT1,1)=0 AND DT1<3 AND GT1-DT1<4 AND REF(L,DT1)<=LLV(L,GT1+M-2) AND REF(H,GT1)>HHV(H,GT1+M-2),GT1+1),NODRAW;

FG2B:=IF(GT1=0 AND DT1<4 AND REF(GT1,1)-DT1<4 AND REF(L,DT1)<=LLV(L,REF(GT1,1)+M-1) AND H>HHV(H,REF(GT1,1)+M-1),1,0),NODRAW;

FG2:=BACKSET(REFX(DT1,1)=0 AND GT1<3 AND DT1-GT1<4 AND REF(H,GT1)<HHV(H,DT1+M-2),GT1+1),NODRAW;

FD2A:=BACKSET(REFX(DT1,1)=0 AND GT1<3 AND DT1-GT1<4 AND REF(H,GT1)>=HHV(L,DT1+M-2) AND REF(L,DT1)>LLV(L,DT1+M-2),DT1+1),NODRAW;

FD2B:=IF(DT1=0 AND GT1<4 AND REF(DT1,1)-GT1<4 AND REF(H,GT1)>=HHV(H,REF(DT1,1)+6) AND L>LLV(L,REF(DT1,1)+M-1),1,0),NODRAW;

TTTTTT:= H<REF(H,REF(GT1,1)+1) AND DT1<4,NODRAW;

HHHHHH:=REF(LLV(L,10),DT1),NODRAW;

FG21:=IF(GT1=0 AND DT1<4 AND H<=REF(H,REF(GT1,1)+1)  ,1,0),NODRAW;

FD21:=IF(DT1=0 AND GT1<4  AND L>=REF(L,REF(DT1,1)+1) ,1,0),NODRAW;

FD231:=BACKSET(REFX(GT1,1)=0 AND DT1>3 AND GT1>DT1 AND GT1-DT1<4 AND REFX(H,1)>REF(H,GT1) AND REF(L,DT1)>REF(LLV(L,10),DT1),DT1+1),NODRAW;

FG23:=BACKSET(REFX(GT1,1)=0 AND DT1>3 AND GT1>DT1 AND  GT1-DT1<4 AND REFX(H,1)>REF(H,GT1) AND (REF(H,GT1)<REF(HHV(H,13),GT1) OR REF(FD231,DT1)=0),GT1+1),NODRAW;

FG231:=BACKSET(REFX(DT1,1)=0 AND GT1>3  AND DT1>GT1 AND DT1-GT1<4 AND REFX(L,1)<REF(L,DT1) AND REF(H,GT1)<REF(HHV(H,10),GT1) ,GT1+1),NODRAW;

FD23:=BACKSET(REFX(DT1,1)=0 AND GT1>3  AND DT1>GT1 AND DT1-GT1<4 AND REFX(L,1)<REF(L,DT1) AND ( REF(L,DT1)>REF(LLV(L,13),DT1) OR REF(FG231,GT1)=0),DT1+1),NODRAW;

FDD23:=REF(H,GT1)<REF(HHV(H,10),GT1) OR REF(FD23,DT1)=0,NODRAW;

FD24:=BACKSET(REFX(GT1,1)=0 AND DT1>3 AND GT1>DT1 AND GT1-DT1<4 AND REFX(H,1)<HHV(H,GT1+3) AND REF(L,DT1)>LLV(L,DT1+5),DT1+1),NODRAW;

FG24:=BACKSET(REFX(DT1,1)=0 AND GT1>3  AND DT1>GT1 AND DT1-GT1<4 AND REFX(L,1)>LLV(L,DT1+3) AND REF(H,GT1)<HHV(H,GT1+5),GT1+1),NODRAW;

GT2:=BARSLAST(FG21<>1 AND FG23<>1 AND FG231<>1 AND FG24<>1   AND FG2<>1 AND FG2A<>1 AND FG2B<>1 AND GT1=0),NODRAW;

DT2:=BARSLAST(FD21<>1 AND FD23<>1 AND FD231<>1 AND FD24<>1  AND FD2<>1 AND FD2A<>1 AND FD2B<>1 AND DT1=0),NODRAW;

FG3:=BACKSET(REFX(GT2,1)=0 AND GT2<DT2 AND REFX(H,1)>=REF(H,GT2),GT2+1),NODRAW;

FD3:=BACKSET(REFX(DT2,1)=0 AND DT2<GT2 AND REFX(L,1)<=REF(L,DT2),DT2+1),NODRAW;

FG31:=IF(GT2=0 AND REF(GT2,1)<DT2 AND H<REF(H,REF(GT2,1)+1),1,0),NODRAW;

FD31:=IF(DT2=0 AND REF(DT2,1)<GT2 AND L>REF(L,REF(DT2,1)+1),1,0),NODRAW;

GT3:=BARSLAST(GT2=0 AND FG3<>1 AND FG31<>1 ),NODRAW;

DT3:=BARSLAST(DT2=0 AND  FD3<>1 AND FD31<>1),NODRAW;

FG4:=BACKSET(REFX(GT3,1)=0 AND GT3<DT3 AND REFX(H,1)>=REF(H,GT3),GT3+1),NODRAW;

FD4:=BACKSET(REFX(DT3,1)=0 AND DT3<GT3 AND REFX(L,1)<=REF(L,DT3),DT3+1),NODRAW;

FG41:=IF(GT3=0 AND REF(GT3,1)<DT3 AND H<REF(H,REF(GT3,1)+1),1,0),NODRAW;

FD41:=IF(DT3=0 AND REF(DT3,1)<GT3 AND L>REF(L,REF(DT3,1)+1),1,0),NODRAW;

HHH:=GT3=0 AND FG31<>1 AND  FG3<>1,NODRAW;

LLL:=DT3=0 AND FD31<>1 AND  FD3<>1,NODRAW;

// ========== 新增箱体绘制模块 START ==========

// 周期过滤:仅非日线(分钟/小时)绘制箱体,日线PERIOD=8直接屏蔽

仅小周期:=CURRENT_PERIOD<>8;

// 记录高低拐点距离当前K线根数

高间隔:=BARSLAST(HHH);

低间隔:=BARSLAST(LLL);

// 箱体成立条件:高低拐点都存在、且只在小周期渲染

箱体条件:=仅小周期 AND ((HHH OR LLL) AND (高间隔>0 OR 低间隔>0));

// 箱体4个坐标:左边界、下沿、上沿、右边界

箱左:=MIN(高间隔,低间隔);

箱右:=MAX(高间隔,低间隔);

箱底:=REF(L,箱右);

箱顶:=REF(H,箱左);

// 绘制红色粗框箱体 LINETHICK3加粗,RGB(255,0,0)=纯红

//DRAWRECT(箱体条件,箱底,箱顶,REFX(C,箱右),REFX(O,箱左),RGB(255,0,0),LINETHICK3);

// 可选:半透明红色填充箱体(不需要就注释此行 // 开头)

// DRAWRECT_FILL(箱体条件,箱底,箱顶,REFX(C,箱右),REFX(O,箱左),RGB(255,0,0),0.12);

// ========== 新增箱体绘制模块 END ==========

// 原有画线部分(无修改)

DRAWLINE1(HHH ,H,LLL,L,0),RGB(255,128,0),LINETHICK2;//绿色

DRAWLINE1(LLL,L,HHH ,H,0),RGB(128,0,255),LINETHICK2;//红色

N1:=BARSLAST(HHH)+1;

N2:=BARSLAST(LLL)+1;

DRAWTEXT(HHH,H,'●'),FONTSIZE30,VALIGN1,RGB(255,255,255);//高点小黄点

DRAWTEXT(LLL,L,'●'),FONTSIZE30,VALIGN1,COLORYELLOW;//低点小黄点

DRAWSHIFTNUMBER(BARSLAST(HHH)=2,REF(H,HHVBARS(V,3)),REF(H,HHVBARS(V,3)),0,COLORYELLOW,0,HHVBARS(V,3));

DRAWSL(CROSS(BACKSET(BARSLAST(HHH)=2,HHVBARS(V,3)+1),0.5),H,0,3,0,COLORRED),DASHDOTDOT;

DRAWSHIFTNUMBER(BARSLAST(LLL)=2,REF(L,HHVBARS(V,3)),REF(L,HHVBARS(V,3)),0,COLORYELLOW,0,HHVBARS(V,3)),DASHDOTDOT;

DRAWSL(CROSS(BACKSET(BARSLAST(LLL)=2,HHVBARS(V,3)+1),0.5),L,0,3,0,RGB(255,0,255)),DASHDOTDOT;

X1:=ISDOWN&&O>=REF(MAX(C,O),1)&&C<=REF(MIN(C,O),1);

X2:=H>REF(H,1)&&V<REF(V,1);

X3:=H-MAX(C,O)>2*ABS(C-O);

DRAWTEXT(HHH&&X1+X2+X3>0&&REFX(LLV(C,2),2)<REF(L,1),H,'看跌');

X11:=ISUP&&C>=REF(MAX(C,O),1)&&O<=REF(MIN(C,O),1);

X22:=L<REF(L,1)&&V<REF(L,1);

X33:=MIN(C,O)-L>2*ABS(C-O);

DRAWTEXT(LLL&&X11+X22+X33>0&&REFX(HHV(C,2),2)>REF(H,1),L,'看涨'),VALIGN0;

辅助特别容易出错,因为涉及到排版格式的问题,一般都是有“?”,全部筛选并删除掉,或者被//语句注释掉了,换个行即可,总之一切问题,欢迎评论留言,我看到会第一时间回复大家!

声明:本公众号所分享的工具,仅供知识学习,依次操作,责任自负!