麦语言程序化模型的编写
麦语言函数手册之欧阳家百创编
![麦语言函数手册之欧阳家百创编](https://img.taocdn.com/s3/m/841525e367ec102de3bd891a.png)
文华财经“麦语言”函数手册
欧阳家百(2021.03.07)
(2011年10月更新)
文华财经资讯有限公司
“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。
麦语言,是国内使用人数最多的程序化模型开发平台。
麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。
语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。
麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用
一、自编策略模型支持的函数
1.历史数据引用
2.日内高频数据引用
3.行情数据引用
4.金融统计
5.数理统计
6.逻辑判断
7.数学运算
8.时间函数
9.绘图
10.颜色常数
二、自编下单组件支持的函数
1.引用数据函数
2.逻辑判断函数
3.辅助函数
4.数学运算函数
5.模型相关函数
6.头寸函数。
麦语言函数手册
![麦语言函数手册](https://img.taocdn.com/s3/m/d8debaa2360cba1aa911da22.png)
文华财经“麦语言”函数手册(2011年10月更新)
文华财经资讯有限公司
“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。
麦语言,是国内使用人数最多的程序化模型开发平台。
麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。
语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。
麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用
一、自编策略模型支持的函数
1.历史数据引用
2.日内高频数据引用
3.行情数据引用
4.金融统计
5.数理统计
6.逻辑判断
7.数学运算
8.时间函数
9.绘图
10.颜色常数
11.头寸函数
二、自编下单组件支持的函数
1.引用数据函数
2.逻辑判断函数
3.辅助函数
4.数学运算函数
5.模型相关函数
6.头寸函数。
文华程序化交易(资金管理)
![文华程序化交易(资金管理)](https://img.taocdn.com/s3/m/ed83fcaaaf45b307e9719772.png)
SETTLE REF(X,N)
引用结算价 引用X在N个周期前的值
MA(X,N)
求X在N周期内的简单移动平均。
定义变量: 结算价: 15周期收盘价均线(显示定义);
S:=SETTLE; MA15:MA(C,15);
D:TIME>=0910&&C>O; //用于多条件逻辑关系
MA5:=MA(C,5); MA10:=MA(C,10); CROSS(MA5,MA10);//金叉 CROSS(MA10,MA5);//死叉
注释或者舍去 想要在编写后,加入自己的语言注释,在结尾处用“//”
表示;或者想舍去某段,在某段在最前端加入“//”;
最大值时返回当前最高价。
DATE<>REF(DATE,1)//今天第一根K线 VALUEWHEN(DATE<>REF(DATE,1),O);//当天开盘价 VALUEWHEN(TIME=1030,O);//10点半那根K线的开盘价 昨天的收盘价? VALUEWHEN(DATE<>REF(DATE,1),REF(C,1));
麦语言的函数库,是经常更新的,根据客户的新要求随时添 加新函数,来支持编程者的交易新思想和新应用。
麦语言,是国内使用人数最多的程序化模型开发平台。
本章学习目标:
1、了解指标、模型相关术语; 2、熟悉模型编写的语法; 3、理解模型编写的结构和编写方法。 4、学习如何编写跨周期策略模型
模型基本结构
模型基本结构
指标、模型相关术语 模型编写的语法与操作符 模型编写的结构和编写方法
1、命名部分: 支持汉字、字母、数字、划线格式命名,长度控制在31字符内; 命名不能和已存在的公式名称重复。
量化经典麦语言程序化模型的编写知识课件
![量化经典麦语言程序化模型的编写知识课件](https://img.taocdn.com/s3/m/91745d39ddccda38376bafb4.png)
CROSS(MA10,MA5),SP;
CROSS(MA10,MA5),SK;
CROSS(MA5,MA10),BP;
均线上穿平空做多,均线下穿平多做空;
具体细化思路: 5日均线上穿10日均线,平空做多; 5日均线下穿10日均线,平多做空;
CROSS(MA5,MA10),BPK; CROSS(MA10,MA5),SPK;
总结:多条件下用“()”明确逻辑关系
跨周期函数介绍
引用某品种在某个周期上加载了某个指标的数据。 用法:
#IMPORT [CODE, PERIOD, FORMULA] AS VAR 引用 CODE 所对应的合约 PERIOD 周期下指标 FORMULA
的数据。CODE 文华Fra bibliotek,PERIOD 周期,FORMULA 引用指标名, VAR 定义变量名
在建立你的模型 #IMPORT [ , MIN30 ,AAA] AS VAR DM5:=VAR.RMA5; DM10:=VAR.RMA10; MA5:=MA(C,5); MA10:=MA(C,10); RM5>RM10&&CROSS(MA5,MA10)&&TIME<1450,BK; (RM5<RM10&&CROSS(MA10,MA5))||TIME>=1450,SP; RM5<RM10&&CROSS(MA10,MA5)&&TIME<1450,SK; (RM5>RM10&&CROSS(MA5,MA10))||TIME>=1450,BP; AUTOFILTER;
MA5:=MA(C,5); MA10:=MA(C,10); CROSS(MA5,MA10);
麦语言函数手册
![麦语言函数手册](https://img.taocdn.com/s3/m/0e3c45cbb9f3f90f76c61b5e.png)
文华财经“麦语言”函数手册(2011年10月更新)
文华财经资讯有限公司
“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。
麦语言,是国内使用人数最多的程序化模型开发平台。
麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。
语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。
麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用
一、自编策略模型支持的函数
1.历史数据引用
2.日内高频数据引用。
量化经典麦语言程序化模型的编写(精).
![量化经典麦语言程序化模型的编写(精).](https://img.taocdn.com/s3/m/39cb6b8333d4b14e85246890.png)
关键词:多个交易条件 1:以均线结合KD交叉指标为例: 2:练习编写:MACD、KDJ指模型。
MA5:=MA(C,5);
MA10:=MA(C,10);
均线模型
MA5>MA10,BK;//5日均线大于10日均线买入 。
跨周期跨合约模型的编写规则
1.只能引用 .FML/.XFML文件 2.只能引用如下周期:MIN1 MIN3 MIN5 MIN15 MIN30 HOUR1 DAY WEEK MONTH 3.只能短周期引用长周期 4.被引用的指标中不能存在引用 5.如果不写文华码,默认引用当前合约,也可以直接写合约代 码如:rb1201 6.FORMULA 引用指标名,只能引用除数字、或者数字开头 的名称之外的名称。
总结:多条件下用“()”明确逻辑关系
跨周期函数介绍
引用某品种在某个周期上加载了某个指标的数据。 用法:
#IMPORT [CODE, PERIOD, FORMULA] AS VAR 引用 CODE 所对应的合约 PERIOD 周期下指标 FORMULA
的数据。
CODE 文华码,PERIOD 周期,FORMULA 引用指标名, VAR 定义变量名
5、参数部分: 可以设置六个参数 首先是参数名称,然后是参数的最小值,最大值,最后是参数
的默认值。 在定义参数时要注意的是参数名称不可以重复,12个字符内
6、运用函数语言,也就是表达你的语言 函数具有自己的表达式,运行它就需要将我们的思路,按照函
数的表达式套用表述。
模型源码 命名
参数
A:(O+C)/2; B:C>O; //判断是否收阳;满足条件返回1,否则返回0 D:TIME=0900&&C>O; //用于多条件逻辑关系
麦语言基本语法与指令说明
![麦语言基本语法与指令说明](https://img.taocdn.com/s3/m/8cfcd5290912a216147929aa.png)
2、指令指定交易数量,买入数量为变量 a.BK 后面括号中的计算公式可任意编写,计算结果为买入数量。 b.小数采用向下取整原则。 c.指定交易数量后,设置的数量无效。 例: CLOSE>MA(CLOSE,5),BK(MONEY*0.5/(C+0.5*FEE));//收盘价大于 5 周期均线,按照理论可用资金 50%买入。
2、指令指定对应组别,不指定交易手数,下单手数为模组设置的固定手数。 例: CROSSUP(C,MA(C,5)),BK('A');//A 组做多指令,收盘价向上穿越 5 周期均线,买开仓,下单手数为模组设置的固定手数
在非过滤模型中的应用
1、指令指定交易手数,下单手数为固定手数
a.BK 后面的括号中为下单手数,可为任意正整数。 b.指定交易手数后,模组设置的手数无效。
CLOSE*OPEN;返回收盘价与开盘价的积。 CLOSE/OPEN;返回收盘价与开盘价的商。
CLOSE>OPEN&&REF(CLOSE>OPEN,1);当根 k 线 与前一根 k 线都收阳返回 1,否则返回 0。
CLOSE>OPEN||REF(CLOSE>OPEN,1);当根 k 线收阳或 前一根 k 线收阳返回 1,否则返回 0。
2、指令指定对应组别,不指定交易数量,买入数量为设置的固定数量。 例: CROSSUP(C,MA(C,5)),BK('A');//A 组做多指令,收盘价向上穿越 5 周期均线,买入,买入数量为设置的固定数量
在非过滤模型中的应用
1、指令指定交易数量,买入数量为固定数量
麦语言程序化模型的编写
![麦语言程序化模型的编写](https://img.taocdn.com/s3/m/468d9d10964bcf84b9d57bcd.png)
5、参数部分: 可以设置六个参数 首先是参数名称,然后是参数的最小值,最大值,最后是参数 的默认值。 在定义参数时要注意的是参数名称不可以重复,12个字符内 6、运用函数语言,也就是表达你的语言 函数具有自己的表达式,运行它就需要将我们的思路,按照函 数的表达式套用表述。
模型源码
参数
命名
A:(O+C)/2; B:C>O; //判断是否收阳;满足条件返回1,否则返回0 D:TIME=0900&&C>O; //用于多条件逻辑关系
DIFF := EMA(CLOSE,SHORT) - EMA(CLOSE,LONG); DEA := EMA(DIFF,N); MACD:=2*(DIFF-DEA); RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:=SMA(RSV,M1,1); D:=SMA(K,M1,1); J:=3*K-2*D; (CROSS(K,D)&&J<30)||(CROSS(DIFF,DEA)&&MACD>1),BK; (CROSS(D,K)&&REF(J,1)>70)||(CROSS(DEA,DIFF)&&MACD<-1),SP; (CROSS(D,K)&&J>70)||(CROSS(DEA,DIFF)&&MACD<-1),SK; (CROSS(K,D)&&REF(J,1)<30)||(CROSS(DIFF,DEA)&&MACD>1),BP; AUTOFILTER; 总结:多条件下用“()”明确逻辑关系
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:SMA(RSV,M1,1); D:SMA(K,M2,1); J:3*K-2*D;
量化麦语言程序化模型的编写精
![量化麦语言程序化模型的编写精](https://img.taocdn.com/s3/m/a71b56f9d1f34693dbef3e4c.png)
关键词:多个交易条件 1:以均线结合KD交叉指标为例: 2:练习编写:MACD、KDJ指标模型。
MA5:=MA(C,5);
MA10:=MA(C,10);
均线模型
MA5>MA10,BK;//5日均线大于10日均线买入 。
课程内容
一、模型的基本结构和跨指标模型的编写 二、跨周期模型的编写 三、模型中资金管理的编写
MY 语言的编写基于文华财经wh3平台中。通过本节课 的学习,了解文华公式编写平台的基本函数与语法,设计 自己的指标和程序化交易策略模型,实现全自动的委托发 单交易。
公式:
泛指指标、模型。没有具体指向性。
跨周期跨合约模型的编写规则
1.只能引用 .FML/.XFML文件 2.只能引用如下周期:MIN1 MIN3 MIN5 MIN15 MIN30 HOUR1 DAY WEEK MONTH 3.只能短周期引用长周期 4.被引用的指标中不能存在引用 5.如果不写文华码,默认引用当前合约,也可以直接写合约代 码如:rb1201 6.FORMULA 引用指标名,只能引用除数字、或者数字开头 的名称之外的名称。
MY language 编写语法 MY language 操作符
1、命名部分: 支持汉字、字母、数字、划线格式命名,长度控制在31字符内。 命名不能和已存在的公式名称重复;
2、定义变量名称 变量名称不能相互重复; 不能与参数名重复; 不能与函数名重复;
3、半角输入法的大写状态;
4、每个语句应该以分号结束;
MA5<MA10,SP;/模型中加入KD指标思路:
DIFF := EMA(CLOSE,SHORT) - EMA(CLOSE,LONG); DEA := EMA(DIFF,N); MACD:=2*(DIFF-DEA); RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:=SMA(RSV,M1,1); D:=SMA(K,M1,1); J:=3*K-2*D; (CROSS(K,D)&&J<30)||(CROSS(DIFF,DEA)&&MACD>1),BK; (CROSS(D,K)&&REF(J,1)>70)||(CROSS(DEA,DIFF)&&MACD<-1),SP; (CROSS(D,K)&&J>70)||(CROSS(DEA,DIFF)&&MACD<-1),SK; (CROSS(K,D)&&REF(J,1)<30)||(CROSS(DIFF,DEA)&&MACD>1),BP; AUTOFILTER;
文华财经-程序化交易培训
![文华财经-程序化交易培训](https://img.taocdn.com/s3/m/ca5b6543f78a6529647d53ed.png)
总结:清晰逻辑关系,可以用“()”来表示。
模型基本结构
指标、模型相关术语 模型编写的语法与操作符 模型编写的结构和编写方法
在编写前,需要将交易思想清晰量化后,通过语言函数编写 完成。
交易模型基本结构: 1.定义需要的每个变量 2.交易条件+交易指令
MA5:=MA(C,5); MA10:=MA(C,10);
AUTOFILTER
对模型的所有信号按照先买后卖,先开后平的顺序过滤。 1.连续的同方向指令只有第一个有效,其他的将被过滤; 2.交易指令必须配对出现(例如:前面已经有了买开指令,则后面只允许出现卖 平指令,其他的指令都被滤掉。这也就意味着,第一个指令只能是买开或者卖开指 令,其他的都被过滤);
C>BKPRICE+50*MD;//最新价大于买开仓价位的50个点
练习1:为函数做注释 IFELSE(C,A,B) //如果条件C成立则返回A值,否则返回B值
SETTLE REF(X,N)
引用结算价 引用X在N个周期前的值
MA(X,N)
求X在N周期内的简单移动平均。
定义变量: 结算价: 15周期收盘价均线(显示定义);
衍生: 当前K线的前一个周期最高价; 当前K线的前一个周期15均线;
麦语言的函数库,是经常更新的,根据客户的新要求随时添 加新函数,来支持编程者的交易新思想和新应用。
麦语言,是国内使用人数最多的程序化模型开发平台。
本章学习目标:
1、了解指标、模型相关术语; 2、熟悉模型编写的语法; 3、理解模型编写的结构和编写方法。 4、学习如何编写跨周期策略模型
模型基本结构
关键字:日内模型
日内交易:均线上穿平空做多,均线下穿平多做空;
麦语言函数手册
![麦语言函数手册](https://img.taocdn.com/s3/m/c31100dd55270722192ef7da.png)
麦语言函数手册 The document was finally revised on 2021
文华财经“麦语言”函数手册(2011年10月更新)
文华财经资讯有限公司
“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。
麦语言,是国内使用人数最多的程序化模型开发平台。
麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。
语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。
麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用
一、自编策略模型支持的函数
1.历史数据引用
2.日内高频数据引用
情数据引用
4.金融统计
5.数理统计
6.逻辑判断
学运算
8.时间函数
9.绘图
10.颜色常数
11.头寸函数
用数据函数
辑判断函数
3.辅助函数
学运算函数
型相关函数
寸函数。
量化经典麦语言程序化模型编写(精)
![量化经典麦语言程序化模型编写(精)](https://img.taocdn.com/s3/m/0290469489eb172dec63b70b.png)
关键词:多个交易条件 1:以均线结合KD交叉指标为例: 2:练习编写:MACD、KDJ指标模型。
MA5:=MA(C,5);
MA10:=MAΒιβλιοθήκη C,10);均线模型MA5>MA10,BK;//5日均线大于10日均线买入 。
MA5<MA10,SP;//10日均线大于5日均线卖出 。
——》模型中加入KD指标思路:
CROSS(MA10,MA5),SP;
CROSS(MA10,MA5),SK;
CROSS(MA5,MA10),BP;
均线上穿平空做多,均线下穿平多做空;
具体细化思路: 5日均线上穿10日均线,平空做多; 5日均线下穿10日均线,平多做空;
CROSS(MA5,MA10),BPK; CROSS(MA10,MA5),SPK;
跨周期跨合约模型的编写规则
1.只能引用 .FML/.XFML文件 2.只能引用如下周期:MIN1 MIN3 MIN5 MIN15 MIN30 HOUR1 DAY WEEK MONTH 3.只能短周期引用长周期 4.被引用的指标中不能存在引用 5.如果不写文华码,默认引用当前合约,也可以直接写合约代 码如:rb1201 6.FORMULA 引用指标名,只能引用除数字、或者数字开头 的名称之外的名称。
课程内容
一、模型的基本结构和跨指标模型的编写 二、跨周期模型的编写 三、模型中资金管理的编写
MY 语言的编写基于文华财经wh3平台中。通过本节课 的学习,了解文华公式编写平台的基本函数与语法,设计 自己的指标和程序化交易策略模型,实现全自动的委托发 单交易。
公式:
泛指指标、模型。没有具体指向性。
用指标监测行情: K线上穿D线
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)LLV(LOW,N))*100; K:SMA(RSV,M1,1); D:SMA(K,M2,1); J:3*K-2*D; //以下是加入的交易指令 CROSS(K,D),BK;//K向上穿越D,发出买开交易指令 CROSS(J,100),SP;//J向上穿越100,发出卖平交易指令 CROSS(D,K),SK;//K向下穿越D,发出卖开交易指令 CROSS(0,J),BP;//J向下穿越0,发出买平交易指令 AUTOFILTER;
第2-3讲 模型基本结构与编写
![第2-3讲 模型基本结构与编写](https://img.taocdn.com/s3/m/15c14434af45b307e87197bb.png)
注: 1、N包含当前k线。 2、若N为0则从第一个有效值开始算起; 3、当N为有效值,但当前的k线数不足N根,按照实际的根数计算; 4、N为空值时,返回空值。 5、N可以是变量。 返回数值
3、麦语言编写基础—函数
统计类函数: 1、金融统计函数:统计过去某段行情的高低值、根据已知条件统计相关周期 、计算移动平均… 2、数理统计函数:统计过去某段行情的标准差、斜率…
3、麦语言编写基础—函数
时间函数: 取得年、月、日、时、分、秒… 取得距收盘前的时间
3、麦语言编写基础—函数
CIRCLEDOT 画小圆点线。 所属分类:绘图函数 注: 1、该函数支持在函数后设置颜色。 2、不支持将函数定义为变量,即不支持下面的写法:A:CIRCLEDOT;
DRAWTEXT:显示文字。 所属分类:绘图函数
模组头寸函数: 取资金、持仓、盈亏…
该部分函数在后续章节详细介绍
3、麦语言编写基础—函数
编写训练: 1、写一个均线组合,由5条均线组成,参数为5、10、20、30、60. 2、翻译下面代码: LOWV:=LLV(LOW,9); HIGHV:=HHV(HIGH,9); RSV:=(CLOSE-LOWV)/(HIGHV-LOWV)*100; K:SMA(RSV,3,1); D:SMA(K,3,1); J:3*K-2*D; 3、写一个k线组合:红三兵 a、每日的收盘价高于前一日的收盘价; b、每日的开盘价在前一日阳线的实体之内; c、每日的收盘价在当日的最高点或接近最高点。
3、麦语言编写基础—函数
REFX引用后N个周期的数据。
用法: REFX(X,N)引用X在N个周期后的值。 注: 1、当N为有效值,但当前的k线数不足N根,返回无效值; 2、N为0时返回当前X值;N为空值时返回空值。 3、N不能为变量 4、本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请 谨慎使用!
基于麦语言的程序化交易策略实现
![基于麦语言的程序化交易策略实现](https://img.taocdn.com/s3/m/fd727cc305087632311212d7.png)
基于麦语言的程序化交易策略实现作者:王东明王华军来源:《电脑知识与技术》2013年第23期摘要:随着股指期货的普及,并且由于他的高频率交易、灵活的套利方式,以及较低的保证金制度,使得越来越多的人在期货证券市场中交易买卖,但是也由于交易量大,交易频率高,使得有些盈利的机会在眼前却由于自己的更不上节奏而错失良机。
程序化交易因此应运而生,他是利用有限的指标来判定走势,按照指定的流程控制实现期货的买卖控制。
他不仅仅是追求高速度地把握交易机会实现抢单,而且它能够在快速交易中保持冷静的思维过程。
在高速交易中也能够实现对巨大资金账户的操作。
并且具有远远高于人工的能力来实现各种跨期套利,期现货套利的能力。
因此本方案主要是为大家的程序化交易提供一个框架和思路。
关键词:股指期货;程序化交易;跨期套利;抢单中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)23-5266-04随着期货市场的繁荣,程序化交易作为一个交易手段越来越重要,在金融衍生品越来越多的市场中,他作为一个有效控制风险的手段被国外所接受。
程序化交易(program trading)又称为篮子交易,他利用电脑软件根据买卖下单信息实现快速操作,在交易频率很活跃的期货是市场中,他能是交易者在其中有效避免情绪波动,做到正确理性的投资买卖。
在期货市场中有一系列操作都能用程序化交易很好的做到,期货市场与股票市场在交易频率上面差别巨大,程序化交易就能很好的避免这一点,做到快速及时的处理信号。
面对期货的跨期套利、期现套利、单边操作,程序化交易都能很好胜任,并且程序化交易能很好的适应期货交易中的频率高、交易快速、价格变化快这些特性。
本课题主要是根据国内程序化交易的代表企业文华财经开发的“麦语言”来实现指标走势确定买卖信号,然后再细微控制买卖。
通过自己实现,运用账号模拟也能在与实盘相同行情的模拟系统上面测试自己的策略思想。
1 分析与需求设计1.1期货指标分析期货(Futures)与现货相对。
麦语言程序化模型的编写精品文档
![麦语言程序化模型的编写精品文档](https://img.taocdn.com/s3/m/36f819b583d049649a66581f.png)
例 同一合约不同周期的数据调用
要求
30分钟周期上,当前面一根MA5大于MA10,并且5分钟 周期上,MA5上穿MA10,做多。
30分钟周期上,当前面一根MA5大于MA10,并且5分钟 周期上,MA5下穿MA10,做空。
尾盘平仓
先建立一个指标 名称AAA RMA5:=REF(MA(C,5),1); RMA10:=REF(MA(C,10),1);
MACD、KDJ指标模型:
DIFF := EMA(CLOSE,SHORT) - EMA(CLOSE,LONG); DEA := EMA(DIFF,N); MACD:=2*(DIFF-DEA); RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:=SMA(RSV,M1,1); D:=SMA(K,M1,1); J:=3*K-2*D; (CROSS(K,D)&&J<30)||(CROSS(DIFF,DEA)&&MACD>1),BK; (CROSS(D,K)&&REF(J,1)>70)||(CROSS(DEA,DIFF)&&MACD<-1),SP; (CROSS(D,K)&&J>70)||(CROSS(DEA,DIFF)&&MACD<-1),SK; (CROSS(K,D)&&REF(J,1)<30)||(CROSS(DIFF,DEA)&&MACD>1),BP; AUTOFILTER;
模型中跨指标,是将多个指标交易思想结合在一起进行看盘 断势。 关键词:多个交易条件
1:以均线结合KD交叉指标为例: 2:练习编写:MACD、KDJ指标模型。
麦语言自编策略模型函数列表
![麦语言自编策略模型函数列表](https://img.taocdn.com/s3/m/ed6fba430c22590102029dea.png)
实用标准文案麦语言自编策略模型函数列表文华财经资讯有限公司“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过8年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。
麦语言,是国内使用人数最多的程序化模型开发平台。
麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。
语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。
麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用目录自编策略模型支持的函数 (3)1.数学运算(24) (3)2.金融统计函数(25) (12)3.数理统计函数(8) (26)4.逻辑判断函数(22) (31)5.时间函数(15) (41)6.绘图函数(26) (49)7.画线函数(10) (64)8.波峰波谷统计函数(7) (75)9.未来函数(2) (84)10.头寸函数(47) (85)11.历史数据引用(18) (136)12.日内高频数据引用(46) (146)13.引用其他合约价格(1) (154)14.颜色常数 (155)自编策略模型支持的函数1.数学运算(24)ABS(X) 求X的绝对值注:1、正数的绝对值是它本身;2、负数的绝对值是它的相反数;3、0的绝对值还是0;例1:ABS(-10);//返回10。
例2:ABS(CLOSE-10);//返回收盘价和的10价差的绝对值。
例3:ABS(C-O);//当前K线实体长度ACOS(X) 求X的反余弦值注:1、X取值范围[-1,1]。
2、若X不在取值范围,返回值为空值。
例1:ACOS(-1);//求-1的反余弦值;例2:ACOS(1);//求1的反余弦值;ASIN(X) 求X的反正弦值注:1、X取值范围[-1,1]。
2、若X不在取值范围,返回值为空值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ISLASTBP
判断上一个交易信号是否是BP。 用法:ISLASTBP 如果上一个交易信号是BP则返回1(Yes),否则返回0(No)
ISLASTSP
判断上一个交易信号是否是SP。 用法:ISLASTSP 如果上一个交易信号是SP则返回1(Yes),否则返回0(No)
判断上一个交易信号是否是BPK。 ISLASTBPK
5、参数部分: 可以设置六个参数 首先是参数名称,然后是参数的最小值,最大值,最后是参数
的默认值。 在定义参数时要注意的是参数名称不可以重复,12个字符内
6、运用函数语言,也就是表达你的语言 函数具有自己的表达式,运行它就需要将我们的思路,按照函
数的表达式套用表述。
模型源码 命名
参数
A:(O+C)/2; B:C>O; //判断是否收阳;满足条件返回1,否则返回0 D:TIME=0900&&C>O; //用于多条件逻辑关系
在建立你的模型 #IMPORT [ , MIN30 ,AAA] AS VAR DM5:=VAR.RMA5; DM10:=VAR.RMA10; MA5:=MA(C,5); MA10:=MA(C,10); RM5>RM10&&CROSS(MA5,MA10)&&TIME<1450,BK; (RM5<RM10&&CROSS(MA10,MA5))||TIME>=1450,SP; RM5<RM10&&CROSS(MA10,MA5)&&TIME<1450,SK; (RM5>RM10&&CROSS(MA5,MA10))||TIME>=1450,BP; AUTOFILTER;
在编写前,需要将交易思想清晰量化后,通过语言函数编写完成
交易模型基本结构 1.定义需要的每个变量 2.交易条件+交易指令
MA5:=MA(C,5); MA10:=MA(C,10);
定义思路中涉及到的变量
CROSS(MA5,MA10),BK;
CROSS(MA10,MA5),SP;交易条件,写入交易指令
MA5:=MA(C,5); MA10:=MA(C,10); CROSS(MA5,MA10);
注释或者舍去 想要在编写后,加入自己的语言注释,在结尾处用“//”表
示; 或者想舍去某段,在某段在最前端加入“//”;
IFELSE(C,A,B) 如果条件C成立则返回A值,否则返回B值
SETTLE REF(X,N)
跨周期跨合约模型的编写规则
1.只能引用 .FML/.XFML文件 2.只能引用如下周期:MIN1 MIN3 MIN5 MIN15 MIN30 HOUR1 DAY WEEK MONTH 3.只能短周期引用长周期 4.被引用的指标中不能存在引用 5.如果不写文华码,默认引用当前合约,也可以直接写合约代 码如:rb1201 6.FORMULA 引用指标名,只能引用除数字、或者数字开头 的名称之外的名称。
用指标监测行情: K线上穿D线
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)LLV(LOW,N))*100; K:SMA(RSV,M1,1); D:SMA(K,M2,1); J:3*K-2*D; //以下是加入的交易指令 CROSS(K,D),BK;//K向上穿越D,发出买开交易指令 CROSS(J,100),SP;//J向上穿越100,发出卖平交易指令 CROSS(D,K),SK;//K向下穿越D,发出卖开交易指令 CROSS(0,J),BP;//J向下穿越0,发出买平交易指令 AUTOFILTER;
例 同一合约不同周期的数据调用
要求
30分钟周期上,当前面一根MA5大于MA10,并且5分钟 周期上,MA5上穿MA10,做多。
30分钟周期上,当前面一根MA5大于MA10,并且5分钟 周期上,MA5下穿MA10,做空。
尾盘平仓
先建立一个指标 名称AAA RMA5:=REF(MA(C,5),1); RMA10:=REF(MA(C,10),1);
引用结算价 引用X在N个周期前的值
MA(X,N)
求X在N周期内的简单移动平均。
定义变量: 当根K线最高价; 结算价: 15周期收盘价均线(显示定义);
衍生: 当前K线的前一个周期最高价; 当前K线的前一个周期15均线;
HH:=H; S:=SETTLE; MA15:MA(C,15);
REF(HH,1); REF(MA15,1);
DIFF := EMA(CLOSE,SHORT) - EMA(CLOSE,LONG); DEA := EMA(DIFF,N); MACD:=2*(DIFF-DEA); RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:=SMA(RSV,M1,1); D:=SMA(K,M1,1); J:=3*K-2*D; (CROSS(K,D)&&J<30)||(CROSS(DIFF,DEA)&&MACD>1),BK; (CROSS(D,K)&&REF(J,1)>70)||(CROSS(DEA,DIFF)&&MACD<-1),SP; (CROSS(D,K)&&J>70)||(CROSS(DEA,DIFF)&&MACD<-1),SK; (CROSS(K,D)&&REF(J,1)<30)||(CROSS(DIFF,DEA)&&MACD>1),BP; AUTOFILTER;
例 同一合约不同周期的数据调用
要求
当日均线出现多头排列时, 5分钟KD线金叉,做多。 当日均线出现空头排列时, 5分钟KD线死叉,做空。
先建立一个指标 名称AAA MA5:=MA(C,5); MA10:=MA(C,10); MA30:=MA(C,30); 在建立你的模型 #IMPORT [ , DAY,AAA] AS VAR DM5:=VAR.MA5; DM10:=VAR.MA10; DM30:=VAR.MA40; RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:SMA(RSV,M1,1); D:SMA(K,M2,1); J:3*K-2*D; DM5>DM10&&DM10>DM30&&CROSS(K,D),BPK; DM5<DM10&&DM10<DM30&&CROSS(D,K),SPK; AUTOFILTER;
思考: 不同合约的数据如何调用
三、模型中资金管理的编写
1、头寸函数函数介绍
ISLASTBK
判断上一个交易信号是否是BK。 用法:ISLASTBK 如果上一个交易信号是BK则返回1(Yes),否则返回0(No)
ISLASTSK
判断上一个交易信号是否是SK。 用法:ISLASTSK 如果上一个交易信号是SK则返回1(Yes),否则返回0(No)
总结:多条件下用“()”明确逻辑关系
二、跨周期模型的编写
பைடு நூலகம்
跨周期函数介绍
引用某品种在某个周期上加载了某个指标的数据。 用法:
#IMPORT [CODE, PERIOD, FORMULA] AS VAR 引用 CODE 所对应的合约 PERIOD 周期下指标 FORMULA
的数据。
CODE 文华码,PERIOD 周期,FORMULA 引用指标名, VAR 定义变量名
指标 指能够绘出图线但不发交易指令的公式。指标是一个技术分 析范畴的概念。
交易信号 指指标上出现的提示投资者买卖的指示,可以是图线交叉、 文字、图形。投资者需要按照信号指示去手动委托下单。交 易信号也是一个技术分析范畴的概念。
交易模型: 指能够发出BK、SP等交易指令,模型还包含下单方向, 交易手数,止盈止损等与交易、资金使用相关的参数设置 。交易模型是一个交易范畴的概念。
文华财经 研究部
课程内容
一、模型的基本结构和跨指标模型的编写 二、跨周期模型的编写 三、模型中资金管理的编写
MY 语言的编写基于文华财经wh3平台中。通过本节课 的学习,了解文华公式编写平台的基本函数与语法,设计 自己的指标和程序化交易策略模型,实现全自动的委托发 单交易。
公式:
泛指指标、模型。没有具体指向性。
MY language 编写语法 MY language 操作符
1、命名部分: 支持汉字、字母、数字、划线格式命名,长度控制在31字符内。 命名不能和已存在的公式名称重复;
2、定义变量名称 变量名称不能相互重复; 不能与参数名重复; 不能与函数名重复;
3、半角输入法的大写状态;
4、每个语句应该以分号结束;
CROSS(MA10,MA5),SK;
CROSS(MA5,MA10),BP;
关键字:反手指令
均线上穿平空做多,均线下穿平多做空;
具体细化思路: 5日均线上穿10日均线,平空做多; 5日均线下穿10日均线,平多做空;
CROSS(MA5,MA10),BPK; CROSS(MA10,MA5),SPK;
关键词:多个交易条件 1:以均线结合KD交叉指标为例: 2:练习编写:MACD、KDJ指标模型。
MA5:=MA(C,5);
MA10:=MA(C,10);
均线模型
MA5>MA10,BK;//5日均线大于10日均线买入 。
MA5<MA10,SP;//10日均线大于5日均线卖出 。
——》模型中加入KD指标思路:
BARSBP BARSSP
上一次买平信号位置 用法: BARSBP返回上一次买平仓距离当前k线的k线数。 上一次卖平信号位置 用法: BARSSP返回上一次卖平仓距离当前k线的k线数。