Mon compte
Déjà membre ? S'identifier
Non inscrit ? S'inscrire
 
+ Répondre à la discussion
Page 1 sur 3 1 2 3 DernièreDernière
Affichage des résultats 1 à 10 sur 30
  1. #1
    Membre lvl 50 soutine est sur la route de la réputation...
    Date d'inscription
    November 2009
    Messages
    52
    Pouvoir de réputation
    5

    expression global not allowed expression global not allowed

    Bonjour à tous,

    Dans mon acharnement à décortiquer le langage MQL4
    et dans mes tentatives de codage...je bute actuellement sur un point.

    j'ai le message suivant " expression global not allowed"

    je ne vois pas ce qu'il manque ...
    Ce serai sympa de me dépanner ... si vous avez une idée !!

    -----------------------
    if(TrailingStop>0)
    {
    if(Bid-OrderOpenPrice()>Point*TrailingStop)
    {

    if(OrderStopLoss()<Bid-Point*TrailingStop)
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop, OrderTakeProfit(), 0,Green);

    return(0);

    }

    }

    }
    ----------------

    Merci d'avance
    Soutine

  2. #2
    Membre Star vamm972 est actif et passionnant vamm972 est actif et passionnant Avatar de vamm972
    Date d'inscription
    November 2008
    Localisation
    quebec
    Messages
    1 429
    Pouvoir de réputation
    24

    tu n'as pas alloué une expression

    peut être le trialing stop

    mais tu sais je suis pas un pro

    en général j'écris ca Bid-Point*TrailingStop

    comme ca Bid-TrailingStop * Point

  3. #3
    Membre lvl 50 soutine est sur la route de la réputation...
    Date d'inscription
    November 2009
    Messages
    52
    Pouvoir de réputation
    5

    Citation Envoyé par vamm972 Voir le message
    tu n'as pas alloué une expression

    peut être le trialing stop

    mais tu sais je suis pas un pro

    en général j'écris ca Bid-Point*TrailingStop

    comme ca Bid-TrailingStop * Point
    Merci Vamm pour ta réponse...
    mais c pas tres clair pour moi.
    Voici l message erreur et le code integral...

    -----------------






    extern double TakeProfit = 50;
    extern double Lots = 0.1;
    extern double TrailingStop = 30;
    extern int Fisher_Period=10;

    // --------------------------

    int start()

    {

    double fish0 , fish1 , fish2;

    int cnt, ticket, total;




    if(Bars<100)
    {
    Print("bars less than 100");
    return(0);
    }


    if(TakeProfit<10)
    {
    Print("TakeProfit less than 10");
    return(0); // check TakeProfit
    }



    fish0 =iCustom(NULL, 0, "Ehlers Fisher transform", Fisher_Period, 4, true, 0, 0);
    fish1 =iCustom(NULL, 0, "Ehlers Fisher transform", Fisher_Period, 4, true, 0, 1);
    fish2 =iCustom(NULL, 0, "Ehlers Fisher transform", Fisher_Period, 4, true, 0, 2);


    total=OrdersTotal();
    if(total<1)


    if(AccountFreeMargin()<(1000*Lots))
    {
    Print("We have no money. Free Margin = ", AccountFreeMargin());
    return(0);
    }




    if( fish0>fish1 && fish1<fish2 )
    {
    ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0, Ask+TakeProfit*Point, "macd sample",16384,0,Green); // ouvre l'ordre
    if(ticket>0) // vérifie l'ouverture de l'ordre
    {

    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES )) Print("BUY order opened : ",OrderOpenPrice()); // order bien ouvert
    }
    else Print("Error opening BUY order : ",GetLastError()); // erreur

    return(0);

    }



    if( fish0<fish1 && fish1>fish2 )
    {
    ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"macd sample",16384,0,Red); // ouvre l'ordre

    if(ticket>0) // vérifie l'ouverture de l'ordre
    {
    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES )) Print("SELL order opened : ",OrderOpenPrice()); // order bien ouvert
    }

    else Print("Error opening SELL order : ",GetLastError()); // erreur

    return(0);
    }

    for(cnt=0;cnt<total;cnt++)

    OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

    if(OrderType()<=OP_SELL && // check for opened position

    OrderSymbol()==Symbol()) // check for symbol


    if( fish1>0 && fish0>0 ) // sortie sur cross du 0
    {
    OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet) ; // ferme position
    }
    return(0);
    }




    if(TrailingStop>0)
    {
    if(Bid-OrderOpenPrice()>Point*TrailingStop)
    {

    if(OrderStopLoss()<Bid-Point*TrailingStop)
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop, OrderTakeProfit(), 0,Green);

    return(0);

    }

    }

    }
    Dernière modification par soutine ; 11/12/2009 à 17h16.

  4. #4
    Membre lvl 50 soutine est sur la route de la réputation...
    Date d'inscription
    November 2009
    Messages
    52
    Pouvoir de réputation
    5

    c mieux avec le fichier !
    Images attachées

  5. #5
    Membre Performance fabio7774 est sur la route de la réputation...
    Date d'inscription
    September 2009
    Messages
    153
    Pouvoir de réputation
    5

    voila

    extern double TakeProfit = 50;
    extern double Lots = 0.1;
    extern double TrailingStop = 30;
    extern int Fisher_Period=10;

    // --------------------------

    int start()

    {

    double fish0 , fish1 , fish2;

    int cnt, ticket, total;




    if(Bars<100)
    {
    Print("bars less than 100");
    return(0);
    }


    if(TakeProfit<10)
    {
    Print("TakeProfit less than 10");
    return(0); // check TakeProfit
    }



    fish0 =iCustom(NULL, 0, "Ehlers Fisher transform", Fisher_Period, 4, true, 0, 0);
    fish1 =iCustom(NULL, 0, "Ehlers Fisher transform", Fisher_Period, 4, true, 0, 1);
    fish2 =iCustom(NULL, 0, "Ehlers Fisher transform", Fisher_Period, 4, true, 0, 2);


    total=OrdersTotal();
    if(total<1)


    if(AccountFreeMargin()<(1000*Lots))
    {
    Print("We have no money. Free Margin = ", AccountFreeMargin());
    return(0);
    }




    if( fish0>fish1 && fish1<fish2 )
    {
    ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0, Ask+TakeProfit*Point, "macd sample",16384,0,Green); // ouvre l'ordre
    if(ticket>0) // vérifie l'ouverture de l'ordre
    {

    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES )) Print("BUY order opened : ",OrderOpenPrice()); // order bien ouvert
    }
    else Print("Error opening BUY order : ",GetLastError()); // erreur

    return(0);

    }



    if( fish0<fish1 && fish1>fish2 )
    {
    ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"macd sample",16384,0,Red); // ouvre l'ordre

    if(ticket>0) // vérifie l'ouverture de l'ordre
    {
    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES )) Print("SELL order opened : ",OrderOpenPrice()); // order bien ouvert
    }

    else Print("Error opening SELL order : ",GetLastError()); // erreur

    return(0);
    }

    for(cnt=0;cnt<total;cnt++) {
    OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

    if(OrderType()<=OP_SELL && // check for opened position

    OrderSymbol()==Symbol()) // check for symbol


    if( fish1>0 && fish0>0 ) // sortie sur cross du 0
    {
    OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet) ; // ferme position
    }
    return(0);
    }




    if(TrailingStop>0)
    {
    if(Bid-OrderOpenPrice()>Point*TrailingStop)
    {

    if(OrderStopLoss()<Bid-Point*TrailingStop)
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop, OrderTakeProfit(), 0,Green);

    return(0);

    }
    }

    }

    }

  6. #6
    Membre lvl 50 soutine est sur la route de la réputation...
    Date d'inscription
    November 2009
    Messages
    52
    Pouvoir de réputation
    5

    Merci Fabio !!

    Il me reste plus qu' à chercher la correction que tu as apporté...pour ma culture personnel

    Soutine

  7. #7
    Membre Performance fabio7774 est sur la route de la réputation...
    Date d'inscription
    September 2009
    Messages
    153
    Pouvoir de réputation
    5

    Oui pardon j'ai fait ca a la hate.

    C'est la correction.

    for(cnt=0;cnt<total;cnt++) {
    ...................
    }

    Le scope dans ce cas la est ce qui se trouve dans les parentheses.
    Les functions telles que OrderOpenPrice() se doivent d'etre dans le scope.

  8. #8
    Membre lvl 50 soutine est sur la route de la réputation...
    Date d'inscription
    November 2009
    Messages
    52
    Pouvoir de réputation
    5

    Citation Envoyé par fabio7774 Voir le message
    Oui pardon j'ai fait ca a la hate.

    C'est la correction.

    for(cnt=0;cnt<total;cnt++) {
    ...................
    }

    Le scope dans ce cas la est ce qui se trouve dans les parentheses.
    Les functions telles que OrderOpenPrice() se doivent d'etre dans le scope.
    Merci beaucoup Fabio !
    Cela me permet de comprendre ...et donc de progresser dans la programmation.

    Soutine

  9. #9
    Membre Star jeims est actif et passionnant jeims est actif et passionnant
    Date d'inscription
    July 2008
    Localisation
    France
    Messages
    646
    Pouvoir de réputation
    19

    il te manquait une accolade aussi car celui du start n'était pas fermée, à moins que c'était une erreur dans le copier collé. Mais fabio y a remédié me semble t il.

  10. #10
    Membre lvl 50 soutine est sur la route de la réputation...
    Date d'inscription
    November 2009
    Messages
    52
    Pouvoir de réputation
    5

    Citation Envoyé par jeims Voir le message
    il te manquait une accolade aussi car celui du start n'était pas fermée, à moins que c'était une erreur dans le copier collé. Mais fabio y a remédié me semble t il.
    Exact Jeims !
    Merci à toi
    Effectivement Fabio a corrigé directement.

    Il faut que je trouve une technique pour ... controler rapidement ces histoires d'accolades

    Soutine

Discussions similaires

  1. USD Resumes Gains Over Fears Of Global Slowdown.
    Par forexyard dans le forum Forex News
    Réponses: 0
    Dernier message: 14/08/2008, 10h11
  2. GFX Group - Global Trader : Transactions historiques
    Par GFX Group dans le forum Utilisation des Plateformes de Trading
    Réponses: 0
    Dernier message: 27/12/2007, 22h06
  3. GFX Group - Global Trader : accès aux actualités
    Par GFX Group dans le forum Utilisation des Plateformes de Trading
    Réponses: 0
    Dernier message: 27/12/2007, 22h00
  4. GFX Group - Global Trader : accès aux graphiques
    Par GFX Group dans le forum Utilisation des Plateformes de Trading
    Réponses: 0
    Dernier message: 27/12/2007, 21h57
  5. GFX Group - Global Trader : charges de report
    Par GFX Group dans le forum Utilisation des Plateformes de Trading
    Réponses: 0
    Dernier message: 27/12/2007, 21h50

Ajouter aux Favoris | Plan du site | Archives | Forex | Contact