Fractal Break Out-Stuck - page 2

 

J'obtiens actuellement l'erreur de fin de parenthèse "}".


Mais j'ai revérifié les fonctions et elles sont toutes traitées correctement.


J'ai essayé une autre méthode, et j'ai continué à obtenir cette même erreur.

 
ZacharyRC:

J'obtiens actuellement l'erreur de parenthèse finale "}".


Mais j'ai revérifié les fonctions et elles sont toutes traitées correctement.


J'ai essayé une autre méthode, et j'ai continué à obtenir cette même erreur.


J'ai trouvé l'erreur, mais ce n'est pas grave !
 
ZacharyRC:

Bonjour deVries :


Je rencontre des problèmes dans mon code final, en essayant de mettre un stop loss modifié pour atteindre le breakeven après tant de pips.


Vois-tu une erreur flagrante ? ??

Vous devez relire ceci :Quelles sont les valeurs de retour de la fonction ? Comment les utiliser ? Ne voulez-vous pas savoir ce qui se passe avec votre OrderModify() ? Que se passe-t-il si votre OrderSelect() échoue ?

 
if(OrdersTotal()>1)
{
OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
if(OrderType()==(OP_BUY)&&(Move.BE))
{

Ce n'est pas la bonne façon d'obtenir les trades de votre EA

vous ne pouvez pas être sûr que la position 0 provient de votre EA, vous devez vous en occuper

utiliser toujours une boucle pour obtenir toutes les positions ouvertes et ensuite les sélectionner de cette façon vous avez

votre Symbole() que l'EA trade et le MAGICNUMBER que vous avez donné avec votre EA.

.

Ma méthode est la suivante

 

 for(i = OrdersTotal()-1; i >= 0 ; i--)         //always counting down checking trades
    {
     if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)        break;     // if false we abort the loop
     if(OrderMagicNumber()!=MagicNumber || OrderSymbol()!=Symbol()) continue;   //if selected trade not symbol or magicnumber next one
 
RaptorUK:

Vous devez relire ceci :Quelles sont les valeurs de retour des fonctions ? Comment les utiliser ? Ne voulez-vous pas savoir ce qui se passe avec votre OrderModify() ? Que se passe-t-il si votre OrderSelect() échoue ?


Je vais certainement relire ce soir, je n'ai pas encore tout compris.
deVries:

Ce n'est pas la bonne façon d'obtenir les transactions de votre EA.

vous ne pouvez pas être sûr que la position 0 est celle de votre EA que vous devez gérer

utiliser toujours une boucle pour obtenir tous les trades ouverts et ensuite sélectionner de cette façon vous avez

votre Symbole() que l'EA trade et le MAGICNUMBER que vous avez donné avec votre EA.

.

Ma méthode est la suivante

J'utilisais une boucle for() la dernière fois, j'ai eu quelques erreurs et j'ai abandonné. Je vais réessayer et relire le texte.


Merci messieurs.

 
RaptorUK:

Vous devez relire ceci :Quelles sont les valeurs de retour des fonctions ? Comment les utiliser ? Ne voulez-vous pas savoir ce qui se passe avec votre OrderModify() ? Que se passe-t-il si votre OrderSelect() échoue ?


Je me sens un peu lent aujourd'hui ! Après avoir laissé couler, je me rends compte que le langage MQL4 peut être le meilleur compagnon pour trouver des erreurs, pas le tableau d'affichage.



TY RaptorUK !

 
ZacharyRC:

Je me sens un peu lent aujourd'hui ! Après avoir laissé couler, je me rends compte que le langage MQL4 peut être le meilleur compagnon pour trouver des erreurs, et non le tableau des messages.

Exactement, 100% correct :-)
 
deVries:

Ce n'est pas la bonne façon d'obtenir les trades de votre EA

vous ne pouvez pas être sûr que la position 0 provient de votre EA, vous devez vous en occuper

utiliser toujours une boucle pour obtenir toutes les positions ouvertes et ensuite les sélectionner de cette façon vous avez

votre Symbole() que l'EA trade et le MAGICNUMBER que vous avez donné avec votre EA.

.

Ma méthode est la suivante

Ahhhh je vois, cela me permet de faire un cycle à travers mes trades et de dire lequel est lequel et correspond aux nombres magiques. La boucle est de loin la meilleure méthode.

 
ZacharyRC:

Ahhhh je vois, cela me permet de passer en revue mes trades et de dire lequel est lequel et correspond aux nombres magiques. La boucle est de loin le meilleur moyen.

Plus vous l'utiliserez, plus vous apprendrez de trucs à faire avec elle.....
 

J'ai toujours des difficultés. J'ai effectué des erreurs pour en trouver la raison.


Le journal a rapporté :

1) Erreur 4051=Paramètre incorrect

2) Ticket invalide pour la modification de la commande

//----------------------------------------------//
//-----------------EXITING ORDERS---------------//


for(int i=OrdersTotal()-1; i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false)  break;


if(OrderMagicNumber()!=MagicNumber || OrderSymbol() !=Symbol()) continue;

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) Print(GetLastError(),i);
if(OrderType()==OP_BUY)
{

 if(Move.BE && StopLoss > 0) 
 {
   if(Bid - OrderOpenPrice() >= Point * StopLoss)
     {
       if(OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) 
        {
                  OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0, Red);
                  Print("Cant Modify Order"+GetLastError(),i);
 }
  }
   }
    }
 else{
 
    if(Move.BE && StopLoss > 0) {
               if(OrderOpenPrice() - Ask >= Point * StopLoss)
                {
                  if(OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo)
                   {
                  OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0, Red);
                  Print("Cant Modify Order"+GetLastError(),i);
}
 }
  }
   }
    }