EaCode小胖李 发表于 2022-12-23 15:10:40

BreakEven()监控所有持仓订单,为每个订单设置保本

函数名称
void BreakEven(string SymbolX,int MagicX,int BreakevenStartX,int BreakevenX)
函数介绍

自动检测当前持仓的所有订单,为每一个订单,设置保本。如果该订单盈利达到设定条件,就为该订单设置一个保本损。是一个非常好用的函数。注意:调用函数的时候,需要把函数的定义放到代码的最下面。
//举例
BreakEven(Symbol(),MAGIC,500,10);

参数介绍

SymbolX:需要设置保本的品种,一般设置当前品种即可。也就是Symbol();
MagicX:订单的魔术码,你的EA的魔术码是多少,这里填上即可。
BreakevenStartX:开启保本的盈利点数(pips),当此订单盈利多少点时设定保本。
BreakevenX:保本的点数,一般设置0即可。如果你想多保本一些点数,可以设置一个大于0的整数数值。

函数定义

注意:本人发布的函数均为实战开发所用,低价或免费发布并不赚钱,仅限懂编程的朋友使用,不提供指导,因为人工成本巨贵,感谢朋友们海涵。void BreakEven(string SymbolX,int MagicX,int BreakevenStartX,int BreakevenX)
{
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS))
         if((OrderSymbol()==SymbolX ||SymbolX=="-1")&& (OrderMagicNumber()==MagicX || MagicX==-1))
         {
            if(OrderType()==OP_SELL && OrderOpenPrice()-MarketInfo(Symbol(),MODE_ASK)>BreakevenStartX*MarketInfo(OrderSymbol(),MODE_POINT))
            {
               if(OrderOpenPrice()-BreakevenX*MarketInfo(OrderSymbol(),MODE_POINT)<OrderStopLoss())
                  if(!OrderModify(OrderTicket(),0,OrderOpenPrice()-BreakevenX*MarketInfo(OrderSymbol(),MODE_POINT),OrderTakeProfit(),0,Yellow))
                     Print(GetLastError());
            }
            else
               if(OrderType()==OP_BUY && MarketInfo(Symbol(),MODE_BID)-OrderOpenPrice()>BreakevenStartX*MarketInfo(OrderSymbol(),MODE_POINT))
               {
                  if(OrderOpenPrice()+BreakevenX*MarketInfo(OrderSymbol(),MODE_POINT)>OrderStopLoss())
                     if(!OrderModify(OrderTicket(),0,OrderOpenPrice()+BreakevenX*MarketInfo(OrderSymbol(),MODE_POINT),OrderTakeProfit(),0,Yellow))
                        Print(GetLastError());
               }

         }
}


ken138888 发表于 2023-2-13 06:08:53

看着不错

qwe11 发表于 2023-2-13 19:00:48

看着不错。。。

ea12213 发表于 2023-2-13 19:51:10

仅限懂编程的朋友使用

ken138888 发表于 2023-2-20 14:52:41

MT5版的移动止损是哪个函数啊?

dongxu64 发表于 2023-2-27 23:57:12

没钱看了
页: [1]
查看完整版本: BreakEven()监控所有持仓订单,为每个订单设置保本