企业目录:股票入门基础知识 » 资讯 » 飞狐公式 » 文章详细

飞狐公式,通达信与飞狐公式相互转换

来源:通达信与飞狐公式相互转换 浏览:48次 时间:2020-02-01
通达信与飞狐公式相互转换

1. DRAWNULL与PartLine()
通达信:
DRAWNULL 无效数
返回无效数。
用法: DRAWNULL
例如: IF(CLOSE>REF(CLOSE,1),CLOSE,DRAWNULL) 表示下跌时分析图上不画线,反之上涨的话,就要划线。

有人也认为:可用0代替DarwNull

改成飞狐的:PartLine(CLOSE>REF(CLOSE,1),CLOSE); 只需要把IF(CLOSE>REF(CLOSE,1),CLOSE,DRAWNULL) 拷贝到PartLine中就可以了

2. OPENMINUTES(TIME)与FROMOPEN()
飞狐:
例如:OPENMINUTES(CURRENTTIME),在日线上可得到现在已开盘分钟数
OPENMINUTES(TIME),在分钟线上可得到当时已开盘分钟数

通达信:
FROMOPEN 分钟
求当前时刻距开盘有多长时间。
用法: FROMOPEN 返回当前时刻距开盘有多长时间,单位为分钟。
例如:  FROMOPEN 当前时刻为早上十点,则返回31。

3. REFDATE 与 Refx
通达信:
REFDATE 指定引用
引用指定日期的数据。
用法: REFDATE(X,A) 引用A日期的X值。
例如: REF(CLOSE,20011208) 表示2001年12月08日的收盘价。

飞狐:Refx:REFX(CLOSE,1)表示后一周期的收盘价,在日线上就是明收


4.NODraw与LineThick0
通达信:NODRAW是不画线
来自网络:关于无效数的问题
所谓无效数即指没有数据。在某些情况下,一些数据项可能取不到数据,这时返回值为无效数。例如,MA(CLOSE,500),其含义是该股票最近500天收盘价的均价,如果有些公司上市时间较短没有500天,则其值为无效数。反应在分析图上则该指标线不显示。在TDX分析系统中函数NODRAW代表无效数,可作为常数使用。
无效数与任何数作计算,其结果仍为无效数。例如:7*NODRAW得到的结果仍为NODRAW。


飞狐:LINETHICK0 表示不画出指标线,不影响坐标,但可在顶部显示数值。

5公式符号:通达信的!= 等于 飞狐的<>
飞狐的计算符:计算符将函数连接成为语句。计算符分为算术计算符和逻辑计算符。算术计算符有+、-、*、/,分别是对计算符两边的数值进行加减乘除计算;逻辑计算符有>、<、<>、>=、<=、=、AND、OR,分别是对计算符两边的数值做大于、小于、不等于、大于等于、小于等于、等于、逻辑与、逻辑或的逻辑运算,如果逻辑条件成立返回的计算结果为1,否则为0。例如:2>1的逻辑运算结果等于1,1>2的逻辑运算结果就等于0。

通达信计算符:


6. DRAWICON图标对应关系
飞狐:在图形上绘制小图标,其中TYPE可选7种图标,编码为1-15(1-3为小脸,4、5为上下箭头,6、7为红绿小旗,8-9为三角形,10-12为信号灯,13-15为O、X、四方形)。TYPE为字符串时可显示用户自制BMP图。
DRAWICON(CLOSE>OPEN,LOW,1);表示当收阳时在最低价位置画1号图
DRAWICON(C>O, L, 'MyBMP')表示当收阳时在最低价位置画FmlDLL子目录下的自制图标MyBMP.BMP

通达信:
DRAWICON 绘制图标
在图形上绘制小图标。
用法: DRAWICON(COND,PRICE,TYPE),当COND条件满足时,在PRICE位置画TYPE号图标。
例如: DRAWICON(CLOSE>OPEN,LOW,1) 表示当收阳时在最低价位置画1号图标。图标一共有九个,图形如附图。序号,最下面的是“1”号,最上面的是“9”号。



7. EXPMEMA, EXPMA, EMA
下面是通达信的解释:
EXPMEMA同EMA(即EXPMA)的差别在于他的起始值为一平滑值
RANGE 介于某个范围之间
用法: RANGE(A,B,C) A在B和C。
例如: RANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0

EMA(或EXPMA) 指数移动平均
返回指数移动平均。
用法: EMA(X,M) X的M日指数移动平均。


通达信里,请不要将函数WMA简单地用EXPMA代替:
在飞狐里,EMA的解释为:
别名: 指数平滑移动平均
所属类别: 引用函数  参数数量: 2

求指数平滑移动平均。
用法:
EMA(X,N),求X的N周期指数平滑移动平均。
算法:
若Y=EMA(X,N) 则Y=[2*X+(N-1)*Y']/(N+1), 其中Y'表示上一周期Y值。
例如:
EMA(CLOSE,20)
表示求20日指数平滑均价.
而WMA的解释为:
别名: 加权移动平均
所属类别: 引用函数  参数数量: 2

求加权移动平均。
用法:
WMA(X,A),求X的加权移动平均。
算法:
若Y=WMA(X,A) 则 Y=(N*X0+(N-1)*X1+(N-2)*X2)+...+1*XN)/(N+(N-1)+(N-2)+...+1)X0表示本周期值,X1表示上一周期值...
例如:
WMA(CLOSE,20)
表示求20日加权均价

能不能在通达信里实现WMA的算法呢?应该能.先在飞狐里根据WMA的计算方法找到替代公式,例:在飞狐里输入
wma(c,5);
(5*C+4*REF(C,1)+3*REF(C,2)+2*REF(C,3)+1*REF(C,4))/(5+4+3+2+1);
可以发现两条线完全相同.

8. NUMTOSTR 与 NUMTOSTRN
数字转换为字符串,NumToStr是飞狐的,NumToStrn这是大智慧的!



9. DRAWBAND 与FillRGN

用法:DRAWBAND(VAL1,COLOR1,VAL2,COLOR2),当VAL1>VAL2时,在VAL1和VAL2之间填充COLOR1;当VAL1
例如:DRAWBAND(OPEN,RGB(0,224,224),CLOSE,RGB(255,96,96));

用法:
FILLRGN(COND,PRICE1,PRICE2),当COND条件满足时,以COLOR填充PRICE1和PRICE2的区间
例如:FILLRGN(MA1>MA2, MA1,MA2),colorred 表示MA1>MA2时以红色填充MA1和MA2之间的区域。

通达信:DRAWBAND(回归斜率线A,RGB(235,0,230),REF(回归斜率线A,2),RGB(0,104,154));
等同于下面的->
飞狐公式:
Temp1:=REF(回归斜率线A,2);
FillRgn(回归斜率线A>Temp1,回归斜率线A,Temp1),ColorRED;
FillRgn(回归斜率线A

10. PLOYLINE
绘图函数太少,目前的线条只有画折线PLOYLINE和画直线DRAWLINE两种,如果要在一条线上画出不同颜色出来就要分割做两条,不象飞狐可以用PARTLINE函数来画线。



11. PERIOD 与 DataType
周期类型值        -1                                                                             10        11        12
飞狐        即时图        分笔成交        1分钟        5分钟        15分钟        30分钟        60分钟        日        周        月        年        多日        多分钟        多秒
通达信                1
分钟        5
分钟        15分钟        30分钟        60分钟        日        周        月        多分钟        多日        季        年       
                                                                                                               

Period: 取得周期类型.
结果从0到11,依次分别是1/5/15/30/60分钟,日/周/月,多分钟,多日,季,年.

用法:
DATATYPE
返回值范围为-1-12,分别表示
即时图、分笔成交、1分钟、5分钟、15分钟、30分钟、60分钟、日、周、月、年、多日、多分钟、多秒

12 XMA
价格:=XMA(CLOSE,14); //通达信
价值:=MEMA(CLOSE,4); //通达信





13比如通达信的“CONST”用发是:CONST(条件);

在飞狐中有两种方法可以修改:

1、    可以用  REFX(条件,DATACOUNT-BARPOS);

2、   可以用   条件[DATACOUNT];

需要注意的是,第二种修改方法,其中的“条件”不能是飞狐系统中的直接函数表达式,比如(H,O,L,C)等,如用到这些数据可以写一句中间表达式过度,比如当“条件”为“C”时,你可以写   CC:=C;  CC[DATACOUNT];   这样就可以和通达信中的 CONST(C); 一样了,第一种方法没有限制,用于修改有大量CONST(条件);函数的通达信指标比较方便,我也常用,用 “REFX”直接替换“CONST”然后在右括号的前面加上“ ,DATACOUNT-BARPOS  ” 就可以了。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

另外附上通达信函数 “ CURRBARSCOUNT 求到最后交易日的周期数”的飞狐修改式:

在飞狐中可以用 “DATACOUNT-BARPOS+1 ”  

KLINE和DRAWKLINE参数前后位置稍微不同