文华财经模型运行机制

更新时间:2023-10-19 00:06:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

公式条件单

1、公式条件单的编写

条件单模型,必须有一句“CONDITION_ORDER”语句,根据写入的条件出信号,只要满足条件就出信号。 未来函数可以写进条件单;

BARSSK、 BARSBK、 BKPRICE、SKPRICE不允许写入公式条件单; BPK、SPK,不允许写入公式条件单; 指令分组,不允许写入公式条件单;

公式条件单,只允许写BK(N)、SK(N)、BP(N)、SP(N),并且一个模型只允许写一种指令。

2、加载公式条件单

需要带入模组,需要条件单处理的持仓手数,客户在初始化窗口输入。 右键菜单可以重置初始化状态。

3、模组信号的运算

各个信号是独立的,没有任何过滤机制。

每一个信号都不考虑历史信号,完全根据公式写的条件出信号。

4、手动干预,不受任何约束,随便做,都产生模组持仓,模组持仓可以有锁仓

平仓的时候,根据模组持仓来平。模组持仓如果不够,就有几手平几手,模组持仓多了不管就平指令写的手数。

5、公式条件单的中止

全部条件都产生信号以后,会自动终止运行。 客户可以随时手动终止。

6、一根k线多信号

一根k线上信号确定以后,会计算下一个信号,支持一根k线上先后出现多个信号。

但是,在模型具有MONO_SIGNAL语句的情况下,一根K线只支持一个信号,取最先出现的信号作为有效信号。

7、上一个信号没有执行完情况下,新信号的执行

公式条件单各个信号是独立的,上一个信号没有执行完的情况下,新信号不理会现有的挂单,照常执行。

适用于8.1.176或更高版本

非过滤模型的运行规则

1、非过滤模型的编写

非过滤模型,允许连续出开仓信号或者连续出平仓信号,可以实现加仓、减仓。

支持的指令:BK(N)、BP(N)、SK(N)、SP(N)、CLOSEOUT,不支持不带手数的开平仓指令和反手指令。 支持指令分组

2、模组的加载初始化

加载时会自动弹出初始化窗口,用户手动输入持仓方向和开仓价格。模组后续运行,以带入的持仓为上一个信号,执行模型后续出的信号。(8.1.162以后版本采用此规则)

3、信号的下单手数 按照指令里写的手数下单

可以用MYVOL函数取运行模组中的设定的下单手数,例如:BK(2*MYVOL)

模组加载过程中,非过滤模型当下单手数设置为3时,BK(2*MYVOL)实现的效果为BK(6)。 例:

C>O,BK(3*MYVOL); C

4、主观干预

(1)当前信号是开仓信号(BK、SK)的状态下,在本根和后续k线上,可以加仓下单; (2)当前信号是平仓信号(BP、SP)的状态下,在本根和后续k线上,可以减仓下单; (3)模组持仓为0时候,不允许主观干预;

干预失败的几种情况: (1)有挂单不能进行手动干预

(2)有未处理完的操作不能进行手动干预 (3)有多头持仓不能干预卖开 (4)有空头持仓不能干预买开 (5)没有多头持仓不能干预卖平 (6)没有空头持仓不能干预买平

干预成功的结果:

直接发出委托,不在K线图上产生信号,但是会改变模组持仓。

5、非过滤模型根据模组持仓来计算下一个信号

(1)模组持仓为0的情况下,找开仓信号(BK或SK),先找到的有效; (2)开仓信号后,只能出现加仓信号或平仓信号;

(3)平仓信号后,只能出现继续减仓信号,模组持仓减少到0的时候,平仓信号实际不再执行; (4)一个指令行,在一次“开仓->平仓”交易过程中只发一次信号

6、一根k线多信号

一根k线上信号确定以后,会计算下一个信号,支持一根k线上先后出现多个信号。

但是,在模型具有MONO_SIGNAL语句的情况下,一根K线只支持一个信号,取最先出现的信号作为有效信号。

提示:模型的历史数据回测,是按照MONO_SIGNAL机制进行的,不管模型是否包含这个语句。

7、上一个信号没有执行完情况下,新信号的执行

(1)开仓信号还没有成交或部分成交,还有开仓挂单下,新平仓信号的执行: 首先撤掉现有挂单,执行平仓指令。

(2)平仓信号还没有完成,没有成交或部分成交,还有平仓挂单的情况下,新反向开仓信号的执行:不理会现在的挂单,直接发出开仓指令。

适用于8.1.176或更高版本

过滤模型的运行规则

1、过滤模型的编写

必须有一句AUTOFILTER,不允许连续出开仓信号或者连续出平仓信号,有多个开仓信号都满足条件的时候,取第一个信号作为有效信号,后面的k线上的同样信号将被过滤掉。

过滤模型支持的指令:BK、BP、BPK、SK、SP、SPK、CLOSEOUT,不支持BK(5)等带手数的指令。 支持指令分组

2、模组的加载初始化 自动初始化:

(1)如果最后一个信号是BK、BPK,初始化为多头X手,空头0手;

(2)如果最后一个信号是BP、SP、CLOSEOUT,初始化为多头0手,空头0手; (3)如果最后一个信号是SK、SPK,初始化为多头0手,空头X手; 其中X的手数为取下单手数和账号持仓中持仓手数的最小值 (4)初始化的持仓价格,为上一个信号的指令价格;

手动初始化:

(1)模型加载以后,用户可以随时点右键 -》重新初始化,来改变模组的状态。

(2)如果当前信号是BK/BPK信号,手动初始化持仓是空头持仓,下一个信号找BP、BPK或CLOSEOUT,后续规则不变。

(3)如果当前信号是SK/SPK信号,手动初始化持仓是多头持仓,下一个信号找SP、SPK或CLOSEOUT,后续规则不变。

3、信号的下单手数

(1)开仓信号:下单手数按照加载模组设置的默认开仓手数执行; (2)平仓信号:平掉模组全部持仓手数(含手动辅助的下单);

4、主观干预

(1)当前是开仓信号(BK、SK、BPK、SPK)的状态下:在本根和后续k线上,可以加仓下单,也可以减仓下单

(2)手动减仓到0的情况下,模型的平仓信号照出,只是因为模组持仓为0,不再发委托 (3)模组持仓为0时候,不允许主观干预

干预失败的几种情况: (1)有挂单不能进行手动干预

(2)有未处理完的操作不能进行手动干预

(3)有多头持仓不能干预卖开 (4)有空头持仓不能干预买开 (5)没有多头持仓不能干预卖平 (6)没有空头持仓不能干预买平

干预成功的结果:

直接发出委托,不在K线图上产生信号,但是会改变模组持仓。

5、计算下一个信号依据

过滤模型,完全根据上一个有效信号来计算下一个信号,开仓信号和平仓信号一一对应。

6、一根k线多信号

一根k线上信号确定以后,会计算下一个信号,支持一根k线上先后出现多个信号。

但是,在模型具有MONO_SIGNAL语句的情况下,一根K线只支持一个信号,取最先出现的信号作为有效信号。

提示:模型的历史数据回测,是按照MONO_SIGNAL机制进行的,不管模型是否包含这个语句。

7、上一个信号没有执行完情况下,新信号的执行

(1)开仓信号还没有成交或部分成交,还有开仓挂单下,新平仓信号的执行: 首先撤掉现有挂单,执行平仓指令。

(2)平仓信号还没有完成,没有成交或部分成交,还有平仓挂单的情况下,新反向开仓信号的执行:不理会现在的挂单,直接发出开仓指令。

适用于8.1.176或更高版本

本文来源:https://www.bwwdw.com/article/y8xf.html

Top