发新话题
打印

飞狐实时主图,叠加副图公式代码示例二则(新增分时副图内容2007.6.18)

飞狐实时主图,叠加副图公式代码示例二则(新增分时副图内容2007.6.18)

飞狐支持实时图显示“主图叠加指标”,因此可以巧妙利用公式代码,把原副图指标叠加到实时图上。

以macd、kd指标为例,代码如下:
一、实时图叠加macd:
复制内容到剪贴板
代码:
if datatype>0 then exit; //仅分笔周期及实时图运行本公式
yy:="macd.diff";
yy1:="macd.dea";
gc:=2;
gm:=datacount;kh:=DYNAINFO( 5);kl:=DYNAINFO( 6);
  tmp:=hhv(yy,0);
  yy_max:=tmp[gm];
  tmp:=llv(yy,0);
  yy_min:=tmp[gm];
  yy_bl:=(kh-kl)/(yy_max-yy_min);
  yy_py:=kh-yy_max*yy_bl;
DIF主图叠加:yy*yy_bl+yy_py,colormagenta;
DEA:yy1*yy_bl+yy_py,colorblue;
yy_py,POINTDOT;
{注意,公式类型必须是“主图叠加”}

TOP

效果如下:
附件: 您所在的用户组无法下载或查看附件

TOP

二、实时图叠加KD指标:
复制内容到剪贴板
代码:
if datatype>=0 then exit; //公式仅运行于实时图
yy:="kdj.k";
yy1:="kdj.d";
gc:=2;
gm:=datacount;kh:=DYNAINFO( 5);kl:=DYNAINFO( 6);
  tmp:=hhv(yy,0);
  yy_max:=tmp[gm];
  tmp:=llv(yy,0);
  yy_min:=tmp[gm];
  yy_bl:=(kh-kl)/(yy_max-yy_min);
  yy_py:=kh-yy_max*yy_bl;
k主图叠加:yy*yy_bl+yy_py,colormagenta;
D:yy1*yy_bl+yy_py,colorblue;
yy_py+50*yy_bl,POINTDOT;

TOP

效果如下:
附件: 您所在的用户组无法下载或查看附件

TOP

仿照上述代码原理,可以制作其它的实时图叠加副图指标,譬如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
///////////////////////////////////////////////////////////////////////////

TOP

学习,谢谢南客朋友,谢谢飞狐软件。

TOP

引用:
Originally posted by 南客 at 2005-6-12 05:53 PM:
仿照上述代码原理,可以制作其它的实时图叠加副图指标,譬如obv指标等。

注意:实时图不支持绘图函数所画的曲线。另外,实时图叠加指标时,指标线宜不过多,以免眼花缭乱。
谢谢南客老师!我也学了手。
看上去叠加的挺漂亮,加1分!

学无止境^_^不断进步



TOP

谢谢南客老师!
缺口代表力量

TOP

go on...

TOP

谢谢南客老师!

TOP

谢谢南客老师!
举一反三 了

TOP

hh

TOP

谢谢!有新意.
股市之道:修心养性,战胜自我.

TOP

谢谢南客老师

TOP

感谢南客老师!

TOP

学习`

TOP

谢谢南客老师!

TOP

太谢谢了!

TOP

谢谢南客,学到很多!

TOP

谢谢南客老师!
至誠能勝天下至偽
至拙能勝天下至巧

TOP

多谢南客老师!今天才看到,严重失职。

TOP

谢谢南客老师!

TOP

谢谢,学习

TOP

谢谢南客老师 , 学习.

TOP

发新话题
报警岗亭