【VIP专享】文华财经模型运行机制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
公式条件单
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)有未处理完的操作不能进行手动干预