Foxtrader公式设计

一、变量:

spj:close

“spj”不是一个简单的变量,是一个数组或者说是一个序列变量,当然理解成一个函数也可以,是一个自变量为时间日期的函数。因此,今后看公式时,对公式中的变量,一定要理解成是一个序列变量。(序列变量---字面上理解,就是含有一个序列的变量。如“spj:close”,spj就被定义为一个序列变量,spj的值是一个序列,包含很多收盘价,spj的值跟日期(或一般意义上的所处周期)有关,不同的交易日,spj的值就不同,序列变量,有点类似数学中的数列。)

 

二、条件表达式:在飞狐中设计公式,需要大量使用条件表达式,根据条件表达式的结果,作出判断,以便确定下一步该做什么,不该做什么。基本的条件表达式由“>、>=、<、<=、=、and、or、not”等比较运算符、逻辑运算符组成,此外单独的“逻辑函数”,如判断是否最后周期的函数ISLASTBAR也可以构成条件表达式。条件表达式的值只有2个,1和0,条件成立则返回1,条件不成立则返回0,下面举例说明:

例1:close>open{表示收盘价大于开盘价,如果成立返回1,否则这个条件表达式的值为0};

例2:close>open and close>ma(close,5){表示收盘价大于开盘价且close大于5日均价,and 是“且、和”的意思};

例3:close<=ref(close,1) or close<=ref(close,2){今收盘小于昨收盘或今收盘小于等于前2天收盘价,or是“或 的意思,ref()函数的含义,请在公式编辑器中点“插入函数”按钮后找到ma函数查询其注释,或鼠标移到函数的名称处,会浮动提示该函数的注释};

例4:corss(ma(c,5),ma(c,10)){5日均价线上穿10日均价线,cross函数的定义,请自查。这里close简写为c};

飞狐的公式代码不区分字母的大小写,字母可以大写,也可以小写或者大小写混合。

三、注释:包含在半角的一对花括号“{”、“}”的部分,是注释语句,注释这行代码的含义、思路等,不会被飞狐运行。

 

四、注意飞狐中的几个常用的逻辑函数:

1.ANY

别名: EXIST, 存在
所属类别: 逻辑函数  参数数量: 2

是否存在
用法:
EXIST(X,N)返回N周期内是否存在满足条件X,N可为常数或变量,若N=0则从第一个有效值开始
例如:
EXIST(C>O,10)表示10个周期中存在阳线

 

2.ALL

别名: EVERY, 一直存在
所属类别: 逻辑函数  参数数量: 2

一直存在
用法:
EVERY (X,N)返回N周期内一直满足条件X,N可为常数或变量,若N=0则从第一个有效值开始
例如:
EVERY (C>O,10)表示10个周期内一直是阳线

 

3.Cross

别名: 交叉函数
所属类别: 逻辑函数  参数数量: 2

两条线交叉。
用法:
CROSS(A,B)表示当A从下方向上穿过B时返回1,否则返回0
例如:
CROSS(MA(CLOSE,10),MA(CLOSE,20))表示10日均线与20日均线交金叉

 

4.Filter

别名: 信号过滤
所属类别: 引用函数  参数数量: 2

过滤连续出现的信号。
用法:
FILTER(X,N):X满足条件后,将其后N周期内的数据置为0
例如:FILTER(CLOSE>OPEN,3)
查找阳线,3天内再次出现的阳线不被记录在内

 

5.If函数

别名: IIF, 条件函数
所属类别: 逻辑函数  参数数量: 3

根据条件取不同的值。
用法:
IF(X,A,B)若X不为0则返回A,否则返回B
例如:
IF(CLOSE<OPEN,LOW,HIGH)
表示该周期收阴则返回最低价,否则返回最高价

 

 

 

五、绘图函数、线型描述

1.线型描述类函数:描述指标线颜色,指标线的形状、宽度、偏移等.

例1:指定5日均价显示为红色,并加宽显示,10日均价显示为蓝色,线宽为默认,20日均线不显示指标线但显示数值。
求解:代码如下
ma5:ma(close,5),colorred,linethick2;
ma10:ma(c,10),colorblue;
ma20:ma(c,20),linethick0;

 

2.绘图函数:飞狐提供了丰富的绘图函数,巧妙应用绘图函数,可以使指标线色彩鲜艳,可以画出自己所喜欢的K线等等。

例1:5日均价线走平或向右上倾斜时,显示为晶红色,否则显示为绿色。
求解:
ma5:ma(c,5),colormagenta;
partline(ma5<ref(ma5,1),ma5),colorgreen;

例4:利用STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY)函数绘制K线。
分析:K线由上、下影线、实体部分组成,影响K线的股价有open、close、high、low,如果今上涨,K线为红色,否则为蓝色。代码如下:
stickline(isup,low,high,1,1),colorred;{今上涨,在最低价到最高价间画红色细线}
stickline(isup,open,close,7,1),colorred;{今上涨,在收盘价到开盘价间画红色空心柱线}

stickline(open=close,open,close,7,1),colorred;{今平盘,在收盘价到开盘价间画红色空心柱线}

stickline(open=close,low,high,1,0),colorred;{今平盘,在收盘价到开盘价间画红色细线}

stickline(isdown,low,high,1,0),colorblue;{今下跌,在最低价至最高价间画蓝色细线}
stickline(isdown,open,close,7,0),colorblue;{今下跌,在开盘价至收盘价间画蓝色实心柱线}

posted @ 2012-04-22 22:45  ForFreeDom  阅读(668)  评论(0编辑  收藏  举报