资源描述
,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,文华财经程序化交易,1,课 程 安 排,1,程序化交易概念,2,“麦语言”介绍,3,模型基本结构和编写,4,如何编写带有资金管理和止损的策略模型,5,如何进行多维的模型评估,6,如何编写基于,Tick,逐笔数据的日内高频模型,7,如何编写下单组件对下单过程进行精细控制,2,第一章 程序化交易概念,3,什么是程序化交易?,程序化是一个交易的概念,用户可以把平时的交易思想,写成交易策略模型,让电脑去执行这些交易思想,自动下单。利用电脑的计算能力和铁面无私,提高下单的速度和效率,避免交易收到情绪的影响,理性交易,。,程序化也是一个研究的概念,程序化平台都提供丰富历史数据和收益、风险等多角度的模型评估算法的,用户可以在电脑的仿真交易环境下,去测试、改进策略模型,这样交易思想就可以快速成熟了,不再需要动辄几个月甚至几年的实盘验证了。利用电脑的历史数据存储能力,能节省时间,节省金钱。,4,程序化交易需求分析,5,第二章,“麦语言”介绍,6,麦语言(,My language,)模型开发,平台,赢智的“麦语言”源于,2004,年文华推出的国内第一套程序化函数库,,经过,7,年,的发展,吸收几十万用户的意见反馈,一点一点完善起来的的,是一套成熟稳定的模型开发平台。,麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。,麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用。,麦语言,是国内使用人数最多的程序化模型开发平台。,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;,指标,13,用指标监测行情:,K,线上穿,D,线,14,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;,模型,15,练习,2,在,K,线上如何区分交易指令和交易信号,交易,信号,16,交易指令,17,练习,3,巩固训练,18,指标、模型相关术语,模型编写的语法与操作符,模型编写的结构和编写方法,模 型,基,本,结,构,19,1,、命名部分:,支持汉字、字母、数字、划线格式命名,长度控制在,31,字符,内;,命名不能和已存在的公式名称,重复。,2,、定义变量名称,变量名称不能相互重复;,不能与参数名重复;,不能与函数名,重复。,3,、半角输入法的大写,状态。,4,、每个语句应该以分号,结束。,MY language,编写语法:,20,5,、参数部分:,可以,设置六个,参数;,首先,是参数名称,然后是参数的最小值,最大值,最后是参数的默认,值;,在,定义参数时要注意的是参数名称不可以重复,12,个字符,内。,6,、运用函数语言,也就是表达你的,语言:,函数,具有自己的表达式,运行它就需要将我们的思路,按照函数的表达式套用表述。,MY language,编写语法:,21,命名,参数,22,MA5:=MA(C,5);MA10:=MA(C,10);CROSS(MA5,MA10);CROSS(MA10,MA5);,CLOSE,引用收盘价,(,在盘中指最新价,),,也可简写为,C,。,HIGH,引用最高价,也可简写为,H,。,LOW,引用最低价,也可简写为,L,。,OPEN,引用开盘价,也可简写为,O,。,MA(X,N),求,X,在,N,周期内的简单移动平均。,计算方法,:,MA,=(A1+A2+A3+A4+A5)/5 求A在5个周期内的简单移动平均,CROSS(X,Y),表示 X,上穿,Y,;,例:CROSS(CLOSE,MA(CLOSE,5);表示收盘线从下方向上穿过5日均线,运用函数,定义变量,23,MY language,操作符,24,如何运用操作符:,A:(O+C)/2;,B:CO;,/,判断是否收阳;满足条件返回,1,,否则返回,0,D:,TIME=0910&,CO; /,用于多条件逻辑关系,MA5:=MA(C,5);,MA10:=MA(C,10);,CROSS(MA5,MA10,);/,金叉,CROSS(MA10,MA5,);/,死叉,25,其他:,注释或者舍去,想,要在编写后,加入自己的语言注释,在结尾处用“,/”,表示,;或者,想舍去某段,在某段在最前端加入“,/”,;,练习,1,:为函数做注释,IFELSE(C,A,B),/,如果,条件,C,成立则返回,A,值,否则返回,B,值,26,练习,2,:,SETTLE,引用结算,价,REF(X,N),引用X在N个周期前的值,MA(X,N),求,X,在,N,周期内的简单移动平均。,定义变量:,结算,价:,15,周期收盘价均线(显示定义,),;,REF(H,1,);,REF(MA15,1);,S,:=SETTLE;,MA15:MA(C,15);,衍生:,当前,K,线的前一个周期最高价;,当前,K,线的前一个周期,15,均线;,27,练习,3,:,5,日均线上穿,10,日均线的同时收盘价大于,20,日均线,或者,5,日均,线上穿,10,日均线的,5,个点;,MA5:=MA(C,5);,MA10:=MA(C,10);,MA20:=MA(C,20);,A:(CROSS(MA5,MA10),总结:清晰逻辑关系,可以用“()”来表示。,28,指标、模型相关术语,模型编写的语法与操作符,模型编写的结构和编写方法,模 型,基,本,结,构,29,在,编写前,需要将交易思想清晰量化后,通过语言函数编写,完成。,交易模型基本,结构:,1.,定义需要的每个,变量,2.,交易条件,+,交易指令,30,MA5:=MA(C,5);MA10:=MA(C,10,);,CROSS(MA5,MA10,),BPK,;,CROSS(MA10,MA5,),SPK,;,定义思路中涉及到的变量,交易条件,写入交易指令,31,模型中使用的交易指令,32,练习编写,1,:,关键字:反手指令,均线上穿平空做多,均线下穿平多做空;,MA5:MA(C,5);,MA10:MA(C,10);,CROSS(MA5,MA10,),BPK;,CROSS(MA10,MA5),SPK;,具体细化思路:,5,日均线上穿,10,日均线,平空做多;,5,日均线下穿,10,日均线,平多做空;,33,练习编写,2,:,关键字,:日内模型,日内交易:均线上穿平空做多,均线下穿平多做空;,CROSS(MA5,MA10),&TIME=0900&,TIME=1457,SP;,CROSS(MA10,MA5)&TIME=0900&,TIME=1457,BP;,具体细化思路:,3,分钟周期,5,日均线上穿,10,日均线,平空做多;,5,日均线下穿,10,日均线,平多做空;,34,解读常用函数:,DATE,取日期数(,19701,)。,用法:,DATE,返回某周期的日期数。,TIME,取周期的时数。,用法:,TIME,取周期的时数。,REF(X,N),引用X在N个周期前的值例:REF(CLOSE,5);表示引用当前周期前第5个周期的收盘价,HHV(X,N),LLV(X,N),求,X,在,N,个周期内的最高值。若,N,为,0,则从第一个有效值开始算起。,例:HHV(HIGH,13);求13个周期内的最高价的最大值。,该函数参数支持变量计算如HHV(HIGH,VAR1);/VAR1为变量,VALUEWHEN(COND,DATA),当条件,COND,满足时,取当时的,DATA,的值,否则取得前面一个满足条件,COND,的值。,例:VALUEWHEN(HIGHREF(HIGH,5),HIGH);表示当前最高价大于前五个周期最高价的最大值时返回当前最高价。,35,DATEREF(DATE,1)/,今天第一根,K,线,VALUEWHEN(DATEREF(DATE,1),O);/,当天开盘价,VALUEWHEN(TIME=1030,O);/10,点半那根,K,线的,开盘价,昨天的收盘价?,VALUEWHEN(DATEREF(DATE,1),REF(C,1);,36,BKPRICE,返回最近一次模型买开位置的买开信号价位。,BARSBK,返回上一次买开仓距离当前,k,线的,k,线数。,BARSLAST(X),求上一次,X,条件成立到当前的周期数,COUNT(X,N),表示统计在,N,周期内满足,X,条件的周期数。如果,N,为,0,则表示从已申请到的数据的第一天开始算起。,例:WR:=-100*(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N); COUNT(WR80,5);表示统计在5个周期内满足WR80的次数,AUTOFILTER,对模型的所有信号按照先买后卖,先开后平的顺序过滤。,1.连续的同方向指令只有第一个有效,其他的将被过滤;,2.交易指令必须配对出现(例如:前面已经有了买开指令,则后面只允许出现卖平指令,其他的指令都被滤掉。这也就意味着,第一个指令只能是买开或者卖开指令,其他的都被过滤);,37,CBKPRICE+50*MD;/,最新价,大于买开,仓价位的,50,个点,HHV(H,BARSBK+1);/,开仓到目前为止最高价,N:=BARSLAST(DATEREF(DATE,1)+1;/,今天开盘到目前为止的周期数,HH:HHV(H,N,);/,开盘到目前为止的最高价,昨天,开盘的最,高价,?,表达式一:,REF(HH,N),;,表达式二:,VALUEWHEN(DATEREF(DATE,1),REF(HH,1);,38,模型编写扩展:,学习跨周期模型的编写原理和编写步骤。,39,跨周期函数介绍,引用某品种在某个周期上加载了某个指标的数据。,用法:,#IMPORT CODE, PERIOD, FORMULA AS VAR,引用,CODE,所对应的合约,PERIOD,周期下指标,FORMULA,的数据。,CODE,文华码,,PERIOD,周期,,FORMULA,引用指标名,,VAR,定义,变量名,40,跨周期跨合约模型的编写规则,1.,只能引用,.FML/.XFML,文件,2.,只能引用如下周期:,MIN1 MIN3 MIN5 MIN15 MIN30 HOUR1 DAY WEEK MONTH,3.,只能短周期引用长周期,4.,被引用的指标中不能存在引用,5.,如果不写文华码,默认引用当前合约,也可以直接写合约代码如,:rb1201,6.FORMULA,引用指标名,只能引用除数字、或者数字开头的名称之外的名称。,41,跨周期跨合约模型的编写思路及案例,1.,同一合约不同周期调用 示范,1,2.,同一合约不同周期调用 示范,2,3.,不同合约之间的数据调用,42,例,1,同一合约不同周期的数据调用,要求,当日均线出现多头排列时,,5,分钟,KD,线金叉,做多。,当日均线出现空头排列时,,5,分钟,KD,线死叉,做空。,43,例,1,:,先建立一个指标 名称,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;,DM5DM10,DM5DM10&CROSS(MA5,MA10)&TIME1450,BK,(DM5=1450,SP;,DM5DM10,AUTOFILTER;,46,当沪胶指数价格破,20,日新高,橡胶,1201,的,MA5MA10,,做多。,当沪胶指数价格破,20,日新低,橡胶,1201,的,MA5REF(H20,1);,B:=C60 ,SP;/,如果买开价位比当前价位高出,60,且买开价位存在,卖平仓请注意当模型存在连续多个开仓信号,(,加仓,),的情况下,该函数返回的是最后一次开仓信号的价格,而不是开仓均价。注:,BKPRICE,只在加载之后的,K,线上才返回信号,价位。,效果测试中该函数返回信号位置的收盘价,SKPRICE,卖开信号位置的卖开信号价位用法,:,SKPRICE,返回最近一次模型卖开位置的卖开信号价位。例如,:CLOSE-SKPRICE60,/,如果当前价位高出卖开价位,60,, 且卖开价位存在,买平仓请注意当模型存在连续多个开仓信号,(,加仓,),的情况下,该函数返回的是最后一次开仓信号的价格,而不是开仓均价。注:,SKPRICE,只在加载之后的,K,线上才返回信号,价位。效果,测试中该函数返回信号位置的收盘价,56,FEE,合约手续费用法,:,FEE,返回当前合约的手续费(用户启动模组时设置的)。注意不能与未来函数同时使用如,ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX,等,本函数运算量很大,将占用很多的,CPU,资源,导致行情刷新速度变慢,请谨慎使用,!,MONEY,虚拟资金余额用法,:,MONEY,返回虚拟资金余额。注意与未来函数同时使用,ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX,等可能会导致误差。,MARGIN,合约保证金用法,:,MARGIN,返回当前合约的保证金比率(用户启动模组时设置的)。注意与未来函数同时使用,ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX,等可能会导致误差。,VOLMARGIN,当前合约的持仓保证金,用法,:,VOLMARGIN,计算当前的持仓保证金。注意与未来函数同时使用,ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX,等可能会导致误差。,57,MONEYRATIO,资金使用率用法,:,MONEYRATIO,返回当前的虚拟资金的使用率。注意与未来函数同时使用,ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX,等可能会导致误差。,MONEYTOT,虚拟总资金用法,:,MONEYTOT,返回当前虚拟总资金(虚拟资金余额,+,持仓保证金)。注意与未来函数同时使用,ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX,等可能会导致误差。,PROFIT,虚拟逐笔浮盈用法,:,PROFIT,返回当前的虚拟逐笔浮动盈亏。注意与未来函数同时使用,ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX,等可能会导致误差。,SETDEALPERCENT,设置下单的虚拟资金使用比例用法,:,SETDEALPERCENT(fPercent,),表示每次按资金的,fPercent(,范围,1100,)下单。例子:,SETDEALPERCENT(20); /,每次按资金比例的,%20,下单注:应该与,AUTOFILTER,函数同时使用,58,BUYVOL,模型虚拟多头持仓用法:,BUYVOL,返回模型虚拟多头持仓。注意与未来函数同时使用,ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX,等可能会导致误差。,SELLVOL,模型虚拟空头持仓用法:,SELLVOL,返回模型虚拟空头持仓。注意与未来函数同时使用,ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX,等可能会导致误差。,59,一、资金管理模型的编写思路及案例,60,利用头寸函数实现对仓位的加减。,例,1,加仓模型,A:=,多头开仓条件,; A1:=,多头加仓条件,;,B:=,空头交易条件,; B1:=,空头加仓条件,;,D:=,多头平仓条件,;,E:=,空头平仓条件,;,A,&,NOT(ISLASTSK| ISLASTBK) , BK(2);,B,&,NOT(ISLASTBK| ISLASTSK) , SK(2);,BUYVOL2,&,A1,&,ISLASTBK , BK(1);,SELLVOL2,&,B 1,&,ISLASTSK , SK(1);,D &,ISLASTBK,SP(BUYVOL);,E &,ISLASTSK,BP(SELLVOL);,注意,交易时要考虑前一信号方向防止锁仓。,61,减仓模型,A:=,多头开仓条件,;,B:=,空头开仓条件,;,E1:=,多头平仓条件,1; E2:=,多头平仓条件,2;,F1:=,空头平仓条,1; F2:=,空头平仓条件,2;,A ,BK;,B ,SK;,E1,&,ISLASTBK,SP(BUYVOL/2);,E2,&,ISLASTSP,F1,&,ISLASTSK,BP(3);,F 2,&,ISLASTBP,62,例,2,:对交易资金的管理,/,过滤模型,每次下单使用当时资金的,20%,SETDEALPERCENT(20);,DIFF:=EMA(CLOSE,12) - EMA(CLOSE,26);,DEA:=EMA(DIFF,9);,DIFF0,DIFF0,DIFF0,AUTOFILTER;,63,10,日均线之上开多仓(开仓资金可用资金,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);,/,非过滤模型,64,收盘价上穿,5,周期均线,买开仓。收盘价连续,2,根站上,5,周期均线,且,K,线收阳,加仓,1,手。,收盘价下穿,5,周期均线,卖开仓。收盘价连续,2,根小于,5,周期均线,且,K,线收阴,加仓,1,手。,MA5:=MA(C,5);,CROSS(C,MA5,),CROSS(MA5,C),EVERY(CMA5,2),EVERY(C=SKPRICE+100|CMA1,BK;,(C=BKPRICE,例,2,:回撤止损止盈模型,68,使用资金管理,止盈止损模型需要注意的问题,编写加减仓位时要注意对信号的判断。,(,避免锁仓,),动态,止,损如果涉及到步长,要注意止损价位的变化和步长的相关度。,69,大豆,1205,合约,:,低于买开仓价,10,个点差,多头止损;,高于买开仓价,20,个点差,多头止赢,;,高于卖开仓价,10,个点差,空头止损;,低于卖开仓价,20,个点差,空头止赢;,A:=MINPRICE(A1205);,多头开仓条件,BK;,(C=BKPRICE+TP*A),空头开仓条件,SK;,(C=SKPRICE+SL*A|C0,BP;,/,止损点差为,SL,止赢点差为,TP,(编写练习,限价止损止盈模型),70,第五章 多维模型评估,71,收益率测算,信号和资金记录表,敏感性测试图,多线程参数优化,推荐实盘头寸,多维的效果测试功能,72,信号和资金记录表,关注资金回撤,敏感性测试图,寻找关键点,多线程参数优化,确定最优参数,推荐实盘头寸,控制交易风险,收益率测算,了解模型详情,73,信号和资金记录表,关注资金回撤,敏感性测试图,寻找关键点,参数优化,确定最优参数,推荐实盘头寸,控制交易风险,收益率测算,了解模型详情,74,信号和资金记录表,关注资金回撤,敏感性测试图,寻找关键点,参数优化,确定最优参数,推荐实盘头寸,控制交易风险,收益率测算,了解模型详情,75,信号和资金记录表,关注资金回撤,敏感性测试图,寻找关键点,参数优化,确定最优参数,推荐实盘头寸,控制交易风险,收益率测算,了解模型详情,76,信号和资金记录表,关注资金回撤,敏感性测试图,寻找关键点,参数优化,确定最优参数,推荐实盘头寸,控制交易风险,收益率测算,了解模型详情,77,第六章 日内高频模型,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,都可以使用,81,挂单数据,L2_ASK1,取卖一价,L2_ASKVOL1,取卖一量,L2_ASK2,取卖二价,L2_ASKVOL2,取卖二量,L2_ASK3,取卖三价,L2_ASKVOL3,取卖三量,L2_ASK4,取卖四价,L2_ASKVOL4,取卖四量,L2_ASK5,取卖五价,L2_ASKVOL5,取卖五量,注:,K,线图和,TICK,都可以使用,82,挂单数据,ASKBIGVOLPRICE,:,返回,TICK,图中该笔,Tick,盘口满足大单条件的与最新价的最近价格,BIDBIGVOLPRICE,:,返回,TICK,图中该笔,Tick,盘口满足大单条件的与最新价的最近价格,CALVOLPRICELIS,:,TICK,图中初始化盘口大单价格表,主要在,BIDBIGVOLPRICE,与,ASKBIGVOLPRICE,前使用,提供初始化,注:仅限,TICK,使用,83,函数解释,1,、,ASKBIGVOLPRICE,、,BIDBIGVOLPRICE,最近大单价格,大单:自动或手动定义,2,、,CALVOLPRICELIST,:,TICK,图中初始化盘口大单价格表,初始化五档或者五档之外大单列表,供提取,84,成交数据,L2_PRICE,:,返回,TICK,图中该笔,TICK,的成交价。,L2_VOLUME,:,返回,TICK,图中该笔,TICK,的成交量。,注:仅限,TICK,使用,85,成交数据,L2_SETBIGVOL( nVol ),设置大单成交手数阈值,成交手数大于,nVol,的为大单,注:,1,、仅限秒周期使用,2,、定义下面红色字体函数的大单算法,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,返回当前秒周期卖平的大单成交量,注:仅限秒周期使用,87,成交数据,L2_BIDVOL,返回当前秒周期主动买的成交量,L2_ASKVOL,返回当前秒周期主动卖的成交量,L2_BIDBIGCOUNT,返回当前秒周期主动买的大单成交次数,L2_ASKBIGCOUNT,返回当前秒周期主动卖的大单成交次数,L2_BIDBIGTOTVOL,返回当前秒周期主动买的大单成交量,L2_ASKBIGTOTVOL,返回当前秒周期主动卖的大单成交量,注:仅限秒周期使用,88,小节,引用函数,相对比较简单,直接将函数写进相应的语句,函数即代表其本身所表示的数值。,89,日内模型的编写思路及案例,买卖人气型,大单跟踪型,90,买卖人气型,根据盘口价量变化判断买卖双方的交易气氛,依此作为入场依据,可获得短暂盈利。,可能用到的函数:各档位委托量、多空双方的大单价格、主动买卖的成交次数等,91,例,1,A:=L2_BIDVOL1+L2_BIDVOL2+L2_BIDVOL3;,/,定义买盘前,3,档总量,B:=L2_ASKVOL1+L2_ASKVOL2+L2_ASKVOL3;,/,定义卖盘前,3,档总量,D:A-B;,CROSS(D,0),/,买量大于卖量且前一个指令不是开仓指令,则买开仓,1,手;,CROSS(0,D),/,买量小于卖量且前一个指令不是开仓指令,则卖开仓,1,手;,EVERY(DREF(D,1),2),/,连续,2,个周期买量不断增加且前一个指令是卖开仓,则平,1,手空单;,EVERY(DL2_ASKBIGCOUNT,3),BPK;,/,三个周期内,主动买大单成交次数一直大于主动卖成交次数,做多,EVERY(L2_BIDBIGCOUNT0)/,如果多头持仓大于,0,SPDeal(); /,执行平仓程序,115,第三步、定义函数,:,VOID,SPDeal() /,平仓函数,HH=ReadGlobal(HH);,IF,(HH=0|PHH),HH=P;,ELSE,IF,(PHH-N*10,),T_Deal(“,cu,1110,1,2,T_BuyPosition(“,cu,1110),0);,HH=0; /,上交所合约平今仓为,2,,平老仓为,1,WriteGlobal(HH,HH);,116,策略,2,关键点:,1,、如何读取持仓,2,、最高价的更新,3,、回撤条件,4,、委托数量及价格,5,、组件的调试,117,编写注意事项,1,、流程图的编写,2,、勤用语法检测,3,、重视编写规范,4,、每句添加注释,5,、多用自定义函数,6,、调试过程很重要,118,谢 谢,祝交易顺利,119,
展开阅读全文