📅 财经日历 📊 实时波动 📈 大盘云图 📶 行情走势 🆚 投机情绪 🚀 今日热点

    发一段能用的保本损代码,求10个金币

    2020-01-27 · 4880 阅读
    void BreakEven(string buyOrSell, double BreakEven)
        {
         bool succeed = false ;
         int  try
                   = 0;
         RefreshRates();
         if(OrdersTotal() > 0)
             {
              if(BreakEven <= MarketInfo(Symbol(), MODE_STOPLEVEL) * Point)
                  {
                   Print("保本损设置小于StopLevel");
                   return;
                  }
              else
                  {
                   for(int i = OrdersTotal() - 1; i >= 0; i--) //顺序排列,最后开的单子最远,在0的位置,所以是从最早开的单子往最后的方向找
                       {
                        if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true)
                            {
                             if(OrderSymbol() == Symbol() && OrderMagicNumber() == MAGICMA) //MAGIC时而统计时而不统计,高风险
                                 {
                                  if(buyOrSell == "buy")
                                      {
                                       if(OrderType() == OP_BUY)
                                           {
                                            if(NormalizeDouble((Bid - OrderOpenPrice()), Digits) >= NormalizeDouble(BreakEven/*2倍挂单间距*/ * Point, Digits))
                                                {
                                                 if(OrderOpenPrice() - OrderStopLoss() > 0 || (OrderStopLoss() == 0))
                                                     {
                                                      if(NormalizeDouble(OrderStopLoss(), Digits) != NormalizeDouble(OrderOpenPrice(), Digits) + NormalizeDouble(MarketInfo(Symbol(), MODE_SPREAD), Digits) + NormalizeDouble(20 * Point, Digits))
                                                          {
                                                           //---价格从开盘价移动两个stoplevel=100点,则价格提高到开盘价+spread+20点=70点
                                                           succeed = OrderModify(OrderTicket(), NormalizeDouble(OrderOpenPrice(), Digits), NormalizeDouble(OrderOpenPrice(), Digits) + NormalizeDouble(MarketInfo(Symbol(), MODE_SPREAD), Digits) + NormalizeDouble(20 * Point, Digits), NormalizeDouble(OrderTakeProfit(), Digits), 0, Lime);
                                                           if(!succeed)
                                                               {
                                                                Print("多单保本损没有设置");
                                                                Sleep(200);
                                                                
                                                               }
                                                           else
                                                               {
                                                                Print("多单保本损设置成功");
                                                               }
                                                          }
                                                      RefreshRates();
                                                     }
                                                }
                                           }
                                      }
                                  if(buyOrSell == "sell")
                                      {
                                       if(OrderType() == OP_SELL)
                                           {
                                            if(NormalizeDouble((OrderOpenPrice() - Ask), Digits) >= NormalizeDouble(BreakEven, Digits))
                                                {
                                                 if((OrderOpenPrice() - OrderStopLoss() < 0) || (OrderStopLoss() == 0))
                                                     {
                                                      if(NormalizeDouble(OrderStopLoss(), Digits) != NormalizeDouble(OrderOpenPrice(), Digits) - NormalizeDouble(MarketInfo(Symbol(), MODE_SPREAD), Digits) - NormalizeDouble(20 * Point, Digits))
                                                          {
                                                           succeed = OrderModify(OrderTicket(), NormalizeDouble(OrderOpenPrice(), Digits), NormalizeDouble(OrderOpenPrice(), Digits) - NormalizeDouble(MarketInfo(Symbol(), MODE_SPREAD), Digits) - NormalizeDouble(20 * Point, Digits), NormalizeDouble(OrderTakeProfit(), Digits), 0, Lime);
                                                           if(!succeed)
                                                               {
                                                                Print("空单保本损没有设置");
                                                                Sleep(200);
                                                                
                                                               }
                                                           else
                                                               {
                                                                Print("空单保本损设置成功");
                                                               }
                                                          }
                                                      RefreshRates();
                                                     }
                                                }
                                           }
                                      }
                                 }
                            }
                       }
                  }
             }
        }

    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 19 个

    改变 LV3

    发表于 2020-6-11 13:30:52 | 显示全部楼层

    小手一抖,积分到手!

    365 LV3

    发表于 2020-6-21 19:53:01 | 显示全部楼层

    相当不错,感谢无私分享精神!

    ak47fx LV3

    发表于 2020-7-28 13:26:15 | 显示全部楼层

    学习了,不错

    ttofx LV4

    发表于 2020-11-18 20:42:38 | 显示全部楼层

    支持下

    ivanlu LV3

    发表于 2020-12-3 16:37:24 | 显示全部楼层

    支持下

    songxiouyu LV1

    发表于 2021-2-19 19:42:12 | 显示全部楼层

    这个怎么编译,提示 if(OrderSymbol() == Symbol() && OrderMagicNumber() == MAGICMA) 出错

    亿万富翁大柳哥 LV4

    发表于 2021-6-29 16:51:53 | 显示全部楼层

    用不成,**

    财富人生 LV1

    发表于 2023-5-20 10:35:07 | 显示全部楼层

    支持下

    ytpld LV17

    发表于 2023-5-21 21:49:20 | 显示全部楼层


    学习了,不错
    12下一页
    您需要登录后才可以回帖 登录 | 注册

    提醒: 禁止引战、谩骂、灌水内容

    微信二维码

    有问题联系客服