Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Советники

Breakout Strategy with Prop Firm Helper Functions - эксперт для MetaTrader 5

Просмотров:
260
Рейтинг:
(14)
Опубликован:
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Всем привет,

Это обновление"Простой, но эффективной стратегии прорыва". В этом коде я добавил несколько вспомогательных функций для прохождения испытаний проп-фирмы.

Как правило, чтобы пройти испытание проп-фирмой, вам нужно соответствовать трем основным критериям:

  • Целевая прибыль
  • Не нарушать максимальный дневной убыток
  • Не нарушать максимальный убыток

В этот код я включил две функции, проверяющие "Целевую прибыль" и "Почти нарушив максимальный дневной убыток", чтобы автоматически выйти из всех позиций и удалить все отложенные ордера. Что касается "максимального убытка", то он зависит от вашей стратегии и риск-менеджмента, поэтому в данном MQL5-скрипте он упоминаться не будет.

//+------------------------------------------------------------------+
//| Функции помощника фирмы|
//+------------------------------------------------------------------+

// Удалить все отложенные ордера и выйти из всех позиций
void ClearAll(string message)
{
   Comment(message);
   for (int i = OrdersTotal() - 1; i >= 0; i--)
   {
      ulong orderTicket = OrderGetTicket(i);
      if (OrderSelect(orderTicket)) 
      {
         trade.OrderDelete(orderTicket);
      }
   }

   for (int i = PositionsTotal() - 1; i >= 0; i--)
   {
      ulong posTicket = PositionGetTicket(i);
      trade.PositionClose(posTicket);
   }
}

// Проверьте, достигли ли мы цели по прибыли
bool isPassed()
{
   return AccountInfoDouble(ACCOUNT_EQUITY) > PASS_CRITERIA;
}

// Проверьте, не нарушаем ли мы максимальный дневной убыток
bool isDailyLimit()
{
   MqlDateTime date_time;
   TimeToStruct(TimeCurrent(), date_time);
   int current_day = date_time.day, current_month = date_time.mon, current_year = date_time.year;
   
   // Текущий баланс
   double current_balance = AccountInfoDouble(ACCOUNT_BALANCE);
   
   // Получите сегодняшние закрытые сделки PL
   HistorySelect(0, TimeCurrent());
   int orders = HistoryDealsTotal();
   
   double PL = 0.0;
   for (int i = orders - 1; i >= 0; i--)
   {
      ulong ticket=HistoryDealGetTicket(i);
      if(ticket==0)
      {
         Print("HistoryDealGetTicket failed, no trade history");
         break;
      }
      double profit = HistoryDealGetDouble(ticket,DEAL_PROFIT);
      if (profit != 0)
      {
         // Получить дату сделки
         MqlDateTime deal_time;
         TimeToStruct(HistoryDealGetInteger(ticket, DEAL_TIME), deal_time);
         // Проверьте время сделки
         if (deal_time.day == current_day && deal_time.mon == current_month && deal_time.year == current_year)
         {
            PL += profit;
         }
         else
            break;
      }
   }
   double starting_balance = current_balance - PL;
   double current_equity   = AccountInfoDouble(ACCOUNT_EQUITY);
   return current_equity < starting_balance - DAILY_LOSS_LIMIT;
}

Нам нужно указать следующие параметры:

input string dd = "-------------PROP FIRM CHALLENGE-----------------";
input bool   isChallenge = false;
input double PASS_CRITERIA = 110100.;
input double DAILY_LOSS_LIMIT = 4500.;

Надеюсь, вы найдете в этом скрипте полезное для себя.


Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/49713

Babi Ngepet Babi Ngepet

Я делюсь своим кодом для советника babi ngepet

AIS Extremum AIS Extremum

Индикатор позволяет оценивать вероятность того, что цена достигла своего максимума или минимума.

Click on the market chart to create a price alert Click on the market chart to create a price alert

Это первая новинка для MetaTrader 5. Теперь вы можете щелкнуть на графике, чтобы создать ценовые оповещения.

Count consecutive no. of bull or bear bars Count consecutive no. of bull or bear bars

Пример кода для подсчета последовательного количества бычьих и медвежьих баров.