AS:=(C*3+O+H+L)/6;
//计算AS值:(收盘价*3 + 开盘价 + 最高价 + 最低价)/6
XJ:=(AS+0.618*REF(AS,1)+0.382*REF(AS,2)+0.236*REF(AS,3)+0.146*REF(AS,4))/2.382;
//计算XJ值:(当前AS值 + 0.618乘以前一日AS + 0.382乘以前两日AS + 0.236乘以前三日AS + 0.146乘以前四日AS)/2.382
HLX:=EMA(HHV(XJ,3),15);
//计算HLX:XJ的3日最高值的15日指数移动平均
LLX:=EMA(LLV(XJ,3),15);
//计算LLX:XJ的3日最低值的15日指数移动平均
CH:=CROSS(XJ,HLX);
//CH信号:XJ上穿HLX时为真
CL:=CROSS(LLX,XJ);
//CL信号:LLX下穿XJ时为真
CHH:=BARSLAST(CH);
//CHH:上次CH信号发生后的周期数
CLL:=BARSLAST(CL);
//CLL:上次CL信号发生后的周期数
YF1:=(CHH<CLL OR CH) AND NOT(CL);
//YF1条件:(CHH小于CLL 或 出现CH信号) 且 不出现CL信号
YF2:=(CHH>CLL OR CL) AND NOT(CH);
//YF2条件:(CHH大于CLL 或 出现CL信号) 且 不出现CH信号
TF:=IF(YF1,LLX,HLX);
//TF值:如果YF1为真取LLX,否则取HLX
TFB:=(HLX+LLX)/2;
//TFB值:HLX和LLX的平均值
XJK:=SMA(EMA(XJ,3),3,1);
//XJK值:XJ的3日EMA的3日平滑移动平均(权重1)
ZWSH:=(HHV(XJ,2)+HHV(XJ,3)+HHV(XJ,4)+HHV(XJ,5))/4;
//ZWSH值:XJ的2日/3日/4日/5日最高价的平均值
SH:=EMA(ZWSH,21);
//SH值:ZWSH的21日指数移动平均
ZWSL:=(LLV(XJ,2)+LLV(XJ,3)+LLV(XJ,4)+LLV(XJ,5))/4;
//ZWSL值:XJ的2日/3日/4日/5日最低价的平均值
SL:=EMA(ZWSL,21);
//SL值:ZWSL的21日指数移动平均
SCH:=CROSS(XJ,SH);
//SCH信号:XJ上穿SH时为真
SCL:=CROSS(SL,XJ);
//SCL信号:SL下穿XJ时为真
SHH:=BARSLAST(SCH);
//SHH:上次SCH信号发生后的周期数
SLL:=BARSLAST(SCL);
//SLL:上次SCL信号发生后的周期数
SF1:=(SHH<SLL OR SCH) AND NOT(SCL);
//SF1条件:(SHH小于SLL 或 出现SCH信号) 且 不出现SCL信号
SF2:=(SHH>SLL OR SCL) AND NOT(SCH);
//SF2条件:(SHH大于SLL 或 出现SCL信号) 且 不出现SCH信号
TFS:=IF(SF1,SL,SH);
//TFS值:如果SF1为真取SL,否则取SH
TFBS:=(SL+SH)/2;
//TFBS值:SL和SH的平均值
KX1:=(CLOSE>=OPEN) AND XJ>=TFS;
//KX1条件:阳线且XJ大于等于TFS
KX2:=(CLOSE<OPEN) AND XJ>=TFS;
//KX2条件:阴线且XJ大于等于TFS
KX3:=(CLOSE>=OPEN) AND XJ<TFS;
//KX3条件:阳线且XJ小于TFS
KX4:=(CLOSE<OPEN) AND XJ<TFS;
//KX4条件:阴线且XJ小于TFS
KX5:=((XJ>=TFS AND XJ<TF) OR (XJ<TFS AND XJ>=TF)) AND CLOSE>=OPEN;
//KX5条件:(XJ在TFS和TF之间)且阳线
KX6:=((XJ>=TFS AND XJ<TF) OR (XJ<TFS AND XJ>=TF)) AND CLOSE<OPEN;
//KX6条件:(XJ在TFS和TF之间)且阴线
FILLRGN(TFB>TFS,TFB,TFS,RGB(40,00,40));
//填充区域:当TFB>TFS时,在TFB和TFS之间填充深紫色
FILLRGN(TFB<TFS,TFB,TFS,RGB(00,00,80));
//填充区域:当TFB<TFS时,在TFB和TFS之间填充深蓝色
FILLRGN(TFB>TF,TFB,TF,RGB(90,00,00));
//填充区域:当TFB>TF时,在TFB和TF之间填充深红色
FILLRGN(TFB<TF,TFB,TF,RGB(00,55,00));
//填充区域:当TFB<TF时,在TFB和TF之间填充深绿色
DRAWKLINE1(H,O,L,C);
//绘制K线图(最高价,开盘价,最低价,收盘价)
笔参数:=10;
//设置笔参数为10周期
段参数:=6;
//设置段参数为6周期
笔低A:=LOW<=LLV(LOW,笔参数),NODRAW;
//笔低A条件:当前最低价是笔参数周期内最低值(不绘制)
笔高A:=HIGH>=HHV(HIGH,笔参数),NODRAW;
//笔高A条件:当前最高价是笔参数周期内最高值(不绘制)
笔低:=笔低A AND 笔高A=0,NODRAW;
//笔低条件:满足笔低A且不满足笔高A(不绘制)
笔高:=笔高A AND 笔低A=0,NODRAW;
//笔高条件:满足笔高A且不满足笔低A(不绘制)
VP1:=BACKSET(笔高,BARSLAST(笔低)+1);
//VP1:从最近笔低点开始向后标记笔高点
VP2:=BACKSET(笔低,BARSLAST(笔高)+1);
//VP2:从最近笔高点开始向后标记笔低点
VP3:=(笔低A AND VP2 AND VP1) OR (CROSS(BACKSET(BARSTATUS=2,BARSLAST(笔低A)+1),0.5));
//VP3条件:(满足笔低A且VP2和VP1)或(最后一个K线是笔低点)
VP4:=(VP1 AND 笔高A AND VP2) OR (CROSS(BACKSET(BARSTATUS=2,BARSLAST(笔高A)+1),0.5));
//VP4条件:(满足VP1且笔高A和VP2)或(最后一个K线是笔高点)
DRAWLINE1(VP3,LOW,VP4,HIGH,0),COLORLIGHTRED,LINETHICK2;
//绘制红色线段:从VP3低点到VP4高点
DRAWLINE1(VP4,HIGH,VP3,LOW,0),COLORLIGHTGREEN,LINETHICK2;
//绘制绿色线段:从VP4高点到VP3低点
T1:=BACKSET(ISLASTBAR,SUMBARS(VP3||VP4,2));
//T1:标记最后两个VP3或VP4点
DRAWSL(CROSS(T1,0.5) && VP3,VALUEWHEN(VP4,HIGH),0,-SUMBARS(VP4,1)+1,0,COLORRED),LINETHICK2;
//绘制红色趋势线:从VP3点开始,参考VP4高点
DRAWSL(CROSS(T1,0.5) && VP3,LOW,0,-SUMBARS(VP4,1)+1,0,COLORRED),LINETHICK2;
//绘制红色趋势线:从VP3低点开始
DRAWSL(CROSS(T1,0.5) && VP3,LOW+0.382*(VALUEWHEN(VP4,HIGH)-LOW),0,-SUMBARS(VP4,1)+1,0,COLORRED),LINETHICK2;
//绘制红色趋势线:从VP3低点+0.382倍(VP4高点-VP3低点)开始
DRAWSL(CROSS(T1,0.5) && VP4,HIGH,0,-SUMBARS(VP3,1)+1,0,COLORRED);
//绘制红色趋势线:从VP4高点开始
DRAWSL(CROSS(T1,0.5) && VP4,VALUEWHEN(VP3,LOW),0,-SUMBARS(VP3,1)+1,0,COLORRED);
//绘制红色趋势线:从VP4点开始,参考VP3低点
DRAWSL(CROSS(T1,0.5) && VP4,VALUEWHEN(VP3,LOW)+0.382*(HIGH-VALUEWHEN(VP3,LOW)),0,-SUMBARS(VP3,1)+1,0,COLORRED);
//绘制红色趋势线:从VP3低点+0.382倍(VP4高点-VP3低点)开始