2008年末献给理想的朋友:《飞狐公式編写基础》和《通达信收盘价大于ma30公式教程》(47楼)
『飞狐交易师』的公式系统是一套功能强大、使用简单的技术分析描述语言系统
公式系統的作用是什么呢?公式系统其实就是对一系列随时间变化的原始数据组序列进行代数和逻辑计算为什么是数据组序列呢?因为每一个時间周期(即相邻两组数据间的时间间隔)都包含了一组原始数据如开高低收量额,公式系统能对其中的任何原始数据进行操作使用鍺定义出如何对原始数据进行处理得到一个新的数据,公式系统读出原始数据并按要求计算出使用者定制的数据并以曲线、图形、指示等形式显示出来。
公式系统可以编辑四种类型的公式分别是技术指标、交易系统、条件选股和五彩K线公式。技术指标公式是最基本嘚公式它用于指标图形的绘制。技术指标公式结合选股条件逻辑判断表达式即得到条件选股公式,用于条件选股技术指标公式结合買卖逻辑判断表达式,得到交易系统公式用于交易系统指示。技术指标公式结合色彩逻辑判断表达式即得到K线模式公式,用于描述特萣的K线模式公式的编辑在公式编辑器中完成。
公式系统处理的原始数据的分析周期(即相邻两组数据间的时间间隔)可以从1分钟到1000天间嘚任意值也可以是分笔成交数据,我们用鼠标把一个公式拖到某只证券的某个周期的图形分析窗口则该公式处理这个周期的原始数据,洳开高低收量额,改变分析窗口显示的分析周期则公式处理新的分析周期的数据。
公式系统对数据的运算是基于一系列『函数』函数中除ZIG之字转向函数类和BACKSET函数外,其余函数均满足时间不变性即时间靠后的数据不对时间靠前的结果产生影响。
弹出公式编辑器后茬公式名称处输入sl001,在公式说明中输入“示例公式001”在代码框中输入“spj:”,点“插入函数”在“行情函数”中找到CLOSE,点“插入函数”框的“确定”按钮在代码框中就插入了一个函数CLOSE。
注:收盘价函数CLOSE可以简写为C其它如开盘价等经常使用的函数OPEN、HIGH、LOW、VOL也可以简写為其第一个字母。
最后在公式编辑器中点“确定”按钮我们就建立了一个名为sl001的新公式。公式只有一行代码即:
其中spj(“收盘价”的拼音代码)称为公式变量,close是函数(行情函数的一种)两者间以半角的冒号“:”相隔表示spj定义为close。
3、进入某个股的K线图在键盘上敲“sl001”调用我们刚才设计的公式,结果在副图显示一条收盘价曲线曲线的名称是“spj”
注意观察,该曲线是对应了K线的第一天到最后┅天说明,“spj”不是一个简单的变量是一个数组或者说是一个序列变量,当然理解成一个函数也可以是一个自变量为时间日期的函數。
因此今后看公式时,对公式中的变量一定要理解成是一个序列变量。(序列变量---字面上理解就是含有一个序列的变量。如“spj:close”spj就被定义为一个序列变量,spj的值是一个序列包含很多收盘价,spj的值跟日期(或一般意义上的所处周期)有关不同的交易日,spj的徝就不同序列变量,有点类似数学中的数列)
4、在副图指标sl001的空白处,点鼠标右键选“修改指标公式”在公式编辑器中,看到“主图叠加”的选项了吗打上“√”确定退出。键盘敲“sl001”调用sl001公式,结果你看到了什么
结果是,副图指标sl001变成了主图叠加指標sl001
在主图指标的名称sl001处,点鼠标右键选“修改指标公式”在公式编辑器中给“主图”选项打上勾,确定退出再观察一下,有何變化
结果是,主图叠加指标变成主图指标取代了原有的主图(图中是,主图K线被SL001指标所取代因此就看不到K线了)。
二、参数、參数精灵及其应用:
1、起始有效周期:
上一讲我们学习了在飞狐中新建公式的基础知识。并编了一个最简单的公式SL001下面我们洅来新建一个主图叠加公式SL002,代码如下:
代码解释:定义了一个序列变量ma5其序列值由函数ma(close,5)确定。查ma函数的注释是:
显然ma5被定义为5ㄖ均价,在K线图中切换股票到600004,敲sl002调用这个公式,观察5日均价曲线发现了什么?
可以看出ma5是从第5根K线开始的,也就是说ma5的起始有效周期是5,为什么是5而不是其它数据根据ma函数的定义,ma5即ma(close,5)等于当日及前4日收盘价的算术平均值至少要有5天的数据,这就是说從第5天开始,才会有5日均价
想想看,ma(close,10)表示什么它的起始有效周期是多少?
下面我们修改刚才建立的公式sl002,代码如下:
注意每一行公式代码的末尾要有一个半角的分号“;”,表示一行代码结束切换股票到600317,观察我们修改后的sl002显示的结果原来就是我们所熟悉的均线系统,由5、10、20、30、60日均价线组成
2、参数、参数精灵:
上面修改后的公式sl002,已经是很实用的公式了但有个缺点,如果伱想要的不是5、10、20、30、60日均价线而是其它的譬如7、14、21、28、35日的均价线,怎么办修改公式代码是一个可行的办法,但太麻烦在飞狐中,可以使用参数把公式sl002修改如下:
在公式编辑器中,输入参数n1----n5的最小、最大、缺省值
为了验证公式代码是否正确,用鼠标左键点“调试公式”按钮飞狐提示“行3:语句缺少分号”,仔细分析公式代码原来是第2行少了分号,修正后再点“调试公式”按钮提示“调試通过”。点“确定”按钮退出并保存公式
参照上图一边修改参数,一边观察指标线是否变化最后可以按照自己的需要,把参数修改為自己所需的数值到此应该满意了吧?
说明:从前面的图中可以看出,飞狐交易师支持多达16个参数
3、参数精灵:在上面修妀参数的过程,是否注意到参数的提示因为公式是自己设计的,参数的提示尽管很简单但自己仍然知道参数的含义,但如果是其他人嘚话就可能摸不着头脑了,因此有必要对参数加上一点提示方法是,在公式编辑器中点“参数精灵”按钮,输入以下文字:
这里Param#1表示参数N1,其它依此类推点“确定”退出公式编辑器。再试试调整参数发现参数调整窗口的提示已经符合我们的要求。
注意:这裏的“Param”中第一个字母要大写