模型的基本框架

麦语言采用积木式编程方式,在基本模型的框架上加入交易条件、交易指令,即可构建交易模型。如下,是一个基本模型的框架结构。

条件A,买开BK;

条件B,多头止损,SP;

条件C,卖平,结束本次交易SP;

条件A1,卖开SK;

条件B1,空头止损,BP;

条件C1,买平,结束本次交易BP;

AUTOFILTER;

其中,开仓语句(条件,BK/SK/BPK/SPK)和平仓语句(条件,SP/BP)是模型必须要有的部分,止损、加仓(ADD_LONG/ADD_SHORT)、减仓(LOWER_LONG/LOWER_SHORT),可以根据策略思路和风控规划适当添加,以增强模型的稳定性。

注:

1、模型必须写AUTOFILTER,过滤信号;

2、开平仓信号不可以写手数(BK/SK/BP/SP/BPK/SPK);

3、加减仓指令必须写手数(ADD_LONG/LOWER_LONG/ADD_SHORT/LOWER_SHORT)。

信号和指令的执行机制

模型的开/平仓、加/减仓操作分别通过专用的信号和指令来执行,遵循以下原则:

1、信号优先级高于指令:

信号包括:BK/SK/BP/SP/BPK/SPK;

指令包括:ADD_LONG/LOWER_LONG/ADD_SHORT/LOWER_SHORT;

2、从开仓信号到平仓信号视为一个完整的交易过程,减仓指令不视为交易结束,必须出现平仓信号才算交易结束;

3、开仓信号、平仓信号一个交易过程中只能出现一对,期间可以出现0~N次的加减仓指令;

4、加仓不能作为一次交易的开始,需要BK/SK/BPK/SPK开仓之后,才能出加仓指令;

5、加减仓指令只有在持仓不为0时才生效;

6、默认以K线最后一笔价格来确定信号下单,即K线走完出信号,于下一根K线开始时下单;

模型的过滤机制

什么是信号过滤?

信号过滤是指过滤掉一次交易中重复的开仓信号,只保留第一个有效的开仓信号。

一次完整的交易,是将资金转化为持仓,再将持仓变成资金的过程,从建仓->看持仓盈亏->平仓,中间可能会有多次的加仓、减仓操作,但开仓和平仓只有一次。

如果不写信号过滤,当模型跨指标抓不同市场行情的场景下,例如,趋势指标判断趋势入场,摆动指标判断震荡市入场,如果趋势条件先开仓,在平仓之前可能会出现N次摆动指标的开仓信号,如果都执行,就破坏了完整的趋势交易思路。加入信号过滤,则只执行第一个有效的开仓信号,保证一次交易的完整连续。

(1)一开一平过滤机制:

一次完整交易只会有一个开仓信号,一个平仓信号;

BK/SK/BPK/SPK开仓后不会再出开仓信号,只会出加减仓指令或者以SP/BP/SPK/BPK结束本次交易;

BP/SP平仓后不会再出平仓信号或加减仓指令,只会以BK/SK/BPK/SPK开始下一次完整交易。

(2)加减仓过滤机制:

在一次完整交易中,同一个信号行的加减仓指令在一轮加减仓中只会出一次;

注:同一行号的加仓(减仓)指令出过一次之后,只有出现过一次减仓(加仓)指令后,才可再出该行号的加仓(减仓)指令。写入TRADE_AGAIN(N)可以让同一指令行连续出至多N个信号。

没有理论持仓不可以出加减仓。

注:减仓至理论持仓为0后不可以出加仓指令了;

典型问题解答

1、麦语言编写教程

答:请参考链接:https://wt8.wenhua.com.cn/#/download/download/2

2、麦语言语法说明

答:请参考链接:https://www.wenhua.com.cn/guide/views41a3.htm

3、麦语言中操作符使用说明

答:请参考链接:https://www.wenhua.com.cn/guide/views41a.htm

4、如何查看函数

答:方法1:右上角菜单【量化】->函数列表,可以查看全部函数和详细说明,右键可导出文档。

方法2:右上角菜单【量化】->编写模型,在策略开发平台点击【插入】->插入函数,在函数列表中查看函数;

方法3:双击蓝色的系统函数,点击右键->查找函数说明,如下图。