MQ定义参数 (文华财经wh9)

投资者咨询:MQ定义参数 (文华财经wh9)
来源:文华财经  日期:2018-7-11 10:05

 Vars
    Numeric    HH1;
    Numeric    LC1;
    Numeric    HC1;
    Numeric    LL1;
    Numeric    RANGE1;
    Numeric    BuyLine;
    Numeric    SellLine;
    Numeric    Time1[50];
    Numeric    k1[0.5];
    Numeric    Open1;
Begin
    HH1 = HHV(High,Time1);
    LC1 = LLV(Close,Time1);
    HC1 = HHV(Close,Time1);
    LL1 = LLV(Close,Time1);
    Open1 = Time=0900 And Open;
    RANGE1 = Max(HH1-LC1,HC1-LL1);
    BuyLine = Open1 +k1* RANGE1;
    SellLine = Open1 - k1*RANGE1;
If(CrossUp(Close,BuyLine)
{
当价格向上突破上轨时,如果当时持有空仓,则先平仓,再开多仓;如果没有持仓,则直接开多仓;
}
If(CrossDown(Close,SellLine)
{
当价格向下突破下轨时,如果当时持有多仓,则先平仓,再开空仓;如果没有持仓,则直接开空仓;
}
End

 

老师这里有几个问题帮忙解答修改一下,在MQ软件中K1值我定义为一个变量系数,如何要在回测当中修改枚举如何进行操作这么定义是否正确、第二点、我调用今日早盘的开盘价0900;用Open1这么赋值正确么?如果不正确应该怎么写、第三点,MQ中的开仓和平仓函数都有哪些,格式应该如何编写?

这个策略是经典策略Dual_Thrust。如何还有哪里写作方式的错误请帮我指正出来,谢谢老师

 

   
技术人员回复
日期:2018-7-11 10:17

 回复问题一:

 

需要优化的参数应该写在Params字段下,参考这样的格式:

 

Params
 Numeric  RANGE1(20); //定义参数部分

 Vars
    Numeric    HH1;
    Numeric    LC1;

 

..................

 

 

 

 
技术人员回复
日期:2018-7-11 10:18

 回复问题二:

 

OPEN1编写有误参考:    Open1 =  ValueWhen(Time=0.0900,Open);

 
技术人员回复
日期:2018-7-11 10:25

 回复问题三:

 

K线图模型的指令,参考下图在编写平台上方》插入》插入指令了解一下

图片点击可在新窗口打开查看

投资者咨询:MQ定义参数 (文华财经wh9)
来源:文华财经  日期:2018-7-11 10:05

 Params
    Numeric    k1(0.5);

之前的问题解决了,现在提示参数不可以为小数,浮点型的函数是什么?怎么修改?

技术人员回复
日期:2018-7-11 10:48

 是的,参数缺省值不支持小数

 

实现方式:

 

 Params
    Numeric    k1(0.5);

 

Begin
    BuyLine = Open1 +k1*0.1* RANGE1;

投资者咨询:MQ定义参数 (文华财经wh9)
来源:文华财经  日期:2018-7-11 10:05

 写法测试语句还是错误的,应该怎么修改、

另一个问题是宽语言中没有可以直接定义浮点型函数的类型变量么?



图片点击可在新窗口打开查看
技术人员回复
日期:2018-7-11 11:10
 却少一个等号这样替换一下:Open1 =  ValueWhen(Time==0.0900,Open);
投资者咨询:MQ定义参数 (文华财经wh9)
来源:文华财经  日期:2018-7-11 10:05
 好的,可以实现了,还有一个问题,如果把上柜和下轨道在主图上画出图线该如何去写呢
技术人员回复
日期:2018-7-11 11:21
 可以使用PlotLine函数,具体用法您可以参考函数说明了解一下