您现在的位置:程序化交易>> 期货公式>> (MC)multicharts>> MC知识>>正文内容

如何设置多个移动止盈set关键字 [MC]

  • MC用户求助:

    您的策略主要有以下几个问题:

    一、对cross over和cross under的理解不太正确,导致您认为在同一根棒内condition1和condition2会同时满足;事实上这两个条件不会在一根bar内同时满足; 举例cross above来说,

    Above 指定向上的方向(值从小到大)同over

    A cross above B

    画线A向上交叉穿过画线B的定义如下:当前K棒的A值大于B值且满足下面的其中一个条件:

    1) 前一根K棒中A值小于B值。 

    2) 前一根或前几根K棒的A值等于B值,再之前的K棒A值小于B值。

    二、set关键字对于初学者,建议放在条件if的外部,不会放在if内部;还有就是同一个信号中若setpercenttrailing关键一同执行时,只会最后一个有效;更详细的您可以看一下这个帖子,http://forums.icetech.com.cn/forum.php?mod=viewthread&tid=3152&extra=page%3D6

    这就是为什么您的回撤止盈命令没有执行的原因。

     

    三、从代码的执行效率来说,不建议多个if语句,能合并的尽量合并在一起,下面对您的代码进行整理:

    [intrabarordergeneration=true];

    inputs:x1(21);

    variable:aa(0);

    value1=waverage(close,x1);

    aa=value1 - value1[1] ;

    condition1=aa cross over 0;

    condition2=aa cross under 0;

    if marketposition<>1  and  condition1 then

        buy next bar at market;

     

    if marketposition<>-1  and  condition2 then

        sellshort at next bar market;

     

    setstoploss(750);

    setpercenttrailing(1250,50);

    SetProfitTarget(7500);

     

  • MC回复讨论一:

    您的策略主要有以下几个问题:

    一、对cross over和cross under的理解不太正确,导致您认为在同一根棒内condition1和condition2会同时满足;事实上这两个条件不会在一根bar内同时满足; 举例cross above来说,

    Above 指定向上的方向(值从小到大)同over

    A cross above B

    画线A向上交叉穿过画线B的定义如下:当前K棒的A值大于B值且满足下面的其中一个条件:

    1) 前一根K棒中A值小于B值。 

    2) 前一根或前几根K棒的A值等于B值,再之前的K棒A值小于B值。

    二、set关键字对于初学者,建议放在条件if的外部,不会放在if内部;还有就是同一个信号中若setpercenttrailing关键一同执行时,只会最后一个有效;更详细的您可以看一下这个帖子,http://forums.icetech.com.cn/forum.php?mod=viewthread&tid=3152&extra=page%3D6

    这就是为什么您的回撤止盈命令没有执行的原因。

     

    三、从代码的执行效率来说,不建议多个if语句,能合并的尽量合并在一起,下面对您的代码进行整理:

    [intrabarordergeneration=true];

    inputs:x1(21);

    variable:aa(0);

    value1=waverage(close,x1);

    aa=value1 - value1[1] ;

    condition1=aa cross over 0;

    condition2=aa cross under 0;

    if marketposition<>1  and  condition1 then

        buy next bar at market;

     

    if marketposition<>-1  and  condition2 then

        sellshort at next bar market;

     

    setstoploss(750);

    setpercenttrailing(1250,50);

    SetProfitTarget(7500);

     

  • MC回复讨论二:

    “买卖指令任何一条被触发时,前面所下的单都同时被取消”,您的这句话是什么意思?因为您使用的是市价单,所以不存在挂单的情况,也就不存在“前面所下的单都同时被取消”的情况;即使是条件单,只要if的条件不再满足,也就会自动取消。

     

  • MC回复讨论三:

    您给的链接看了,也明白了一些。这里再问一下,如果有N个setpercenttrailing语句(在条件式外),会是什么情况?也是只有最后一个有效吗?如果我的想法是需要有N个这样的移动止盈命令,那应该如何处理呢?

    比如我这样写:

    setstoploss(750);

        SetBreakEven(750);

        SetStopPosition; 

        setpercenttrailing(1250,50);

        SetStopPosition; 

        setpercenttrailing(2500,45); 

        SetStopPosition; 

        setpercenttrailing(3750,40);

        SetStopPosition; 

        setpercenttrailing(5000,35);

        SetStopPosition; 

        setpercenttrailing(6250,30);

        SetStopPosition; 

        setpercenttrailing(8750,25);

        SetStopPosition; 

        setpercenttrailing(10000,20);

        SetStopPosition; 

        setpercenttrailing(11250,15);

        SetStopPosition; 

        setpercenttrailing(12500,10);

        SetStopPosition; 

        setpercenttrailing(13750,5);

        SetProfitTarget(15000);

     

  • MC回复讨论四:

    您给的链接看了,也明白了一些。这里再问一下,如果有N个setpercenttrailing语句(在条件式外),会是什么情况?也是只有最后一个有效吗?如果我的想法是需要有N个这样的移动止盈命令,那应该如何处理呢?

    比如我这样写:

    setstoploss(750);

        SetBreakEven(750);

        SetStopPosition; 

        setpercenttrailing(1250,50);

        SetStopPosition; 

        setpercenttrailing(2500,45); 

        SetStopPosition; 

        setpercenttrailing(3750,40);

        SetStopPosition; 

        setpercenttrailing(5000,35);

        SetStopPosition; 

        setpercenttrailing(6250,30);

        SetStopPosition; 

        setpercenttrailing(8750,25);

        SetStopPosition; 

        setpercenttrailing(10000,20);

        SetStopPosition; 

        setpercenttrailing(11250,15);

        SetStopPosition; 

        setpercenttrailing(12500,10);

        SetStopPosition; 

        setpercenttrailing(13750,5);

        SetProfitTarget(15000);

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 511411198  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容