再次详细点写这个叠加方法,有请求请在论坛求助,本人不能满足每个人的要求,敬请谅解!
========
首先我们理解模板的意思,不能理解透,那么就无从入手
C/C++ Code复制内容到剪贴板
- HH:=CONST(HHV(C,120))*1;{取现价的N日最大值}
- LL:=CONST(LLV(C,120))*1;{取现价的N日最小值,HH与LL是整个版面的最高低点,这个好理解吧}
- HL:=CONST(IF(CONST((HH+LL)/2)<CONST(C),LL-(HH-LL)*0.2,HH+(HH-LL)*0.2));
- {取叠加副图自动转换高低值,当现价小于中间值时以LL-(HH-LL)*0.2为副图自动转换高低值,反之以HH+(HH-LL)*0.2为副图自动转换高低值,
- (HH-LL)*0.2就是最高低点的差值,也是所叠加副图的高低值的限制,想要叠加副图大点,那么(HH-LL)*0.4甚至0.6. CONST((HH+LL)/2)<CONST(C),这句的意思是当现价小于版面最高低点的一半时就自动转换将所叠加副图放上入下的意思,是为了保证叠加副图不太影响版面}
- HH1:=IF(CONST((HH+LL)/2)>CONST(C),HH,HL);{当现价小于中间值时以最大值为最高点,反之以HL为最高点}
- LL1:=IF(CONST((HH+LL)/2)<CONST(C),LL,HL);{当现价小于中间值时以最小值为最低点,反之以HL为最低点}
- HLMAX:=MAX(HH1,LL1);{设定所要叠加副图比例的最大值}
- HLMIN:=MIN(HH1,LL1);{设定所以叠加副图比例的最小值}
- HLMN1:=(HLMAX+HLMIN)/2;{取设定所要叠加副图比例的最大最小值的中间值}
- HLMN2:=HLMAX-HLMIN;{取设定所要叠加副图比例的最大最小值的差值}
- HLMN3:=(副图比例最高值-副图比例最低值)/2;
- HLMN4:=副图比例最高值-副图比例最低值{如果副图是KDJ来说,那么最高值就是100,最低点就是0,这个是有限制高低点副图叠加的最高低点值};
- 所叠加副图线:(副图线形-HLMN4)*HLMN2/HLMN3+HLMN1;{按比例叠加副图线的计算方式}
理解了以上的模板,那么叠加起来就轻松了
1/先对所叠加的副图进行定义,以你想叠加的指标为例子
C/C++ Code复制内容到剪贴板
- RSV:=(CLOSE - LLV(LOW,18))/(HHV(HIGH,18) - LLV(LOW,18))*100;
- K:EMA(RSV,3);
- D:EMA(K,3);
- J:=(3*K-2*D);
- 火山:IF(J<=0,20,0),LINETHICK0;
- STICKLINE(J<=0,90,100,8,0),COLORYELLOW;
- KDJ1:=REF(COUNT(J<REF(J,1),5)>=3,1) AND REF(J,1)<20;
- KDJ2:=J>REF(J,1);
- 反转:IF(FILTER(KDJ1 AND KDJ2,3),50,0),COLORRED;
- VAR22:=REF(LOW,1);
- VAR33:=SMA(ABS(LOW-VAR22),3,1)/SMA(MAX(LOW-VAR22,0),3,1)*100;
- VAR44:=EMA(IF(CLOSE*1.3,VAR33*10,VAR33/10),3);
- VAR55:=LLV(LOW,13);
- VAR66:=HHV(VAR44,13);
- VAR77:=IF(MA(CLOSE,34),1,0);
- VAR888:=EMA(IF(LOW<=VAR55,(VAR44+VAR66*2)/2,0),3)/618*VAR77;
- VAR999:=IF(VAR888>100,100,VAR888);
- 吸筹:VAR999,LINETHICK1,COLORCD7F32 ;
- STICKLINE(VAR999>-120,0,VAR999,2,10),COLORFF00FF;
这个是你想叠加的副图
那么我们就先定义,上面红色字体是要写输出条件,在主图是不能写的,主图只能写赋值,就是AA:=...........加等号的赋值,那么就先将副图指标原码粘贴过来,然后将有等号的输出条件加上等号,将画柱子等输出条件删除。
C/C++ Code复制内容到剪贴板
- RSV:=(CLOSE - LLV(LOW,18))/(HHV(HIGH,18) - LLV(LOW,18))*100;
- K:=EMA(RSV,3);
- D:=EMA(K,3);
- J:=(3*K-2*D);
- KDJ1:=REF(COUNT(J<REF(J,1),5)>=3,1) AND REF(J,1)<20;
- KDJ2:=J>REF(J,1);
- 反转:=IF(FILTER(KDJ1 AND KDJ2,3),50,0),COLORRED;
- VAR22:=REF(LOW,1);
- VAR33:=SMA(ABS(LOW-VAR22),3,1)/SMA(MAX(LOW-VAR22,0),3,1)*100;
- VAR44:=EMA(IF(CLOSE*1.3,VAR33*10,VAR33/10),3);
- VAR55:=LLV(LOW,13);
- VAR66:=HHV(VAR44,13);
- VAR77:=IF(MA(CLOSE,34),1,0);
- VAR888:=EMA(IF(LOW<=VAR55,(VAR44+VAR66*2)/2,0),3)/618*VAR77;
- VAR999:=IF(VAR888>100,100,VAR888);
- 吸筹:=VAR999,LINETHICK1,COLORCD7F32 ;
红色字体是原码中输出条件转换成赋值。
2/将模板粘贴进来
C/C++ Code复制内容到剪贴板
- HH:=CONST(HHV(C,120))*1;{取现价的N日最大值}
- LL:=CONST(LLV(C,120))*1;{取现价的N日最小值}
- HL:=CONST(IF(CONST((HH+LL)/2)<CONST(C),LL-(HH-LL)*0.2,HH+(HH-LL)*0.2));
- {取叠加副图自动转换高低值,当现价小于中间值时以LL-(HH-LL)*0.2为副图自动转换高低值,反之以HH+(HH-LL)*0.2为副图自动转换高低值}
- HH1:=IF(CONST((HH+LL)/2)>CONST(C),HH,HL);{当现价小于中间值时以最大值为最高点,反之以HL为最高点}
- LL1:=IF(CONST((HH+LL)/2)<CONST(C),LL,HL);{当现价小于中间值时以最小值为最低点,反之以HL为最低点}
- HLMAX:=MAX(HH1,LL1);{设定所要叠加副图比例的最大值}
- HLMIN:=MIN(HH1,LL1);{设定所以叠加副图比例的最小值}
- HLMN1:=(HLMAX+HLMIN)/2;{取设定所要叠加副图比例的最大最小值的中间值}
- HLMN2:=HLMAX-HLMIN;{取设定所要叠加副图比例的最大最小值的差值}
- HLMN3:=(副图比例最高值-副图比例最低值)/2;
- HLMN4:=副图比例最高值-副图比例最低值;
- 所叠加副图线:(副图线形-HLMN4)*HLMN2/HLMN3+HLMN1;
红字体部分就是你想要叠加的线,因为KDJ的最高是100最低是0的限制值
那么
HLMN3:=(100-0)/2;
HLMN4:=100-0;
接下来就可以写0、20、50、80、100、K\D\J\信号等在叠加副图输出了
首先我们就先定义坐标
所叠加副图线:(副图线形-HLMN3)*HLMN2/HLMN4+HLMN1;{按比例叠加副图线的计算方式}
那么0坐标就是
0坐标:(0-HLMN3)*HLMN2/HLMN4+HLMN1;{按比例叠加副图线的计算方式}
100坐标:(100-HLMN3)*HLMN2/HLMN4+HLMN1;{按比例叠加副图线的计算方式}
K叠加线::(K-HLMN3)*HLMN2/HLMN4+HLMN1;{按比例叠加副图线的计算方式}
............
等等
如 反转:IF(FILTER(KDJ1 AND KDJ2,3),50,0),COLORRED;
这句怎么写
反转:IF(FILTER(KDJ1 AND KDJ2,3),(50-HLMN3)*HLMN2/100+HLMN1,:(0-HLMN3)*HLMN2/100+HLMN1),COLORRED;
红色字体就是将副图的50/0黑铁成叠加副图的50/0
三、整体二部分加起来,形成一个完整的主图
=====================================
C/C++ Code复制内容到剪贴板
- RSV:=(CLOSE - LLV(LOW,18))/(HHV(HIGH,18) - LLV(LOW,18))*100;
- K:=EMA(RSV,3);
- D:=EMA(K,3);
- J:=(3*K-2*D);
- KDJ1:=REF(COUNT(J<REF(J,1),5)>=3,1) AND REF(J,1)<20;
- KDJ2:=J>REF(J,1);
- 反转:=IF(FILTER(KDJ1 AND KDJ2,3),50,0),COLORRED;
- VAR22:=REF(LOW,1);
- VAR33:=SMA(ABS(LOW-VAR22),3,1)/SMA(MAX(LOW-VAR22,0),3,1)*100;
- VAR44:=EMA(IF(CLOSE*1.3,VAR33*10,VAR33/10),3);
- VAR55:=LLV(LOW,13);
- VAR66:=HHV(VAR44,13);
- VAR77:=IF(MA(CLOSE,34),1,0);
- VAR888:=EMA(IF(LOW<=VAR55,(VAR44+VAR66*2)/2,0),3)/618*VAR77;
- VAR999:=IF(VAR888>100,100,VAR888);
- 吸筹:=VAR999,LINETHICK1,COLORCD7F32 ;
-
- HH:=CONST(HHV(C,120))*1;{取现价的N日最大值}
- LL:=CONST(LLV(C,120))*1;{取现价的N日最小值}
- HL:=CONST(IF(CONST((HH+LL)/2)<CONST(C),LL-(HH-LL)*0.4,HH+(HH-LL)*0.4));
- {取叠加副图自动转换高低值,当现价小于中间值时以LL-(HH-LL)*0.2为副图自动转换高低值,反之以HH+(HH-LL)*0.2为副图自动转换高低值}
- HH1:=IF(CONST((HH+LL)/2)>CONST(C),HH,HL);{当现价小于中间值时以最大值为最高点,反之以HL为最高点}
- LL1:=IF(CONST((HH+LL)/2)<CONST(C),LL,HL);{当现价小于中间值时以最小值为最低点,反之以HL为最低点}
- HLMAX:=MAX(HH1,LL1);{设定所要叠加副图比例的最大值}
- HLMIN:=MIN(HH1,LL1);{设定所以叠加副图比例的最小值}
- HLMN1:=(HLMAX+HLMIN)/2;{取设定所要叠加副图比例的最大最小值的中间值}
- HLMN2:=HLMAX-HLMIN;{取设定所要叠加副图比例的最大最小值的差值}
- HLMN3:=(100-0)/2;
- HLMN4:=100-0;
-
- (50-50)*HLMN2/100+HLMN1,COLOR555555;
- (20-50)*HLMN2/100+HLMN1,COLOR555555;
- (80-50)*HLMN2/100+HLMN1,COLOR555555;
- (100-50)*HLMN2/100+HLMN1,COLOR555555;
- {以上定义叠加副图坐标}
- STICKLINE(吸筹,(0-50)*HLMN2/100+HLMN1,
- (VAR999-50)*HLMN2/100+HLMN1,2,10),COLORFF00FF;
- STICKLINE(J<=0,(90-50)*HLMN2/100+HLMN1,
- (100-50)*HLMN2/100+HLMN1,4,0),COLORYELLOW;
- IF(反转=50,(50-50)*HLMN2/100+HLMN1,
- (0-50)*HLMN2/100+HLMN1),COLORRED;
- {以上标出信号}
- KZ:(K-50)*HLMN2/100+HLMN1,COLORFFFFFF;
- DZ:(D-50)*HLMN2/100+HLMN1,COLOR00FFFF;
- JZ:(J-50)*HLMN2/100+HLMN1,COLOR00FF00;
- {以上输出KDJ线}
-
- {如果想加上均线就再写啊}
- MA5:MA(C,5);
- MA10:MA(C,10);