《麦语言程序化模型的编写.ppt》由会员分享,可在线阅读,更多相关《麦语言程序化模型的编写.ppt(47页珍藏版)》请在三一文库上搜索。
1、“麦语言”(My language)编写,文华财经 研究部,课程内容,一、模型的基本结构和跨指标模型的编写 二、跨周期模型的编写 三、模型中资金管理的编写,赢智“麦语言” MY language,MY 语言的编写基于文华财经wh3平台中。通过本节课的学习,了解文华公式编写平台的基本函数与语法,设计自己的指标和程序化交易策略模型,实现全自动的委托发单交易。,理解并规范使用技术指标,交易模型等以下名词:,泛指指标、模型。没有具体指向性。 指标 指能够绘出图线但不发交易指令的公式。指标是一个技术分析范畴的概念。 交易信号 指指标上出现的提示投资者买卖的指示,可以是图线交叉、文字、图形。投资者需要按照
2、信号指示去手动委托下单。交易信号也是一个技术分析范畴的概念。,公式:,交易模型: 指能够发出BK、SP等交易指令,模型还包含下单方向,交易手数,止盈止损等与交易、资金使用相关的参数设置。交易模型是一个交易范畴的概念。 交易指令: 指交易模型自动发出的下单委托指令,可以不经过投资者确认直接下单,也可以等待投资者回车确认再下单。交易指令在K线图上以不同颜色和形状的箭头来代表。交易指令是一个程序化交易范畴的概念。,例如编写KDJ指标:,RSV:=(CLOSE-LLV(LOW,N)/(HHV(HIGH,N)-LLV(LOW,N)*100; K:SMA(RSV,M1,1); D:SMA(K,M2,1);
3、 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;,运作模型:,一、模型的基本结构
4、和跨指标模型的编写,1、模型编写的语法与操作符,MY language 编写语法 MY language 操作符,1、命名部分: 支持汉字、字母、数字、划线格式命名,长度控制在31字符内。 命名不能和已存在的公式名称重复; 2、定义变量名称 变量名称不能相互重复; 不能与参数名重复; 不能与函数名重复; 3、半角输入法的大写状态; 4、每个语句应该以分号结束;,MY language 编写语法:,5、参数部分: 可以设置六个参数 首先是参数名称,然后是参数的最小值,最大值,最后是参数的默认值。 在定义参数时要注意的是参数名称不可以重复,12个字符内 6、运用函数语言,也就是表达你的语言 函数具
5、有自己的表达式,运行它就需要将我们的思路,按照函数的表达式套用表述。,MY language 编写语法:,命名,参数,模型源码,MY language 操作符,如何运用操作符:,A:(O+C)/2; B:CO; /判断是否收阳;满足条件返回1,否则返回0 D:TIME=0900,其他: 注释或者舍去 想要在编写后,加入自己的语言注释,在结尾处用“/”表示; 或者想舍去某段,在某段在最前端加入“/”; IFELSE(C,A,B) 如果条件C成立则返回A值,否则返回B值,编写练习:,定义变量: 当根K线最高价; 结算价: 15周期收盘价均线(显示定义);,REF(HH,1); REF(MA15,1
6、);,HH:=H; S:=SETTLE; MA15:MA(C,15);,衍生: 当前K线的前一个周期最高价; 当前K线的前一个周期15均线;,在编写前,需要将交易思想清晰量化后,通过语言函数编写完成 交易模型基本结构 1.定义需要的每个变量 2.交易条件+交易指令,2、模型的基本结构,MA5:=MA(C,5); MA10:=MA(C,10); MA20:=MA(C,20); CROSS(MA5,MA10),BK; CROSS(MA10,MA5),SP; CROSS(MA10,MA5),SK; CROSS(MA5,MA10),BP;,定义思路中涉及到的变量,交易条件,写入交易指令,模型中使用的交
7、易指令,编写练习: 关键字:反手指令,均线上穿平空做多,均线下穿平多做空;,CROSS(MA5,MA10),BPK; CROSS(MA10,MA5),SPK;,具体细化思路: 5日均线上穿10日均线,平空做多; 5日均线下穿10日均线,平多做空;,模型中跨指标,是将多个指标交易思想结合在一起进行看盘断势。,关键词:多个交易条件 1:以均线结合KD交叉指标为例: 2:练习编写:MACD、KDJ指标模型。,3、跨指标模型的编写,均线结合KD交叉指标模型:,MA5:=MA(C,5); MA10:=MA(C,10); MA5MA10,BK;/5日均线大于10日均线买入。 MA5MA10,SP;/10日
8、均线大于5日均线卖出。 模型中加入KD指标思路:,均线模型,寻找KDJ指标的源码思想: RSV:=(CLOSE-LLV(LOW,N)/(HHV(HIGH,N)-LLV(LOW,N)*100; K:SMA(RSV,M1,1); D:SMA(K,M2,1); CROSS(K,D),BUY;/K,D金叉,买入。 CROSS(D,K),SELL;/K,D死叉,卖出 MA5:=MA(C,5); MA10:=MA(C,10); RSV:=(CLOSE-LLV(LOW,N)/(HHV(HIGH,N)-LLV(LOW,N)*100; K:SMA(RSV,M1,1); D:SMA(K,M2,1); MA5MA1
9、0,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) 总结:多条件下用“()”明确逻辑关系,二、跨周期模型的编写,跨周期函数介绍,引用某品种在某个周期上加载了某个指标的数据。 用法: #IMPORT CODE, PERIOD, FOR
10、MULA AS VAR 引用 CODE 所对应的合约 PERIOD 周期下指标 FORMULA 的数据。 CODE 文华码,PERIOD 周期,FORMULA 引用指标名,VAR 定义变量名,跨周期跨合约模型的编写规则,1.只能引用 .FML/.XFML文件 2.只能引用如下周期:MIN1 MIN3 MIN5 MIN15 MIN30 HOUR1 DAY WEEK MONTH 3.只能短周期引用长周期 4.被引用的指标中不能存在引用 5.如果不写文华码,默认引用当前合约,也可以直接写合约代码如:rb1201 6.FORMULA 引用指标名,只能引用除数字、或者数字开头的名称之外的名称。,例 同一
11、合约不同周期的数据调用 要求,当日均线出现多头排列时, 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;
12、 DM5DM10,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); 在建立你的模型 #IMPORT , MIN30 ,AAA AS VAR DM5:=VAR.RMA5; DM10:=VAR.RMA10; MA5:=MA(C,5); MA10:=MA(C,10); RM5RM10,思考: 不同合约的
13、数据如何调用,三、模型中资金管理的编写,1、头寸函数函数介绍,2、利用头寸函数实现对仓位的加减。 注意,交易时要考虑前一信号方向防止锁仓。,例:资金管理模型-加减仓模型,A:=多头交易条件; B:=空头交易条件; E:=多头平仓条件; F:=空头平仓条件; A ,3、利用BKPRICE和 SKPRICE等函数。编写限价止盈、限价止损和追踪止损。,例:限价止损、限价止盈模型,A:=多头交易条件; B:=空头交易条件; E:=多头平仓条件; F:=空头平仓条件; A,BK; E|C=BKPRICE+150,SP; B,SK; F|C=SKPRICE+100|C=SKPRICE-150,BP; AUTOFILTER;,例:追踪止损,JW:=5; /定义最小价位 ZS:=10; /定义止损为10个最小价位 BC:=5; /定义步长为5个最小价位 MA1 := MA(C,5); /5周期均线 H1:=HHV(H,BARSBK+1); /取自开仓K线到现在的最高价 CMA1,BK; /收盘价大于5周期均线,开仓 CMA1|(C=(BKPRICE-(ZS*JW)+(BC*JW)*FLOOR(H1-BKPRICE)/(BC*JW), SP; /收盘价小于5周期均线,或者满足追踪止损条件,平仓,谢 谢,祝交易顺利,
链接地址:https://www.31doc.com/p-2638210.html