量化经典程序化交易培训总结课件_第1页
量化经典程序化交易培训总结课件_第2页
量化经典程序化交易培训总结课件_第3页
量化经典程序化交易培训总结课件_第4页
量化经典程序化交易培训总结课件_第5页
已阅读5页,还剩235页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

量化经典程序化交易培训总结课件1课程安排1程序化交易概念2“麦语言”介绍3模型基本结构和编写4如何编写带有资金管理和止损的策略模型5如何进行多维的模型评估6如何编写基于Tick逐笔数据的日内高频模型7如何编写下单组件对下单过程进行精细控制课程安排1程序化交易概念2“麦语言”介绍3模型基本结构2第一章程序化交易概念第一章程序化交易概念3什么是程序化交易?

程序化是一个交易的概念,用户可以把平时的交易思想,写成交易策略模型,让电脑去执行这些交易思想,自动下单。利用电脑的计算能力和铁面无私,提高下单的速度和效率,避免交易收到情绪的影响,理性交易。程序化也是一个研究的概念,程序化平台都提供丰富历史数据和收益、风险等多角度的模型评估算法的,用户可以在电脑的仿真交易环境下,去测试、改进策略模型,这样交易思想就可以快速成熟了,不再需要动辄几个月甚至几年的实盘验证了。利用电脑的历史数据存储能力,能节省时间,节省金钱。什么是程序化交易?4程序化交易需求分析程序化交易需求分析5第二章“麦语言”介绍第二章“麦语言”介绍6麦语言(Mylanguage)模型开发平台

赢智的“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过7年的发展,吸收几十万用户的意见反馈,一点一点完善起来的的,是一套成熟稳定的模型开发平台。

麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。

麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用。

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

赢智的7第三章模型基本结构和编写第三章模型基本结构和编写8本章学习目标:1、了解指标、模型相关术语;2、熟悉模型编写的语法;3、理解模型编写的结构和编写方法。4、学习如何编写跨周期策略模型本章学习目标:9指标、模型相关术语模型编写的语法与操作符模型编写的结构和编写方法模型基本结构学习编写跨指标、跨周期模型指标、模型相关术语模型编写的语法与操作符模型编写的结构和编写10公式:泛指指标、模型。没有具体指向性。指标:指能够绘出图线但不发交易指令的公式。指标是一个技术分析范畴的概念。交易信号:指指标上出现的提示投资者买卖的指示,可以是图线交叉、文字、图形。投资者需要按照信号指示去手动委托下单。交易信号也是一个技术分析范畴的概念。公式:11交易模型:

指能够发出BK、SP等交易指令,模型还包含下单方向,交易手数,止盈止损等与交易、资金使用相关的参数设置。交易模型是一个交易范畴的概念。交易指令:

指交易模型自动发出的下单委托指令,可以不经过投资者确认直接下单,也可以等待投资者回车确认再下单。交易指令在K线图上以不同颜色和形状的箭头来代表。交易指令是一个程序化交易范畴的概念。交易模型:12练习1:如何区分指标和模型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:如何区分指标和模型RSV:=(CLOSE-LLV(L13用指标监测行情:K线上穿D线用指标监测行情:14RSV:=(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;模型RSV:=(CLOSE-LLV(LOW,N))/(HHV(H15练习2在K线上如何区分交易指令和交易信号交易信号练习2在K线上如何区分交易指令和交易信号交易信号16交易指令交易指令17练习3巩固训练练习3巩固训练18指标、模型相关术语模型编写的语法与操作符模型编写的结构和编写方法模型基本结构指标、模型相关术语模型编写的语法与操作符模型编写的结构和编写191、命名部分:支持汉字、字母、数字、划线格式命名,长度控制在31字符内;命名不能和已存在的公式名称重复。2、定义变量名称变量名称不能相互重复;不能与参数名重复;不能与函数名重复。3、半角输入法的大写状态。4、每个语句应该以分号结束。MYlanguage编写语法:1、命名部分:MYlanguage编写语法:205、参数部分:可以设置六个参数;首先是参数名称,然后是参数的最小值,最大值,最后是参数的默认值;在定义参数时要注意的是参数名称不可以重复,12个字符内。6、运用函数语言,也就是表达你的语言:函数具有自己的表达式,运行它就需要将我们的思路,按照函数的表达式套用表述。MYlanguage编写语法:5、参数部分:MYlanguage编写语法:21命名参数命名参数22MA5:=MA(C,5);

MA10:=MA(C,10);

CROSS(MA5,MA10);

CROSS(MA10,MA5);运用函数定义变量MA5:=MA(C,5);

MA10:=MA(C,10);

23MYlanguage操作符

MYlanguage操作符

24如何运用操作符:A:(O+C)/2;B:C>O;//判断是否收阳;满足条件返回1,否则返回0D:TIME>=0910&&C>O;//用于多条件逻辑关系MA5:=MA(C,5);MA10:=MA(C,10);CROSS(MA5,MA10);//金叉CROSS(MA10,MA5);//死叉如何运用操作符:A:(O+C)/2;25其他:注释或者舍去想要在编写后,加入自己的语言注释,在结尾处用“//”表示;或者想舍去某段,在某段在最前端加入“//”;练习1:为函数做注释IFELSE(C,A,B)

//如果条件C成立则返回A值,否则返回B值

其他:26练习2:定义变量:结算价:15周期收盘价均线(显示定义);REF(H,1);REF(MA15,1);S:=SETTLE;MA15:MA(C,15);衍生:当前K线的前一个周期最高价;

当前K线的前一个周期15均线;练习2:定义变量:REF(H,1);S:=SETTLE;衍生27练习3:5日均线上穿10日均线的同时收盘价大于20日均线,或者5日均线上穿10日均线的5个点;MA5:=MA(C,5);MA10:=MA(C,10);MA20:=MA(C,20);A:(CROSS(MA5,MA10)&&C>MA20)||CROSS(MA5,MA10+5*MD);总结:清晰逻辑关系,可以用“()”来表示。练习3:5日均线上穿10日均线的同时收盘价大于20日均线,或28指标、模型相关术语模型编写的语法与操作符模型编写的结构和编写方法模型基本结构指标、模型相关术语模型编写的语法与操作符模型编写的结构和编写29在编写前,需要将交易思想清晰量化后,通过语言函数编写完成。交易模型基本结构:1.定义需要的每个变量2.交易条件+交易指令在编写前,需要将交易思想清晰量化后,通过语言函数编写30MA5:=MA(C,5);

MA10:=MA(C,10);CROSS(MA5,MA10),BPK;CROSS(MA10,MA5),SPK;定义思路中涉及到的变量交易条件,写入交易指令MA5:=MA(C,5);

MA10:=MA(C,10);定31模型中使用的交易指令模型中使用的交易指令32练习编写1:

关键字:反手指令均线上穿平空做多,均线下穿平多做空;MA5:MA(C,5);MA10:MA(C,10);CROSS(MA5,MA10),BPK;CROSS(MA10,MA5),SPK;具体细化思路:5日均线上穿10日均线,平空做多;5日均线下穿10日均线,平多做空;练习编写1:

关键字:反手指令均线上穿平空做多,均线下穿平多33练习编写2:

关键字:日内模型日内交易:均线上穿平空做多,均线下穿平多做空;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;具体细化思路:3分钟周期5日均线上穿10日均线,平空做多;5日均线下穿10日均线,平多做空;练习编写2:

关键字:日内模型日内交易:均线上穿平空做多,均34解读常用函数:解读常用函数:35DATE<>REF(DATE,1)//今天第一根K线VALUEWHEN(DATE<>REF(DATE,1),O);//当天开盘价VALUEWHEN(TIME=1030,O);//10点半那根K线的开盘价昨天的收盘价?VALUEWHEN(DATE<>REF(DATE,1),REF(C,1));DATE<>REF(DATE,1)//今天第一根K线36量化经典程序化交易培训总结课件37C>BKPRICE+50*MD;//最新价大于买开仓价位的50个点HHV(H,BARSBK+1);//开仓到目前为止最高价N:=BARSLAST(DATE<>REF(DATE,1))+1;//今天开盘到目前为止的周期数——》HH:HHV(H,N);//开盘到目前为止的最高价

昨天开盘的最高价?表达式一:REF(HH,N);表达式二:VALUEWHEN(DATE<>REF(DATE,1),REF(HH,1));C>BKPRICE+50*MD;//最新价大于买开仓价位的538模型编写扩展:学习跨周期模型的编写原理和编写步骤。模型编写扩展:39跨周期函数介绍引用某品种在某个周期上加载了某个指标的数据。用法:#IMPORT[CODE,PERIOD,FORMULA]ASVAR引用CODE所对应的合约PERIOD周期下指标FORMULA的数据。CODE文华码,PERIOD周期,FORMULA引用指标名,VAR定义变量名跨周期函数介绍引用某品种在某个周期上加载了某个指标的数据。40跨周期跨合约模型的编写规则1.只能引用.FML/.XFML文件2.只能引用如下周期:MIN1MIN3MIN5MIN15MIN30HOUR1DAYWEEKMONTH3.只能短周期引用长周期4.被引用的指标中不能存在引用5.如果不写文华码,默认引用当前合约,也可以直接写合约代码如:rb12016.FORMULA引用指标名,只能引用除数字、或者数字开头的名称之外的名称。跨周期跨合约模型的编写规则1.只能引用.FML/.XFML41跨周期跨合约模型的编写思路及案例1.同一合约不同周期调用示范12.同一合约不同周期调用示范23.不同合约之间的数据调用跨周期跨合约模型的编写思路及案例1.同一合约不同周期调用42例1同一合约不同周期的数据调用

要求当日均线出现多头排列时,5分钟KD线金叉,做多。当日均线出现空头排列时,5分钟KD线死叉,做空。例1同一合约不同周期的数据调用

要求当日均线出现多头排列43例1:先建立一个指标名称AAAMA5:=MA(C,5);MA10:=MA(C,10);MA30:=MA(C,30);再建立你的模型#IMPORT[,DAY,AAA]ASVARDM5:=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:先建立一个指标名称AAA4430分钟周期上,当前面一根MA5大于MA10,并且5分钟周期上,MA5上穿MA10,做多。30分钟周期上,当前面一根MA5大于MA10,并且5分钟周期上,MA5下穿MA10,做空。尾盘平仓重点:引用大周期的前期数据怎么表达例2同一合约不同周期的数据调用

要求30分钟周期上,当前面一根MA5大于MA10,并且5分钟周期45例2先建立一个指标名称AAARMA5:=REF(MA(C,5),1);RMA10:=REF(MA(C,10),1);再建立你的模型#IMPORT[,MIN30,AAA]ASVARDM5:=VAR.RMA5;DM10:=VAR.RMA10;MA5:=MA(C,5);MA10:=MA(C,10);DM5>DM10&&CROSS(MA5,MA10)&&TIME<1450,BK(DM5<DM10&&CROSS(MA10,MA5))||TIME>=1450,SP;DM5<DM10&&CROSS(MA10,MA5)&&TIME<1450,SK;(DM5>DM10&&CROSS(MA5,MA10))||TIME>=1450,BP;AUTOFILTER;例2先建立一个指标名称AAA46当沪胶指数价格破20日新高,橡胶1201的MA5>MA10,做多。当沪胶指数价格破20日新低,橡胶1201的MA5<MA10,做空。例3不同合约的数据调用

要求当沪胶指数价格破20日新高,橡胶1201的MA5>MA10,47例3:先建立一个指标名称AAAH20:=HHV(H,20);L20:=LLV(L,20);A:=C>REF(H20,1);B:=C<REF(L20,1);再建立你的模型#IMPORT[2300,DAY,AAA]ASVARDH20:=VAR.A;DL20:=VAR.B;MA5:=MA(C,5);MA10:=MA(C,10);DH20&&MA5>MA10,BPK;DL20&&MA5<MA10,SPK;AUTOFILTER;例3:先建立一个指标名称AAA48总结1.注意跨周期函数的空格、是否有分号结尾2.编写时引用大周期的前期数据或者形态分析时,尽量在大周期源码中先实现。3.引用其他合约时注意填写文华码4.数据不足时,请先申请数据在进行加载。5.可以引用的周期长度,和该合约的一分钟数据长度相当。总结1.注意跨周期函数的空格、是否有分号结尾49练习使用跨周期函数编写一个套利模型练习使用跨周期函数编写一个套利模型50第四章资金管理和止损的策略模型第四章资金管理和止损的策略模型51学习目的:掌握如何将交易资金管理和风险控制的理念融合进程序化麦语言的编写中学习目的:52课程内容头寸函数函数介绍资金管理,止盈止损模型的编写思路及案例使用资金管理,止盈止损模型需要注意的问题课程内容头寸函数函数介绍53头寸函数函数介绍头寸函数函数介绍54量化经典程序化交易培训总结课件55量化经典程序化交易培训总结课件56量化经典程序化交易培训总结课件57量化经典程序化交易培训总结课件58量化经典程序化交易培训总结课件59一、资金管理模型的编写思路及案例一、资金管理模型的编写思路及案例60利用头寸函数实现对仓位的加减。例1加仓模型A:=多头开仓条件;A1:=多头加仓条件;B:=空头交易条件;B1:=空头加仓条件;D:=多头平仓条件;E:=空头平仓条件;A&&NOT(ISLASTSK||ISLASTBK),BK(2);B&&NOT(ISLASTBK||ISLASTSK),SK(2);BUYVOL>2&&A1&&ISLASTBK,BK(1);SELLVOL>2&&B1&&ISLASTSK,SK(1);D&&ISLASTBK,SP(BUYVOL);E&&ISLASTSK,BP(SELLVOL);注意,交易时要考虑前一信号方向防止锁仓。利用头寸函数实现对仓位的加减。例1加仓模型A:=多头开仓条61减仓模型A:=多头开仓条件;B:=空头开仓条件;E1:=多头平仓条件1;E2:=多头平仓条件2;F1:=空头平仓条1;F2:=空头平仓条件2;A,BK;B,SK;E1&&ISLASTBK,SP(BUYVOL/2);E2&&ISLASTSP&&BUYVOL>0,SP(BUYVOL);F1&&ISLASTSK,BP(3);F2&&ISLASTBP&&SELLVOL>0,BP(SELLVOL);减仓模型A:=多头开仓条件;62例2:对交易资金的管理

//过滤模型每次下单使用当时资金的20%SETDEALPERCENT(20);DIFF:=EMA(CLOSE,12)-EMA(CLOSE,26);DEA:=EMA(DIFF,9);DIFF<0&&DEA<0&&CROSS(DEA,DIFF),SK;DIFF<0&&DEA<0&&CROSS(DIFF,DEA),BP;DIFF>0&&DEA>0&&CROSS(DIFF,DEA),BK;DIFF>0&&DEA>0&&CROSS(DEA,DIFF),SP;AUTOFILTER;例2:对交易资金的管理

//过滤模型每次下单使用当时资金的26310日均线之上开多仓(开仓资金可用资金20%),价格每上涨10%止盈平仓50%仓位,上涨20%止盈全部仓位。跌破5日线止损。N为合约单位MA10:=MA(C,10);

MA5:=MA(C,5);

CROSS(C,MA10),BK(MONEY*0.2/(N*C*MARGIN));

CROSS(C,BKPRICE*1.1),SP(BUYVOL*0.5);

CROSS(C,BKPRICE*1.2),SP(BUYVOL);

CROSS(MA5,C),SP(BUYVOL);

//非过滤模型10日均线之上开多仓(开仓资金可用资金20%),价格每上涨164收盘价上穿5周期均线,买开仓。收盘价连续2根站上5周期均线,且K线收阳,加仓1手。收盘价下穿5周期均线,卖开仓。收盘价连续2根小于5周期均线,且K线收阴,加仓1手。MA5:=MA(C,5);CROSS(C,MA5,)&&NOT(ISLASTBK||ISLASTSK),BK(2);CROSS(MA5,C)&&NOT(ISLASTBK||ISLASTSK),SK(2);EVERY(C>MA5,2)&&ISUP&&ISLASTBK,BK(1);EVERY(C<MA5,2)&&ISDOWN&&ISLASTSK,SK(1);平多条件&&ISLASTBK,SP(BUYVOL);平空条件&&ISLASTSK,BP(SELLVOL);(编写练习—加仓)收盘价上穿5周期均线,买开仓。收盘价连续2根站上5周期均线,65二、止盈止损模型的编写思路及案例二、止盈止损模型的编写思路及案例66例1:限价止损、限价止盈模型A:=多头交易条件;B:=空头交易条件;E:=多头平仓条件;F:=空头平仓条件;A,BK;E||C<=BKPRICE-100||C>=BKPRICE+150,SP;B,SK;F||C>=SKPRICE+100||C<=SKPRICE-150,BP;AUTOFILTER;例1:限价止损、限价止盈模型A:=多头交易条件;67收盘价大于5周期均线,买开仓。收盘价小于5周期均线,平多仓。收盘价从高点回调30%,止盈。N:=0.3;//定义回撤幅度MA1:=MA(C,5);//5周期均线HH:=HHV(H,BARSBK+1);//取自开仓K线到现在的最高价C>MA1,BK;(C<MA1)||(C>=BKPRICE&&C<=HH-N*(HH-BKPRICE)),SP;例2:回撤止损止盈模型收盘价大于5周期均线,买开仓。例2:回撤止损止盈模型68使用资金管理,止盈止损模型需要注意的问题编写加减仓位时要注意对信号的判断。(避免锁仓)动态止损如果涉及到步长,要注意止损价位的变化和步长的相关度。使用资金管理,止盈止损模型需要注意的问题69大豆1205合约:低于买开仓价10个点差,多头止损;高于买开仓价20个点差,多头止赢;高于卖开仓价10个点差,空头止损;低于卖开仓价20个点差,空头止赢;A:=MINPRICE('A1205');多头开仓条件,BK;(C<=BKPRICE-SL*A||C>=BKPRICE+TP*A)&&BKPRICE>0,SP;空头开仓条件,SK;(C>=SKPRICE+SL*A||C<=SKPRICE-TP*A)&&SKPRICE>0,BP;//止损点差为SL,止赢点差为TP(编写练习—限价止损止盈模型)大豆1205合约:(编写练习—限价止损止盈模型)70第五章多维模型评估第五章多维模型评估71多维的效果测试功能多维的效果测试功能72量化经典程序化交易培训总结课件737474757576767777第六章日内高频模型78第六章日内高频模型78课程内容日内高频函数介绍日内模型的编写思路及案例使用日内模型需要注意的问题课程内容日内高频函数介绍79日内高频函数介绍引用盘口数据:挂单数据和成交数据引用数据类型:TICK数据和秒周期数据日内高频函数介绍80挂单数据L2_BID1取买一价L2_BIDVOL1取买一量L2_BID2取买二价L2_BIDVOL2取买二量L2_BID3取买三价L2_BIDVOL3取买三量L2_BID4取买四价L2_BIDVOL4取买四量L2_BID5取买五价L2_BIDVOL5取买五量注:K线图和TICK都可以使用挂单数据L2_BID1取买一价L2_BIDVOL181挂单数据L2_ASK1取卖一价L2_ASKVOL1取卖一量L2_ASK2取卖二价L2_ASKVOL2取卖二量L2_ASK3取卖三价L2_ASKVOL3取卖三量L2_ASK4取卖四价L2_ASKVOL4取卖四量L2_ASK5取卖五价L2_ASKVOL5取卖五量注:K线图和TICK都可以使用挂单数据L2_ASK1取卖一价L2_ASKVOL182挂单数据ASKBIGVOLPRICE:返回TICK图中该笔Tick盘口满足大单条件的与最新价的最近价格BIDBIGVOLPRICE:返回TICK图中该笔Tick盘口满足大单条件的与最新价的最近价格CALVOLPRICELIS:TICK图中初始化盘口大单价格表,主要在BIDBIGVOLPRICE与ASKBIGVOLPRICE前使用,提供初始化注:仅限TICK使用挂单数据ASKBIGVOLPRICE:返回TICK图中该笔83函数解释1、ASKBIGVOLPRICE、BIDBIGVOLPRICE最近大单价格大单:自动或手动定义2、CALVOLPRICELIST:TICK图中初始化盘口大单价格表初始化五档或者五档之外大单列表,供提取函数解释1、ASKBIGVOLPRICE、BIDBIGVO84成交数据L2_PRICE:返回TICK图中该笔TICK的成交价。L2_VOLUME:返回TICK图中该笔TICK的成交量。注:仅限TICK使用成交数据L2_PRICE:返回TICK图中该笔TICK的成85成交数据L2_SETBIGVOL(nVol)设置大单成交手数阈值,成交手数大于nVol的为大单注:1、仅限秒周期使用2、定义下面红色字体函数的大单算法成交数据L2_SETBIGVOL(nVol)设置大单成交86成交数据L2_BKVOL返回当前秒周期买开的成交量L2_SKVOL返回当前秒周期卖开的成交量L2_BPVOL返回当前秒周期买平的成交量L2_SPVOL返回当前秒周期卖平的成交量L2_BKBIGCOUNT返回当前秒周期买开的大单成交次数L2_SKBIGCOUNT返回当前秒周期卖开的大单成交次数L2_BPBIGCOUNT返回当前秒周期买平的大单成交次数L2_SPBIGCOUNT返回当前秒周期卖平的大单成交次数L2_BKBIGTOTVOL返回当前秒周期买开的大单成交量L2_SKBIGTOTVOL返回当前秒周期卖开的大单成交量L2_BPBIGTOTVOL返回当前秒周期买平的大单成交量L2_SPBIGTOTVOL返回当前秒周期卖平的大单成交量注:仅限秒周期使用成交数据L2_BKVOL返回当前秒周期买开的成交量87成交数据L2_BIDVOL返回当前秒周期主动买的成交量L2_ASKVOL返回当前秒周期主动卖的成交量L2_BIDBIGCOUNT返回当前秒周期主动买的大单成交次数L2_ASKBIGCOUNT返回当前秒周期主动卖的大单成交次数L2_BIDBIGTOTVOL返回当前秒周期主动买的大单成交量L2_ASKBIGTOTVOL返回当前秒周期主动卖的大单成交量注:仅限秒周期使用成交数据L2_BIDVOL返回当前秒周期主动买的成交量88小节

引用函数,相对比较简单,直接将函数写进相应的语句,函数即代表其本身所表示的数值。小节引用函数,相对比较简单,直接将函数写进相应的语句,89日内模型的编写思路及案例买卖人气型大单跟踪型日内模型的编写思路及案例买卖人气型90买卖人气型

根据盘口价量变化判断买卖双方的交易气氛,依此作为入场依据,可获得短暂盈利。可能用到的函数:各档位委托量、多空双方的大单价格、主动买卖的成交次数等买卖人气型

根据盘口价量变化判断买卖双方91例1A:=L2_BIDVOL1+L2_BIDVOL2+L2_BIDVOL3;//定义买盘前3档总量B:=L2_ASKVOL1+L2_ASKVOL2+L2_ASKVOL3;//定义卖盘前3档总量D:A-B;CROSS(D,0)&&ISLASTSK=0&&ISLASTBK=0,BK(1);//买量大于卖量且前一个指令不是开仓指令,则买开仓1手;CROSS(0,D)&&ISLASTBK=0&&ISLASTSK=0,SK(1);//买量小于卖量且前一个指令不是开仓指令,则卖开仓1手;EVERY(D>REF(D,1),2)&&ISLASTSK=1&&ISLASTBK=0,BP(1);//连续2个周期买量不断增加且前一个指令是卖开仓,则平1手空单;EVERY(D<REF(D,1),2)&&ISLASTBK=1&&ISLASTSK=0,SP(1);//连续2个周期卖量不断增加且前一个指令是买开仓,则平1手多单;例1A:=L2_BIDVOL1+L2_BIDVOL2+L2_92大单跟踪型

根据大单累计或者大单变化方向预判价格即将发展的方向入场.可能用到的函数:主动买卖大单成交次数、买卖开平大单成交次数等大单跟踪型

根据大单累计或者大单变化方向预93例2L2_SETBIGVOL(20);

//定义大单,成交超过20手为大单EVERY(L2_BIDBIGCOUNT>L2_ASKBIGCOUNT,3),BPK;

//三个周期内,主动买大单成交次数一直大于主动卖成交次数,做多EVERY(L2_BIDBIGCOUNT<L2_ASKBIGCOUNT,3),SPK;

//三个周期内,主动买大单成交次数一直小于主动卖成交次数,做空AUTOFILTER;例2L2_SETBIGVOL(20);//定义大单,成交超94使用日内模型需要注意的问题1、日内平仓2、手续费3、滑点4、信号忽闪使用日内模型需要注意的问题1、日内平仓95第七章下单组件编写第七章下单组件编写96什么是下单组件什么是下单组件97下单组件的作用下单组件的作用98下单组件如何编写下单组件如何编写99基本语法一、变量的定义及赋值:VARN1;//定义变量N1VARN2;//定义变量N2VARN3;//定义变量N3N1=3000;//整型赋值N2=88.888;//浮点型赋值N3=“股指期货”;//字符串型赋值基本语法一、变量的定义及赋值:VARN1;100基本语法二、函数的定义:VOIDMAIN()//定义主函数{…}VARBKDEAL()//带返回值的函数{RETURN(10)//返回值}VOIDBKDEAL()//不带返回值函数{…}基本语法二、函数的定义:VOIDMAIN()//定101VARN;//定义变量NVOIDMAIN()//定义主函数{N=“文华财经”;//对N赋值MessageOut(N);//输出N}

主函数:VARN;//定义变量N主函数:102VARBKDEAL(A,B)//带返回值的函数{VARC;//定义变量CC=(A+B)/2;RETURN(C)//返回值}……D=BKDEAL(15,20);//使用函数……带返回值的函数:VARBKDEAL(A,B)//带返回值的函数带返回值103不带返回值的函数:VOIDBKDEAL()//不带返回值函数{T_Deal(“IF1108”,0,0,1,0);}……IF(…)//当条件成立{BKDEAL()//运行函数}不带返回值的函数:VOIDBKDEAL()//不带返回值104下单组件包括的系统函数下单组件包括的系统函数105函数简介三、常用函数——判断IF(F_Sig()==BK)

//如果当前是BK信号{

BKDeal();//运行开多仓函数}ELSE

IF(F_Sig()==SK)//如果当前是SK信号{SKDeal();//运行开空仓函数}函数简介三、常用函数——判断IF(F_Sig()==BK)106函数简介三、常用函数——信号IF(F_FreshSig()==1&&F_SigValid()==1)//如果是没有消失的新信号{IF(F_Sig()==BK)//如果当前是BK信号{…}}函数简介三、常用函数——信号IF(F_FreshSig()=107函数简介三、常用函数——委托T_Deal(Code,bs,kp,vol,price)T_AddBuyOpiTo(Code,Price,Vol)T_AddSellOpiTo(Code,Price,Vol)T_ReduceBuyOpiTo(Code,Price,Vol)T_ReduceSellOpiTo(Code,Price,Vol)Code=F_DealCode()函数简介三、常用函数——委托T_Deal(Code,bs,k108函数简介三、常用函数——注册A=ReadGlobal(“AA”);//读取A=A+1;//计算WriteGlobal(“AA”,A);//更新“AA”读取注册函数简介三、常用函数——注册A=ReadGlobal(“AA109函数简介三、常用函数——输出MessageOut(3000);//输出数值MessageOut(“成交”);//输出文字MessageOut(N);//输出变量函数简介三、常用函数——输出MessageOut(3000)110策略回撤平仓:1、程序化或手动开仓做多。2、盈利从最高点回撤N个点位以后,自动平仓。

策略回撤平仓:111编写流程VARP;//定义当前价格VARHH;//定义波段最高价VARN;//定义回撤点差第一步、定义变量:编写流程VARP;//定义当前价格第一步、定112第二步、编写流程图:读取当前是否有多头持仓有持仓无持仓不操作平仓函数读取最高价符合条件平仓新的最高价更新最高价第二步、编写流程图:读取当前是否有多头持仓有持仓无持仓不操作113第三步、定义函数:VOIDMAIN(){1、取得最新价。2、定义回撤点差。3、判断当前是否有持仓。4、如果有持仓,运行平仓程序。}第三步、定义函数:VOIDMAIN()114主函数部分:VOID

MAIN(){

P=Price(“cu1110”);//取得最新价

N=5;//定义回撤点差

IF

(T_BuyPosition("cu1110")>0)//如果多头持仓大于0

{

SPDeal();//执行平仓程序

}}主函数部分:VOIDMAIN()115第三步、定义函数:VOID

SPDeal()//平仓函数{

HH=ReadGlobal("HH");

IF

(HH==0||P>HH)

{

HH=P;

}

ELSE

IF

(P<HH-N*10)

{

T_Deal(“cu1110",1,2,T_BuyPosition(“cu1110"),0);

HH=0;//上交所合约平今仓为2,平老仓为1

}

WriteGlobal("HH",HH);}第三步、定义函数:VOIDSPDeal()//平仓函数116策略2关键点:1、如何读取持仓2、最高价的更新3、回撤条件4、委托数量及价格5、组件的调试策略2关键点:1、如何读取持仓117编写注意事项1、流程图的编写2、勤用语法检测3、重视编写规范4、每句添加注释5、多用自定义函数6、调试过程很重要编写注意事项1、流程图的编写118

谢谢

祝交易顺利祝交易119演讲完毕,谢谢观看!演讲完毕,谢谢观看!120量化经典程序化交易培训总结课件121课程安排1程序化交易概念2“麦语言”介绍3模型基本结构和编写4如何编写带有资金管理和止损的策略模型5如何进行多维的模型评估6如何编写基于Tick逐笔数据的日内高频模型7如何编写下单组件对下单过程进行精细控制课程安排1程序化交易概念2“麦语言”介绍3模型基本结构122第一章程序化交易概念第一章程序化交易概念123什么是程序化交易?

程序化是一个交易的概念,用户可以把平时的交易思想,写成交易策略模型,让电脑去执行这些交易思想,自动下单。利用电脑的计算能力和铁面无私,提高下单的速度和效率,避免交易收到情绪的影响,理性交易。程序化也是一个研究的概念,程序化平台都提供丰富历史数据和收益、风险等多角度的模型评估算法的,用户可以在电脑的仿真交易环境下,去测试、改进策略模型,这样交易思想就可以快速成熟了,不再需要动辄几个月甚至几年的实盘验证了。利用电脑的历史数据存储能力,能节省时间,节省金钱。什么是程序化交易?124程序化交易需求分析程序化交易需求分析125第二章“麦语言”介绍第二章“麦语言”介绍126麦语言(Mylanguage)模型开发平台

赢智的“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过7年的发展,吸收几十万用户的意见反馈,一点一点完善起来的的,是一套成熟稳定的模型开发平台。

麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。

麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用。

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

赢智的127第三章模型基本结构和编写第三章模型基本结构和编写128本章学习目标:1、了解指标、模型相关术语;2、熟悉模型编写的语法;3、理解模型编写的结构和编写方法。4、学习如何编写跨周期策略模型本章学习目标:129指标、模型相关术语模型编写的语法与操作符模型编写的结构和编写方法模型基本结构学习编写跨指标、跨周期模型指标、模型相关术语模型编写的语法与操作符模型编写的结构和编写130公式:泛指指标、模型。没有具体指向性。指标:指能够绘出图线但不发交易指令的公式。指标是一个技术分析范畴的概念。交易信号:指指标上出现的提示投资者买卖的指示,可以是图线交叉、文字、图形。投资者需要按照信号指示去手动委托下单。交易信号也是一个技术分析范畴的概念。公式:131交易模型:

指能够发出BK、SP等交易指令,模型还包含下单方向,交易手数,止盈止损等与交易、资金使用相关的参数设置。交易模型是一个交易范畴的概念。交易指令:

指交易模型自动发出的下单委托指令,可以不经过投资者确认直接下单,也可以等待投资者回车确认再下单。交易指令在K线图上以不同颜色和形状的箭头来代表。交易指令是一个程序化交易范畴的概念。交易模型:132练习1:如何区分指标和模型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:如何区分指标和模型RSV:=(CLOSE-LLV(L133用指标监测行情:K线上穿D线用指标监测行情:134RSV:=(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;模型RSV:=(CLOSE-LLV(LOW,N))/(HHV(H135练习2在K线上如何区分交易指令和交易信号交易信号练习2在K线上如何区分交易指令和交易信号交易信号136交易指令交易指令137练习3巩固训练练习3巩固训练138指标、模型相关术语模型编写的语法与操作符模型编写的结构和编写方法模型基本结构指标、模型相关术语模型编写的语法与操作符模型编写的结构和编写1391、命名部分:支持汉字、字母、数字、划线格式命名,长度控制在31字符内;命名不能和已存在的公式名称重复。2、定义变量名称变量名称不能相互重复;不能与参数名重复;不能与函数名重复。3、半角输入法的大写状态。4、每个语句应该以分号结束。MYlanguage编写语法:1、命名部分:MYlanguage编写语法:1405、参数部分:可以设置六个参数;首先是参数名称,然后是参数的最小值,最大值,最后是参数的默认值;在定义参数时要注意的是参数名称不可以重复,12个字符内。6、运用函数语言,也就是表达你的语言:函数具有自己的表达式,运行它就需要将我们的思路,按照函数的表达式套用表述。MYlanguage编写语法:5、参数部分:MYlanguage编写语法:141命名参数命名参数142MA5:=MA(C,5);

MA10:=MA(C,10);

CROSS(MA5,MA10);

CROSS(MA10,MA5);运用函数定义变量MA5:=MA(C,5);

MA10:=MA(C,10);

143MYlanguage操作符

MYlanguage操作符

144如何运用操作符:A:(O+C)/2;B:C>O;//判断是否收阳;满足条件返回1,否则返回0D:TIME>=0910&&C>O;//用于多条件逻辑关系MA5:=MA(C,5);MA10:=MA(C,10);CROSS(MA5,MA10);//金叉CROSS(MA10,MA5);//死叉如何运用操作符:A:(O+C)/2;145其他:注释或者舍去想要在编写后,加入自己的语言注释,在结尾处用“//”表示;或者想舍去某段,在某段在最前端加入“//”;练习1:为函数做注释IFELSE(C,A,B)

//如果条件C成立则返回A值,否则返回B值

其他:146练习2:定义变量:结算价:15周期收盘价均线(显示定义);REF(H,1);REF(MA15,1);S:=SETTLE;MA15:MA(C,15);衍生:当前K线的前一个周期最高价;

当前K线的前一个周期15均线;练习2:定义变量:REF(H,1);S:=SETTLE;衍生147练习3:5日均线上穿10日均线的同时收盘价大于20日均线,或者5日均线上穿10日均线的5个点;MA5:=MA(C,5);MA10:=MA(C,10);MA20:=MA(C,20);A:(CROSS(MA5,MA10)&&C>MA20)||CROSS(MA5,MA10+5*MD);总结:清晰逻辑关系,可以用“()”来表示。练习3:5日均线上穿10日均线的同时收盘价大于20日均线,或148指标、模型相关术语模型编写的语法与操作符模型编写的结构和编写方法模型基本结构指标、模型相关术语模型编写的语法与操作符模型编写的结构和编写149在编写前,需要将交易思想清晰量化后,通过语言函数编写完成。交易模型基本结构:1.定义需要的每个变量2.交易条件+交易指令在编写前,需要将交易思想清晰量化后,通过语言函数编写150MA5:=MA(C,5);

MA10:=MA(C,10);CROSS(MA5,MA10),BPK;CROSS(MA10,MA5),SPK;定义思路中涉及到的变量交易条件,写入交易指令MA5:=MA(C,5);

MA10:=MA(C,10);定151模型中使用的交易指令模型中使用的交易指令152练习编写1:

关键字:反手指令均线上穿平空做多,均线下穿平多做空;MA5:MA(C,5);MA10:MA(C,10);CROSS(MA5,MA10),BPK;CROSS(MA10,MA5),SPK;具体细化思路:5日均线上穿10日均线,平空做多;5日均线下穿10日均线,平多做空;练习编写1:

关键字:反手指令均线上穿平空做多,均线下穿平多153练习编写2:

关键字:日内模型日内交易:均线上穿平空做多,均线下穿平多做空;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;具体细化思路:3分钟周期5日均线上穿10日均线,平空做多;5日均线下穿10日均线,平多做空;练习编写2:

关键字:日内模型日内交易:均线上穿平空做多,均154解读常用函数:解读常用函数:155DATE<>REF(DATE,1)//今天第一根K线VALUEWHEN(DATE<>REF(DATE,1),O);//当天开盘价VALUEWHEN(TIME=1030,O);//10点半那根K线的开盘价昨天的收盘价?VALUEWHEN(DATE<>REF(DATE,1),REF(C,1));DATE<>REF(DATE,1)//今天第一根K线156量化经典程序化交易培训总结课件157C>BKPRICE+50*MD;//最新价大于买开仓价位的50个点HHV(H,BARSBK+1);//开仓到目前为止最高价N:=BARSLAST(DATE<>REF(DATE,1))+1;//今天开盘到目前为止的周期数——》HH:HHV(H,N);//开盘到目前为止的最高价

昨天开盘的最高价?表达式一:REF(HH,N);表达式二:VALUEWHEN(DATE<>REF(DATE,1),REF(HH,1));C>BKPRICE+50*MD;//最新价大于买开仓价位的5158模型编写扩展:学习跨周期模型的编写原理和编写步骤。模型编写扩展:159跨周期函数介绍引用某品种在某个周期上加载了某个指标的数据。用法:#IMPORT[CODE,PERIOD,FORMULA]ASVAR引用CODE所对应的合约PERIOD周期下指标FORMULA的数据。CODE文华码,PERIOD周期,FORMULA引用指标名,VAR定义变量名跨周期函数介绍引用某品种在某个周期上加载了某个指标的数据。160跨周期跨合约模型的编写规则1.只能引用.FML/.XFML文件2.只能引用如下周期:MIN1MIN3MIN5MIN15MIN30HOUR1DAYWEEKMONTH3.只能短周期引用长周期4.被引用的指标中不能存在引用5.如果不写文华码,默认引用当前合约,也可以直接写合约代码如:rb12016.FORMULA引用指标名,只能引用除数字、或者数字开头的名称之外的名称。跨周期跨合约模型的编写规则1.只能引用.FML/.XFML161跨周期跨合约模型的编写思路及案例1.同一合约不同周期调用示范12.同一合约不同周期调用示范23.不同合约之间的数据调用跨周期跨合约模型的编写思路及案例1.同一合约不同周期调用162例1同一合约不同周期的数据调用

要求当日均线出现多头排列时,5分钟KD线金叉,做多。当日均线出现空头排列时,5分钟KD线死叉,做空。例1同一合约不同周期的数据调用

要求当日均线出现多头排列163例1:先建立一个指标名称AAAMA5:=MA(C,5);MA10:=MA(C,10);MA30:=MA(C,30);再建立你的模型#IMPORT[,DAY,AAA]ASVARDM5:=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:先建立一个指标名称AAA16430分钟周期上,当前面一根MA5大于MA10,并且5分钟周期上,MA5上穿MA10,做多。30分钟周期上,当前面一根MA5大于MA10,并且5分钟周期上,MA5下穿MA10,做空。尾盘平仓重点:引用大周期的前期数据怎么表达例2同一合约不同周期的数据调用

要求30分钟周期上,当前面一根MA5大于MA10,并且5分钟周期165例2先建立一个指标名称AAARMA5:=REF(MA(C,5),1);RMA10:=REF(MA(C,10),1);再建立你的模型#IMPORT[,MIN30,AAA]ASVARDM5:=VAR.RMA5;DM10:=VAR.RMA10;MA5:=MA(C,5);MA10:=MA(C,10);DM5>DM10&&CROSS(MA5,MA10)&&TIME<1450,BK(DM5<DM10&&CROSS(MA10,MA5))||TIME>=1450,SP;DM5<DM10&&CROSS(MA10,MA5)&&TIME<1450,SK;(DM5>DM10&&CROSS(MA5,MA10))||TIME>=1450,BP;AUTOFILTER;例2先建立一个指标名称AAA166当沪胶指数价格破20日新高,橡胶1201的MA5>MA10,做多。当沪胶指数价格破20日新低,橡胶1201的MA5<MA10,做空。例3不同合约的数据调用

要求当沪胶指数价格破20日新高,橡胶1201的MA5>MA10,167例3:先建立一个指标名称AAAH20:=HHV(H,20);L20:=LLV(L,20);A:=C>REF(H20,1);B:=C<REF(L20,1);再建立你的模型#IMPORT[2300,DAY,AAA]ASVARDH20:=VAR.A;DL20:=VAR.B;MA5:=MA(C,5);MA10:=MA(C,10);DH20&&MA5>MA10,BPK;DL20&&MA5<MA10,SPK;AUTOFILTER;例3:先建立一个指标名称AAA168总结1.注意跨周期函数的空格、是否有分号结尾2.编写时引用大周期的前期数据或者形态分析时,尽量在大周期源码中先实现。3.引用其他合约时注意填写文华码4.数据不足时,请先申请数据在进行加载。5.可以引用的周期长度,和该合约的一分钟数据长度相当。总结1.注意跨周期函数的空格、是否有分号结尾169练习使用跨周期函数编写一个套利模型练习使用跨周期函数编写一个套利模型170第四章资金管理和止损的策略模型第四章资金管理和止损的策略模型171学习目的:掌握如何将交易资金管理和风险控制的理念融合进程序化麦语言的编写中学习目的:172课程内容头寸函数函数介绍资金管理,止盈止损模型的编写思路及案例使用资金管理,止盈止损模型需要注意的问题课程内容头寸函数函数介绍173头寸函数函数介绍头寸函数函数介绍174量化经典程序化交易培训总结课件175量化经典程序化交易培训总结课件176量化经典程序化交易培训总结课件177量化经典程序化交易培训总结课件178量化经典程序化交易培训总结课件179一、资金管理模型的编写思路及案例一、资金管理模型的编写思路及案例180利用头寸函数实现对仓位的加减。例1加仓模型A:=多头开仓条件;A1:=多头加仓条件;B:=空头交易条件;B1:=空头加仓条件;D:=多头平仓条件;E:=空头平仓条件;A&&NOT(ISLASTSK||ISLASTBK),BK(2);B&&NOT(ISLASTBK||ISLASTSK),SK(2);BUYVOL>2&&A1&&ISLASTBK,BK(1);SELLVOL>2&&B1&&ISLASTSK,SK(1);D&&ISLASTBK,SP(BUYVOL);E&&ISLASTSK,BP(SELLVOL);注意,交易时要考虑前一信号方向防止锁仓。利用头寸函数实现对仓位的加减。例1加仓模型A:=多头开仓条181减仓模型A:=多头开仓条件;B:=空头开仓条件;E1:=多头平仓条件1;E2:=多头平仓条件2;F1:=空头平仓条1;F2:=空头平仓条件2;A,BK;B,SK;E1&&ISLASTBK,SP(BUYVOL/2);E2&&ISLASTSP&&BUYVOL>0,SP(BUYVOL);F1&&ISLASTSK,BP(3);F2&&ISLASTBP&&SELLVOL>0,BP(SELLVOL);减仓模型A:=多头开仓条件;182例2:对交易资金的管理

//过滤模型每次下单使用当时资金的20%SETDEALPERCENT(20);DIFF:=EMA(CLOSE,12)-EMA(CLOSE,26);DEA:=EMA(DIFF,9);DIFF<0&&DEA<0&&CROSS(DEA,DIFF),SK;DIFF<0&&DEA<0&&CROSS(DIFF,DEA),BP;DIFF>0&&DEA>0&&CROSS(DIFF,DEA),BK;DIFF>0&&DEA>0&&CROSS(DEA,DIFF),SP;AUTOFILTER;例2:对交易资金的管理

//过滤模型每次下单使用当时资金的218310日均线之上开多仓(开仓资金可用资金20%),价格每上涨10%止盈平仓50%仓位,上涨20%止盈全部仓位。跌破5日线止损。N为合约单位MA10:=MA(C,10);

MA5:=MA(C,5);

CROSS(C,MA10),BK(MONEY*0.2/(N*C*MARGIN));

CROSS(C,BKPRICE*1.1),SP(BUYVOL*0.5);

CROSS(C,BKPRICE*1.2),SP(BUYVOL);

CROSS(MA5,C),SP(BUYVOL);

//非过滤模型10日均线之上开多仓(开仓资金可用资金20%),价格每上涨1184收盘价上穿5周期均线,买开仓。收盘价连续2根站上5周期均线,且K线收阳,加仓1手。收盘价下穿5周期均线,卖开仓。收盘价连续2根小于5周期均线,且K线收阴,加仓1手。MA5:=MA(C,5);CROSS(C,MA5,)&&NOT(ISLASTBK||ISLASTSK),BK(2);CROSS(MA5,C)&&NOT(ISLASTBK||ISLASTSK),SK(2);EVERY(C>MA5,2)&&ISUP&&ISLASTBK,BK(1);EVERY(C<MA5,2)&&ISDOWN&&ISLASTSK,SK(1);平多条件&&ISLASTBK,SP(BUYVOL);平空条件&&ISLASTSK,BP(SELLVOL);(编写练习—加仓)收盘价上穿5周期均线,买开仓。收盘价连续2根站上5周期均线,185二、止盈止损模型的编写思路及案例二、止盈止损模型的编写思路及案例186例1:限价止损、限价止盈模型A:=多头交易条件;B:=空头交易条件;E:=多头平仓条件;F:=空头平仓条件;A,BK;E||C<=BKPRICE-100||C>=BKPRICE+150,SP;B,SK;F||C>=SKPRICE+100||C<=SKPRICE-150,BP;AUTOFILTER;例1:限价止损、限价止盈模型A:=多头交易条件;187收盘价大于5周期均线,买开仓。收盘价小于5周期均线,平多仓。收盘价从高点回调30%,止盈。N:=0.3;//定义回撤幅度MA1:=MA(C,5);//5周期均线HH:=HHV(H,BARSBK+1);//取自开仓K线到现在的最高价C>MA1,BK;(C<MA1)||(C>=BKPRICE&&C<=HH-N*(HH-BKPRICE)),SP;例2:回撤止损止盈模型收盘价大于5周期均线,买开仓。例2:回撤止损止盈模型188使用资金管理,止盈止损模型需要注意的问题编写加减仓位时要注意对信号的判断。(避免锁仓)动态止损如果涉及到步长,要注意止损价位的变化和步长的相关度。使用资金管理,止盈止损模型需要注意的问题189大豆1205合约:低于买开仓价10个点差,多头止损;高于买开仓价20个点差,多头止赢;高于卖开仓价10个点差,空头止损;低于卖开仓价20个点差,空头止赢;A:=MINPRICE('A1205');多头开仓条件,BK;(C<=BKPRICE-SL*A||C>=BKPRICE+TP*A)&&BKPRICE>0,SP;空头开仓条件,SK;(C>=SKPRICE+SL*A||C<=SKPRICE-TP*A)&&SKPRICE>0,BP;//止损点差为SL,止赢点差为TP(编写练习—限价止损止盈模型)大豆1205合约:(编写练习—限价止损止盈模型)190第五章多维模型评估第五章多维模型评估191多维的效果测试功能多维的效果测试功能192量化经典程序化交易培训总结课件19319474195751967619777第六章日内高频模型198第六章日内高频模型78课程内容日内高频函数介绍日内模型的编写思路及案例使用日内模型需要注意的问题课程内容日内高频函数介绍199日内高频函数介绍引用盘口数据:挂单数据和成交数据引用数据类型:TICK数据和秒周期数据日内高频函数介绍200挂单数据L2_BID1取买一价L2_BIDVOL1取买一量L2_BID2取买二价L2_BIDVOL2取买二量L2_BID3取买三价L2_BIDVOL3取买三量L2_BID4取买四价L2_BIDVOL4取买四量L2_BID5取买五价L2_BIDVOL5取买五量注:K线图和TICK都可以使用挂单数据L2_BID1取买一价L2_BIDVOL1201挂单数据L2_ASK1取卖一价L2_ASKVOL1取卖一量L2_ASK2取卖二价L2_ASKVOL2取卖二量L2_ASK3取卖三价L2_ASKVOL3取卖三量L2_ASK4取卖四价L2_ASKVOL4取卖四量L2_ASK5取卖五价L2_ASKVOL5取卖五量注:K线图和TICK都可以使用挂单数据L2_ASK1取卖一价L2_ASKVOL1202挂单数据ASKBIGVOLPRICE:返回TICK图中该笔Tick盘口满足大单条件的与最新价的最近价格BIDBIGVOLPRICE:返回TICK图中该笔Tick盘口满足大单条件的与最新价的最近价格CALVOLPRICELIS:TICK图中初始化盘口大单价格表,主要在BIDBIGVOLPRICE与ASKBIGVOLPRICE前使用,提供初始化注:仅限TICK使用挂单数据ASKBIGVOLPRICE:返回TICK图中该笔203函数解释1、ASKBIGVOLPRICE、BIDBIGVOLPRICE最近大单价格大单:自动或手动定义2、CALVOLPRICELIST:TICK图中初始化盘口大单价格表初始化五档或者五档之外大单列表,供提取函数解释1、ASKBIGVOLPRICE、BIDBIGVO204成交数据L2_PRICE:返回TICK图中该笔TICK的成交价。L2_VOLUME:返回TICK图中该笔TICK的成交量。注:仅限TICK使用成交数据L2_PRICE:返回TICK图中该笔TICK的成205成交数据L2_SETBIGVOL(nVol)设置大单成交手数阈值,成交手数大于nVol的为大单注:1、仅限秒周期使用2、定义下面红色字体函数的大单算法成交数据L2_SETBIGVOL(nVol)设置大单成交206成交数据L2_BKVOL返回当前秒周期买开的成交量L2_SKVOL返回当前秒周期卖开的成交量L2_BPVOL返回当前秒周期买平的成交量L2_SPVOL返回当前秒周期卖平的成交量L2_BKBIGCOUNT返回当前秒周期买开的大单成交次数L2_SKBIGCOUNT返回当前秒周期卖开的大单成交次数L2_BPBIGCOUNT返回当前秒周期买平的大单成交次数L2_SPBIGCOUNT返回当前秒周期卖平的大单成交次数L2_BKBIGTOTVOL返回当前秒周期买开的大单成交量L2_SKBIGTOTVOL返回当前秒周期卖开的大单成交量L2_BPBIGTOTVOL返回当前秒周期买平的大单成交量L2_SPBIGTOTVOL返回当前秒周期卖平的大单成交量注:仅限秒周期使用成交数据L2_BKVOL返回当前秒周期买开的成交量207成交数据L2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论