以下是飞狐主图水平并排叠加MACD、KDJ、RSI主图 源码
飞狐主图水平并排叠加MACD、KDJ、RSI主图 源码
{以下显示叠加指针的数值}
k:"kdj.k",linethick,COLORWHITE;
d:"kdj.d",linethick0,COLORYELLOW;
r1:"rsi.rsi1",linethick0,ColorC080FF;
r2:"rsi.rsi2",linethick0,ColorFF8080;
r3:"rsi.rsi3",linethick0,Color87F8F4;
f:"macd.diff",linethick0,Color72C072;
a:"macd.dea",linethick0,ColorE98210;
m:"macd.macd",linethick0,COLORWHITE;
{以下定义叠加区间(在这里是可见K线的范围)}
q:=SYSPARAM(3)-SYSPARAM(2);
p:=SYSPARAM(3);
{以下计算叠加比和叠加平移量}
{1、叠加字段高度}
kh:=hhv(h,q);
kL:=LLv(L,q);
dh:=hhv(max(k,d),q);
dL:=LLv(min(k,d),q);
mh:=hhv(max(f,a),q);
mL:=LLv(max(f,a),q);
rh:=hhv(max(max(r1,r2),r3),q);
rL:=LLv(min(min(r1,r2),r3),q);
{2、叠加比}
bd:=(kh-kL)/(dh-dL)/3;
bm:=(kh-kL)/(mh-mL)/3;
br:=(kh-kL)/(rh-rL)/3;
{3、叠加平移量}
wk:=(kh-kL)/3;
wd:=(kh+kL-(dh+dL)*bd)/2-wk[p];
wm:=(kh+kL-(mh+mL)*bm)/2;
wr:=(kh+kL-(rh+rL)*br)/2+wk[p];
{以下画叠加线}{股资源提供:www.guziyuan.cn}
PARTLINE(1,k*bd[p]+wd[p]),COLORWHITE;
PARTLINE(1,d*bd[p]+wd[p])COLORYELLOW;
PARTLINE(1,r1*br[p]+wr[p]),ColorC080FF;
PARTLINE(1,r2*br[p]+wr[p]),ColorFF8080;
PARTLINE(1,r3*br[p]+wr[p]),Color87F8F4;
PARTLINE(1,f*bm[p]+wm[p]),Color72C072;
PARTLINE(1,a*bm[p]+wm[p]),ColorE98210;
STICKLINE(m>0,m*bm[p]+wm[p],wm[p],0.1,0),POINTDOT,COLORMAGENTA;
STICKLINE(m<0,m*bm[p]+wm[p],wm[p],0.1,0),POINTDOT,COLORGREEN;
{以下画叠加指针的横坐标线}
PARTLINE(1,wm[p]),COLORWHITE;
PARTLINE(1,20*br[p]+wr[p]),COLORGREEN,POINTDOT;
PARTLINE(1,80*br[p]+wr[p]),COLORred,POINTDOT;
PARTLINE(1,50*br[p]+wr[p]),COLORYELLOW,POINTDOT;
PARTLINE(1,20*bd[p]+wd[p]),COLORGREEN,POINTDOT;
PARTLINE(1,80*bd[p]+wd[p]),COLORred,POINTDOT;
PARTLINE(1,50*bd[p]+wd[p]),COLORYELLOW,POINTDOT;
{以下显示叠加指针的横坐标值}
DRAWTEXT(p=BARPOS,(80*br[p]+wr[p])*1.015,'80\nrsi')COLORWHITE,ALIGN0;
DRAWTEXT(p=BARPOS,(50*br[p]+wr[p])*1.015,'50\nrsi')COLORWHITE,ALIGN0;
DRAWTEXT(p=BARPOS,(20*br[p]+wr[p])*1.015,'20\nrsi')COLORWHITE,ALIGN0;
DRAWTEXT(p=BARPOS,(20*bd[p]+wd[p])*1.015,'20\nkdj')COLORWHITE,ALIGN0;
DRAWTEXT(p=BARPOS,(50*bd[p]+wd[p])*1.015,'50\nkdj')COLORWHITE,ALIGN0;
DRAWTEXT(p=BARPOS,(80*bd[p]+wd[p])*1.015,'80\nkdj')COLORWHITE,ALIGN0;
DRAWTEXT(p=BARPOS,wm[p]*1.015,'0\nmacd')COLORWHITE,ALIGN0;A:=BACKSET(ISLASTBAR,BARSLAST(CROSS(K,D))+1);