Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1120

 

J'ai un EA, je veux qu'il soit capable de choisir les jours où il faut trader, et ceux où il ne faut pas.

Lun - faux

Mardi - vrai

Cp- ...

Veuillez me conseiller sur la manière de le mettre en œuvre.

 
RichLux:

J'ai un EA, je veux qu'il soit capable de choisir les jours où il faut trader, et ceux où il ne faut pas.

Lun - faux

Mardi - vrai

Cp- ...

Veuillez me conseiller sur la manière de le mettre en œuvre.

DayOfWeek

Renvoie le numéro séquentiel du jour de la semaine de la dernière heure connue du serveur.

intDayOfWeek() ;

Valeur retournée

Numéro séquentiel du jour de la semaine (dimanche-0,1,2,3,4,5,6).

Note

Pendant le test, la dernière heure connue du serveur est simulée.

Exemple :

// ne travaille pas les week-ends.
if(DayOfWeek()==0 ||DayOfWeek()==6)return(0) ;

 

DayOfWeek

Renvoie le numéro de séquencedu jour de la semaine de la dernière heure du serveur connue.

Merci, c'est plus logique.

Je n'arrive pas à trouver comment mettre en œuvre la sélection des jours de bourse dans les paramètres externes. En détail, je veux qu'un seul et même EA trade sur une paire de trading le lundi, et pas sur une autre.

Comment l'écrire en "extern" et ensuite l'implémenter en condition (if...else) ?

 
RichLux:

DayOfWeek

Renvoie le numéro de séquencedu jour de la semaine de la dernière heure du serveur connue.

Merci, c'est plus logique.

Je n'arrive pas à trouver comment mettre en œuvre la sélection des jours de bourse dans les paramètres externes. En détail, je veux qu'un seul et même EA trade sur une paire de trading le lundi, et pas sur une autre.

Comment l'écrire en "extern" et ensuite l'implémenter en condition (if...else) ?

Voici un exemple simple permettant de négocier uniquement le lundi. Ce code fonctionne dans MT4 et MT5

//+------------------------------------------------------------------+
//|                                                       test08.mq4 |
//|                                                   Sergey Gritsay |
//|                         https://www.mql5.com/ru/users/sergey1294 |
//+------------------------------------------------------------------+
#property copyright "Sergey Gritsay"
#property link      "https://www.mql5.com/ru/users/sergey1294"
#property version   "1.00"
#property strict

input ENUM_DAY_OF_WEEK dayofweek=MONDAY;

MqlDateTime time;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   TimeToStruct(TimeCurrent(),time);
   if(time.day_of_week!=dayofweek)return; // выйдем из OnTick() если текущий день не равен установленному дню
  
   // тут остальной код советника.
  }
//+------------------------------------------------------------------+


...

 
RichLux:

DayOfWeek

Renvoie le numéro de séquencedu jour de la semaine de la dernière heure du serveur connue.

Merci, c'est plus logique.

Je n'arrive pas à trouver comment mettre en œuvre la sélection des jours de bourse dans les paramètres externes. En détail, je veux qu'un seul et même conseiller expert trade sur une paire de devises le lundi, et ne trade pas sur une autre paire.

Comment l'écrire en "extern" puis l'implémenter en condition (if...else) ?

Utiliser l'énumération ENUM_DAY_OF_WEEK

A la toute fin de la page.

Информация об инструменте - Состояние окружения - Стандартные константы, перечисления и структуры - Справочник MQL4
Информация об инструменте - Состояние окружения - Стандартные константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Информация об инструменте - Состояние окружения - Стандартные константы, перечисления и структуры - Справочник MQL4
 

void OnTick()
{
//---
TimeToStruct(TimeCurrent(),time) ;
if(time.day_of_week!=dayofweek)return; // quitte OnTick() si le jour actuel n'est pas égal au jour fixé

// voici le reste du code EA
}
//+------------------------------------------------------------------+


...

Merci !

En réalité, nous devons maintenant tenir compte du fait que chaque paire a un nombre différent de jours "ouvrables".

Il faut probablement entrer 5 variables :jour de la semaine 1,jour de la semaine 2,... ?

Mais encore une fois, que dois-je entrer dans les 2 variables restantes s'il y a 3 jours de bourse ?

 
Bonjour, pourriez-vous me dire comment résoudre ce problème ? Il existe un code avec entrée sur M15, mais le signal de H1 est pris en compte. Alors qu'il y a un signal sur H1, sur M15 l'indicateur donne plusieurs signaux. La question est de le limiter à un seul (c'est-à-dire le premier signal).
Dossiers :
nsm.txt  1 kb
 
RichLux:


...

Merci !

Mais il faut maintenant tenir compte du fait que chaque paire a un nombre différent de jours "ouvrables".

Il faut probablement entrer 5 variables :jour de la semaine 1,jour de la semaine 2,... ?

Mais encore une fois, que dois-je entrer dans les 2 variables restantes s'il y a 3 jours de trading !

Nous pouvons essayer de le faire de cette façon :

#property strict

//-
enum YesNo {
_no       = 0, // NoTrade
_yes      = 1  // Trade
};
//-
sinput YesNo day1 = _yes; // Пн
sinput YesNo day2 = _yes; // Вт
sinput YesNo day3 = _yes; // Ср
sinput YesNo day4 = _no;  // Чт
sinput YesNo day5 = _yes; // Пт


MqlDateTime time;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
//--

 // здесь какой-то код, например закрытие

  ... 

 // проверка запрета на торговлю
  if(TradeAllow()) return;
   // далее код
  
}

//+------------------------------------------------------------------+
//| Разрешение на торговлю по дням                                   |
//+------------------------------------------------------------------+
bool TradeAllow() {
TimeToStruct(TimeCurrent(),time);
  switch(time.day_of_week) {
   case 1 : return(!day1);
   case 2 : return(!day2);
   case 3 : return(!day3);
   case 4 : return(!day4);
   case 5 : return(!day5);
   defaultreturntrue);
  }
}

Il est interdit de négocier le jeudi

Vous pouvez le rendre un peu plus beau, tout dépend de la tâche :

#property version   "1.00"
#property strict

//-
enum YesNo {
_no       = 0, // No trade
_yes      = 1  // Trade
};
//-
sinput YesNo day1 = _yes; // Пн
sinput YesNo day2 = _yes; // Вт
sinput YesNo day3 = _yes; // Ср
sinput YesNo day4 = _no;  // Чт
sinput YesNo day5 = _yes; // Пт


MqlDateTime time;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
//--
  if(TradeAllow()) {
    ClosePos(); // Только закрытие
  } else {
    ClosePos(); // Закрытие
    OpenPos();  // Открытие
    Function()  // Ещё что-то
  }
  
//-
}
//+------------------------------------------------------------------+
//| Функция закрытия                                                 |
//+------------------------------------------------------------------+
void ClosePos()
{
  // код
}

//+------------------------------------------------------------------+
//| Функция открытия                                                 |
//+------------------------------------------------------------------+
void OpenPos()
{
  // код
}

//+------------------------------------------------------------------+
//| Разрешение на торговлю по дням                                   |
//+------------------------------------------------------------------+
bool TradeAllow() {
TimeToStruct(TimeCurrent(),time);
  switch(time.day_of_week) {
   case 1 : return(!day1);
   case 2 : return(!day2);
   case 3 : return(!day3);
   case 4 : return(!day4);
   case 5 : return(!day5);
   default: return( true);
  }
}
//+------------------------------------------------------------------+
 
Bonjour à tous ! J'utilise l'indicateur delta de clusterdelta.com dans mon trading MT4. J'ai besoin d'un pigiste qui pourrait faire en sorte que lorsqu'un certain seuil dans les valeurs de l'indicateur est atteint, une alerte ou un autre son soit émis. Pouvez-vous me dire qui contacter à ce sujet ?
 
Lexx1:
Bonjour à tous ! J'utilise l'indicateur delta de clusterdelta.com dans mon trading MT4. J'ai besoin d'un pigiste qui pourrait faire en sorte que lorsqu'un certain seuil dans les valeurs de l'indicateur est atteint, une alerte ou un autre son soit émis. Pouvez-vous me dire qui contacter à ce sujet ?
Il y a une barre bleue en haut avec plein de lettres différentes. Cherchez le mot "Freelance" et cliquez dessus. Je pense que vous savez ce qu'il faut faire à partir de là.
Raison: