[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 477
S'il vous plaît, dites-moi quel code doit être écrit dans l'EA pour que l'EA ne fasse des transactions qu'une fois par heure.
Par exemple, l'EA s'est déclenché, un ordre est ouvert (pas intéressé par la suite), je voudrais que l'ordre ne s'ouvre pas sur la barre actuelle sur une échelle de temps horaire.
tout se ressemble :
int hh ; int CurrentHour ; CurrentHour=TimeHour(TimeCurrent()) ; si (CurrentHour!=hh) { OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point) ; hh=TimeHour(TimeCurrent()) ; }
Les gars, aidez-moi à trouver un EA pour le trading manuel dans le testeur sur l'histoire. Il y en a quelques-uns dans la base de code, j'ai besoin d'un qui était contrôlé en faisant glisser la légende dans le coin inférieur gauche du nraffic. Très simple, je n'en trouve pas. HistTraining et Visualisation Testing. Le trading manuel n'en est pas un. Conseiller très facile, vous pouviez également définir des niveaux où les tests s'arrêtaient.
L'ordre d'achat ...... a échoué [Délai d'exécution].
Je suis spécifiquement intéressé par le type de délai d'attente.
https://www.mql5.com/ru/forum/112612 Il s'agit d'une réponse du serveur expirée --- que la transaction soit ouverte ou non. Et il n'y a aucune garantie que le commerce ne s'est pas ouvert.
Je dois donc vérifier si l'ordre est ouvert dans une minute, puis continuer à négocier.
int hh = 0 ; int init() { return(0) ; } int start() { //------------------------------------------------- int countorder ; countorder=OrdersTotal() ; if (countorder==0) { Alert ("no open orders") ; }else { Alert ("have open orders") ; } int hh ; int CurrentHour ; CurrentHour=TimeHour(TimeCurrent()) ; if ((CurrentHour!=h)&&(countorder==0)) { OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point) ; hh=TimeHour(TimeCurrent()) ; } //------------------------------------------------- return(0) ; }
int deinit() { return(0) ; }
J'ai fait comme vous l'avez dit, aucun effet, j'ai ajouté le nombre d'ordres ouverts, maintenant les ordres sont ouverts juste après la fermeture.
J'ai contourné le problème en utilisant OrderCloseTime() - cela semble fonctionner maintenant.
int countorder ; countorder=OrdersTotal() ; if (countorder==0) { Alert ("no open orders") ; }else { Alert ("have open orders") ; } int hh ; int CurrentHour ; int LastOrderCloseTime ; CurrentHour=TimeHour(TimeCurrent()) ;
https://www.mql5.com/ru/forum/112612 Il s'agit de la période d'attente pour que le serveur réponde --- si une transaction a été ouverte ou non. Et il n'y a aucune garantie que le marché ne soit pas ouvert.
Par conséquent, comme le recommandent les développeurs, vérifiez au bout d'une minute si un ordre a été ouvert et ne procédez qu'ensuite.
comment obtenir un numéro de barre, dans le "futur" :)
iBarShift() fonctionne bien pour obtenir le numéro de barre de l'historique, mais comment obtenir le numéro de barre pour ce code si vous déplacez la ligne vers la droite - au-delà de la barre zéro ?
comment obtenir un numéro de barre, dans le "futur" :)
iBarShift() fonctionne bien pour obtenir le numéro de barre de l'historique, mais comment puis-je obtenir le numéro de barre pour ce code si je déplace la ligne vers la droite - au-delà de la barre zéro ?
Vous pouvez obtenir un décalage par rapport au temps [0].
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
demlin:
Еще вопрос: какой функцией можно вытащить стоимость одного пункта инструмента?
https://docs.mql4.com/ru/constants/marketinfo
MarketInfo(Symbol(), MODE_TICKVALUE);S'il vous plaît, dites-moi quel code doit être écrit dans l'EA pour que l'EA ne fasse des transactions qu'une fois par heure.
Par exemple, l'EA s'est déclenché, un ordre est ouvert (pas intéressé par la suite), je voudrais que l'ordre ne s'ouvre pas sur la barre actuelle sur une échelle de temps horaire.
tout se ressemble :
int hh ;
int CurrentHour ;
CurrentHour=TimeHour(TimeCurrent()) ;
si (CurrentHour!=hh)
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point) ;
hh=TimeHour(TimeCurrent()) ;
}
mais j'ai d'innombrables commandes ouvertes
Bonjour à tous !
S'il vous plaît, dites-moi ce que cela signifie :
L'ordre d'achat ...... a échoué [Délai d'exécution].
Je suis spécifiquement intéressé par le type de délai d'attente.
https://www.mql5.com/ru/forum/112612
Il s'agit d'une réponse du serveur expirée --- que la transaction soit ouverte ou non. Et il n'y a aucune garantie que le commerce ne s'est pas ouvert.
Je dois donc vérifier si l'ordre est ouvert dans une minute, puis continuer à négocier.
rlx:
doit être défini avant start() et init()
int hh = 0 ;
int init()
{
return(0) ;
}
int start()
{
//-------------------------------------------------
int countorder ;
countorder=OrdersTotal() ;
if (countorder==0)
{
Alert ("no open orders") ;
}else
{
Alert ("have open orders") ;
}
int hh ;
int CurrentHour ;
CurrentHour=TimeHour(TimeCurrent()) ;
if ((CurrentHour!=h)&&(countorder==0))
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point) ;
hh=TimeHour(TimeCurrent()) ;
}
//-------------------------------------------------
return(0) ;
}
int deinit()
{
return(0) ;
}
J'ai fait comme vous l'avez dit, aucun effet, j'ai ajouté le nombre d'ordres ouverts, maintenant les ordres sont ouverts juste après la fermeture.
J'ai contourné le problème en utilisant OrderCloseTime() - cela semble fonctionner maintenant.
int countorder ;
countorder=OrdersTotal() ;
if (countorder==0)
{
Alert ("no open orders") ;
}else
{
Alert ("have open orders") ;
}
int hh ;
int CurrentHour ;
int LastOrderCloseTime ;
CurrentHour=TimeHour(TimeCurrent()) ;
OrderSelect(HistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY) ;
hh=TimeHour(OrderCloseTime()) ;
si ((CurrentHour!=hh)&&(countorder==0))
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point) ;
}
https://www.mql5.com/ru/forum/112612
Il s'agit de la période d'attente pour que le serveur réponde --- si une transaction a été ouverte ou non. Et il n'y a aucune garantie que le marché ne soit pas ouvert.
Par conséquent, comme le recommandent les développeurs, vérifiez au bout d'une minute si un ordre a été ouvert et ne procédez qu'ensuite.
Je ne veux pas être un emmerdeur, cependant.
Expliquez-moi comment un ordre s'ouvre si OrderTotal() est égal à zéro.
Merci.
Voici la figure avec les parenthèses qui limitent le bloc de code qui est exécuté sous la condition
Les opérations OrderSend() ne sont pas affectées par cette condition.
comment obtenir un numéro de barre, dans le "futur" :)
iBarShift() fonctionne bien pour obtenir le numéro de barre de l'historique, mais comment obtenir le numéro de barre pour ce code si vous déplacez la ligne vers la droite - au-delà de la barre zéro ?
comment obtenir un numéro de barre, dans le "futur" :)
iBarShift() fonctionne bien pour obtenir le numéro de barre de l'historique, mais comment puis-je obtenir le numéro de barre pour ce code si je déplace la ligne vers la droite - au-delà de la barre zéro ?
Vous pouvez obtenir un décalage par rapport au temps [0].
Vous pouvez obtenir un décalage par rapport au temps [0].
Merci ! Tout va bien maintenant !