文华财经程序化交易课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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;
交易模型: 指能够发出BK、SP等交易指令,模型还包含下单方向, 交易手数,止盈止损等与交易、资金使用相关的参数设置 。交易模型是一个交易范畴的概念。
交易指令: 指交易模型自动发出的下单委托指令,可以不经过投资 者确认直接下单,也可以等待投资者回车确认再下单。交 易指令在K线图上以不同颜色和形状的箭头来代表。交易指 令是一个程序化交易范畴的概念。
跨周期模型编写
引用某品种在某个周期上加载了某个指标的数据。 用法: #IMPORT [CODE, PERIOD, FORMULA] AS VAR 引用 CODE 所对应的合约 PERIOD 周期下指标 FORMULA 的数据。 CODE 文华码,PERIOD 周期,FORMULA 引用指标名,VAR 定义变量名
程序化交易需求分析
收益率测算
策略模型
下单组件 高频交易 多线程运行
量化思想
(调整思想) 加载模型运行、 监控 编写(修改) 策略模型
编写(修改) 下单组件
收益率测算
麦语言(My language)模型开发平台
赢智的“麦语言”源于2004年文华推出的国内第一套程序 化函数库,经过7年的发展,吸收几十万用户的意见反馈,一 点一点完善起来的的,是一套成熟稳定的模型开发平台。 麦语言倡导的是积木式的编程理念,把复杂算法封装到一个 个的函数里,采用“小语法,大函数”的构建模式。语法虽然 简单,但是配合专门的程序化数据结构,配合丰富的金融统计 函数库,同样可以支持逻辑复杂的金融应用。 麦语言的函数库,是经常更新的,根据客户的新要求随时添 加新函数,来支持编程者的交易新思想和新应用。 麦语言,是国内使用人数最多的程序化模型开发平台。
模 型 基 本 结 构
指标、模型相关术语 模型编写的语法与操作符 模型编写的结构和编写方法
在编写前,需要将交易思想清晰量化后,通过语言函数编写 完成。
交易模型基本结构: 1.定义需要的每个变量 2.交易条件+交易指令
MA5:=MA(C,5); MA10:=MA(C,10); CROSS(MA5,MA10),BPK; CROSS(MA10,MA5),SPK;
MA5:=MA(C,5); MA10:=MA(C,10); CROSS(MA5,MA10);//金叉 CROSS(MA10,MA5);//死叉
注释或者舍去 想要在编写后,加入自己的语言注释,在结尾处用 “//”表示;或者想舍去某段,在某段在最前端加入 “//”;
练习1:为函数做注释 IFELSE(C,A,B) //如果条件C成立则返回A值,否则返回B值
VALUEWHEN(COND, DATA)
当条件COND满足时,取当时的DATA的值,否则取得前面一个满足条件COND的值。 例:VALUEWHEN(HIGH>REF(HIGH,5),HIGH);表示当前最高价大于当前周期前第5个周期 的最高价时返回当前最高价。
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));
AUTOFILTER 对模型的所有信号按照先开后平的顺序过滤。 1.连续的同方向指令只有第一个有效,其他的将被过滤; 2.交易指令必须配对出现(例如:前面已经有了买开指令,则后面只允许出现卖
平指令,其他的指令都被滤掉。这也就意味着,第一个指令只能是买开或者卖开指
令,其他的都被过滤);
C>BKPRICE+50*MD;//最新价大于买开仓价位的50个点 HHV(H,BARSBK+1);//开仓(包含开仓k线)到目前为止最高 价 N:=BARSLAST(DATE<>REF(DATE,1))+1;//今天开盘到目前为 止的周期数 ——》HH:HHV(H,N);//开盘到目前为止的最高价 昨天开盘的最高价? 表达式一:REF(HH,N); 表达式二:VALUEWHEN(DATE<>REF(DATE,1),REF(HH,1));
定义思路中涉及到的变量
交易条件,写入交易指令
关键字:反手指令
均线上穿平空做多,均线下穿平多做空;
具体细化思路: 5日均线上穿10日均线,平空做多; 5日均线下穿10日均线,平多做空; MA5:MA(C,5); MA10:MA(C,10); CROSS(MA5,MA10),BPK; CROSS(MA10,MA5),SPK;
引用如下周期:MIN1 MIN3 MIN5 MIN15 MIN30 HOUR1 DAY WEEK MONTH
例1: 同一合约不同周期的数据调用
要求

当日均线出现多头排列时, 5分钟KD线金叉,做多。 当日均线出现空头排列时, 5分钟KD线死叉,做空。
例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.MA30; 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;
CROSS(X,Y)
表示 X上穿Y; 例:CROSS(CLOSE,MA(CLOSE,5));表示收盘线从下方向上穿过5日均线
MA5:=MA(C,5); MA10:=MA(C,10); CROSS(MA5,MA10); CROSS(MA10,MA5);
定义变量 运用函数
A:(O+C)/2; B:C>O; //判断是否收阳;满足条件返回1,否则返回0 D:TIME>=0910&&C>O; //用于多条件逻辑关系
文华财经 研究部
1
• 程序化交易概念 • “麦语言”介绍
• 模型基本结构和编写 • 如何编写带有资金管理和止损的策略模型 • 如何进行多维的模型评估 • 如何编写基于Tick逐笔数据的日内高频模型
2
3
4
5
6
7
• 如何编写下单组件对下单过程进行精细控制
什么是程序化交易?
程序化是一个交易的概念,用户可以把平时的交易思想,写成交易 策略模型,让电脑去执行这些交易思想,自动下单。利用电脑的计算能 力和铁面无私,提高下单的速度和效率,避免交易收到情绪的影响,理 性交易。 程序化也是一个研究的概念,程序化平台都提供丰富历史数据和收 益、风险等多角度的模型评估算法的,用户可以在电脑的仿真交易环境 下,去测试、改进策略模型,这样交易思想就可以快速成熟了,不再需 要动辄几个月甚至几年的实盘验证了。利用电脑的历史数据存储能力, 能节省时间,节省金钱。
4、每个语句应该以分号结束。
5、参数部分: 可以设置六个参数; 首先是参数名称,然后是参数的最小值,最大值,最后是 参数的默认值; 在定义参数时要注意的是参数名称不可以重复,12个字符内。 6、运用函数语言,也就是表达你的语言: 函数具有自己的表达式,运行它就需要将我们的思路,按 照函数的表达式套用表述。
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的次数
SETTLE
引用结算价 引用X在N个周期前的值
REF(X,N)
MA(X,N)
求X在N周期内的简单移动平均。
定义变量: 结算价: 15周期收盘价均线(显示定义);
S:=SETTLE; MA15:MA(C,15);
衍生: 当前K线的前一个周期最高价; 当前K线的前一个周期15均线;
REF(H,1); REF(MA15,1);
参数
命名
CLOSE
HIGH LOW OPEN MA(X,N)
引用收盘价(在盘中指最新价),也可简写为 C 。
引用最高价,也可简写为 H 。 引用最低价,也可简写为L 。 引用开盘价,也可简写为O 。 求X在N周期内的简单移动平均。 计算方法: MA=(A1+A2+A3+A4+A5)/5 求A在5个周期内的简单移动平均
模 型 基 本 结 构
指标、模型相关术语 模型编写的语法与操作符 模型编写的结构和编写方法
1、命名部分: 支持汉字、字母、数字、划线格式命名,长度控制在31字符内; 命名不能和已存在的公式名称重复。 2、定义变量名称 变量名称不能相互重复; 不能与参数名重复; 不能与函数名重复。
3、半角输入法的大写状态。
例2 不同合约的数据调用要求

来自百度文库
当沪胶指数价格破20日新高,橡胶1201的MA5>MA10,做多。
关键字:日内模型
日内交易:均线上穿平空做多,均线下穿平多做空; 具体细化思路: 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;
DATE
取日期数(19700101-20331231)。 用法:DATE 返回某周期的日期数。
TIME
取周期的时数。 用法:TIME 取周期的时数。
REF(X,N)
引用X在N个周期前的值 例:REF(CLOSE,5);表示引用当前周期前第5个周期的收盘价
HHV(X,N)
求X在N个周期内的最高值。若N为0则从第一个有效值开始算起。 例:HHV(HIGH,13);求13个周期内的最高价的最大值。 该函数参数支持变量计算如HHV(HIGH,VAR1);//VAR1为变量
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);
总结:清晰逻辑关系,可以用“()”来表示。
模 型 基 本 结 构
指标、模型相关术语
模型编写的语法与操作符
模型编写的结构和编写方法
学习编写跨指标、跨周期模型
公式: 泛指指标、模型。没有具体指向性。 指标: 指能够绘出图线但不发交易指令的公式。指标是一个技 术分析范畴的概念。 交易信号: 指指标上出现的提示投资者买卖的指示,可以是图线交 叉、文字、图形。投资者需要按照信号指示去手动委托下单 。交易信号也是一个技术分析范畴的概念。
相关文档
最新文档