量化经典麦语言程序化模型的编写(精).
关键词:多个交易条件 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; //用于多条件逻辑关系
用指标监测行情: 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;
MA20:=MA(C,20);
CROSS(MA5,MA10),BK;交易条件,写入交易指令
CROSS(MA10,MA5),SP;
CROSS(MA10,MA5),SK;
CROSS(MA5,MA10),BP;
均线上穿平空做多,均线下穿平多做空;
具体细化思路: 5日均线上穿10日均线,平空做多; 5日均线下穿10日均线,平多做空;
MA5:=MA(C,5); MA10:=MA(C,10); CROSS(MA5,MA10);
SETTLE REF(X,N)
引用结算价 引用X在N个周期前的值
MA(X,N)
求X在N周期内的简单移动平均。
定义变量: 当根K线最高价; 结算价: 15周期收盘价均线(显示定义);
衍生: 当前K线的前一个周期最高价; 当前K线的前一个周期15均线;
MY language 编写语法 MY language 操作符
1、命名部分: 支持汉字、字母、数字、划线格式命名,长度控制在31字符内。 命名不能和已存在的公式名称重复;
2、定义变量名称 变量名称不能相互重复; 不能与参数名重复; 不能与函数名重复;
3、半角输入法的大写状态;
4、每个语句应该以分号结束;
指标 指能够绘出图线但不发交易指令的公式。指标是一个技术分 析范畴的概念。
交易信号 指指标上出现的提示投资者买卖的指示,可以是图线交叉、 文字、图形。投资者需要按照信号指示去手动委托下单。交 易信号也是一个技术分析范畴的概念。
交易模型: 指能够发出BK、SP等交易指令,模型还包含下单方向, 交易手数,止盈止损等与交易、资金使用相关的参数设置 。交易模型是一个交易范畴的概念。
MA5<MA10,SP;//10日均线大于5日均线卖出 。
——》模型中加入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;
交易指令: 指交易模型自动发出的下单委托指令,可以不经过投资者 确认直接下单,也可以等待投资者回车确认再下单。交易 指令在K线图上以不同颜色和形状的箭头来代表。交易指 令是一个程序化交易范畴的概念。
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;
HH:=H; S:=SETTLE; MA15:MA(C,15);
REF(HH,1); REF(MA15,1);
在编写前,需要将交易思想清晰量化后,通过语言函数编写完成
交易模型基本结构 1.定义需要的每个变量 2.交易条件+交易指令
MA5:=MA(C,5); MA10:=MA(C,10);
定义思路中涉及到的变量
课程内容
一、模型的基本结构和跨指标模型的编写 二、跨周期模型的编写 三、模型中资金管理的编写
MY 语言的编写基于文华财经wh3平台中。通过本节课 的学习,了解文华公式编写平台的基本函数与语法,设计 自己的指标和程序化交易策略模型,实现全自动的委托发 单交易。
公式:
泛指指标、模型。没有具体指向性。
麦语言函数手册
文华财经“麦语言”函数手册(2011年10月更新)
文华财经资讯有限公司
“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。
麦语言,是国内使用人数最多的程序化模型开发平台。
麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。
语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。
麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用
一、自编策略模型支持的函数
1.历史数据引用
2.日内高频数据引用
3.行情数据引用
4.金融统计
5.数理统计
6.逻辑判断
7.数学运算
8.时间函数
9.绘图
10.颜色常数
11.头寸函数
二、自编下单组件支持的函数
1.引用数据函数
2.逻辑判断函数
3.辅助函数
4.数学运算函数
5.模型相关函数
6.头寸函数。
量化交易模型100例
量化交易模型100例量化交易是一种利用数理或统计方法,根据历史数据和市场行情,通过制定一套严谨的规则和策略,进行金融交易的方法。
在金融领域,量化交易已经成为一种主流的交易方式,因为它能够提供高效、快速和系统化的交易决策。
在本文中,将介绍一百个不同类型的量化交易模型,分析其原理和应用。
1. 均值回归模型均值回归模型是量化交易中常用的一种策略。
它通过分析价格的历史走势,利用统计学原理和显著性检验,判断当前价格与历史均值的偏离程度,从而进行交易决策。
这种模型适用于市场波动较小的情况,如股票市场中的股价。
2. 动量策略模型动量策略模型是一种根据价格走势的momentum效应进行交易决策的方法。
它利用市场中的惯性效应,即价格趋势在相对短期内继续延续的趋势。
在价格上升时买入,在价格下降时卖出。
这种模型适用于市场中存在明显趋势的情况。
3. 套利模型套利模型是一种通过同时买入和卖出相关性较高的金融工具,从而利用市场价格的不对称性获利的交易策略。
这种模型利用了市场中的套利机会,通过买入低价资产和卖出高价资产的方式进行交易。
套利模型适用于市场中存在价格差异的情况。
4. 趋势跟踪模型趋势跟踪模型是一种根据市场趋势进行交易决策的方法。
它通过分析价格的趋势和趋势的持续性,判断市场的上升或下降趋势,并根据趋势的判断进行交易。
这种模型适用于市场中存在明显趋势的情况。
5. 风险平衡模型风险平衡模型是一种根据投资组合的风险和收益的平衡进行交易决策的方法。
它通过分析投资组合中不同资产的风险和收益,选择合适的资产分配比例,从而实现风险和收益的平衡。
这种模型适用于投资组合管理的情况。
6. 统计套利模型统计套利模型是一种利用统计学原理和方法进行交易决策的模型。
它通过分析历史数据和市场走势,利用统计学的套利机会进行交易。
这种模型适用于市场中存在统计学套利机会的情况。
7. 事件驱动模型事件驱动模型是一种根据市场中的事件和消息进行交易决策的方法。
麦语言函数手册
文华财经“麦语言”函数手册(2011年10月更新)
文华财经资讯有限公司
“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。
麦语言,是国内使用人数最多的程序化模型开发平台。
麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。
语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。
麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用
一、自编策略模型支持的函数
1.历史数据引用
2.日内高频数据引用。
麦语言基本语法与指令说明
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、指令指定交易数量,买入数量为固定数量
赢智程序化交易培训
赢智“麦语言” MY language
指标 指能够绘出图线但不发交易指令的公式。指标是一个技术分析范畴的概念。 交易指令 指交易模型自动发出的下单委托指令,可以不经过投资者确认直接下单,也可以等待投资者回车确认再下单。交易指令在K线图上以不同颜色和形状的箭头来代表。交易指令是一个程序化交易范畴的概念。 交易模型 指能够发出BK、SP等交易指令,模型还包含下单方向,交易手数,止盈止损等与交易、资金使用相关的参数设置。交易模型是一个交易范畴的概念。
模型
将指标转化为模型:
运作模型:
一、模型的基本结构和跨指标模型的编写
1、模型编写的语法与操作符
MY language 编写语法
1
MY language 操作符
2
MY language 编写语法:
定义变量名称
半角输入法的全英大写状态;
每个语句应该以分号结束;
命名
参数
MY language 操作符
理解以下名词:
KDJ指标源码:
单击此处添加大标题内容
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;
指标
用指标监测行情: 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;
麦语言函数手册
文华财经“麦语言”函数手册
(2011年10月更新)
文华财经资讯有限公司
“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。
麦语言,是国内使用人数最多的程序化模型开发平台。
建模式。
语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。
麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用
一、自编策略模型支持的函数
1.历史数据引用
2.日内高频数据引用
3.行情数据引用
4.金融统计
5.数理统计
6.逻辑判断
7.数学运算
8.时间函数
9.绘图
10.颜色常数
11.头寸函数
二、自编下单组件支持的函数
1.引用数据函数
2.逻辑判断函数
3.辅助函数
4.数学运算函数
5.模型相关函数
6.头寸函数。
麦语言函数手册
取Tick图中该笔TICK的成交价。用法:L2_PRICE返回TICK图中该笔TICK的成交价。
L2_VOLUME
取TICK图中该笔TICK的成交量。用法:L2_VOLUME返回TICK图中该笔TICK的成交量。
ASKBIGVOLPRICE
TICK图中该笔Tick盘口中空头满足大单条件的与最新价的最近价格。用法:ASKBIGVOLPRICE返回TICK图中该笔Tick盘口满足大单条件的与最新价的最近价格,注模型中需调用一次CALVOLPRICELIST函数
L2_ASK4
取秒周期末卖4价(K线图)或该笔TICK时刻的卖4价(Tick图)。用法:L2_ASK4K线图时返回当前秒周期最后时刻的卖4价。TICK图时返回该笔TICK时刻的卖4价。
L2_ASK5
取秒周期末卖5价(K线图)或该笔TICK时刻的卖5价(Tick图)。用法:L2_ASK5K线图时返回当前秒周期最后时刻的卖5价。TICK图时返回该笔TICK时刻的卖5价。
DMA(X,A)
返回X的动态移动平均,其中A为常数,并且必须介于0及1之间。计算方法:DMA(N)=DMA(N-1)*(1-A)+X(N)*A其中DMA(N-1)为第(N-1)天的DMA值。
EMA(X,N)
L2_BIDVOL5
取秒周期末买5量(K线图)或该笔TICK时刻的买5量(Tick图)。用法:L2_BID5K线图时返回当前秒周期最后时刻的买5量。TICK图时返回该笔TICK时刻的买5量。
L2_ASKVOL1
取秒周期末卖1量(K线图)或该笔TICK时刻的卖1量(Tick图)。用法:L2_ASK1K线图时返回当前秒周期最后时刻的卖1量。TICK图时返回该笔TICK时刻的卖1量。
文华程序化交易(资金管理)
其他:
注释或者舍去 想要在编写后,加入自己的语言注释,在结尾处用“//”
表示;或者想舍去某段,在某段在最前端加入“//”;
练习1:为函数做注释 IFELSE(C,A,B) //如果条件C成立则返回A值,否则返回B值
练习2:
SETTLE REF(X,N)
引用结算价 引用X在N个周期前的值
MA(X,N)
求X在N周期内的简单移动平均。
定义变量: 结算价: 15周期收盘价均线(显示定义);
S:=SETTLE; MA15:MA(C,15);
衍生: 当前K线的前一个周期最高价; 当前K线的前一个周期15均线;
REF(H,1); REF(MA15,1);
练习3:
5日均线上穿10日均线的同时收盘价大于20日均线,或者5 日均线上穿10日均线的5个点;
D:SMA(K,M2,1);
J:3*K-2*D;
指标
用指标监测行情: 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;
1仅限秒周期使用2定义下面红色字体函数的大单算法87l2bkvol返回当前秒周期买开的成交量l2skvol返回当前秒周期卖开的成交量l2bpvol返回当前秒周期买平的成交量l2spvol返回当前秒周期卖平的成交量l2bkbigcount返回当前秒周期买开的大单成交次数l2skbigcount返回当前秒周期卖开的大单成交次数l2bpbigcount返回当前秒周期买平的大单成交次数l2spbigcount返回当前秒周期卖平的大单成交次数l2bkbigtotvol返回当前秒周期买开的大单成交量l2skbigtotvol返回当前秒周期卖开的大单成交量l2bpbigtotvol返回当前秒周期买平的大单成交量l2spbigtotvol返回当前秒周期卖平的大单成交量注
量化麦语言程序化模型的编写精
关键词:多个交易条件 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;
麦语言函数手册
麦语言函数手册 The document was finally revised on 2021
文华财经“麦语言”函数手册(2011年10月更新)
文华财经资讯有限公司
“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。
麦语言,是国内使用人数最多的程序化模型开发平台。
麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。
语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。
麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用
一、自编策略模型支持的函数
1.历史数据引用
2.日内高频数据引用
情数据引用
4.金融统计
5.数理统计
6.逻辑判断
学运算
8.时间函数
9.绘图
10.颜色常数
11.头寸函数
用数据函数
辑判断函数
3.辅助函数
学运算函数
型相关函数
寸函数。
