仿照上述代码原理,可以制作其它的实时图叠加副图指标,譬如obv指标等。
注意:实时图不支持绘图函数所画的曲线。另外,实时图叠加指标时,指标线宜不过多,以免眼花缭乱。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
补充:
一、飞狐新版本,可以支持绘图函数画线了。
二、关于分时图副图叠加指标(摘自博庭论坛,详情参见:
http://www.foxtrader.net/communi ... &threadid=51736)
细想了一下,可以用变通的办法,即人工抹去原有的分时副图指标线,从而实现在分时副图显示指标,参考代码如下:
////////****** 计算指标变换所需的公共数据 *******
rc:=DYNAINFO(3);//前收
q:=datacount;
hh:=DYNAINFO(5);//最高
LL:=DYNAINFO(6);//最低
f:=max(hh-rc,rc-LL);
////////////////////////////////////////////////////////////////
////////****** ㈠副图1叠加RSI指标线******(共3个步骤完成指标变换)
//副图1变换所需数据
q1h:=rc-f*1.02;//分时副图1最高位置
q1l:=rc-2*f*1.016;//分时副图1最低位置,同时也是分时副图2最高位置
//以下清除原来的指标线
FILLRGN(1,q1h,q1l),colorblack;//清除原始的副图指标线
cz:=(q1h-q1l)/6;//横线间隔
q1l+cz,POINTDOT,color0000cc;//画横坐标线
q1l+2*cz,POINTDOT,color0000cc;
q1l+3*cz,POINTDOT,color0000cc;
q1l+4*cz,POINTDOT,color0000cc;
q1l+5*cz,POINTDOT,color0000cc;
//①以下计算RSI1的最大、最小值
R:="rsi.rsi1";
Rh:=hhv(r,0);//RSI1最大值
RL:=LLv(r,0);//RSI1最小值
//②计算缩放比例、平移值
Rb:=(q1h-q1l)/(RH[q]-RL[q]);//RSI缩放比例
Ry:=(q1h+q1l-rb*(RH[q]+RL[q]))/2;//RSI平移值
//③变换原来的RSI1到分时副图1
r*rb+ry;//在分时副图1,显示变换后的RSI1
"rsi.rsi2"*rb+ry;
"rsi.rsi3"*rb+ry;
/////////////////////////////////////////////////////////////////
////////******** ㈡在副图2叠加kd ********
//副图2变换所需数据
q2h:=rc-2*f*1.019;//分时副图2最高位置
q2l:=rc-3*f*1.014;//分时副图2最低位置
//以下清除原始的指标线,并画横坐标线
FILLRGN(1,q2h,q2l),colorblack;
cz:=(q2h-q2l)/6;
q2l+cz,POINTDOT,color0000cc;
q2l+2*cz,POINTDOT,color0000cc;
q2l+3*cz,POINTDOT,color0000cc;
q2l+4*cz,POINTDOT,color0000cc;
q2l+5*cz,POINTDOT,color0000cc;
k:="kdj.k";
d:="kdj.d";
kH:=hhv(k,0);
kL:=LLv(k,0);
kb:=(q2h-q2l)/(kH[q]-kL[q]);//缩放比例,选K来计算缩放比例,是因为K的最大值大于D的最大值
ky:=(q2h+q2l-kb*(kH[q]+kL[q]))/2;//平移值
k*kb+ky;//副图2显示原来的K指标线
d*kb+ky;//副图2显示原来的D指标线
南客
2007.6.18
///////////////////////////////////////////////////////////////////////////