金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 332|回复: 1

这个指标有没有未来函数,是否可以当做指标使用?

[复制链接]

61

主题

220

帖子

220

积分

Rank: 2

等级: 标准版

注册:
2025-5-28
曾用名:
发表于 2025-9-1 15:06 | 显示全部楼层 |阅读模式
M:=5;//M值需要大于等于5
G:=MA(C,5);
D:=MA(C,10);
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;//只设置前面第M-1个
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;
//前短后长,去2;
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;
//前短后长,去3;
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;

MMM:=BACKSET(ISLASTBAR,SUMBARS(HHH||LLL,9)),NODRAW;
MMM1:=BACKSET(ISLASTBAR,SUMBARS(HHH||LLL,10)),NODRAW;

NG1:=BARSLAST(HHH)<BARSLAST(LLL);
NG2:=BARSLAST(HHH)>BARSLAST(LLL);


//竖线

DRAWLINE(REF(BARSLAST(LLL)<BARSLAST(HHH),1),H-VALUEWHEN(LLL,L),1,0,COLORRED),LINETHICK3;
DRAWLINE(REF(BARSLAST(LLL)>BARSLAST(HHH),1),VALUEWHEN(HHH,H)-L,1,0,COLORGREEN),LINETHICK3;

DRAWSL(CROSS(BACKSET(ISLASTBAR,BARSLAST(HHH)+1),0.5)&&REFX1(BARSLAST(HHH)<BARSLAST(LLL),10000),(H-VALUEWHEN(LLL,L))*0.5,0,200,2,COLORWHITE);
DRAWSL(CROSS(BACKSET(ISLASTBAR,BARSLAST(HHH)+1),0.5)&&REFX1(BARSLAST(HHH)<BARSLAST(LLL),10000),REF((VALUEWHEN(HHH,H)-L)*0.5,BARSLAST(LLL)),0,-BARSLAST(LLL),0,COLORYELLOW);

DRAWSL(CROSS(BACKSET(ISLASTBAR,BARSLAST(LLL)+1),0.5)&&REFX1(BARSLAST(HHH)>BARSLAST(LLL),10000),REF((H-VALUEWHEN(LLL,L))*0.5,BARSLAST(HHH)),0,-BARSLAST(HHH),0,COLORWHITE);
DRAWSL(CROSS(BACKSET(ISLASTBAR,BARSLAST(LLL)+1),0.5)&&REFX1(BARSLAST(HHH)>BARSLAST(LLL),10000),(VALUEWHEN(HHH,H)-L)*0.5,0,200,2,COLORYELLOW);




Q12:=IF(REF(BARSLAST(LLL)<BARSLAST(HHH),1),H-VALUEWHEN(LLL,L),NULL),COLORRED,NODRAW;

Q22:=IF(REF(BARSLAST(LLL)>BARSLAST(HHH),1),VALUEWHEN(HHH,H)-L,NULL),COLORGREEN,NODRAW;


Z1:=VALUEWHEN(HHH,H)-L,NODRAW;
Z2:=H-VALUEWHEN(LLL,L),NODRAW;
Q1:=CROSS(BACKSET(HHH,HHVBARS(Z2,BARSLAST(LLL))+1),0.5),NODRAW;
Q2:=CROSS(BACKSET(LLL,HHVBARS(Z1,BARSLAST(HHH))+1),0.5),NODRAW;

//波比
DRAWNUMBER(Q2,0,Z1/VALUEWHEN(Q1,Z2)*100,0,COLORYELLOW),VALIGN0,ALIGN0,FONTSIZE18;
DRAWNUMBER(Q1,0,Z2/VALUEWHEN(Q2,Z1)*100,0,COLORWHITE),VALIGN0,ALIGN0,FONTSIZE18;
DRAWTEXT(Q2,0,'回测'),ALIGN2,VALIGN0,COLORYELLOW,FONTSIZE18;
DRAWTEXT(Q1,0,'回测'),ALIGN2,VALIGN0,COLORWHITE,FONTSIZE18;






X1:=VALUEWHEN(Q1,(H-VALUEWHEN(LLL,L)));
X2:=VALUEWHEN(Q1,REF(X1,1));
X11:=VALUEWHEN(Q2,(VALUEWHEN(HHH,H)-L));
X22:=VALUEWHEN(Q2,REF(X11,1));
DRAWTEXT(Q2,VALUEWHEN(HHH,H)-VALUEWHEN(LLL,L),'前进'),VALIGN0,ALIGN2,COLORYELLOW,FONTSIZE18;
DRAWTEXT(Q1,VALUEWHEN(HHH,H)-VALUEWHEN(LLL,L),'前进'),VALIGN0,ALIGN2,COLORWHITE,FONTSIZE18;
DRAWNUMBER(Q2,VALUEWHEN(HHH,H)-VALUEWHEN(LLL,L),X11/X22*100,0,COLORYELLOW),ALIGN0,VALIGN0,FONTSIZE18;
DRAWNUMBER(Q1,VALUEWHEN(HHH,H)-VALUEWHEN(LLL,L),X1/X2*100,0,COLORWHITE),VALIGN0,ALIGN0,FONTSIZE18;




//波离
Z10:=VALUEWHEN(HHH,H)-L,NODRAW;
Z20:=H-VALUEWHEN(LLL,L),NODRAW;
Q10:=CROSS(BACKSET(HHH,HHVBARS(Z20,BARSLAST(LLL))+1),0.5),NODRAW;
Q20:=CROSS(BACKSET(LLL,HHVBARS(Z10,BARSLAST(HHH))+1),0.5),NODRAW;





波距:=IF(BARSLAST(HHH)<BARSLAST(LLL),VALUEWHEN(HHH,H)-L,H-VALUEWHEN(LLL,L)),COLORYELLOW,NODRAW;
波离:=IF(BARSLAST(HHH)<BARSLAST(LLL),L-REF(L,SUMBARS(LLL||ISLASTBAR,2)-1),H-REF(H,SUMBARS(HHH||ISLASTBAR,2)-1)),COLORYELLOW,NODRAW;
波时:=IF(BARSLAST(HHH)<BARSLAST(LLL),BARSLAST(HHH),BARSLAST(LLL)),COLORYELLOW,NODRAW;
波速:=IF(BARSLAST(HHH)<BARSLAST(LLL),(VALUEWHEN(HHH,H)-L)/BARSLAST(Q1),(H-VALUEWHEN(LLL,L))/BARSLAST(Q2)),COLORYELLOW,NODRAW;
前进:IF(BARSLAST(HHH)<BARSLAST(LLL),(VALUEWHEN(HHH,H)-L)/X11*100,(H-VALUEWHEN(LLL,L))/X1),COLORYELLOW,NODRAW;
回测:IF(BARSLAST(HHH)<BARSLAST(LLL),HHV(Z1,BARSLAST(HHH))/VALUEWHEN(Q1,Z2)*100,HHV(Z2,BARSLAST(LLL))/VALUEWHEN(Q2,Z1)),COLORYELLOW,NODRAW;



//DRAWCOLORLINE(Q1>REF(Q1,1),Q1,COLORRED,COLORGREEN);

//DRAWCOLORLINE(Q2>REF(Q2,1),Q2,COLORGREEN,COLORRED);
AA:=VALUEWHEN(Q2,(VALUEWHEN(HHH,H)-L));
BB:=VALUEWHEN(Q2,VALUEWHEN(Q1,(H-VALUEWHEN(LLL,L))));
CC:=VALUEWHEN(BB,REF(AA,1));

AA1:=VALUEWHEN(Q1,(H-VALUEWHEN(LLL,L)));
BB1:=VALUEWHEN(Q1,VALUEWHEN(Q2,(VALUEWHEN(HHH,H)-L)));
CC1:=VALUEWHEN(BB1,REF(AA1,1));
DRAWLINE3(AA1>BB1 && BB1>CC1 ,CC1,REF(BARSLAST(Q1)+1,1),AA1>BB1 && BB1>CC1,AA1,0,0),LINETHICK1,RGB(255,128,64);
DRAWLINE3(AA1<BB1 && BB1<CC1 ,CC1,REF(BARSLAST(Q1)+1,1),AA1<BB1 && BB1<CC1,AA1,0,0),LINETHICK1,COLORMAGENTA;
DRAWLINE3(AA>BB && BB>CC ,CC,REF(BARSLAST(Q2)+1,1),AA>BB && BB>CC,AA,0,0),LINETHICK1,RGB(255,128,64);
DRAWLINE3(AA<BB && BB<CC ,CC,REF(BARSLAST(Q2)+1,1),AA<BB && BB<CC,AA,0,0),LINETHICK1,COLORMAGENTA;




DRAWTEXT(REFX(AA1>BB1 && BB1>CC1||AA>BB && BB>CC,2),IF(Q12>0,Q12,Q22),'扩张'),RGB(255,128,64),FONTSIZE18;
DRAWTEXT(REFX(AA1<BB1 && BB1<CC1||AA<BB && BB<CC,2),IF(Q12>0,Q12,Q22),'收敛'),COLORMAGENTA,FONTSIZE18;
//回调时间相同
CROSS(波时>REF(波时,1)+1,0.5),SOUND('A2');
//回撤0.5
CROSS(回测>0.5,0.5),SOUND('B2');
//前进前波相等
CROSS(前进>1,0.5),SOUND('C2');
//回撤三分之二
CROSS(回测>0.66,0.5),SOUND('D2');
//行情扩张
CROSS(波距>REF(波距,1)>REF(波距,2),0.5),SOUND('F2');
//行情收敛
CROSS(波距<REF(波距,1)<REF(波距,2)<REF(波距,3),0.5),SOUND('E2');
//收敛突破
CROSS(REF(波距,1)<波距<REF(波距,2)<REF(波距,3),0.5),SOUND('G2');

能否麻烦老师给看看,这个指标有没有未来函数,是否可以当做指标使用?

回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-9-1 15:27 | 显示全部楼层
你这里有refx,表示引用后面的数据了

是否未来建议问写程序的人,这是最直观的
所谓未来不是一定是,要看他逻辑上是不是用到未来去参与了,比如分钟引用日线,你怎么用它,判断的条件是不是会变化这些都是写的人写策略时候最直观

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-9 03:41 , Processed in 0.103097 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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