Limitation de trades par jour

MQL5 Эксперты

Техническое задание

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   // Initialisation des paramètres
   Print("Expert Advisor initialisé.");
   return(INIT_SUCCEEDED);
  }

//+------------------------------------------------------------------+
//| Fonction principale de l'EA                                      |
//+------------------------------------------------------------------+
void OnTick()
  {
   // Vérifier si le nombre maximum de trades est atteint
   if(TradesCountToday() >= 2)
     {
      Print("Nombre maximum de trades atteint pour aujourd'hui.");
      return;
     }

   // Logique pour ouvrir un trade (exemple : simple achat)
   if(ConditionToTrade()) // Remplacez cette condition par votre logique
     {
      double lotSize = 0.1; // Taille du lot
      if(OrderSend(Symbol(), OP_BUY, lotSize, Ask, 2, 0, 0, "Trade Limit EA") > 0)
        {
         Print("Trade exécuté avec succès.");
        }
      else
        {
         Print("Erreur lors de l'exécution du trade : ", GetLastError());
        }
     }
  }

//+------------------------------------------------------------------+
//| Fonction pour compter les trades effectués aujourd'hui           |
//+------------------------------------------------------------------+
int TradesCountToday()
  {
   int count = 0;
   datetime startOfDay = iTime(Symbol(), PERIOD_D1, 0); // Heure début de la journée
   for(int i = OrdersHistoryTotal() - 1; i >= 0; i--)
     {
      if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
        {
         if(OrderType() <= OP_SELL && OrderCloseTime() >= startOfDay)
           {
            count++;
           }
        }
     }
   return count;
  }

//+------------------------------------------------------------------+
//| Fonction pour votre logique de trading                           |
//+------------------------------------------------------------------+
bool ConditionToTrade()
  {
   // Exemple : vérifier si le RSI est inférieur à 30
   double rsi = iRSI(Symbol(), PERIOD_H1, 14, PRICE_CLOSE, 0);
   return rsi < 30;
  }
ton

Откликнулись

1
Разработчик 1
Оценка
(144)
Проекты
219
32%
Арбитраж
16
44% / 25%
Просрочено
0
Свободен
2
Разработчик 2
Оценка
(535)
Проекты
613
34%
Арбитраж
33
39% / 45%
Просрочено
9
1%
Занят
3
Разработчик 3
Оценка
(39)
Проекты
65
34%
Арбитраж
4
25% / 50%
Просрочено
9
14%
Работает
4
Разработчик 4
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
5
Разработчик 5
Оценка
(1)
Проекты
1
0%
Арбитраж
0
Просрочено
0
Свободен

Информация о проекте

Бюджет
30+ USD
VAT (17%): 5.1 USD
Итого: 35.1 USD
Исполнителю
27 USD