好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

程序化交易培训PPT课件.ppt

119页
  • 卖家[上传人]:工****
  • 文档编号:577747026
  • 上传时间:2024-08-22
  • 文档格式:PPT
  • 文档大小:1.20MB
  • / 119 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 文华财经程序化交易文华财经程序化交易文华财经程序化交易文华财经程序化交易 课课 程程 安安 排排 第一章第一章 程序化交易概念程序化交易概念 什么是程序化交易?什么是程序化交易?        程序化是一个交易的概念,用户可以把平时的交易思想,写成交易策略模型,让电脑去执行这些交易思想,自动下单利用电脑的计算能力和铁面无私,提高下单的速度和效率,避免交易收到情绪的影响,理性交易        程序化也是一个研究的概念,程序化平台都提供丰富历史数据和收益、风险等多角度的模型评估算法的,用户可以在电脑的仿真交易环境下,去测试、改进策略模型,这样交易思想就可以快速成熟了,不再需要动辄几个月甚至几年的实盘验证了利用电脑的历史数据存储能力,能节省时间,节省金钱 程序化交易需求分析程序化交易需求分析 第二章第二章 “麦语言麦语言”介绍介绍 麦语言(麦语言(My language)模型开发平台)模型开发平台     赢智的“麦语言”源于2019年文华推出的国内第一套程序化函数库,经过7年的发展,吸收几十万用户的意见反馈,一点一点完善起来的的,是一套成熟稳定的模型开发平台        麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。

      语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用       麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用        麦语言,是国内使用人数最多的程序化模型开发平台  第三章第三章 模型基本结构和编写模型基本结构和编写 本章学习目标:本章学习目标:    1、了解指标、模型相关术语;    2、熟悉模型编写的语法;    3、理解模型编写的结构和编写方法    4、学习如何编写跨周期策略模型 指标、模型相关术语模型编写的语法与操作符模型编写的结构和编写方法模模 型型 基基 本本 结结 构构学习编写跨指标、跨周期模型 理解并规范使用技术指标,交易模型等以下名词: 公式:公式: 泛指指标、模型没有具体指向性指标:指标: 指能够绘出图线但不发交易指令的公式指标是一个技术分析范畴的概念交易信号:交易信号: 指指标上出现的提示投资者买卖的指示,可以是图线交叉、文字、图形投资者需要按照信号指示去手动委托下单交易信号也是一个技术分析范畴的概念 交易模型:交易模型: 指能够发出BK、SP等交易指令,模型还包含下单方向,交易手数,止盈止损等与交易、资金使用相关的参数设置。

      交易模型是一个交易范畴的概念交易指令交易指令:: 指交易模型自动发出的下单委托指令,可以不经过投资者确认直接下单,也可以等待投资者回车确认再下单交易指令在K线图上以不同颜色和形状的箭头来代表交易指令是一个程序化交易范畴的概念 练习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;指标指标 用指标监测行情: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;模型模型 练习2 在K线上如何区分交易指令和交易信号交易信号交易信号 交易指令交易指令 练习3 巩固训练 指标、模型相关术语模型编写的语法与操作符模型编写的结构和编写方法模模 型型 基基 本本 结结 构构 1、命名部分:支持汉字、字母、数字、划线格式命名,长度控制在31字符内;命名不能和已存在的公式名称重复。

      2、定义变量名称变量名称不能相互重复;不能与参数名重复;不能与函数名重复3、半角输入法的大写状态4、每个语句应该以分号结束MY language 编写语法: 5、参数部分: 可以设置六个参数; 首先是参数名称,然后是参数的最小值,最大值,最后是参数的默认值; 在定义参数时要注意的是参数名称不可以重复,12个字符内6、运用函数语言,也就是表达你的语言: 函数具有自己的表达式,运行它就需要将我们的思路,按照函数的表达式套用表述MY language 编写语法: 命名命名参数参数 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日均线运用函数运用函数定义变量定义变量 MY language 操作符 如何运用操作符: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);//死叉 其他:注释或者舍去 想要在编写后,加入自己的语言注释,在结尾处用“//”表示;或者想舍去某段,在某段在最前端加入“//”;练习练习1 1:为函数做注释:为函数做注释IFELSE(C,A,B)//如果条件C成立则返回A值,否则返回B值 练习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均线; 练习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);总结:清晰逻辑关系,可以用“()”来表示 指标、模型相关术语模型编写的语法与操作符模型编写的结构和编写方法模模 型型 基基 本本 结结 构构 在编写前,需要将交易思想清晰量化后,通过语言函数编写完成交易模型基本结构:交易模型基本结构:1.1.定义需要的每个变量定义需要的每个变量2.2.交易条件交易条件+ +交易指令交易指令 MA5:=MA(C,5);MA10:=MA(C,10);CROSS(MA5,MA10),BPK;CROSS(MA10,MA5),SPK;定义思路中涉及到的变量交易条件,写入交易指令 模型中使用的交易指令 练习编写1:关键字:反手指令均线上穿平空做多,均线下穿平多做空;MA5:MA(C,5);MA10:MA(C,10);CROSS(MA5,MA10),BPK;CROSS(MA10,MA5),SPK;具体细化思路:5日均线上穿10日均线,平空做多;5日均线下穿10日均线,平多做空; 练习编写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日均线,平多做空; 解读常用函数:DATE取日期数(19700101-20331231)。

      用法: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(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)); 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(WR>80,5);表示统计在5个周期内满足WR>80的次数AUTOFILTER 对模型的所有信号按照先买后卖,先开后平的顺序过滤1.连续的同方向指令只有第一个有效,其他的将被过滤;2.交易指令必须配对出现(例如:前面已经有了买开指令,则后面只允许出现卖平指令,其他的指令都被滤掉这也就意味着,第一个指令只能是买开或者卖开指令,其他的都被过滤);  C>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)); 模型编写扩展:模型编写扩展:模型编写扩展:模型编写扩展:学习跨周期模型的编写原理和编写步骤。

      跨周期函数介绍跨周期函数介绍引用某品种在某个周期上加载了某个指标的数据引用某品种在某个周期上加载了某个指标的数据用法:用法:#IMPORT [CODE, PERIOD, FORMULA] 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.如果不写文华码,默认引用当前合约,也可以直接写合约代码如:rb12016.FORMULA 引用指标名,只能引用除数字、或者数字开头的名称之外的名称 跨周期跨合约模型的编写思路及案例跨周期跨合约模型的编写思路及案例1.同一合约不同周期调用  示范12.同一合约不同周期调用  示范23.不同合约之间的数据调用   例例1 同一合约不同周期的数据调用同一合约不同周期的数据调用要求要求n当日均线出现多头排列时, 5分钟KD线金叉,做多。

      n当日均线出现空头排列时, 5分钟KD线死叉,做空 例例1::先建立一个指标先建立一个指标 名称名称AAAMA5:=MA(C,5);MA10:=MA(C,10);MA30:=MA(C,30);再建立你的模型再建立你的模型#IMPORT [ , DAY,AAA] AS VARDM5:=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;DM5DM10&&CROSS(MA5,MA10)&&TIME<1450,BK(DM5=1450,SP;DM5DM10&&CROSS(MA5,MA10))||TIME>=1450,BP;AUTOFILTER; n当沪胶指数价格破20日新高,橡胶1201的MA5>MA10,做多。

      n当沪胶指数价格破20日新低,橡胶1201的MA5REF(H20,1);B:=CMA10,BPK;DL20&&MA5

      可以引用的周期长度,和该合约的一分钟数据长度相当 练习练习n使用跨周期函数编写一个套利模型使用跨周期函数编写一个套利模型 第四章第四章 资金管理和止损的策略模型资金管理和止损的策略模型 学习目的:学习目的: 掌握如何将交易资金管理和风险控制的理念掌握如何将交易资金管理和风险控制的理念融合进程序化麦语言的编写中融合进程序化麦语言的编写中 课程内容课程内容n头寸函数函数介绍n资金管理,止盈止损模型的编写思路及案例n使用资金管理,止盈止损模型需要注意的问题 n头寸函数函数介绍头寸函数函数介绍ISLASTBK判断上一个交易信号是否是判断上一个交易信号是否是BK用法:用法:ISLASTBK 如果上一个交易信号是如果上一个交易信号是BK则返回则返回1否则返回否则返回0ISLASTSK判断上一个交易信号是否是判断上一个交易信号是否是SK用法:用法:ISLASTSK 如果上一个交易信号是如果上一个交易信号是SK则返回则返回1,否则返回,否则返回0ISLASTBP判断上一个交易信号是否是判断上一个交易信号是否是BP用法:用法:ISLASTBP 如果上一个交易信号是如果上一个交易信号是BP则返回则返回1,否则返回,否则返回0ISLASTSP判断上一个交易信号是否是判断上一个交易信号是否是SP。

      用法:用法:ISLASTSP 如果上一个交易信号是如果上一个交易信号是SP则返回则返回1,否则返回,否则返回0ISLASTBPK判断上一个交易信号是否是判断上一个交易信号是否是BPK用法:用法:ISLASTBPK 如果上一个交易信号是如果上一个交易信号是BPK则返回则返回1,否则返回,否则返回0ISLASTSPK判断上一个交易信号是否是判断上一个交易信号是否是SPK用法:用法:ISLASTSPK 如果上一个交易信号是如果上一个交易信号是SPK则返回则返回1,否则返回,否则返回0 BARSBK上一次买开信号位置上一次买开信号位置用法:用法:BARSBK返回上一次买开仓距离当前返回上一次买开仓距离当前k线的线的k线数BARSSK上一次卖开信号位置上一次卖开信号位置用法:用法:BARSSK返回上一次卖开仓距离当前返回上一次卖开仓距离当前k线的线的k线数BARSBP上一次买平信号位置上一次买平信号位置用法:用法:BARSBP返回上一次买平仓距离当前返回上一次买平仓距离当前k线的线的k线数BARSSP上一次卖平信号位置上一次卖平信号位置用法:用法:BARSSP返回上一次卖平仓距离当前返回上一次卖平仓距离当前k线的线的k线数。

      线数 BKPRICE买开信号位置的买开信号价位用法:BKPRICE返回最近一次模型买开位置的买开信号价位例如:  BKPRICE-CLOSE>60 , SP;//如果买开价位比当前价位高出60,且买开价位存在,卖平仓请注意当模型存在连续多个开仓信号(加仓)的情况下,该函数返回的是最后一次开仓信号的价格,而不是开仓均价注:BKPRICE 只在加载之后的K线上才返回信号价位效果测试中该函数返回信号位置的收盘价SKPRICE卖开信号位置的卖开信号价位用法:SKPRICE返回最近一次模型卖开位置的卖开信号价位例如:CLOSE-SKPRICE>60 && SKPRICE>0, BP;//如果当前价位高出卖开价位60, 且卖开价位存在, 买平仓请注意当模型存在连续多个开仓信号(加仓)的情况下,该函数返回的是最后一次开仓信号的价格,而不是开仓均价注:SKPRICE 只在加载之后的K线上才返回信号价位效果测试中该函数返回信号位置的收盘价 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等可能会导致误差 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(范围1~100)下单例子:SETDEALPERCENT(20); //每次按资金比例的%20下单注:应该与AUTOFILTER函数同时使用 BUYVOL模型虚拟多头持仓用法:BUYVOL返回模型虚拟多头持仓注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX等可能会导致误差SELLVOL模型虚拟空头持仓用法:SELLVOL返回模型虚拟空头持仓注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS,TROUGH,TROUGHBARS,REFX等可能会导致误差。

      一、资金管理模型的编写思路及案例一、资金管理模型的编写思路及案例 利用头寸函数实现对仓位的加减利用头寸函数实现对仓位的加减例例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  && B 1&& ISLASTSK , SK(1);D && ISLASTBK,SP(BUYVOL);E && ISLASTSK,BP(SELLVOL);注意,交易时要考虑前一信号方向防止锁仓注意,交易时要考虑前一信号方向防止锁仓 减仓模型减仓模型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);F 2&& ISLASTBP&&SELLVOL>0,BP(SELLVOL); 例例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; 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);//非过滤模型非过滤模型 收盘价上穿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=BKPRICE+150,SP;B,SK;F||C>=SKPRICE+100||C<=SKPRICE-150,BP;AUTOFILTER; 收盘价大于5周期均线,买开仓。

      收盘价小于5周期均线,平多仓收盘价从高点回调30%,止盈N:=0.3; //定义回撤幅度MA1 := MA(C,5); //5周期均线HH:=HHV(H,BARSBK+1); //取自开仓K线到现在的最高价C>MA1,BK; (C=BKPRICE&&C<=HH-N*(HH-BKPRICE)), SP; 例例2:回撤止损止盈模型:回撤止损止盈模型 使用资金管理,止盈止损模型需要注意的问题使用资金管理,止盈止损模型需要注意的问题编写加减仓位时要注意对信号的判断编写加减仓位时要注意对信号的判断避免锁仓避免锁仓)动态止损如果涉及到步长,要注意止损价位的变化和步长的相关度动态止损如果涉及到步长,要注意止损价位的变化和步长的相关度 大豆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(编写练习—限价止损止盈模型) 第五章第五章 多维模型评估多维模型评估 多维的效果测试功能多维的效果测试功能 第六章第六章 日内高频模型日内高频模型 课程内容课程内容n日内高频函数介绍n日内模型的编写思路及案例n使用日内模型需要注意的问题 日内高频函数介绍日内高频函数介绍引用盘口数据:挂单数据和成交数据引用数据类型:TICK数据和秒周期数据 挂单数据挂单数据L2_BID1 取买一价取买一价 L2_BIDVOL1 取买一量取买一量 L2_BID2 取买二价取买二价 L2_BIDVOL2 取买二量取买二量L2_BID3 取买三价取买三价 L2_BIDVOL3 取买三量取买三量L2_BID4 取买四价取买四价 L2_BIDVOL4 取买四量取买四量L2_BID5 取买五价取买五价 L2_BIDVOL5 取买五量取买五量注:注:K K线图和线图和TICKTICK都可以使用都可以使用 挂单数据挂单数据L2_ASK1 取卖一价取卖一价 L2_ASKVOL1 取卖一量取卖一量 L2_ASK2 取卖二价取卖二价 L2_ASKVOL2 取卖二量取卖二量L2_ASK3 取卖三价取卖三价 L2_ASKVOL3 取卖三量取卖三量L2_ASK4 取卖四价取卖四价 L2_ASKVOL4 取卖四量取卖四量L2_ASK5 取卖五价取卖五价 L2_ASKVOL5 取卖五量取卖五量注:注:K K线图和线图和TICKTICK都可以使用都可以使用 挂单数据挂单数据ASKBIGVOLPRICE:: 返回返回TICK图中该笔图中该笔Tick 盘口满足大单条件的与最新价的盘口满足大单条件的与最新价的最近价格最近价格BIDBIGVOLPRICE:: 返回返回TICK图中该笔图中该笔Tick 盘口满足大单条件的与最新价的盘口满足大单条件的与最新价的最近价格最近价格CALVOLPRICELIS:: TICK图中初始化盘口大单价格表图中初始化盘口大单价格表,主要在主要在 BIDBIGVOLPRICE 与与ASKBIGVOLPRICE 前使用,提供初始化前使用,提供初始化注:仅限注:仅限TICKTICK使用使用 函数解释函数解释1、、ASKBIGVOLPRICE、、 BIDBIGVOLPRICE最近大单价格最近大单价格 大单:自动或手动定义大单:自动或手动定义2、、 CALVOLPRICELIST ::TICK图中初始化盘口大单价格表图中初始化盘口大单价格表 初始化五档或者五档之外大单列表,供提取初始化五档或者五档之外大单列表,供提取 成交数据成交数据L2_PRICE:: 返回返回TICK图中该笔图中该笔TICK的成交价。

      的成交价L2_VOLUME:: 返回返回TICK图中该笔图中该笔TICK的成交量的成交量注:仅限注:仅限TICKTICK使用使用 成交数据成交数据L2_SETBIGVOL( nVol )L2_SETBIGVOL( nVol )设置大单成交手数阈值,成交手数大于设置大单成交手数阈值,成交手数大于nVolnVol的为大单的为大单注:注:1 1、仅限秒周期使用、仅限秒周期使用 2 2、定义下面红色字体函数的大单算法、定义下面红色字体函数的大单算法 成交数据成交数据L2_BKVOL L2_BKVOL 返回当前秒周期买开的成交量返回当前秒周期买开的成交量L2_SKVOL L2_SKVOL 返回当前秒周期卖开的成交量返回当前秒周期卖开的成交量L2_BPVOL L2_BPVOL 返回当前秒周期买平的成交量返回当前秒周期买平的成交量L2_SPVOL L2_SPVOL 返回当前秒周期卖平的成交量返回当前秒周期卖平的成交量L2_BKBIGCOUNT L2_BKBIGCOUNT 返回当前秒周期买开的大单成交次数返回当前秒周期买开的大单成交次数L2_SKBIGCOUNT L2_SKBIGCOUNT 返回当前秒周期卖开的大单成交次数返回当前秒周期卖开的大单成交次数L2_BPBIGCOUNT L2_BPBIGCOUNT 返回当前秒周期买平的大单成交次数返回当前秒周期买平的大单成交次数L2_SPBIGCOUNT L2_SPBIGCOUNT 返回当前秒周期卖平的大单成交次数返回当前秒周期卖平的大单成交次数L2_BKBIGTOTVOL L2_BKBIGTOTVOL 返回当前秒周期买开的大单成交量返回当前秒周期买开的大单成交量L2_SKBIGTOTVOL L2_SKBIGTOTVOL 返回当前秒周期卖开的大单成交量返回当前秒周期卖开的大单成交量L2_BPBIGTOTVOL L2_BPBIGTOTVOL 返回当前秒周期买平的大单成交量返回当前秒周期买平的大单成交量L2_SPBIGTOTVOL L2_SPBIGTOTVOL 返回当前秒周期卖平的大单成交量返回当前秒周期卖平的大单成交量注:仅限秒周期使用注:仅限秒周期使用 成交数据成交数据L2_BIDVOL L2_BIDVOL 返回当前秒周期主动买的成交量返回当前秒周期主动买的成交量L2_ASKVOL L2_ASKVOL 返回当前秒周期主动卖的成交量返回当前秒周期主动卖的成交量L2_BIDBIGCOUNT L2_BIDBIGCOUNT 返回当前秒周期主动买的大单成交次数返回当前秒周期主动买的大单成交次数L2_ASKBIGCOUNT L2_ASKBIGCOUNT 返回当前秒周期主动卖的大单成交次数返回当前秒周期主动卖的大单成交次数L2_BIDBIGTOTVOL L2_BIDBIGTOTVOL 返回当前秒周期主动买的大单成交量返回当前秒周期主动买的大单成交量L2_ASKBIGTOTVOL L2_ASKBIGTOTVOL 返回当前秒周期主动卖的大单成交量返回当前秒周期主动卖的大单成交量注:仅限秒周期使用注:仅限秒周期使用 小节小节   引用函数,相对比较简单,直接将函数写进相应的语句,函数即代表其本身所表示的数值。

      日内模型的编写思路及案例日内模型的编写思路及案例买卖人气型买卖人气型大单跟踪型大单跟踪型 买卖人气型买卖人气型          根据盘口价量变化判断买卖双方的交易气氛,依此作根据盘口价量变化判断买卖双方的交易气氛,依此作为入场依据,可获得短暂盈利为入场依据,可获得短暂盈利 可能用到的函数:各档位委托量、多空双方的大单价可能用到的函数:各档位委托量、多空双方的大单价格、主动买卖的成交次数等格、主动买卖的成交次数等 例例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(DL2_ASKBIGCOUNT,3),BPK; //三个周期内,主动三个周期内,主动买大单成交次数一直大于主动卖成交次数,做多买大单成交次数一直大于主动卖成交次数,做多EVERY(L2_BIDBIGCOUNT

      程序化或手动开仓做多 2 2、盈利从最高点回撤、盈利从最高点回撤N N个点位个点位以后,自动平仓以后,自动平仓 编写流程编写流程VAR P; VAR P; ////定义当前价格定义当前价格VAR HH; VAR HH; ////定义波段最高价定义波段最高价VAR N; VAR N; ////定义回撤点差定义回撤点差第一步、定义变量第一步、定义变量: : 第二步、编写流程图第二步、编写流程图: :读取当前是否读取当前是否有多头持仓有多头持仓有持仓有持仓无持仓无持仓不操作不操作平仓函数平仓函数读取最高价读取最高价符合条符合条件平仓件平仓新的最高价新的最高价更新最高价更新最高价 第三步、定义函数第三步、定义函数: :VOID MAIN()VOID MAIN(){ {1 1、取得最新价取得最新价2 2、定义回撤点差定义回撤点差3 3、判断当前是否有持仓判断当前是否有持仓4 4、如果有持仓,运行平仓程序如果有持仓,运行平仓程序} } 主函数部分:主函数部分: VOID VOID MAIN()MAIN(){ {P=Price(“cu1110”); //P=Price(“cu1110”); //取得最新价取得最新价N=5; //N=5; //定义回撤点差定义回撤点差IFIF (T_BuyPosition(" cu1110 ")>0)//(T_BuyPosition(" cu1110 ")>0)//如如果多头持仓大于果多头持仓大于0 0{ {SPDeal(); // SPDeal(); // 执行平仓程序执行平仓程序} }} } 第三步、定义函数第三步、定义函数: :VOIDVOIDVOIDVOID SPDeal() //SPDeal() //SPDeal() //SPDeal() //平仓函数平仓函数平仓函数平仓函数{ { { { HH=ReadGlobal("HH"); HH=ReadGlobal("HH"); HH=ReadGlobal("HH"); HH=ReadGlobal("HH"); IFIFIFIF (HH==0||P>HH) (HH==0||P>HH) (HH==0||P>HH) (HH==0||P>HH) { { { {HH=P;HH=P;HH=P;HH=P; } } } } ELSEELSEELSEELSE IFIFIFIF (P

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.