文华wh6进场线-止损线指标源码:
P:=10;
// 定义参数P为10,用于周期计算
WH1:IF(L=LLV(L,P),L,NULL),NODRAW;
// 如果当前最低价L等于P周期内的最低价LLV,则输出L,否则无效值,不画线
WH2:REFX1(BARSLAST(ISNULL(WH1)=0),10000),NODRAW;
// 计算上一次WH1有效(非NULL)到现在的周期数,并向右引用10000根K线,不画线
WH3:REFX1(IF(WH2=0,H,REF(H,WH2)),10000),NODRAW;
// 若WH2=0则取当前最高价H,否则取WH2周期前的H,向右引用10000根K线,不画线
WH4:REFX1(REF(BARSLAST(H>WH3),WH2+1)+WH2+1,10000),NODRAW;
// 计算H>WH3的条件在前WH2+1周期内最后一次出现到现在的位置,加上WH2+1后向右引用,不画线
WH5:REFX1(IF(WH4=0,H,REF(H,WH4)),10000),NODRAW;
// 若WH4=0则取当前H,否则取WH4周期前的H,向右引用10000根K线,不画线
WH6:REFX1(REF(BARSLAST(H>WH5),WH4+1)+WH4+1,10000),NODRAW,COLORWHITE;
// 计算H>WH5在前WH4+1周期内最后出现的位置,加WH4+1后向右引用,白色,不画线
CURRBARSCOUNT:=DATACOUNT-BARPOS+1;
// 当前K线从最后一根K线倒数过来的位置序号(最后1根为1)
WH7:IF(CURRBARSCOUNT<=WH6+1,REFX1(IF(WH6=0,H,REF(H,WH6)),10000),NULL),COLORRED,LINETHICK2;
// 若当前倒数的序号不超过WH6+1,则根据WH6取值输出H(右引用),否则无效值,红色线,线宽2
STICKLINE(CURRBARSCOUNT<=WH2+1 AND L=LLV(L,P),H,H*1.095,0.1,-1),COLORWHITE;
// 若当前倒序位置<=WH2+1且L为P周期最低,则在H到H*1.095画柱状线,白色
DRAWTEXT(CURRBARSCOUNT<=WH2+1 AND L=LLV(L,P), LLV(L,P)*1.15,’号线’),COLORWHITE;
// 符合条件时在最低价*1.15位置写”号线”二字,白色
DRAWTEXT(ISLASTBAR,WH7,’进场线’),COLORWHITE;
// 在最后一根K线的WH7位置写”进场线”,白色
WH8:IF(CURRBARSCOUNT<=WH2+1,IF(L=LLV(L,P),L,NULL),NULL);
// 若倒序<=WH2+1且L为P周期最低,输出L,否则无效值
H1:=IF(H=HHV(H,P),H,NULL);
// 若当前最高价H等于P周期内的最高价HHV,则输出H,否则无效值
H2:=REFX1(BARSLAST(ISNULL(H1)=0),10000);
// 计算上一次H1有效(非NULL)到现在的周期数,向右引用10000
H3:=REFX1(IF(H2=0,L,REF(L,H2)),10000);
// 若H2=0则取当前最低价L,否则取H2周期前的L,右引用
H4:=REFX1(REF(BARSLAST(L<H3),H2+1)+H2+1,10000);
// 计算L<H3前H2+1周期内最后出现位置,加H2+1后向右引用
H5:=REFX1(IF(H4=0,L,REF(L,H4)),10000);
// 若H4=0则取当前L,否则取H4周期前的L,右引用
H6:=REFX1(REF(BARSLAST(L<H5),H4+1)+H4+1,10000);
// 计算L<H5前H4+1周期内最后出现位置,加H4+1后右引用
H7:IF(CURRBARSCOUNT<=H6+1,REFX1(IF(H6=0,L,REF(L,H6)),10000),NULL),COLORGREEN,LINETHICK2;
// 若当前倒序位置<=H6+1,则根据H6取值输出L(右引用),否则无效,绿色线,线宽2
H8:IF(CURRBARSCOUNT<=H2+1,IF(H=HHV(H,P),H,NULL),NULL);
// 若倒序<=H2+1且H为P周期最高,则输出H,否则无效值
DRAWTEXT(ISLASTBAR,H7,’止损线’),COLORWHITE;
// 在最后一根K线的H7位置写”止损线”,白色

