[原创]MQ云量化模拟版 开平仓价位问题 (文华财经wh9)

投资者咨询:[原创]MQ云量化模拟版 开平仓价位问题 (文华财经wh9)
来源:文华财经  日期:2018-7-20 10:55
 在MQ云量化模拟版上实时运行了很多个交易程序,但发现每一个程序都是以信号出现当K的开盘价开仓或平仓,尽管我在开平仓指令中明确规定用收盘价开仓和平仓。

请教一下,如何编写代码才能控制程序以每一K的收盘价开仓或平仓呢?

上述交易程序控制开平仓的语句示例如下:

If(MarketPosition == 0)
{
  If(H4INDEX[1] == 1 And Every(H4W1 > 0, 5) == 1 And H4W2[1] + H4W3[1] >= 0 And H4W4[1] + H4W5[1] >= 0  And TH == 1 And (SS2 > 0 || SS3 > 0) And (SS4 > 0 || SS5 > 0))
  {
    Buy(10, Close);
   }
 }


If(MarketPosition == 1)
{
  If(H4INDEX[1] == 1 And H4W1[1] < 0 And H4W2[1]+H4W3[1]<=0 And H4W4[1]+H4W5[1]<=0)
  {
    Sell(10, Close);
   }
 }


望尽快解答。
技术人员回复
日期:2018-7-20 11:08
 这不是问题的,CLOSE盘中不是收盘价是最新价

实时运行时,MQ模型都是指令价模型,也就是出信号立即发出

同时您模型用了[1] 表示取得是上根k线数据,这些数据在下根K线,都是固定的

所以满足时一定会在K线开盘下单,而不是当根k线的收盘

当前您模型其实就是您想要的收盘价成交,因为上根k线收盘就是下根K线开盘,您了解下


投资者咨询:[原创]MQ云量化模拟版 开平仓价位问题 (文华财经wh9)
来源:文华财经  日期:2018-7-20 10:55
 我的信号中多数信号来自上一K并不表示我希望就以上一K的收盘价成交

恰恰相反,我就希望程序以当K的收盘价成交,这是经过反复测试和计算后发现的更好的策略。

因此请问如何才能在云量化上控制交易程序以信号发出当K的收盘价操作。
技术人员回复
日期:2018-7-20 11:17
您把您模型中[1]改成[2]就行了

同时设置开盘价下单就行了,回测和实盘运行都能达到您要求的


 
投资者咨询:[原创]MQ云量化模拟版 开平仓价位问题 (文华财经wh9)
来源:文华财经  日期:2018-7-20 10:55
 何况总是以信号当K的开盘价操作绝对不是什么问题也没有。


一旦交易信号出现反复,即交易信号曾经出现过但又消失了,虽然按程序的条件来讲,该信号已消失,该交易没发生过,但因为交易信号曾经出现过,程序立即就按当K开盘价买入或卖出了。


资金账户上的合约成交了,可是程序理论上的持仓没有相应的信号,导致理论持仓与实际持仓不一致。


更严重的是,一旦程序在一段时期内多次出现这种交易信号出现了又消失的情况,那么虽然理论上程序一次持仓也没发生过,但实际的资金账户上却持有大量的无法自动平仓的仓位,必须得交易者自己手动忍着亏损平掉。


请问这样的一种操作方式,如果是在实盘版本上用真金白银交易,如何能让交易者安心地让交易程序自动运行?
技术人员回复
日期:2018-7-20 11:32
您对模型理解有误,1楼模型取的都是固定的以前K线数据,不可能出现信号不固定的情况

就比如上根k线是阴线,在当根k线是永远成立的

只有单根k线取当根K线的数据才会有不固定情况出现的,就比如盘中阳线,收盘不是

但您1楼源码没有这个问题,不存在信号忽闪的

而且MQ模型运行时,在K线走完的时候会进行持仓同步处理,对盘中开的仓位进行复核处理,也不会出现您5楼情况,您了解下


 
投资者咨询:[原创]MQ云量化模拟版 开平仓价位问题 (文华财经wh9)
来源:文华财经  日期:2018-7-20 10:55
 那么请问MQ有哪些语句是可以做到你所说的复核处理和同步持仓的,麻烦给出具体的代码实例让我学习一下
技术人员回复
日期:2018-7-20 13:09
 不用特别编写,正常编写的基于k线时刻模型,都有持仓同步的

您运行一个当根k线可以盘中下单的模型就明白了,如


Begin
If(IsUp) Buy;

If(IsDown) sell;
 End