J'ai juste besoin d'un peu d'aide pour que tout se passe bien (j'ai besoin de connaître le dernier ordre d'achat, le dernier ordre de vente et l'ordre précédent pour n'importe quel achat ou vente).
Merci beaucoup pour votre aide.
int LastOpenTicketForBuy(){
datetime lastTime = 0;
int lastTicket = -1; // None open.int magi.number=0;
//for(int pos=0; pos<OrdersTotal(); i++) {
OrderSelect(pos, SELECT_BY_POS);
for(int pos = OrdersTotal()-1; pos >= 0 ; pos--) if (
OrderSelect(pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber() == magic.number // my magic number
&& OrderSymbol() == Symbol() // and my pair.
&& OrderOpenTime() > lastTime
&& OrderType()==OP_BUY
){
lastTime = OrderOpenTime();
lastTicket = OrderTicket();
}
return(lastTicket);
}
int LastOpenTicketForSell(){
datetime lastTime = 0;
int lastTicket = -1; // None open.int magi.number=0;
for(int pos = OrdersTotal()-1; pos >= 0 ; pos--) if (
OrderSelect(pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber() == magic.number // my magic number
&& OrderSymbol() == Symbol() // and my pair.
&& OrderOpenTime() > lastTime
&& OrderType()==OP_SELL
){
lastTime = OrderOpenTime();
lastTicket = OrderTicket();
}
return(lastTicket);
}
int previousorderforbuy(){
datetime lastTime = 0;
int lastTicket = -1; // None open.int magi.number=0;
for(int pos--; pos >= 0 ; pos--) if (
OrderSelect(pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber() == magic.number // my magic number
&& OrderSymbol() == Symbol() // and my pair.
&& OrderOpenTime() > lastTime
&& OrderType()==OP_BUY
){
lastTime = OrderOpenTime();
lastTicket = OrderTicket();
}
return(lastTicket);
}
int previousorderforsell(){
datetime lastTime = 0;
int lastTicket = -1; // None open.int magi.number=0;
for(int pos--; pos >= 0 ; pos--) if (
OrderSelect(pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber() == magic.number // my magic number
&& OrderSymbol() == Symbol() // and my pair.
&& OrderOpenTime() > lastTime
&& OrderType()==OP_SELL
){
lastTime = OrderOpenTime();
lastTicket = OrderTicket();
}
return(lastTicket);
}
Pourriez-vous jeter un coup d'oeil et me dire ce qui ne va pas.
J'ai besoin de créer quelques fonctions pour : 1- fonction pour obtenir et garder le dernier ordre ouvertpour l'achat. 2- Fonction pour obtenir et conserver le dernier ordre d'ouverture pour la vente. 3- fonction pour obtenir et conserver le dernier ordre de fermeture à l'achat ou à la vente.
int LastOpenTicketForBuy(){ datetime lastTime = 0 ; int lastTicket = - 1 ; // None open. int magi.number= 0 ;
for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--)
if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber () == magic.number // my magic number
&& OrderSymbol () == Symbol () // and my pair.
&& OrderType ()==OP_BUY )
{ lastTime = OrderOpenTime ();
lastTicket = OrderTicket (); }
return (lastTicket);}
int LastOpenTicketForSell()
{ datetime lastTime = 0 ; int lastTicket = - 1 ; // None open.int magi.number= 0 ;
for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--)
if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber () == magic.number // my magic number
&& OrderSymbol () == Symbol () // and my pair.
&& OrderType ()==OP_SELL )
{ lastTime = OrderOpenTime ();
lastTicket = OrderTicket (); }
return (lastTicket);}
int lastcloseorder()
{ datetime lastTime = 0 ; int lastTicket = - 1 ; // None open. int magi.number= 0 ;
for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--)
if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber () == magic.number // my magic number
&& OrderSymbol () == Symbol () // and my pair.
&& OrderCloseTime () > lastTime
&& OrderType ()==OP_BUY||OP_SELL )
{ lastTime = OrderCloseTime (); lastTicket = OrderTicket (); }
return (lastTicket);}
ensuite je mettrai si ((LastOpenTicketForBuy()+LastOpenTi cketForSell())/2)<MarketInfo("EURUSD",MODE_BID)Clo se la position
pos décrémente jusqu'à zéro. la deuxième boucle se termine --> retourne à la première, et la première boucle ne sait pas où pos s'est arrêté depuis la dernière fois. il y a des chances que pos = zéro.
Renvoie le numéro de ticket pour l'ordre actuellement sélectionné.
Vous avez dit...
"J'ai besoin de créer quelques fonctions pour : 1- fonction pour obtenir et conserver le dernier ordre ouvertpour l'achat. 2- Fonction permettant d'obtenir et de conserver le prix du dernier ordre ouvert à la vente.
3- Fonction permettant de récupérer et de conserver le dernier ordre de fermeture, qu'il s'agisse d'un achat ou d'une vente.
Alors pourquoi retournez-vous le numéro du ticket ? Lisez le code que vous copiez et collez, comprenez-le, apprenez....
J'ai juste besoin d'un peu d'aide pour que tout se passe bien (j'ai besoin de connaître le dernier ordre d'achat, le dernier ordre de vente et l'ordre précédent pour n'importe quel achat ou vente).
Merci beaucoup pour votre aide.
Les gars,
Pourriez-vous jeter un coup d'oeil et me dire ce qui ne va pas.
J'ai besoin de créer quelques fonctions pour :
1- fonction pour obtenir et garder le dernier ordre ouvert pour l'achat.
2- Fonction pour obtenir et conserver le dernier ordre d'ouverture pour la vente.
3- fonction pour obtenir et conserver le dernier ordre de fermeture à l'achat ou à la vente.
ensuite je mettrai si ((LastOpenTicketForBuy()+LastOpenTi cketForSell())/2)<MarketInfo("EURUSD",MODE_BID)Clo se la position
Voulez-vous dire que je devrais
1- mettre double LastOpenForBuy() au lieu de int
2-put mettre le double orderforbuy puis return( orderforbuy )
De cette façon, je peux obtenir le dernier ordre ouvert pour l'achat seulement.
Vous voulez dire que je devrais...
C'est une question... Je ne veux rien dire d'autre que... quelle est votre réponse ?
Si tu veux que je t'aide, tu dois répondre à ma question... et "Je ne sais pas" n'est pas une réponse acceptable. Réfléchissez-y un peu.
A votre avis ... que fait return(lastTicket) ;?
Renvoie le numéro de ticket pour la commande actuellement sélectionnée.
Merci WHRoeder,
Si j'ai besoin d'obtenir le dernier ordre d'achat et le dernier ordre de vente, puis de les comparer en faisant :
si ( le dernier ordreopenforbuy == OOTlastest )
{ faire quelque chose }
sinon
{ } ....... est le code ci-dessous fonctionnera.
est-ce que cela fonctionne vraiment ?
première boucle
va dans la seconde
pos décrémente jusqu'à zéro. la deuxième boucle se termine --> retourne à la première, et la première boucle ne sait pas où pos s'est arrêté depuis la dernière fois. il y a des chances que pos = zéro.
ce code peut éventuellement fonctionner... il faut juste changer une 1 chose :
la deuxième instruction for
par un itérateur différent comme
et de même, remplacer pos par le nouvel itérateur (dans ce cas, a) dans toute la logique de la deuxième boucle UNIQUEMENT.
À votre avis... que fait return(lastTicket) ;?
Renvoie le numéro de ticket pour l'ordre actuellement sélectionné.
Vous avez dit...
"J'ai besoin de créer quelques fonctions pour :1- fonction pour obtenir et conserver le dernier ordre ouvert pour l'achat.
2- Fonction permettant d'obtenir et de conserver le prix du dernier ordre ouvert à la vente.
3- Fonction permettant de récupérer et de conserver le dernier ordre de fermeture, qu'il s'agisse d'un achat ou d'une vente.
Alors pourquoi retournez-vous le numéro du ticket ? Lisez le code que vous copiez et collez, comprenez-le, apprenez....