Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 249
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
C'est peut-être mieux.
Seulement échanger les places. Pourtant, Hour()>OpenHH plus souvent que l'heure et les minutes.
Pensez-vous que cela augmentera la vitesse de l'EA ? Je me demande, peut-être... Franchement, je n'ai jamais pensé à l'ordre des conditions dans IF...)
Pensez-vous que cela augmentera la vitesse de l'EA ? Intéressant, peut-être... Honnêtement, je n'ai jamais vraiment réfléchi à l'ordre de définition des conditions dans IF...)
Tout semble être correct, cela devrait fonctionner. J'ai essayé votre code dans le mien - il fonctionne avec des minutes. Mais seulement de 14 h 25 à 14 h 59, de 15 h 25 à 15 h 59, etc.
{
int OpenHH=14,OpenMM=25;
bool Trade=true;
//----
if (Trade) // Разрешение на торговлю.
if (TimeHour(TimeCurrent()) >= OpenHH ) // В назначенный час
{ OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); } // открыть ордера.
//----
return(0);
}
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}
Mais dès que j'ajoute des minutes ( TimeMinute(TimeCurrent()) >= OpenMM ) - aucun résultat.
L'EA refuse également de placer des ordres par minutes lorsqu'il utilise la fonction StrToTime().
Merci encore... Je vais continuer à creuser...
C'est peut-être mieux.
Nah... Cela ne fonctionne pas non plus...
Même en utilisant une autre fonction StrToTime() - si je spécifie le temps en heures entières - tout va bien, mais dès que j'ajoute des minutes - aucun résultat. Bien que, comme je l'ai écrit dans le 1er post, les commandes se ferment à 23h45 le vendredi sans aucun problème...
bool Trade=true;
string OpenTime = "14:00"; // Вот так работает!!!
string OpenTime = "14:25"; // А вот так - не работает!!!
if ( StrToTime(OpenTime) == TimeCurrent() && Trade )
{ OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); }
//----
return(0);
}
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}
Nah... Cela ne fonctionne pas non plus...
Même en utilisant une autre fonction StrToTime() - si je spécifie le temps en heures entières - tout va bien, mais dès que les minutes sont ajoutées - aucun résultat. Bien que, comme je l'ai écrit dans le 1er post, les ordres se ferment à 23:45 le vendredi sans aucun problème...
bool Trade=true;
string OpenTime = "14:00"; // Вот так работает!!!
string OpenTime = "14:25"; // А вот так - не работает!!!
if ( StrToTime(OpenTime) == TimeCurrent() && Trade )
{ OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); }
//----
return(0);
}
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}
Je ne sais pas... Ce code fonctionne pour moi aussi....
Comment le testez-vous ? Si, par exemple, sur H1 et aux prix d'ouverture, cela ne fonctionnera probablement pas.
Comment faites-vous les tests ? Si, par exemple, sur H1 et aux prix d'ouverture, cela ne fonctionnera probablement pas.
Vous voyez, c'est aussi simple que ça... Les minutes doivent être un multiple de TF ...
Maintenant / si ( TimeCurrent() == StrToTime(OpenTime) && Trade ), si OpenTime = 14:25 / fonctionnera, mais seulement sur TF=M1 et M5 ... La fonction d'ouverture des ordres a besoin des cours actuels mais la fonction de fermeture des ordres n'en a pas besoin...
J'ai manqué ce point d'une manière ou d'une autre (à cause de mon inexpérience)...
Merci beaucoup, j'ai résolu le problème...
Sepulca:
Comment faites-vous les tests ? Si, par exemple, sur H1 et aux prix d'ouverture, cela ne fonctionnera probablement pas.Ha ha... Et voici un mensonge...
Le problème s'est avéré être dans la fonction OpenOrders(). J'ai complètement oublié de supprimer le contrôle de l'ouverture des ordres sur une rupture de bougie (barre) :
if (Volume[0] > 1) return;
Donc, sur quelle TF le Conseiller Expert testait, il ouvrait des ordres sur ces minutes...
Stupide en général, sur un coup dur...
Merci...