咨询MQ撤单问题 (文华财经WH6赢顺V6.7)

投资者咨询:咨询MQ撤单问题 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2018-8-31 9:18
想咨询几个mq的执行细节问题,从其他平台转过来

1、mq每根bar 结束,是以什么作为标准,是下一根bar的open tick 到来作为前面一根bar的结束标记吗

2、比如图表第100根bar 符合条件condition=c>o  然后这根bar的H=4000 ,然后在 第101根我的语句是 if (condition[1])(    buy(1,max(open,h[1]+2))  )

    在第101根bar 程序在本地机器等待盘中触价4002 ,即当价格大于等于4002的时候,立刻发市价单,现在问题来了,如果第101根bar 价格始终不能大于4002直至这根bar       
     结束,并且这根bar不符合 condition ,而在第102根bar 开盘瞬间价格跳空到4004,请问这个单子在这种极端情况下,还会触价发单吗,还是已经将这个等待触价的单子在

    那一瞬间就删除了

这个涉及到极端执行细节问题,麻烦客服确认下
    
    
 
技术人员回复
日期:2018-8-31 9:37

问题1:

 

K线走完是以下一根K线第一笔TICK来判断的

 

问题2:

 

MQ软件默认盘中满足IF条件就立即执行

 

if (condition[1])(    buy(1,max(open,h[1]+2))  ) 这个开仓语句执行的条件仅condition[1]

 

max(open,h[1]+2)这个部分仅控制委托价格,所以在101不需要满足价格达到4002

 

而是在看盘第一笔 TICK判断上一根K线满足condition就立即以max(open,h[1]+2),MAX中两个价格中的最大值发出委托

 

 

 

 

 

投资者咨询:咨询MQ撤单问题 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2018-8-31 9:18
 是否误解了我的意思 , 我说的类似停损指令的情况,要盘中大于指定价格才发单,否则本地等待,可能这是别的平台的写法有误解,先不纠结,

我的流程是第100根符合条件,第101根的盘中价格>=4002,才发委托的意思 




1、如果第101根 的第一个tick 小于4002 , 之后第10个tick的价格才大于等于4002,那么应该在第10个tick 满足的是否才出信号发单子,,也就是机器一直在等着价格触价4002,不对吗


2、如果第101根bar 等不到触价到bar结束,那么并且这根bar不符合 condition ,而在第102根bar 开盘瞬间价格跳空到4004,请问这个单子在这种极端情况下,还会触价发单吗,还是已经将这个等待触价的单子在


 
技术人员回复
日期:2018-8-31 10:10

 

 

不需要一直等到“10个tick的价格才大于等于4002”,您的语句开仓条件只有上一根K线满足condition

 

所以在当根k线第一笔TICK就判断满足了,就会立即执行的

 

 

 
投资者咨询:咨询MQ撤单问题 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2018-8-31 9:18
 是否误解了我的意思 , 我说的类似停损指令的情况,要盘中大于指定价格才发单,否则本地等待,可能这是别的平台的写法有误解,先不纠结语句表达,

我的流程是第100根符合条件,第101根的要盘中价格>=4002或开盘直接跳空到4002以上,才发委托的意思 




1、如果第101根 的第一个tick 小于4002 , 之后第10个tick的价格才大于等于4002,那么应该在第10个tick 满足的是否才出信号发单子,,也就是机器一直在等着价格触价4002,不对吗


2、如果第101根bar 等不到触价到bar结束,那么并且这根bar不符合 condition ,而在第102根bar 开盘瞬间价格跳空到4004,请问这个单子在这种极端情况下,还会触价发单吗,还是已经将这个等待触价的单子在
技术人员回复
日期:2018-8-31 10:16

 那么首先需要修改一下语句的编写,if (condition[1] && CLOSE>4002)(    buy(1,max(open,h[1]+2))  )

 

然后,因为4002是开仓的判断条件所以必须要一直等到某一笔TICK价格大于4002才会委托

 

如果这样的编写下,到102当根因为101不满足condition,也就是不满足开仓条件condition[1]

 

即使价格大于4002也是不会出信号的

 

 

投资者咨询:咨询MQ撤单问题 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2018-8-31 9:18
 如果按照你的讲解,是否  if (condition[1] && h>=4002)(    buy(1,max(open,h[1]+2))  )  比if (condition[1] && CLOSE>4002)(    buy(1,max(open,h[1]+2))  )更严谨呢

毕竟在回测和实盘的角度,close到结束就不一定还大于4002了,而我的条件是只要盘中大于等于即可,不需要收盘确认
技术人员回复
日期:2018-8-31 10:36

不会的,MQ软件默认出信号立即下单

 

CLOSE函数在盘中返回的是最新价,所以盘中最新价大于4002就会立即委托

投资者咨询:咨询MQ撤单问题 (文华财经WH6赢顺V6.7)
来源:文华财经  日期:2018-8-31 9:18
 那这个代码回测应该不行了,另外盘中的话我得那个用high来表达有问题吗
技术人员回复
日期:2018-8-31 10:46
 没有问题,盘中这样编写与使用CLOSE效果是一样的