请选择 进入手机版 | 继续访问电脑版
外汇ea之家 首页  注册  登录
现在注册
已注册用户请  登录
外汇ea之家    mql4编程中文手册

动态移动止损、止盈代码

  •   易源 · 2018-7-8 20:00:59 · 171 次点击 ·阅读模式     

    马上注册,结交更多好友,下载更多资源

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    1. if(OrderType() == OP_BUY)
    2. {
    3.             dSl=OrderStopLoss();
    4.             if( dSl == 0 )
    5.                if( dInitialSL != 0)
    6.                   dSl = dnAsk - dInitialSL;           
    7.             ArrayResize(arrSL,5);
    8.             ArrayInitialize(arrSL,dSl);
    9.             LogSL("OP_BUY-check",dSl,arrSL[0],arrSL[1],arrSL[2],arrSL[3]);
    10.             if( dPropSLRatio > 0 )
    11.             {
    12.                if( Bid >= (OrderOpenPrice() + dPropSLThreshold) )
    13.                {
    14.                   dSl = NormalizeDouble( OrderOpenPrice() + dPropSLRatio*(Bid - OrderOpenPrice()) - dSpread,4 );
    15.                   if(OrderStopLoss() < dSl)
    16.                   arrSL[1]=dSl;
    17.                }
    18.                else
    19.                {
    20.                   if(dTrailingStop != 0)
    21.                      arrSL[2]=dnBid - dTrailingStop;
    22.                }
    23.             }                        
    24.             dSl=arrSL[ArrayMaximum(arrSL)];
    25.             LogSL("OP_BUY - max",dSl,arrSL[0],arrSL[1],arrSL[2],arrSL[3]);
    26.             if( dSl > OrderStopLoss() || OrderStopLoss() == 0 )
    27.                {
    28.                   OrderModify(OrderTicket(), OrderOpenPrice(),
    29.                      dSl, OrderTakeProfit(), 0, Yellow);
    30.                   Log("Buy - modify", OrderOpenPrice(), dSl, OrderTakeProfit());
    31.                }
    32.             // Escape buy
    33.             //if( dEscape != 0 && dnBid < OrderOpenPrice() - dEscape - 5 * Point )
    34.             if( nUseEscape == 1 && dnBid < OrderOpenPrice() - dEscapeLevel - 5 * Point )
    35.             {
    36.                OrderModify(OrderTicket(), OrderOpenPrice(),
    37.                OrderStopLoss(), OrderOpenPrice() + dEscapeTP, 0, Aqua);
    38.                Log("Buy - EscapeLevel", OrderOpenPrice(), dSl, OrderTakeProfit());
    39.             }
    复制代码

    上述代码中,使用dSl = NormalizeDouble( OrderOpenPrice() + dPropSLRatio*(Bid - OrderOpenPrice()) - dSpread,4 );进行动态调整,dPropSLRatio可以考虑设置为0.382这个黄金比例。 另外当现价低于一定程度时,设置一个较小的止盈目标位,及时逃脱。
    171 次点击  
    收藏  加入淘专辑0
    添加一条新回复
    您需要登录后才可以回帖 登录 | 注册

    请勿自己恶意顶贴
    DigitalOcean  DigitalOcean
    关于我们   广告投放   我们的愿景   帮助中心   感谢   友站   外汇交易平台大全  
      最大的外汇智能交易社区!
    外汇交易有很大的风险性,本站所有资源均来自网络,请选择使用,如若出现亏损,本站不承担任何责任!
    快速回复 返回顶部 返回列表
    在线客服 意见反馈 常见问题 回到顶部