[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 - 5. - page 292
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
Immédiatement avant l'instruction if, imprimez les valeurs de toutes les variables de la condition
Immédiatement avant l'instruction if, enregistrez les valeurs de toutes les variables dans la condition
Vérifiez-le, merci)
Et maintenant la conclusion
Je veux comprendre comment cela fonctionne. C'est pourquoi j'ai demandé.
GaryKa:
Immédiatement avant l'instruction if, enregistrez les valeurs de toutes les variables dans la condition
ed3sss:
Vérifiez-le, merci)
Merci, j'ai trouvé une erreur logique dans le programme, maintenant tout fonctionne.
Bonjour.
Comment puis-je afficher sur le graphique l'inscription sur l'instrument en cours Profit/perte des ordres ouverts.
Il est difficile de vérifier dans l'Expert Advisor s'il a ouvert des positions ou non (terminal on/off) et de récupérer le dernier volume de lot avant de fermer le terminal.
Merci.
Je viens de tomber sur une fonction ici :
Je veux comprendre comment cela fonctionne. C'est pourquoi j'ai demandé.Si je me trompe, je m'excuse. MathLog(x) est ln(x) (logarithme naturel). La formule de conversion est log_a(b)=ln(b)/ln(a), dans ce cas nous obtenons ln(x)/ln(10)=lg(x)(logarithme décimal). La partie entière du logarithme décimal lg(1...9) vaut 0, lg(10...99) vaut 1, lg(100...999) vaut 2, lg(1000...9999) vaut 3 et ainsi de suite, c'est-à-dire que le logarithme d'un nombre supérieur à un est égal au nombre de chiffres de ce nombre(avant la virgule, après elle ne compte pas) moins un. Si x est compris entre 0 et un, alors la partie entière de lg(0,1...0,9) est égale à -1, lg(0,01...0,09) est égale à -2, lg(0,001...0,009) est égale à -3 et ainsi de suite, c'est-à-dire que si l'on ne regarde pas le moins, le logarithme décimal d'un nombre compris entre 0 et un est égal au nombre total de zéros avant le premier chiffre significatif. Je ne sais pas comment fonctionne MathCeil, mais si elle renvoie la partie entière d'un nombre, cette fonction est censée renvoyer le nombre de chiffres du nombre avant la virgule moins un si le nombre est supérieur à 1, et le nombre de zéros du nombre avant le premier chiffre significatif si le nombre est de 0 à 1. Le minimum de cette fonction se situe dans la plage x égale à 1...9. A partir de là, pour 10...99 et 0,1...0,9 la fonction est égale à 1, pour 100...999 et 0,01...0,09 elle est égale à 2, et ainsi de suite. L'idée est...
Bonjour, il y a un bug dans le programme, je me suis déjà creusé les méninges, veuillez pointer du doigt ce qui ne va pas. Je veux juste savoir pourquoi la condition pour le modifi ne fonctionne pas. Même si la condition n'est pas vraie, elle est quand même satisfaite et, par conséquent, lorsqu'on modifie les erreurs ou 1, ou 130. Merci à tous.
//--------------- modifier les ordres sous TP-------------------
for (i = OrdersTotal() - 1 ; i >= 0 ; i--) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES) ;
si (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continuer ;
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) {
si (OrderType() == OP_BUY) {
si (OrderTakeProfit() == 0 || OrderTakeProfit() > OprTPB(TP)){
RefreshRates() ;
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OprTPB(TP),0,CLR_NONE) ;
}
}
si ((OrderType() == OP_SELL)) {
if(OrderTakeProfit() == 0 || OrderTakeProfit() < OprTPS(TP)){
RefreshRates() ;
OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OprTPS(TP),0,CLR_NONE) ;
}
}
}
}
retour(0) ;
}
double LastOpPrBuy(double va=0)
{
for (i = OrdersTotal() - 1 ; i>= 0 ; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES) ;
si (va == 0) va = OrderOpenPrice() ;
si (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continuer ;
si (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
si (OrderType() == OP_BUY && OrderOpenPrice()<va) va = OrderOpenPrice()
}
retour (va) ;
}
//----------------------------------------------------------------------------------
double LastOpPrSell(double va=0)
{
for (i = OrdersTotal() - 1 ; i>= 0 ; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES) ;
si (va == 0) va = OrderOpenPrice() ;
si (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continuer ;
si (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
si (OrderType() == OP_SELL && OrderOpenPrice()>va) va = OrderOpenPrice()
}
retour (va) ;
}
//----------------------------------------------------------------------------------
double OprTPB(int TP)
{
int j=0 ;
double TPB=0 ;
for (i = OrdersTotal() - 1 ; i>= 0 ; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES) ;
si (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continuer ;
si (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
si (OrderType() == OP_BUY)
{
TPB+=OrderOpenPrice() ;
j++ ;
}
}
si (j==0) {
j++ ;
TPB = Demander ;
}
TPB=(TPB/j)+TP*Point ;
retour (TPB) ;
}
//----------------------------------------------------------------------------------
double OprTPS(int TP)
{
int j=0 ;
double TPS=0 ;
for (i = OrdersTotal() - 1 ; i>= 0 ; i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES) ;
si (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continuer ;
si (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
si (OrderType() == OP_SELL)
{
TPS+=OrderOpenPrice() ;
j++ ;
}
}
si (j==0) {
j++ ;
TPS = offre ;
}
TPS=(TPS/j)-TP*Point ;
retour (TPS) ;
}
//----------------------------
Nous sommes tous des débutants ici ! Ne voyez pas que nous ne savons pas les choses simples ! Comment le savoir autrement ? Au moins nous voulons savoir, pas la façon dont certaines personnes pensent que juste demander d'insérer le code et immédiatement pomper l'argent !
))) De l'humour d'un commerçant :
- Où puis-je trouver un conseiller expert rentable ?
- Regardez quelque part au-dessus dans le fil, ils ont posté un robot appelé @MOZG@v4.12.
Bonjour, dans mon terminal mt4, lorsque je clique sur une des paires de devises qui sont directement sous le terminal, par exemple (eurusd) pour ouvrir une fenêtre de terminal avec seulement cette pairej'ai besoin d'étendre la fenêtre jusqu'au coin supérieur droit de la fenêtre, cela ne s'est jamais produit auparavant, s'il vous plaît dites-moi pourquoi c'est ainsi et comment le réparer ?