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
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
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.
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) ?
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() если текущий день не равен установленному дню
// тут остальной код советника.
}
//+------------------------------------------------------------------+
...
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.
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 ?
...
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);
default: return( true);
}
}
Il est interdit de négocier le jeudi
Vous pouvez le rendre un peu plus beau, tout dépend de la tâche :
#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 ?