通达信与飞狐函数 不同函数的替代

[复制链接]
查看263 | 回复0 | 2021-8-19 15:44:31 | 显示全部楼层 |阅读模式

以下是通达信与飞狐函数 不同函数的替代(无源码的请下载附件导入)

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

 改成飞狐的: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<VAL2时,填充COLOR2,这里的颜色均使用RGB函数计算得到。
 例如: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<Temp1,回归斜率线A,Temp1),ColorGreen;

 ===========================

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

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

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

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

 价格:=REF(MA(CLOSE,14),2); //飞狐
 价值:=EMA(CLOSE,4); // 飞狐
 分钟 15分钟 30分钟 60

 ===========================
通达信函数const在飞狐中用以下公式代替.
x:=xxx; {xxx为你要取值公式}
cx:x[DATACOUNT];
 

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则