Discussion de l'article "Guide étape par étape pour rédiger un conseiller expert en MQL5 pour les débutants" - page 10

[Supprimé]  
pisenysh:

lors de la compilation, il y a une erreur

la valeur de retour de 'OrderSend' doit être vérifiée my_first_ea.mq5 211 10

Qu'est-ce qui pourrait être erroné ?

S'agit-il vraiment d'une erreur ?
 
pisenysh:

lors de la compilation, il y a une erreur

la valeur de retour de 'OrderSend' doit être vérifiée my_first_ea.mq5 211 10

qu'est-ce qui ne va pas ?

Le compilateur indique qu'il est nécessaire de traiter le résultat de l'exécution de la fonction de transaction.
 

Bonjour, puis-je vous poser une question ? L'Expert Advisor effectue-t-il des transactions avec une précision de l'ordre de la seconde ? C'est-à-dire, si j'ai besoin d'ouvrir et de fermer des transactions non seulement à une certaine heure et minute, mais aussi à une certaine seconde ?

 
Grenjohn:

Bonjour, puis-je vous poser une question ? L'Expert Advisor effectue-t-il des transactions avec une précision de l'ordre de la seconde ? C'est-à-dire, si j'ai besoin d'ouvrir et de fermer des transactions non seulement à une certaine heure et minute, mais aussi à une certaine seconde ?

Une minute se compose de cent secondes - laquelle voulez-vous ?
 
server:
Une minute est composée de cent secondes - laquelle voulez-vous ?
C'est dans les annales ;)
 

Je ne comprends pas ! Une minute est composée de 60 secondes. Je programme l'Expert Advisor pour ouvrir une position par exemple à 12:30 et j'ai besoin qu'il se déclenche à 45 secondes. Lorsque je règle 12:30 tout fonctionne, la transaction est ouverte, mais lorsque j'essaie d'ajouter des secondes cela ne fonctionne pas !!!?

 

Voici le code lui-même :

extern int tp = 1000 ;

extern int sl = 1000 ;
extern double Lots = 0.01 ;
int ticket ;
int start()
{
if(OrdersTotal( )==0 && Hour ( )==23 && Minute ( )==02 && Seconds ( )==30))
{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Bid-sl*Point,Bid+tp*Point,"",123,0,Red) ;
}
if (OrdersTotal( )==1 && Hour( )==23 && Minute( )==03 && Seconds ( )==30))
{
OrderSelect(ticket ,SELECT_BY_TICKET,MODE_TRADES) ;
OrderClose(ticket,Lots,Bid,20,Green) ;
}
}
 
Grenjohn:

Voici le code lui-même :

extern int tp = 1000 ;

extern int sl = 1000 ;
extern double Lots = 0.01 ;
int ticket ;
int start()
{
if(OrdersTotal( )==0 && Hour ( )==23 && Minute ( )==02 && Seconds ( )==30))
{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Bid-sl*Point,Bid+tp*Point,"",123,0,Red) ;
}
if (OrdersTotal( )==1 && Hour( )==23 && Minute( )==03 && Seconds ( )==30))
{
OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES) ;
OrderClose(ticket,Lots,Bid,20,Green) ;
}
}
Gy. Vérifier que Seconds() >= 30, car une seconde peut s'écouler rapidement et aucun tick n'arrivera pendant cette seconde. PS Il est souhaitable de styliser le code avec le style de code (bouton SRC).
 
Oui, cela fonctionne maintenant, merci beaucoup ! Le vrai problème était la vitesse de la seconde, le tick n'avait pas le temps de la parcourir.
 

Pouvez-vous m'en dire plus s'il vous plaît ! Est-il possible d'ouvrir et de fermer des positions dans les Expert Advisors, clairement par le temps en secondes, sans tenir compte des ticks, comme une minuterie normale. C'est-à-dire que si l'horloge indique 12:52:25, la position s'ouvrira et n'attendra pas un nouveau tick, de même que pour la fermeture ?