2.5 模型的基本结构
程序化交易最主要的工作就是编写模型。在学习基本模型之前,先来看一下信号指令。
2.5.1 信号指令
期货交易指令共有6个,分别是买开、买平、卖开、卖平、买平后买开新仓、卖平后卖开新仓,如表2.15所示。
表2.15 期货交易指令及意义
股票、权证、外汇交易指令共有2个,分别是买入、卖出,如表2.16所示。
表2.16 股票、权证、外汇交易指令及意义
套利模型中的交易指令共有4个,如表2.17所示。
表2.17 套利模型中的交易指令及意义
2.5.2 模型基本结构
模型基本结构具体如下:
定义变量
条件,指令;
AUTOFILTER;
注意,过滤模型下单手数,在软件中设定,无须编写。
模型编写需要这样一个过程:
第一,勾勒出模型的大概轮廓,量化出必要的条件或者数据,将这些条件或者数据定义。
第二,在编写模型开平条件的时候,如果发现变量不全,则补充定义变量。
第三,编写过程中养成语法检测的好习惯,以便及时发现编写错误,进行修改。
第四,模型编写完整后,加载到主图并查看模型历史回测报告。
2.5.3 模型的类型
程序化交易的模型分为2类,分别是过滤模型和非过滤模型,如图2.6所示。
图2.6 模型的类型
1.过滤模型
过滤模型不允许连续出开仓信号或者连续出平仓信号,有多个开仓信号都满足条件的时候,取第一个信号作为有效信号,后面K线上的同样信号将被过滤掉。出信号的顺序是开-平-开-平-开……
2.非过滤模型
非过滤模型,允许连续出开仓信号或者连续出平仓信号,可实现加仓、减仓。
2.5.4 模型编写
打开赢智程序化交易软件,单击导航栏左侧的“模型”,然后在空白处单击右键,在弹出菜单中选择“新建公式”,如图2.7所示。
图2.7 右键菜单
单击“新建公式”命令,就弹出“My Language(麦语言)趋势跟踪模型编写平台—新建趋势跟踪模型”对话框,如图2.8所示。
图2.8 “My Language(麦语言)趋势跟踪模型编写平台—新建趋势跟踪模型”对话框
这样,我们就可以开始编模型了。
我们在编写模型的时候,特别是在刚刚开始学如何编写模型的时候,如果把一个比较复杂的表达式一口气写下来,往往会使整个模型的结构混乱无法确讣,错误难以查找,所以经常的我们会利用中间表达式将一些比较复杂的条件分拆开成一个个简单的小语句,也即结构模块化!当然如果您比较熟悉模型的编写,有些简单的语句就没有必要再如此做法了。
常见的结构就是:
条件一: AA:=……条件二:BB:=……
…………
汇总:AA&&BB&&……
在后面章节中我们重点介绍一些指标模型编写过程中的基础技巧,同样的原理,这些原理的潜移默化之后对以后其他的模型的编写大有裨益。