打印本文打印本文 关闭窗口关闭窗口

请教一下代码怎么写

作者:MC 来源:cxh99.com 发布时间:2018年03月17日
  • MC用户求助:

    对于这种情况,您可以添加一个控制变量即可,如下面代码中的flag变量。

    inputs: Price( Close ), Length( 18 ), pl(10), loss(5), lot(1);
    variables: var0( 0 ), flag(0);

    var0 = AverageFC( Price, Length ) ;   //均线值
    if marketposition=1 then
            flag=-1 
    else if marketposition=-1 then
            flag=1;
    {当前部位是多头时,赋值flag为-1,而多头的进场加入了条件flag<>-1,这样就可以限制再次进场了,只能等到空头进场之后,flag被赋值为1时,多头才会再次进场;同理对于空头也是这样的逻辑}

    condition1 = flag<>-1 and close<=var0-minmove*pl point;
    if condition1 then                                                                   
            Buy ( "MA2CrossLE" ) lot shares next bar at market ; //这里使用的是市价单,您也可以使用条件单

    condition1 = flag<>1 and close>=var0+minmove*pl point;
    if condition1 then 
            Sell Short ( "MA2CrossSE" ) lot shares next bar at market ; //这里使用的是市价单,您也可以使用条件单

    setstoploss(lot*bigpointvalue*minmove*loss point);

     

  • MC回复讨论一:

    对于这种情况,您可以添加一个控制变量即可,如下面代码中的flag变量。

    inputs: Price( Close ), Length( 18 ), pl(10), loss(5), lot(1);
    variables: var0( 0 ), flag(0);

    var0 = AverageFC( Price, Length ) ;   //均线值
    if marketposition=1 then
            flag=-1 
    else if marketposition=-1 then
            flag=1;
    {当前部位是多头时,赋值flag为-1,而多头的进场加入了条件flag<>-1,这样就可以限制再次进场了,只能等到空头进场之后,flag被赋值为1时,多头才会再次进场;同理对于空头也是这样的逻辑}

    condition1 = flag<>-1 and close<=var0-minmove*pl point;
    if condition1 then                                                                   
            Buy ( "MA2CrossLE" ) lot shares next bar at market ; //这里使用的是市价单,您也可以使用条件单

    condition1 = flag<>1 and close>=var0+minmove*pl point;
    if condition1 then 
            Sell Short ( "MA2CrossSE" ) lot shares next bar at market ; //这里使用的是市价单,您也可以使用条件单

    setstoploss(lot*bigpointvalue*minmove*loss point);

打印本文打印本文 关闭窗口关闭窗口