量化经典麦语言程序化模型的编写(精).
麦语言函数手册
文华财经“麦语言”函数手册(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.辅助函数
学运算函数
型相关函数
寸函数。
第2-3讲 模型基本结构与编写
注: 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资源,导致行情刷新速度变慢,请 谨慎使用!
麦语言程序化模型的编写精品文档
例 同一合约不同周期的数据调用
要求
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指标模型。
文华程序化交易
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;
求X在N个周期内的最高值。若N为0则从第一个有效值开始算起。 例:HHV(HIGH,13);求13个周期内的最高价的最大值。
该函数参数支持变量计算如HHV(HIGH,VAR1);//VAR1为变量
VALUEWHEN(COND,
当条件COND满足时,取当时的DATA的值,否则取得前面一个满足条件COND的值。
程序化也是一个研究的概念,程序化平台都提供丰富历史数据和收 益、风险等多角度的模型评估算法的,用户可以在电脑的仿真交易环 境下,去测试、改进策略模型,这样交易思想就可以快速成熟了,不 再需要动辄几个月甚至几年的实盘验证了。利用电脑的历史数据存储 能力,能节省时间,节省金钱。
文华程序化交易
程序化交易需求分析
具体细化思路: 3分钟周期 5日均线上穿10日均线,平空做多; 5日均线下穿10日均线,平多做空; CROSS(MA5,MA10)&&TIME>=0900&&TIME<1457,BK; CROSS(MA10,MA5)||TIME>=1457,SP; CROSS(MA10,MA5)&&TIME>=0900&&TIME<1457,SK; CROSS(MA5,MA10)||TIME>=1457,BP;
麦语言函数手册
麦语言函数手册文华财经“麦语言”函数手册(2011年10月更新)文华财经资讯有限公司“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。
麦语言,是国内使用人数最多的程序化模型开发平台。
麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。
语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。
麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用一、自编策略模型支持的函数1.历史数据引用AVPRICE 取得均价(在盘后对于国内三个期货交易所指结算价)SETTLE 取得结算价(只有在日线周期盘后才能取得当日的结算价)说明:如果用在周期小于'日'的K线上如5分钟K线,一小时k线,每根k线返回的值表示这根k线当日开盘时到这根k线的为止的结算价(均价)如果用在周期大于等于'日'的K线上,返回当根K线结束时间所在日的结算价.CLOSE 取得收盘价(在盘中指最新价),也可简写为 C 。
HIGH 求高价,也可简写为 H 。
LOW 求最低价,也可简写为L 。
OPEN 求开盘价,也可简写为O 。
OPI 取持仓量REF(X,N)引用X在N个周期前的值例:REF(CLOSE,5);表示引用当前周期前第5个周期的收盘价REFX(X,N) 引用N个周期后的数据。
(N为大于等于1的整数)『未来函数』例:REFX(CLOSE,5);表示引用自当前周期后第5个周期的收盘价本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!#IMPORT 引用某品种在某个周期上加载了某个指标的数据。
用法:#IMPORT [CODE, PERIOD, FORMULA] AS VAR。
麦语言基本语法与指令说明
3、指令指定对应组别,同时指定交易手数,
a.下面例 1 中,BK 后面的括号中“1”位置为下单手数。 b.下单手数为固定手数或者变量。 c.如下单手数为变量且结果包含小数,小数采用向下取整原则。 d.指定交易手数后,模组设置的手数无效。 例 1: CROSSUP(C,MA(C,5)),BK('A',1);//A 组做多指令,收盘价向上穿越 5 周期均线,下单手数为固定手数,1 手
例: 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;当根 k 线的收盘价大于开盘价 (阳线)返回 1,否则返回 0。
文华财经-程序化交易培训
DATA)
例:VALUEWHEN(HIGH>REF(HIGH,5),HIGH);表示当前最高价大于前五个周期最高价的
最大值时返回当前最高价。
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));
、文字、图形。投资者需要按照信号指示去手动委托下单。 交易信号也是一个技术分析范畴的概念。
交易模型: 指能够发出BK、SP等交易指令,模型还包含下单方向,
交易手数,止盈止损等与交易、资金使用相关的参数设置。 交易模型是一个交易范畴的概念。
交易指令: 指交易模型自动发出的下单委托指令,可以不经过投资者
引用开盘价,也可简写为O 。
求X在N周期内的简单移动平均。 计算方法: MA=(A1+A2+A3+A4+A5)/5 求A在5个周期内的简单移动平均
表示 X上穿Y; 例:CROSS(CLOSE,MA(CLOSE,5));表示收盘线从下方向上穿过5日均线
MA5:=MA(C,5); MA10:=MA(C,10);
练习2 在K线上如何区分交易指令和交易信号
交易信号
交易指令
练习3 巩固训练
模型基本结构
指标、模型相关术语 模型编写的语法与操作符 模型编写的结构和编写方法
MY language 编写语法:
1、命名部分: 支持汉字、字母、数字、划线格式命名,长度控制在31字符内; 命名不能和已存在的公式名称重复。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关键词:多个交易条件 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平台中。通过本节课 的学习,了解文华公式编写平台的基本函数与语法,设计 自己的指标和程序化交易策略模型,实现全自动的委托发 单交易。
公式:
泛指指标、模型。没有具体指向性。