公式条件单
1、公式条件单的编写
条件单模型,必须有一句“CONDITION_ORDER”语句,根据写入的条件出信号,只要满足条件就出信号。
未来
函数
excel方差函数excelsd函数已知函数 2 f x m x mx m 2 1 4 2拉格朗日函数pdf函数公式下载
可以写进条件单;
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
平仓”交易过程中只发一次信号
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或更高版本