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
Exécution d'un script MetaTrader à partir de la ligne de commande
Je veux pouvoir exécuter un script ou un programme à partir de la ligne de commande pour exécuter un ordre d'achat. Il n'y a pas de règles. Lorsque je le tape à partir de la ligne de commande, il doit acheter une position longue EURUSD.
Comment cela peut-il être fait ?
Merci,
paco
Indicateur simple basé sur une flèche et EA
Bonjour à tous.
Récemment, j'ai essayé de créer un EA simple qui fonctionnerait sur un indicateur basé sur une flèche. J'essaie de faire en sorte que l'EA maintienne un ordre à tout moment. Si la flèche pointe vers le bas, l'ordre d'achat précédent est fermé et l'ordre de vente est ouvert. Si la flèche pointe vers le haut, l'ordre de vente précédent est fermé et l'ordre d'achat est ouvert. J'utilise le testeur (mode visualisation) pour vérifier mon code. Il semble que peu importe comment j'essaie, l'EA ne ferme pas et n'ouvre pas les positions lorsque l'indicateur de flèche pointe vers le haut ou vers le bas. Le back test confirme que l'EA ne fonctionne pas correctement. Au lieu d'ouvrir et de fermer les ordres aux points de la flèche indiqués par l'indicateur, l'EA ferme/ouvre l'ordre à un moment différent. Je ne comprends pas pourquoi mon code ne fonctionne pas.
Au début de la déclaration de départ, j'ai le code suivant :
if (Time[0] == savedTime) {
return (0) ;
} else {
savedTime = Time[0] ;
}
Ceci (je l'espère) garantira que le code dans l'instruction de départ est exécuté uniquement lorsqu'une nouvelle barre s'est formée. Plus loin dans le corps de la sous-routine de démarrage, j'interroge l'indicateur avec la fonction iCustom. La requête se présente comme suit :
iCustom (... 1)
Le dernier argument de 1 spécifie la barre formée précédemment, c'est pourquoi il n'est pas égal à 0. Pourtant, plus tard, je ferme l'ordre ouvert avec OrderClose et j'en ouvre un nouveau avec OrderSend. Je suppose que les deux fonctions doivent pouvoir s'exécuter instantanément.
En résumé: J'essaie de créer un EA basé sur un indicateur de flèche. L'indicateur pointe soit vers le haut, soit vers le bas. De la façon dont je le vois (et je suis probablement incorrect), la seule chose que je dois faire est de fermer l'ordre précédent et d'en ouvrir un nouveau lorsque la barre suivante s'est formée. J'apprécierais grandement toute contribution à ce problème.
Merci à tous.
Quelqu'un peut me dire comment coder pour mettre la date d'expiration dans l'indicateur ?
Merci.
Regardez ce fil de discussion https://www.mql5.com/en/forum/174194
Regardez ce fil de discussion https://www.mql5.com/en/forum/174194
Merci pour ce lien. J'ai enfin trouvé la page que je cherchais. ici
Comment obtenir 2 indicateurs dans une fenêtre séparée ?
Quelqu'un peut-il me rafraîchir la mémoire sur la façon d'obtenir 2 indicateurs sur une fenêtre séparée afin qu'ils se chevauchent l'un l'autre ?
Merci d'avance pour votre aide !
Dave
EA nécessaire pour ouvrir les ordres seulement
Bonjour à tous,
Je me demandais si quelqu'un pouvait m'aider à créer un EA qui ouvre seulement 4 ordres différents à 00:00AM GMT pour n'importe quelle paire.
1 achat de lot
1 lot à l'achat
1 lot de vente
1 lot de vente
à ouvrir tous à 00:00GMT
Merci pour votre aide
Ryan56
Bonjour à tous.
Récemment, j'ai essayé de créer un EA simple qui fonctionnerait sur un indicateur basé sur une flèche. J'essaie de faire en sorte que l'EA maintienne un ordre à tout moment. Si la flèche pointe vers le bas, l'ordre d'achat précédent est fermé et un ordre de vente est ouvert. Si la flèche pointe vers le haut, l'ordre de vente précédent est fermé et l'ordre d'achat est ouvert. J'utilise le testeur (mode visualisation) pour vérifier mon code. Il semble que peu importe comment j'essaie, l'EA ne ferme pas et n'ouvre pas les positions lorsque l'indicateur de flèche pointe vers le haut ou vers le bas. Le back test confirme que l'EA ne fonctionne pas correctement. Au lieu d'ouvrir et de fermer les ordres aux points de la flèche indiqués par l'indicateur, l'EA ferme/ouvre l'ordre à un autre moment. Je ne comprends pas pourquoi mon code ne fonctionne pas.
Au début de la déclaration de départ, j'ai le code suivant :
if (Time[0] == savedTime) {
return (0) ;
} else {
savedTime = Time[0] ;
}
Ceci (je l'espère) garantira que le code dans l'instruction de départ est exécuté uniquement lorsqu'une nouvelle barre s'est formée. Plus loin dans le corps de la sous-routine de démarrage, j'interroge l'indicateur avec la fonction iCustom. La requête se présente comme suit :
iCustom (... 1)
Le dernier argument de 1 spécifie la barre formée précédemment, c'est pourquoi il n'est pas égal à 0. Pourtant, plus tard, je ferme l'ordre ouvert avec OrderClose et j'en ouvre un nouveau avec OrderSend. Je suppose que les deux fonctions doivent pouvoir s'exécuter instantanément.
En résumé : J'essaie de créer un EA basé sur un indicateur de flèche. L'indicateur pointe soit vers le haut, soit vers le bas. De la façon dont je le vois (et je suis probablement incorrect), la seule chose que je dois faire est de fermer l'ordre précédent et d'en ouvrir un nouveau lorsque la barre suivante s'est formée. J'apprécierais grandement toute contribution à ce problème.
Merci à tous.Si vous ne regardez votre signal qu'une fois par barre et que votre "système" ferme et inverse lorsque le signal change, il est important de vérifier la sortie AVANT de vérifier l'entrée. Sinon, lorsqu'un nouveau signal d'entrée est présent, l'EA ne peut pas entrer dans le trade car le précédent est toujours ouvert. Et quand l'EA ferme la position, il n'entrera qu'à la prochaine barre parce que cette partie du code ne vient qu'une fois par barre.
J'espère que cela a du sens (avec mon anglais !).
FerruFx
Quelqu'un peut-il me rafraîchir la mémoire sur la façon d'obtenir 2 indicateurs sur une fenêtre séparée de sorte qu'ils se chevauchent l'un l'autre ?
Merci d'avance pour votre aide !
DaveRegardez cette page : https://www.mql5.com/en/forum/172923
Eh bien, ceci va résoudre votre problème de nouvelle barre (je l'ai trouvé dans un article sur mql4.com) :
{
bool res=false;
// the array contains open time of the current (zero) bar
// for 7 (seven) timeframes
static datetime _sTime[7];
int i=6;
int timeFrame = Period();
switch (timeFrame)
{
case 1 : i=0; break;
case 5 : i=2; break;
case 15 : i=3; break;
case 30 : i=4; break;
case 60 : i=5; break;
case 240: i=6; break;
case 1440:break;
default: timeFrame = 1440;
}
//----
if (_sTime==0 || _sTime!=iTime(Symbol(),timeFrame,0))
{
_sTime = iTime(Symbol(),timeFrame,0);
res=true;
}
//----
return(res);
}[/CODE]
Call this function like this
{
if (funcIsNewBar)
{
//run some code
}
return (0);
}That'll get code to run ONLY when there is a new bar.
What you need to do is find out in the data window of MT4 what the values are when there is NO arrow being put on the chart by your indicator. For example, the indicator may may have 0's or may be blank.
So all you do then is call the value of the indicator at each open [CODE]varMyIndieValue=iCustom();
if (varMyIndieValue>0) //there's an arrow
{
//run some code
}Bonjour à tous.
Récemment, j'ai essayé de créer un EA simple qui fonctionnerait sur un indicateur basé sur une flèche. J'essaie de faire en sorte que l'EA maintienne un ordre à tout moment. Si la flèche pointe vers le bas, l'ordre d'achat précédent est fermé et l'ordre de vente est ouvert. Si la flèche pointe vers le haut, l'ordre de vente précédent est fermé et l'ordre d'achat est ouvert. J'utilise le testeur (mode visualisation) pour vérifier mon code. Il semble que peu importe comment j'essaie, l'EA ne ferme pas et n'ouvre pas les positions lorsque l'indicateur de flèche pointe vers le haut ou vers le bas. Le back test confirme que l'EA ne fonctionne pas correctement. Au lieu d'ouvrir et de fermer les ordres aux points de la flèche indiqués par l'indicateur, l'EA ferme/ouvre l'ordre à un autre moment. Je ne comprends pas pourquoi mon code ne fonctionne pas.
Au début de la déclaration de départ, j'ai le code suivant :
if (Time[0] == savedTime) {
return (0) ;
} else {
savedTime = Time[0] ;
}
Ceci (je l'espère) garantira que le code dans l'instruction de départ est exécuté uniquement lorsqu'une nouvelle barre s'est formée. Plus loin dans le corps de la sous-routine de démarrage, j'interroge l'indicateur avec la fonction iCustom. La requête se présente comme suit :
iCustom (... 1)
Le dernier argument de 1 spécifie la barre formée précédemment, c'est pourquoi il n'est pas égal à 0. Pourtant, plus tard, je ferme l'ordre ouvert avec OrderClose et j'en ouvre un nouveau avec OrderSend. Je suppose que les deux fonctions doivent pouvoir s'exécuter instantanément.
En résumé : J'essaie de créer un EA basé sur un indicateur de flèche. L'indicateur pointe soit vers le haut, soit vers le bas. De la façon dont je le vois (et je suis probablement incorrect), la seule chose que je dois faire est de fermer l'ordre précédent et d'en ouvrir un nouveau lorsque la barre suivante s'est formée. J'apprécierais grandement toute contribution à ce problème.
Merci à tous.