if(Bid == btp-OrderOpenPrice()/2+OrderOpenPrice()){ // need to double check this.double minLot = MarketInfo(Symbol(), MODE_MINLOT),
lotStep = MarketInfo(Symbol(), MODE_LOTSTEP),
Lots = OrderLots(),
half_close = MathFloor(Lots/2/lotStep)*lotStep;
for(int q=OrdersTotal()-1; q >=0; q--)
{
if(OrderSelect(q,SELECT_BY_POS,MODE_TRADES)==true){
Print(" Stop loss value for the order is ", OrderStopLoss());
Print("lots for the order ",OrderLots());
}
elseif(OrderSelect(q,SELECT_BY_POS,MODE_TRADES)==false){
Print(" OrderSelect failed error code is ",GetLastError());
}
if(OrderMagicNumber()==MagicNumber)
if(OrderSymbol()==Symbol())
if(OrderType()==OP_BUYSTOP)
if (half_close > minLot)
CloseHalfLong = OrderClose(OrderTicket(),half_close,Bid,3,CLR_NONE);
if(CloseHalfLong!=TRUE)Print("LastError = ", GetLastError());
}
}
Quelqu'un pourrait-il me donner quelques conseils sur ce que je fais de mal ? Je viens juste de commencer à y jeter un coup d'œil. À part la ligne où j'ai écrit une note, quelqu'un pourrait-il m'indiquer la bonne direction ?
Vous pouvez obtenir des messages contradictoires si la première fois que vous essayez de sélectionner la transaction, elle échoue, mais réussit la deuxième fois.
Je suis un peu frustré par ce problème... Je continue à obtenir "OrderModify error 1" - mais je vais examiner cela plus tard. A part cela, rien !
if(OrderSelect(NewOrder,SELECT_BY_TICKET,MODE_TRADES)==true){
Print(" Stop loss value for the order is ", OrderStopLoss());
Print("lots for the order ",OrderLots());
}
elseif(OrderSelect(NewOrder,SELECT_BY_TICKET,MODE_TRADES)==false){
Print(" OrderSelect failed error code is ",GetLastError());
}
double minLot = MarketInfo(Symbol(), MODE_MINLOT),
lotStep = MarketInfo(Symbol(), MODE_LOTSTEP),
sizeCurr = OrderLots(),
sizeClose = MathFloor(sizeCurr/lotStep)*lotStep/2,
sizeRem = sizeCurr - sizeClose;
//if (sizeClose < minLot) return(false);//if (sizeRem < minLot){ sizeClose = sizeCurr;if(OrderTakeProfit()-OrderOpenPrice()/2+OrderOpenPrice() == Bid) // Does this make sense? I am wanting this "if" statement to be true, if price (bid) reaches the price in this comparison statement?
if(OpenOrdersThisPair(Symbol())==1)
CloseHalfLong = OrderClose(OrderTicket(),sizeClose,Bid,3,CLR_NONE);
if(CloseHalfLong!=TRUE)Print("Last Error = ", GetLastError());
}
J' avais l'impression que MathFloor arrondissait simplement la réponse au nombre entier ? Je ne suis donc pas sûr que MathFloor soit correct ? Les courtiers que j'utilise utilisent 0.01 comme pas de lot... (IBFX pour commencer sur le test avant - donc taille nano)
Je suis un peu frustré... Je continue à obtenir "OrderModify error 1" - mais je vais examiner cela plus tard. À part cela, rien ! J'avais l'impression que MathFloor arrondissait simplement la réponse au nombre entier ? Je ne suis donc pas sûr que MathFloor soit correct ? Les courtiers que j'utilise utilisent 0,01 comme pas de lot... (IBFX pour commencer sur le test avant - donc taille nano)
Je vous ai donné un code qui va fonctionner, pourquoi ne l'utilisez-vous pas ? pourquoi n'imprimez-vous pas vos variables pour voir ce qui se passe ? vous n'avez pas de OrderModify() dans le code que vous avez posté, en quoi est-ce pertinent ? comme je l'ai déjà dit ... pourquoi appelez-vous des fonctions de trading qui dépendent de OrderSelect() si le OrderSelect() a échoué ?
Arrêtez de coder, regardez votre code, lisez-le ligne par ligne, comprenez ce qu'il fait réellement et si ce n'est pas ce que vous vouliez, alors vous avez un problème à résoudre.
MathFloor arrondit-il les décimales au nombre entier le plus proche ?
Est-ce que FirstTarget a un sens en tant que paramètre personnalisé dans "OrderClose()" - en supposant que "sizeClose" était correct ? (voir le code cité)
Votre code ne m'a pas aidé - désolé.
Pouvez-vous imprimer des variables personnalisées ? Si c'est le cas, je dois m'y prendre mal car elles n'apparaissent pas dans le journal.
OrderModify n'est pas pertinent, vous avez raison.
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.
Il faut que je me documente sur MathFloor et sur votre lien - tout cela est nouveau pour moi et j'ai du mal à le comprendre. Je m'y attaquerai demain.
Merci à tous !
Des idées ?
Est-ce que j'ai raté quelque chose ?
Oups - oui, c'est réglé, lol. Mais cela n'a rien changé ?
Est-ce que quelque chose m'échappe ?
Pourquoi faites-vous ce qui suit même si votre OrderSelect() a échoué ?
Vous ne fermez pas un ordre en attente, que vous a dit votre rapport d'erreur ?
Je crois que vous essayez de sélectionner deux fois la même transaction.
Cela ne devrait-il pas être "autre" ?
Vous pouvez obtenir des messages contradictoires si la première fois que vous essayez de sélectionner la transaction, elle échoue, mais réussit la deuxième fois.
Je suis un peu frustré par ce problème... Je continue à obtenir "OrderModify error 1" - mais je vais examiner cela plus tard. A part cela, rien ! J' avais l'impression que MathFloor arrondissait simplement la réponse au nombre entier ? Je ne suis donc pas sûr que MathFloor soit correct ? Les courtiers que j'utilise utilisent 0.01 comme pas de lot... (IBFX pour commencer sur le test avant - donc taille nano)
Je ne reçois pas d'erreur...
Je suis un peu frustré... Je continue à obtenir "OrderModify error 1" - mais je vais examiner cela plus tard. À part cela, rien ! J'avais l'impression que MathFloor arrondissait simplement la réponse au nombre entier ? Je ne suis donc pas sûr que MathFloor soit correct ? Les courtiers que j'utilise utilisent 0,01 comme pas de lot... (IBFX pour commencer sur le test avant - donc taille nano)
Je vous ai donné un code qui va fonctionner, pourquoi ne l'utilisez-vous pas ? pourquoi n'imprimez-vous pas vos variables pour voir ce qui se passe ? vous n'avez pas de OrderModify() dans le code que vous avez posté, en quoi est-ce pertinent ? comme je l'ai déjà dit ... pourquoi appelez-vous des fonctions de trading qui dépendent de OrderSelect() si le OrderSelect() a échoué ?
Arrêtez de coder, regardez votre code, lisez-le ligne par ligne, comprenez ce qu'il fait réellement et si ce n'est pas ce que vous vouliez, alors vous avez un problème à résoudre.
MathFloor arrondit-il les décimales au nombre entier le plus proche ?
Est-ce que FirstTarget a un sens en tant que paramètre personnalisé dans "OrderClose()" - en supposant que "sizeClose" était correct ? (voir le code cité)
Votre code ne m'a pas aidé - désolé.
Pouvez-vous imprimer des variables personnalisées ? Si c'est le cas, je dois m'y prendre mal car elles n'apparaissent pas dans le journal.
OrderModify n'est pas pertinent, vous avez raison.