← К каталогу
Исходный код · ID 2869

Breakeven EA v1.3

breakeven ea v1.3.mq4
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Breakeven EA v1.3 — торговый советник для MetaTrader 4, автоматизирующий перевод стоп-лосса открытых ордеров в безубыточную зону. После достижения заданного уровня прибыли советник модифицирует стоп-лосс, фиксируя потенциальный доход и снижая риск убытка. Советник поддерживает фильтрацию ордеров по magic number и номеру ордера, что позволяет применять его выборочно к определённым позициям. Работает как с 3/5-значными, так и с 2/4-значными брокерами, автоматически корректируя расчёты.

Встроенная информационная панель отображает на графике параметры настройки и данные по ордерам с возможностью настройки цвета и размера шрифта. Все графические объекты обновляются и очищаются при каждом запуске. Советник не открывает новые сделки — он только управляет существующими открытыми ордерами.

Настройки программы

НастройкаОписание
Break_Even_After_X_Pips Break Even After X Pips — Уровень прибыли в пипсах, после достижения которого стоп-лосс ордера переводится в безубыточную зону.
XpipsAboveBE Xpips Above BE — Дополнительное расстояние в пипсах выше безубыточного уровня, на которое устанавливается стоп-лосс после перевода.
Show_Info Show_Info — Переключатель отображения информационных меток на графике с параметрами и данными по ордерам.
Text_Color Text_Color — Цвет текста информационных меток на графике.
font_size font_size — Размер шрифта информационных меток на графике.
font_gap_distance font_gap_distance — Расстояние в пикселях между строками информационных меток на графике.
useMagicNumber useMagicNumber — Переключатель фильтрации ордеров по магическому номеру. При включении обрабатываются только ордера с заданным значением Magic.
Magic Magic — Числовой идентификатор магического номера для фильтрации ордеров, к которым применяется перевод стоп-лосса.
Part2 Part2 — Текстовый параметр-разделитель, объявленный в настройках советника.
useOrderNumber useOrderNumber — Переключатель фильтрации ордеров по номеру ордера. При включении обрабатывается только ордер с заданным значением OrderNumber.
OrderNumber OrderNumber — Номер ордера для выборочной фильтрации — перевод стоп-лосса применяется только к ордеру с указанным тикетом.
Получить полный код

Поиск по коду файла

extern double Break_Even_After_X_Pips = 15.0;
extern double XpipsAboveBE = 1.6;
extern bool Show_Info = true;
extern color Text_Color = Yellow;
extern int font_size = 9;
extern int font_gap_distance = 12;
extern bool useMagicNumber = false;
extern int Magic = 1234567;
extern string Part2="------------------------------";
extern bool useOrderNumber = false;
extern int OrderNumber = 123456789;
int init()
{
      // код доступен только после оплаты
   }

int deinit()
{
   DeleteAllObjects();
   return(0);
}

int start()
{
      // код доступен только после оплаты
   }

void AdjustStopLoss()
{
   string commentstr1, commentstr2, commentstr3, commentstr4;
   if(Digits == 5 || Digits == 3)
   {
      commentstr1 = "Break Even After X Pips : "+Break_Even_After_X_Pips/10;
      commentstr2 = "X pips Above BE : "+XpipsAboveBE/10;
   }
   else if(Digits == 4 || Digits == 2)
   {
      commentstr1 = "Break Even After X Pips : "+Break_Even_After_X_Pips;
      commentstr2 = "\nX pips Above BE : "+XpipsAboveBE;   
   }
   for(int cnt=0;cnt<OrdersTotal();cnt++)
   {
      if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
      {
         if(useMagicNumber == true)
         {
            if(useOrderNumber==true)
            {  
               if(OrderTicket()== OrderNumber && OrderMagicNumber()==Magic && OrderStopLoss() != OrderOpenPrice())
               {
                  if(Digits == 5 || Digits == 3)
                  {
                     commentstr3="#"+OrderTicket()+" "+OrderSymbol()+" "+FindOpType(OrderType())+" Pips : "+DoubleToStr(( OrderProfit() - OrderCommission() - OrderSwap() ) / OrderLots() / MarketInfo( OrderSymbol(), MODE_TICKVALUE )/10,1);         
                  }
                  else if(Digits == 4 || Digits == 2)
                  {
                     commentstr4="#"+OrderTicket()+" "+OrderSymbol()+" "+FindOpType(OrderType())+" Pips : "+DoubleToStr(( OrderProfit() - OrderCommission() - OrderSwap() ) / OrderLots() / MarketInfo( OrderSymbol(), MODE_TICKVALUE ),1);         
                  }
                  if(( OrderProfit() - OrderCommission() - OrderSwap()) / OrderLots() / MarketInfo( OrderSymbol(), MODE_TICKVALUE ) >= Break_Even_After_X_Pips)
                  {
                     if(OrderType()==OP_SELL)
                     {
                        if(OrderStopLoss() != OrderOpenPrice()-(XpipsAboveBE*Point))
                        {                        
                           if(OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-(XpipsAboveBE*Point),OrderTakeProfit(),0,Red))
                           {

                           }
                        }
                     }
                     if(OrderType()==OP_BUY)
                     {
                        if(OrderStopLoss() != OrderOpenPrice()+(XpipsAboveBE*Point))
                        {
                           if(OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+(XpipsAboveBE*Point),OrderTakeProfit(),0,Blue))
                           {

                           }
                        }
                     }  
                  }        
               }                   
            }
            else
            {
               if(OrderMagicNumber()==Magic && OrderStopLoss() != OrderOpenPrice())
               {
                  if(Digits == 5 || Digits == 3)
                  {
                     commentstr3="#"+OrderTicket()+" "+OrderSymbol()+" "+FindOpType(OrderType())+" Pips : "+DoubleToStr(( OrderProfit() - OrderCommission() - OrderSwap() ) / OrderLots() / MarketInfo( OrderSymbol(), MODE_TICKVALUE )/10,1);         
                  }
                  else if(Digits == 4 || Digits == 2)
                  {
                     commentstr4="#"+OrderTicket()+" "+OrderSymbol()+" "+FindOpType(OrderType())+" Pips : "+DoubleToStr(( OrderProfit() - OrderCommission() - OrderSwap() ) / OrderLots() / MarketInfo( OrderSymbol(), MODE_TICKVALUE ),1);         
                  }
                  if(( OrderProfit() - OrderCommission() - OrderSwap() ) / OrderLots() / MarketInfo( OrderSymbol(), MODE_TICKVALUE ) >= Break_Even_After_X_Pips)
                  {
                     if(OrderType()==OP_SELL)
                     {
                        if(OrderStopLoss() != OrderOpenPrice()-(XpipsAboveBE*Point))
                        {
                           if(OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-(XpipsAboveBE*Point),OrderTakeProfit(),0,Red))
                           {

                           }
                        }
                     }
                     if(OrderType()==OP_BUY)
                     {
                        if(OrderStopLoss() != OrderOpenPrice()+(XpipsAboveBE*Point))
                        {
                           if(OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+(XpipsAboveBE*Point),OrderTakeProfit(),0,Blue))
                           {

                           }
                        }
                     }  
                  }        
               }               
            }
         }

         else if(useMagicNumber == false)
         {
            if(useOrderNumber==true)
            {
               if(OrderTicket()== OrderNumber && Order

Показано первые 50% кода (символов: 6622)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
662,20₽ ≈ $8.09