分笔分段飞狐公式
悟多公式
{新笔段}
var1:="chzhshch@kxian";
var2:="chzhshch@bi";{处理笔关系}
//drawline(var2=1,h,var2=-1,l,0),linedot,coloryellow;
//drawline(var2=-1,l,var2=1,h,0),linedot,coloryellow;
if DATAPERIOD>1 then
begin
drawline(var2=1,h,var2=-1,l,0),linedot,coloryellow;
drawline(var2=-1,l,var2=1,h,0),linedot,coloryellow;
end;
var3:="chzhshch@duan";{处理段关系}
//drawnumber(var2=1,h,h,2),pxup20,colormagenta,align2;
//drawnumber(var2=-1,l,l,2),pxdn5,colorgreen;
//drawline(var3=1,h,var3=-1,l,0),colorFF6600;
//drawline(var3=-1,l,var3=1,h,0),colorFF6600;
drawline(var3=1,h,var3=-1,l,0),color808040;
drawline(var3=-1,l,var3=1,h,0),color808040;
//----------------------不想显示分型线的,把下面全部删除掉就可以了.
if DATAPERIOD<6 then //and
(STKLABEL='1A0001' or stklabel='399001') then//日线以上不显示
begin
fx30:"fbase.fx#min30",linethick0;
fx60:"fbase.fx#min60",linethick0;
fxday:"fbase.fx#day",linethick0;
//fxweek:"FENXING#week",linethick0;
drawtext(islastbar and fx30>0
,fx30,'--------30分
'),colorwhite,align2,pxup10;
DRAWNUMBER(islastbar and fx30>0
,fx30,fx30,2),align2,colorwhite,pxup10;
drawtext(islastbar and fx60>0 and
fx60>=fx30 ,fx60,'------60分
'),colorgreen,align2,pxup10;
DRAWNUMBER(islastbar and fx60>0 and
fx60>=fx30
,fx60,fx60,2),align2,colorgreen,pxup10;
drawtext(islastbar and fxday>0 and
fxday>=fx60,fxday ,'----日线
'),colormagenta,align2,pxup10;
DRAWNUMBER(islastbar and fxday>0 and
fxday>=fx60,fxday,fxday,2),align2,colormagenta,pxup10;
{drawtext(islastbar and fxw>0,fxw,'--周线
'),colorred,align2,pxup10;
DRAWNUMBER(islastbar and
fxw>0,fxw,fxw,2),align2,colorred,pxup10;
}
end;
2、金魔方的悟多公式
-----------------------------------------------------------------------
因为金魔方对几个函数和语法作了修改,所以需要对悟多公式进行一些修改才能在金魔方上使用。
有以下两点改变:
1.dataPeriod,金语言进行了改变,不再返回0,1,2,3....,而是返回P_TICK,P_MIN1等常量,这样更容易理解和记忆。但就造成了不兼容。而dataType依然保留以前的0,1,2,3方式,所以把datePeriod改为dataType
2.金语言的DLL调用语法是后面必须有()。
-----------------------------------------------------------------------
第一步:先把chzhshch.dll复制进金魔方的文件包FmlDll里(注:\盘符\KingTrader\FmlDll\)
第二步:建立fbase公式:(注:在程式交易->公式编辑器下新建或修改Fbase公式)
公式源码:
//本公式只是为了引用,不必调入
fx:"chzhshch@fenxing"(),OwnerScale;
var1:"chzhshch@kxian"(),OwnerScale;
var2:"chzhshch@bi"(),OwnerScale;//处理笔关系
var3:"chzhshch@duan"(),OwnerScale//处理段关系
第三步:建立悟多笔段公式
公式源码:
//悟多笔段
SH000001 P_DAY
#mainchart
if dataType=0 then
minbi:="fbase.var2#min1";
if dataType=1 then
minbi:="fbase.var2#min5";
if dataType=2 then
minbi:="fbase.var2#min30";
if dataType=3 then
minbi:="fbase.var2#min60";
if dataType=4 then
minbi:="fbase.var2#day";
if dataType=5 then
minbi:="fbase.var2#day";
if dataType=6 then
minbi:="fbase.var2#week";
if dataType=7 then
minbi:="fbase.var2#month";
if dataType=8 then minbi:="fbase.var2#year";
var1:="chzhshch@kxian"();
var2:="chzhshch@bi"();{处理笔关系}
var3:="chzhshch@tongji"(minbi);{同级别分解}
zg:="chzhshch@zg"(var3);//一定要先调用ZG
zd:="chzhshch@zd"(var3);
pre:=2; //设置小数点位数
if STKTYPE=0
then pre:=1;
if STKTYPE=11 then pre:=3;
//以背景块的形式画中枢
stickline(zg>zd,zg,zd,10,0),color000055;
drawline(var2=1,h,var2=-1,l,0),linedot,coloryellow;
drawline(var2=-1,l,var2=1,h,0),linedot,coloryellow;
drawline(var3=1,h,var3=-1,l,0),colorFF6600;
drawline(var3=-1,l,var3=1,h,0),colorFF6600;
//以框的形式画中枢
{
stickline(zg>zd and
zg<>ref(zg,1),zg,zd,2,0),COLORMAGENTA;
stickline(zg>zd and
zg<>refx(zg,1),zg,zd,2,0),COLORMAGENTA;
drawline(zg>zd and zg<>ref(zg,1),zg,zg>zd and
zg<>refx(zg,1),zg,0),COLORMAGENTA;
drawline(zg>zd and zd<>ref(zd,1),zd,zg>zd and
zd<>refx(zd,1),zd,0),COLORMAGENTA;
}
var1:="chzhshch@kxian"();
var2:="chzhshch@bi"();{处理笔关系}
if dataType<=1 then
begin var2:=var3;{处理段1分钟的关系}
end;
pre:=2; {设置小数点位数}
if STKTYPE=0
then pre:=1;
if STKTYPE=11 then pre:=3;
a1:=barslast(var2<>0);
a2:=ref(var2,a1);
aa1:=ref(a1+1,1);
aa2:=ref(a2,1);
a3:=if
(aa2>0,l-ref(h,aa1),h-ref(l,aa1)),linethick0;{计算点位差}
//显示点位
drawnumber(var2=1,h,h,pre),pxup65,color3300ff,align0;
drawnumber(var2=-1,l,l,pre),pxdn50,colorffff00,align0;
//显示力度
drawtext(var2=1,h,'+')colormagenta,pxup20,align2;
drawnumber(var2=1,h,a3,pre),colormagenta,pxup20;
drawnumber(var2=-1,l,a3,pre),colorgreen,pxdn5,align0;
//显示周期数
drawtext(var2=1,h,'T'),pxup45,coloryellow,align1;
drawnumber(var2=1,h,aa1,0),coloryellow,pxup45,align2;
drawtext(var2=-1,l,'T'),pxdn30,coloryellow,align1;
drawnumber(var2=-1,l,aa1,0),coloryellow,pxdn30,align2;
kline(o,h,l,c,1);
stickline(dataType=6 and
c/ref(c,1)>=1.097,o,c,8,1);
//显示最后没完成的点位
aa9:=hhv(h,a1);
aa11:=llv(l,a1);
drawnumber( islastbar and
a2=-1,aa9,aa9,pre),align2,color3300ff;
drawnumber( islastbar and
a2=1,aa11,aa11,pre),align2,colorffff00;
//显示最后没完成的力度
drawtext( islastbar and a2=-1,
aa9,'+
'),align2,colormagenta,pxdn20;
drawnumber( islastbar and a2=-1,
aa9,a3,pre),align2,colormagenta,pxdn20;
drawnumber( islastbar and a2=1,
aa11,a3,pre),align2,colorgreen,pxup20;
//显示最后没完成的周期
drawtext( islastbar and
a2=-1, aa9,'T'),coloryellow,align1,pxdn40;
drawnumber(islastbar and
a2=-1, aa9,aa1,0),coloryellow,align2,pxdn40;
drawtext( islastbar and a2=1,
aa11,'T'),coloryellow,align1,pxup40;
drawnumber(islastbar and a2=1,
aa11,aa1,0),coloryellow,align2,pxup40;
========================================================
如有重影的现象,选择主图指标 还是有红圈住的重影
可将
kline(o,h,l,c,1)改为
kline(o,h,l,c,0)就好了。
3、悟多在2016年发布的通达信版本公式
通达信软件,每个券商都有oem版本,适用范围广。以前通达信不支持dll公式,所以用飞狐软件做的分笔分段公式,无奈飞狐被收购后,越做越烂!
有网友告知通达信去年就支持dll了,熊市空闲多,就做了这个通达信版本的。
本帖最后由 悟多 于 2016-3-12 18:34 编辑
通达信软件,每个券商都有oem版本,适用范围广。以前通达信不支持dll公式,所以用飞狐软件做的分笔分段公式,无奈飞狐被收购后,越做越烂!
有网友告知通达信去年就支持dll了,熊市空闲多,就做了这个通达信版本的。
使用方法:
1.解压缩文件,到 通达信目录\T0002\DLLS
2.运行通达信软件,找到公式管理器,绑定dll,注意一定要绑定8号dll
3.导入分笔分段公式
4.下载通达信数据,补全本地日线和分钟数据。
==============================================
以下为公式,本人为准确分析走势综合了均线系统,添加了一组均线,均线参数(5,20,60,144,233);
{请确保本地数据齐全,点系统-盘后数据下载,补全数据日线和1,5分钟数据}
{尽量按照定义,但为符合走势,略有特殊处理}
VAR2:=TDXDLL8(1,PERIOD,H,L);{得到笔}
DRAWLINE(VAR2=1,H,VAR2=-1,L,0),DOTLINE,COLORYELLOW;
DRAWLINE(VAR2=-1,L,VAR2=1,H,0),DOTLINE,COLORYELLOW;
VAR3:=TDXDLL8(2,0,0,0);{得到段}
DRAWLINE(VAR3=1,H,VAR3=-1,L,0),COLORFF6600;
DRAWLINE(VAR3=-1,L,VAR3=1,H,0),COLORFF6600;
DRAWNUMBER(VAR3=1,H,H),COLORMAGENTA,DRAWABOVE;
DRAWNUMBER(VAR3=-1,L,L),COLORGREEN;
MA(CLOSE,5),COLORFCFCFC;
MA(CLOSE,20),COLOR9932CC,LINETHICK1;
MA(CLOSE,60),LINETHICK2;
MA(CLOSE,144),COLORLIGRAY;
MA(CLOSE,233),COLORYELLOW;
{和飞狐版的分笔分段一样,BY悟多};
DRAWRECTREL(0,965,130,999,RGB(0,0,1)),NOFRAME;
{DRAWTEXT_FIX(1,0,1,0,'
本公式仅供学习缠论参考'),COLORYELLOW;};
==================================================