路路发智能交易研发中心

 找回密码
 立即注册
查看: 4074|回复: 0

过滤模型实现单仓位自动操作

[复制链接]

管理员

MT4软件工程师

Rank: 9Rank: 9Rank: 9

积分
6521
帖子
2771
主题
2761
QQ
发表于 2013-11-29 13:09:36 | 显示全部楼层 |阅读模式
过滤模型的运行规则

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线只支持一个信号,取最先出现的信号作为有效信号。

提示:8.1.229以及以前版本,模型的历史数据回测,是按照MONO_SIGNAL机制进行的,不管模型是否包含这个语句。 信号的下单执行规则
1、开仓信号发出时,不管模组中是否有挂单,直接发出开仓指令
2、平仓信号发出时
(1)如果之前发出的开仓信号委托还没有发出,则停止执行平仓信号
(2)如果之前发出的开仓信号有挂单(还没有成交或部分成交),先撤掉对应的挂单,然后执行平仓指令(平实际的模组持仓手数,如果0手持仓就不发委托)
3、在系统正在执行信号忽闪造成的消失处理的情况下,必须等信号消失处理完,再执行新的信号。
4、信号消失的处理
(1)对应的信号还未发出委托,则停止执行该信号
(2)对应的信号有挂单,但是还没有成交,撤掉挂单
(3)对应的开仓信号已经委托并且成交(全部成交或部分成交),则平仓对应手数,恢复0持仓状态。
(4)对应的平仓信号已经委托并且成交(全部成交或部分成交),则新开仓对应手数,恢复以前的持仓状态。

适用于8.1.176或更高版本

外汇智能交易,成就财富梦想!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


MT4编程培训|EA定制开发|QQ在线咨询|路路发智能交易研发中心

GMT+8, 2024-12-22 16:51 , Processed in 0.155775 second(s), 26 queries .

© 2009-2022 520EA.com EA668.com

快速回复 返回顶部 返回列表