: | : | :期货量化学习 | :期货量化 |
返回列表 发帖

文华财经模型与函数详解二

文华财经模型与函数详解二

4.逻辑判断



BETWEEN(A,B,C)
判断条件“A位于B及C之间”是否成立,如果条件成立则返回1 (yes),否则返回0 (no)。

例:BETWEEN(CLOSE,MA5,MA40); 表示收盘价介于5日均线与40日均线之间。
CROSS(X,Y)
表示X上穿Y。

例:CROSS(CLOSE,MA(CLOSE,5));表示收盘线从下方向上穿过5日均线
FILTER(COND,N)过滤连续出现的信号。

用法:

FILTER(COND,N) 当COND条件成立时,将其后N周期内的数据置为0。

例:FILTER(CLOSE>OPEN,3) 查找阳线,3天内再次出现的阳线不被记录在内

注:不能与BKPRICE,BARSBK,SKPRICE,BARSSK一起使用
EXIST(COND,N)
判断N个周期内是否有满足条件COND的情况发生。

例:EXIST(CLOSE>REF(HIGH,1),10);表示10个周期中是否存在收盘价大于前一个周期的最高价
EVERY(COND,N)
判断过去N个周期内是否一直满足条件COND。

例:EVERY(CLOSE>OPEN,5);表示5个周期内一直是阳线
LAST(COND,N1,N2)
判断过去N1到N2周期内是否一直满足条件COND。

例:LAST(CLOSE>OPEN,10,5);表示从过去第10个周期到第5个周期内一直是阳线
LONGCROSS(A,B,N)
如果A在前N个周期内都小于B,本周期上穿B,则返回1。否则返回0。

例:LONGCROSS(CLOSE,MA(CLOSE,10),20);表示收盘线在10日均线之下持续20周期后从下向上穿过10日均线
IFELSE(C,A,B)如果条件C成立则取A值,否则取B值

例:A:=IFELSE(MA5>MA10,CROSS(DIFF,DEA),IFELSE(CROSS(D,K),2,0));当MA5>MA10时,取是否满足DIFF上穿DEA,否则(MA5不大于MA10),当K,D死叉时,令A赋值为2,若上述条件都不满足,A赋值为0

A=1,BPK;//当MA5>MA10,以DIFF上穿DEA作为开多仓条件

A=2,SPK;//当MA5不大于MA10,以K D死叉作为开空仓条件
ISDOWN
判断该周期是否收阴。
ISEQUAL
判断该周期是否平盘。
ISUP
判断该周期是否收阳。
VALUEWHEN(COND,DATA)
当条件COND满足时,取当时的DATA的值,否则取得前面一个满足条件COND的值。

例:VALUEWHEN(HIGH>REF(HIGH,5),HIGH);表示当前最高价大于前五个周期最高价的最大值时返回当前最高价。

5.数学运算



ABS(X)
求X的绝对值

例:ABS(SAR(17,0.03,0.3));返回抛物转向SAR(17,0.03,0.3)的绝对值。
ACOS(X)
求X的反余弦值
ASIN(X)
求X的反正弦值
ATAN(X)
求X的反正切值
COS(X)
返回X的余弦值
EXP(X)
返回e的X次幂
CUBE(X)返回X的三次方。
CEILING(X)
向上舍入,返回沿X数值增大方向最接近的整数。
FLOOR(X)
向下舍入,返回沿X数值减小方向最接近的整数。
INTPART(X)
取X的整数部分,返回沿X绝对值减小方向最接近的整数。
LN(X)
得到X的自然对数,以e为底的对数。

例:LN(OPEN);求开盘价的自然对数。
LOG(X)
得到X的常用对数,取得X的以10为底的对数。

例:LOG(OPEN);求开盘价的以10为底的对数。
MAX(A,B)
求A,B中的较大者。

例:MAX(CLOSE-OPEN,0);表示若收盘价大于开盘价返回它们的差值,否则返回0。
MIN(A,B)
求A,B中的较小者。

例:MIN(OPEN,CLOSE);返回开盘价和收盘价中的较小值。
MOD(A,B)
返回A对B得到模。

例:MOD(CLOSE,500);收盘价除以500所得余数
NOT(X)
当X为0时返回1,否则返回0。

例:NOT(TIME=090530);表示该周期对应的时间不是9:05:30AM。
POW(A,B)
得到A的B次幂。

例:POW(CLOSE,2);求得收盘价的2次方。
REVERSE(X)
取反,返回符号相反的数值。

例:REVERSE(LOW);返回-LOW。
RANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0
SGN(X)
得到X的符号,如果X>0则返回1,如果X<0则返回-1,否则返回0。
SIN(X)
得到X的正弦值。
SQRT(X)
得到X的平方根。

例:SQRT(CLOSE);收盘价的平方根。
SQUARE(X)
得到X的平方。

例:SQUARE(CLOSE);收盘价的平方。
TAN(X)
得到X的正切值。


6.时间函数



BARPOS
取得当前K线的位置。
DATE
取得当前周期的日数(700101-341231)。
DAY
取得当前周期的日数(1-31)。
HOUR
取得当前周期的小时数(0-23)。
MINUTE
取得当前周期的分钟数(0-59)。
MONTH
取得当前周期的月数(1-12)。
TIME
取得当前周期的时间数(0-2359),秒级周期返回值范围为:0-235959。
WEEKDAY
取得当前周期的星期数(0-6)。
YEAR
取得当前周期的年数(1970-2034)。
CLOSEMINUTE距收盘前时间。

用法:

CLOSEMINUTE 返回当前系统时间距收盘前的时间(单位:分钟),方便收盘前及时平仓。

例:TIME>1445&&CLOSEMINUTE=1,SP;//距闭市还有1分钟平多单。


7.绘图



BACKGROUNDSTYLE(i)设置背景的样式。

用法:

BACKGROUNDSTYLE(i)设置背景的样式。

i = 0 或 1。
DRAWLINE(C1,P1,C2,P2,COLOR)
当条件C1及C2均满足时,从P1画直线到P2,颜色为COLOR。

例:DRAWLINE(MA18< CLOSE,OPEN,MA5 >CLOSE,CLOSE,COLORCYAN); 表示当收盘价大于18日均线并且小于5日均线时,从开盘价画青色直线到收盘价。
DRAWTEXT(C,P,TEXT)
表示当条件C满足时在P上写TEXT文字。

例:DRAWTEXT(CLOSE< OPEN&&REF(CLOSE,1)< REF(OPEN,1) &&REF(VOL,1)*1.1< VOL,LOW,'注'); 表示连续两日收阴并且成交量比前一日至少多10%时,在最低价上写“注”字。
DRAWSL(COND,DATA,SLOPE,LEN,EXPAND,

COLOR)
画斜线,当条件COND满足时,从DATA开始以每个周期相差SLOPE个点的斜率画斜线,划线长度为LEN个周期,EXPAND为线段的延长方式(0:不延伸;1:向左延伸;2:向右延伸;3:双向延伸)。

例:DRAWSL(LOW=LLV(LOW,50),LOW,5,3,2,COLORRED); 表示当前最低价等于50周期内的最小值时,从当前最小值开始以每隔5个点的斜率画长度为3个周期向右延伸的斜线,颜色为红色
DRAWNUMBER

(COND,DATA,NUMBER,PRECISION,COLOR)
画数字。当条件COND满足时,在DATA位置写数字NUMBER(为数组),精度为PRECISION(小数点后有几位数字)。

例:DRAWNUMBER(CLOSE/OPEN>1.08,HIGH,(CLOSE-OPEN)/OPEN*100,2,COLORRED); 表示当日涨幅大于8%时在最高价位置显示涨幅(相对开盘价的百分比)。
FILLRGN

(COND,DATA1,DATA2,COLOR)
填充区域,当条件COND满足时,填充DATA1及DATA2包围的区域。

例:FILLRGN(MA5>MA10,MA5,MA10,COLORRED); 表示MA5>MA10时以红色填充MA5和MA10之间的区域。
POLYLINE

(COND,DATA,COLOR)
画折线,当条件COND满足时,连接各个DATA点。

例:POLYLINE(CLOSE>=HHV(CLOSE,100),CLOSE,COLORRED); 表示在收盘价创100天新高点之间画折线。
PARTLINE

(COND,DATA,COLOR)
同POLYLINE。

例:PARTLINE(HIGH>REF(HIGH,1),HIGH,COLORRED); 表示当期最高价大于前期最高价用红色绘制最高价连线线段。
STICKLINE

(C,P1,P2,Color,Empty)
如果条件C满足时,从P1到P2画柱线,颜色为Color,如果Empty取1,则为空心柱;如果Empty取0,则为实心柱。

例:STICKLINE(OPEN-CLOSE>0,OPEN,CLOSE,COLORCYAN,0); 表示当开盘价大于收盘价时,从开盘价到收盘价画青色的实心柱,即K线阴线的实体部分。
VERTLINE

(COND,COLOR)
画垂直线,当条件COND满足时,画垂直线。

例:VERTLINE(HIGH>=HHV(HIGH,30),COLORRED); 表示在价格创30天新高时画垂直线。
RGB(R,G,B)自定义颜色函数。R,G,B的数值范围都在0~255之间,例:RGB(225,225,225)表示白色
COLORSTICK画彩色柱线
VOLUMESTICK画成交量线
BAMBOOLINE画竹线
CIRCLEDOT画圆
OPISTICK画持仓量柱线
DRAWKLINE自定义K线颜色,实空心及宽度。

用法:

DRAWKLINE(WidthRatio,COLOR1,EMPTY1,COLOR2,EMPTY2)。按照宽度比例WidthRatio画线,阳线以COLOR1和EMPTY1判断,阴线以COLOR2和EMPTY2判断。WidthRadio从0到1,COLOR1、COLOR2代表颜色,Empty非0为空心。

例:DRAWKLINE(0.75,COLORRED,1,COLORCYAN,0);绘制K线宽度比例为0.75,阳线为红色空心,阴线为蓝绿色实心。


8、颜色常数

COLORRED
红色
COLORGREEN
绿色
COLORBLUE
蓝色
COLORMAGENTA
红紫色
COLORYELLOW
黄色
COLORLIGHTGREY
浅灰色
COLORLIGHTRED
浅红色
COLORLIGHTGREEN
浅绿色
COLORLIGHTBLUE
浅蓝色
COLORBLACK
黑色
COLORWHITE
白色
COLORCYAN
青色

9、头寸函数

SETDEALPERCENT设置模型每次下单按资金的比例下单。

用法:

SETDEALPERCENT(fPercent)表示每次按资金的fPercent下单。

例子:SETDEALPERCENT(0.2); //每次按资金比例的%20下单

注:不可与SETDEALVOL函数同时使用

交易系统必须启动

效果测试不执行此函数
SETDEALVOL设置模型每次下单按设置的手数下单。

用法:

SETDEALVOL(nVol)表示每次模型下nVol手单。

例子:SETDEALVOL(2); //模型每次下单2手

注:不可与SETDEALPERCENT函数同时使用

交易系统必须启动

效果测试不执行此函数

10、信号记录函数

BKPRICE
模型买开信号价位。

用法:BKPRICE返回上一次模型买开仓价。
BARSBK
上一次买开信号位置

用法:BARSBK返回上一次买开仓距离当前k线的k线数。
SKPRICE
模型卖开信号价位。

用法:SKPRICE返回上一次模型卖开仓价。
BARSSK
上一次卖开信号位置

用法:BARSSK返回上一次卖开仓距离当前k线的k线数。

11、画线函数



ANGLELINE角度返回值。

用法:

ANGLELINE(COND1,DATA1,COND2,DATA2,RATIO);

从起始位置,以相距最近两根分别满足条件COND1的DATA1值和COND2的DATA2值构成起止点,在角度线段高度比例为RATIO处形成角度线,函数返回K线对应的角度值。。

例:ANGLELINE(C>O,H,O>C,L,1);相距最近的阳线最高价与阴线最低价构成起止点形成角度线,返回K线对应的角度值。
GOLDENLINE黄金分割返回值。

用法:

GOLDENLINE(COND1,DATA1,COND2,DATA2,RATIO);

从起始位置,以相距最近两根分别满足条件COND1的DATA1值和COND2的DATA2值构成起止点,在差额的RATIO比率处形成黄金分割线,返回K线对应的黄金分割值。

例:GOLDENLINE(O>C,H,C>O,H,0.3);相距最近的阴线和阳线,以各自最高价作为起止点,在差额区间内的0.3比率处形成黄金分割线,函数返回K线对应的黄金分割值。
HORIZONTALLINE水平返回值。

用法:

HORIZONTALLINE(COND,DATA);

从起始位置,满足条件COND的DATA值形成水平线,函数返回K线对应的水平值。

例:HORIZONTALLINE(C>O,H);以阳线的最高价为起点,截至下一根阳线为止,返回K线对应的水平值。
TRENDLINES
趋势返回值。

用法:

TRENDLINES(COND1,DATA1,COND2,DATA2);

从起始位置,以相距最近两根分别满足条件COND1的DATA1值和COND2的DATA2值构成起止点形成趋势线,函数返回K线对应的趋势值。

例:TRENDLINES(O>C,H,C>O,H);相距最近的阴线和阳线最高价形成一条趋势线,返回K线对应的趋势值。
WAVERULER波浪尺返回值。

用法:

WAVERULER(COND1,DATA1,COND2,DATA2,COND3,DATA3,RATIO);

从起始位置,以相距最近三根分别满足条件COND1的DATA1值、COND2的DATA2值和COND3的DATA3值构成三点,在第三点偏离前两点差额的RATIO比率处形成波浪尺线,返回K线对应的波浪尺值。

例:WAVERULER(C>O,H,C>O,H,C>O,H,0.3);相距最近的三根阳线,以各自最高价作为三个点,在第三点偏离前两点差额的0.3比率处形成波浪尺线,返回K线对应的波浪尺值。
DRAWANGLELINE画角度线。

用法:

DRAWANGLELINE(COND1,DATA1,COND2,DATA2,RATIO,COLOR);

从起始位置,连接相距最近两根分别满足条件COND1的DATA1值和COND2的DATA2值构成起止点,在线段高度比例RATIO处画角度线,颜色为COLOR,截至下一根满足COND1条件的K线处。

例:DRAWANGLELINE(C>O,H,O>C,L,1,COLORGREEN);连接相距最近的阳线最高价与阴线最低价为起止点,画高度比例为1的绿色角度线,截至下一根阳线为止。
DRAWGOLDENLINE画黄金分割线。

用法:

DRAWGOLDENLINE(COND1,DATA1,COND2,DATA2,RATIO,COLOR);

从起始位置,连接相距最近两根分别满足条件COND1的DATA1值和COND2的DATA2值构成起止点,在差额RATIO比率处画黄金分割线,颜色为COLOR,截至下一根满足COND1条件的K线处。

例:DRAWGOLDENLINE(O>C,H,C>O,H,0.3,COLORGREEN);连接相距最近的阴线和阳线,以各自最高价作为起止点,在差额区间内的0.3比率处画绿色黄金分割线,截至下一根阴线为止。
DRAWHORIZONTALLINE画水平线。

用法:

DRAWHORIZONTALLINE(COND,DATA,COLOR);

从起始位置,满足COND条件K线的DATA值处画水平线,颜色为COLOR,截至下一根满足COND条件的K线处。

例:DRAWHORIZONTALLINE(C>O,H,COLORGREEN);以一根阳线的最高价为起点,画绿色水平线,截至下一根阳线为止。
DRAWTRENDLINE
画趋势线。

用法:

DRAWTRENDLINE(COND1,DATA1,COND2,DATA2,COLOR);

从起始位置,连接相距最近两根分别满足条件COND1的DATA1值和COND2的DATA2值构成起止点,画趋势线,颜色为COLOR,截至下一根满足COND1条件的K线处。

例:DRAWTRENDLINE(O>C,H,C>O,H,COLORGREEN);连接相距最近的阴线和阳线的最高价为起止点,画绿色趋势线,截至下一根阴线为止。
DRAWWAVERULER
画波浪尺线。

用法:

DRAWWAVERULER(COND1,DATA1,COND2,DATA2,COND3,DATA3,RATIO,COLOR);

从起始位置,连接相距最近两根分别满足条件COND1的DATA1值、COND2的DATA2值和COND3的DATA3值构成三点,在第三点偏离前两点差额的RATIO比率处画波浪尺,颜色为COLOR,截至下一根满足COND1条件的K线处。

例:DRAWWAVERULER(C>O,H,C>O,H,C>O,H,0.3,COLORGREEN);连接相距最近的三根阳线,以各自最高价作为三个点,在第三点偏离前两点差额0.3比率处画绿色波浪尺线,截至下一根阳线为止。
WAVEPEAK返回K线图波峰位置。

用法:

WAVEPEAK(N) 如果当前K线最高价大于前后N根K线的最高价返回1,否则返回0。

例:WAVEPEAK(10); //如果当前K线最高价大于前10根K线最高价且大于后10根K线最高价返回1,否则返回0
WAVEVALLEY
返回K线图波谷位置。

用法:

WAVEVALLEY(N) 如果当前K线最低价小于前后N根K线的最低价返回1,否则返回0。

例:WAVEVALLEY(10); //如果当前K线最低价小于前10根K线最低价且小于后10根K线最低价返回1,否则返回0


12、未来函数

#IMPORT
引用某品种在某个周期上加载了某个指标的数据。

用法:

#IMPORT AS VAR。 引用 CODE 所对应的合约 PERIOD 周期下指标 FORMULA 的数据。

CODE 文华码,PERIOD 周期,FORMULA 引用指标名,VAR 定义变量名

注意:1.只能引用 .FML/.XFML文件

2.只能引用如下周期:MIN1 MIN3 MIN5 MIN15 MIN30 HOUR1 DAY WEEK MONTH

3.只能短周期引用长周期

4.被引用的指标中不能存在引用

5.如果不写文华码,默认引用当前合约
PEAK取波峰值。

用法:

PEAK(X,P,M,C) 取得ZIGZAG的前M个波峰的值。

例:PEAK(HIGH,10,1,1);表示最高价的10%的之字转向的上一个波峰的数值;PEAK(MA(HIGH,34),100,1,0);表示34个周期内最高价均线的100个价位的之字转向的上一个波峰的数值。

本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
PEAKBARS取波峰的位置。

用法:

PEAKBARS(X,P,M,C) 取得ZIGZAG的前M个波峰的位置。

例:PEAKBARS(HIGH,10,1,1);表示最高价的10%的之字转向的上一个波峰到当前的周期数;

PEAKBARS(MA(HIGH,34),100,1,0);表示34个周期内最高价均线的100个价位的之字转向的上一个波峰到当前的周期数

本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
TROUGH
求前M个波谷的值。

用法:

TROUGH(X,P,M,C) 求ZIGZAG前M个波谷的值。

例:TROUGH(LOW,10,1,1);表示最低价的10%的之字转向的上一个波谷的数值;

TROUGH (MA(LOW,34),100,1,0);表示34个周期内最低价均线的100个价位的之字转向的上一个波谷的数值

本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用
TROUGHBARS求前M个波谷的位置。

用法:

TROUGHBARS(X,P,M,C) 求前M个波谷的位置。

TROUGH(LOW,10,1,1);表示最低价的10%的之字转向的上一个波谷到当前的周期数;

TROUGH (MA(LOW,34),100,1,0);表示34个周期内最低价均线的100个价位的之字转向的上一个波谷到当前的周期数

本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
ZIGZAG求之字转向。

用法:

ZIGZAG(X,N,C)求X的在条件N下的之字转向值。

例:ZIGZAG(HIGH,10,1);表示最高价的10%的之字转向ZIGZAG(MA(HIGH,34),100,0);表示34个周期内最高价均线的100个价位的之字转向
ISLASTBAR
判断该周期是否为最后一根k线。

用法:

ISLASTBAR 如果是最后一个K线返回1(Yes),否则返回0(No)

本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!

论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
 
期货论坛 - 版权/免责声明   1.本站发布源码(包括函数、指标、策略等)均属开放源码,用意在于让使用者学习程序化语法撰写,使用者可以任意修改语法內容并调整参数。仅限用于个人学习使用,请勿转载、滥用,严禁私自连接实盘账户交易
  2.本站发布资讯(包括文章、视频、历史记录、教材、评论、资讯、交易方案等)均系转载自网络主流媒体,内容仅为作者当日个人观点,本网转载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网不对该类信息或数据做任何保证。不对您构成任何投资建议,不能依靠信息而取代自身独立判断,不对因使用本篇文章所诉信息或观点等导致的损失承担任何责任。
  3.本站发布资源(包括书籍、杂志、文档、软件等)均从互联网搜索而来,仅供个人免费交流学习,不可用作商业用途,本站不对显示的内容承担任何责任。请在下载后24小时内删除。如果喜欢,请购买正版,谢谢合作!
  4.龙听期货论坛原创文章属本网版权作品,转载须注明来源“龙听期货论坛”,违者本网将保留追究其相关法律责任的权力。本论坛除发布原创文章外,亦致力于优秀财经文章的交流分享,部分文章推送时若未能及时与原作者取得联系并涉及版权问题时,请及时联系删除。联系方式:http://www.qhlt.cn/thread-262-1-1.html
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

返回列表