麦语言程序化模型的编写

合集下载

麦语言函数手册之欧阳家百创编

麦语言函数手册之欧阳家百创编

文华财经“麦语言”函数手册
欧阳家百(2021.03.07)
(2011年10月更新)
文华财经资讯有限公司
“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。

麦语言,是国内使用人数最多的程序化模型开发平台。

麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。

语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。

麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用
一、自编策略模型支持的函数
1.历史数据引用
2.日内高频数据引用
3.行情数据引用
4.金融统计
5.数理统计
6.逻辑判断
7.数学运算
8.时间函数
9.绘图
10.颜色常数
二、自编下单组件支持的函数
1.引用数据函数
2.逻辑判断函数
3.辅助函数
4.数学运算函数
5.模型相关函数
6.头寸函数。

麦语言函数手册

麦语言函数手册

文华财经“麦语言”函数手册(2011年10月更新)
文华财经资讯有限公司
“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。

麦语言,是国内使用人数最多的程序化模型开发平台。

麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。

语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。

麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用
一、自编策略模型支持的函数
1.历史数据引用
2.日内高频数据引用
3.行情数据引用
4.金融统计
5.数理统计
6.逻辑判断
7.数学运算
8.时间函数
9.绘图
10.颜色常数
11.头寸函数
二、自编下单组件支持的函数
1.引用数据函数
2.逻辑判断函数
3.辅助函数
4.数学运算函数
5.模型相关函数
6.头寸函数。

文华程序化交易(资金管理)

文华程序化交易(资金管理)
练习1:为函数做注释 IFELSE(C,A,B) //如果条件C成立则返回A值,否则返回B值
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字符内; 命名不能和已存在的公式名称重复。

量化经典麦语言程序化模型的编写知识课件

量化经典麦语言程序化模型的编写知识课件

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);

麦语言函数手册

麦语言函数手册

文华财经“麦语言”函数手册(2011年10月更新)
文华财经资讯有限公司
“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。

麦语言,是国内使用人数最多的程序化模型开发平台。

麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。

语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。

麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用
一、自编策略模型支持的函数
1.历史数据引用
2.日内高频数据引用。

量化经典麦语言程序化模型的编写(精).

量化经典麦语言程序化模型的编写(精).
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日均线买入 。
跨周期跨合约模型的编写规则
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; //用于多条件逻辑关系

麦语言基本语法与指令说明

麦语言基本语法与指令说明
例: CLOSE>MA(CLOSE,5),BK(500);//收盘价大于 5 周期均线,买入 500 股。设置的数量无效
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、指令指定交易数量,买入数量为固定数量

麦语言程序化模型的编写

麦语言程序化模型的编写

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;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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线数。
相关文档
最新文档