找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
首页论坛EAHub 外汇论坛
查看: 36|回复: 0

移动止损函数

[复制链接]

4万

主题

54

回帖

4万

积分

管理员

积分
45954
发表于 2026-8-27 21:49:00 | 显示全部楼层 |阅读模式
移动止损函数

//移动止损函数
   
   // 详解:该函数里面需要用到的可修改的外部变量是: 1、 移动止损点数    2、magic  (这两个变量可将其定义成全局变量)
     
     void yidong()   //定义函数名称
     {
     
        for(int i=0;i<OrdersTotal();i++)    //for循环语句订单总数的循环  OrdersTotal()用来获取当前的所有订单总数
          {
             if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)  //查询当前的订单序号是否存在
               {
                   if(OrderType()==OP_BUY && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)  //判断第一查询到的订单类型是不是买单,第二查询到的订单的货币对是不是当前货币对,第三查询到的订单的魔术号是否和外部定义的魔术号是否相同
                           {
                             if ((Bid-OrderOpenPrice())>=Point*移动止损点数)    //如果现卖价-开单价的点数大于等于移动止损点数,即价格上升多少个点后,准备开启以下的止损上移变动设置。
                                {
                                   if (OrderStopLoss()<(Bid-Point*移动止损点数)||(OrderStopLoss()==0))  // 如果现卖价-移动止损点数后的 价格大于设置的止损价,或者  止损价格没有设置的时候,执行下面的修改订单止损价格语句
                                      {
                                         int OM;  //定义一个变量接收修改订单函数的返回值
                                         OM=OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*移动止损点数,OrderTakeProfit(),0,Green);   //修改订单止损价格语句(订单编号识别,订单开单价识别,止损价格修改,订单止盈价格识别,当前周期,订单颜色)
                                      }
                                 }
                             }
                      if (OrderType()==OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==magic)   //判断第一查询到的订单类型是不是买卖单,第二查询到的订单的货币对是不是当前货币对,第三查询到的订单的魔术号是否和外部定义的魔术号是否相同
                         {
                            if ((OrderOpenPrice()-Ask)>=(Point*移动止损点数))          //如果现开单价格--买价价的点数大于等于移动止损点数,即价格下降多少个点后,准备开启以下的止损下移变动设置。
                               {
                                  if((OrderStopLoss()>(Ask+Point*移动止损点数))||(OrderStopLoss()==0))    // 如果设置的止损价大于现买价价+移动止损点数后的 价格,或者  止损价格没有设置的时候,执行下面的修改订单止损价格语句
                                     {
                                        int OM;   //定义一个变量接收修改订单函数的返回值
                                        OM=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*移动止损点数,OrderTakeProfit(),0,Green);    //修改订单止损价格语句(订单编号识别,订单开单价识别,止损价格修改,订单止盈价格识别,当前周期,订单颜色)
                                     }
                               }
                        
                          }

                   }
  
             }
     
      }复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|EAHub外汇论坛

GMT+8, 2026-10-9 15:31 , Processed in 0.369069 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表