Mon compte
Déjà membre ? S'identifier
Non inscrit ? S'inscrire
 
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Membre lvl 50 dany31000 est sur la route de la réputation...
    Date d'inscription
    November 2009
    Messages
    52
    Pouvoir de réputation
    5

    une question ? une question ?

    Salut,

    quelqu'un peut m'aider svp car le probleme est quand le gain est atteint la position ce ferme mais elle ne supprime pas le position en attente
    quelqu'un a une idée ?

    merci


    for(int c=0;c<OrdersTotal();c++)
    {
    OrderSelect(c, SELECT_BY_POS, MODE_TRADES);
    if(OrderType()==OP_SELL && OrderSymbol()==Symbol()){

    if (OrderProfit()>=Gain){
    OrderClose(OrderTicket(),OrderLots(),Ask,0,Green);




    if(OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP) && OrderMagicNumber()==magic) OrderDelete(OrderTicket());
    if(OrderSymbol()==Symbol() && (OrderType()==OP_SELLSTOP) && OrderMagicNumber()==magic) OrderDelete(OrderTicket());

    }}}

  2. #2
    Membre Star kk2val est sur la route de la réputation...
    Date d'inscription
    January 2008
    Messages
    249
    Pouvoir de réputation
    7

    Bonsoir dany31000

    Essaie avec ce bout de code..ça devrait marcher..
    je l'utilise en "closeall" avec d'autres conditions

    cdlt kk2val

    //========================================
    if (OrderProfit()>=Gain){
    for (int c = OrdersTotal();c >= 0; c--) {
    OrderSelect(c, SELECT_BY_POS, MODE_TRADES);
    if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) {
    if (OrderType() == OP_BUY || OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 5, CLR_NONE);
    if (OrderType() != OP_BUY && OrderType() != OP_SELL) OrderDelete(OrderTicket());

    //=========================================
    for(int c=0;c<OrdersTotal();c++)
    {
    OrderSelect(c, SELECT_BY_POS, MODE_TRADES);
    if(OrderType()==OP_SELL && OrderSymbol()==Symbol()){

    if (OrderProfit()>=Gain){
    OrderClose(OrderTicket(),OrderLots(),Ask,0,Green);




    if(OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP) && OrderMagicNumber()==magic) OrderDelete(OrderTicket());
    if(OrderSymbol()==Symbol() && (OrderType()==OP_SELLSTOP) && OrderMagicNumber()==magic) OrderDelete(OrderTicket());

    }}}

    autrement tu peux aussi taguer tes ordrestop et tes ordres en cours

    comme par exemple :

    //=========================================
    for (intc = 0; c < OrdersTotal(); c++) {
    OrderSelect(c, SELECT_BY_POS, MODE_TRADES);
    if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) {

    if (OrderType() == OP_BUY && ticket_1 < OrderTicket()) {
    ticket_1 = OrderTicket();
    }
    if (OrderType() == OP_SELL && ticket_2 < OrderTicket()) {
    ticket_2 = OrderTicket();
    }
    if (OrderType() == OP_BUYSTOP) {
    ticket_3 = OrderTicket();
    }
    if (OrderType() == OP_SELLSTOP) {
    ticket_4 = OrderTicket();
    }
    }
    }
    //==================================================

    ensuite il te suffira de "dire"

    if ((ticket_1 == 0 && ticket_2==0) && (ticket_3!=0 || ticket_4 !=0))

    OrderDelete (ticket_3,ticket_4);

  3. #3
    Membre Performance jeanjo est sur la route de la réputation...
    Date d'inscription
    November 2010
    Messages
    181
    Pouvoir de réputation
    3

    for(int c=0;c<OrdersTotal();c++)
    {
    OrderSelect(c, SELECT_BY_POS, MODE_TRADES);
    if(OrderType()==OP_SELL && OrderSymbol()==Symbol()){

    if (OrderProfit()>=Gain){
    OrderClose(OrderTicket(),OrderLots(),Ask,0,Green);

    On ne voit pas de quelle posision en attente du parles dany, pour le code c'est toujours le même si tu as plusieurs ordres :

    for(int c=0;c<OrdersTotal();c++)
    {
    OrderSelect(c, SELECT_BY_POS, MODE_TRADES);
    if(OrderType(c)==OP_SELL && OrderSymbol(c)==Symbol()){

    if (OrderProfit(c)>=Gain)
    {
    ticket = OrderTIcket(c) ;
    lot = OrderLots(c);
    (e c t )

    OrderClose(ticket, lot, Ask,0,Green); => ferme l'ordre N° c

    }

    En fait je crois que lorsque tu es dans le " OrderSelect " il faut que tu sélectionne ce dont tu as besoin, Lots, Profit, Ticket, Type e c t; puis tu fermes le OrderSelect, et tu procédes avec tes Lots, Profit, Ticket e ct ; parce que si tu intercales une fonction dans le OrderSelect ; ca ne marche plus.

    KK2val jette un oeil sur la fonction terminal() dans le book
    Dernière modification par jeanjo ; 22/05/2011 à 09h50.

  4. #4
    Membre Star kk2val est sur la route de la réputation...
    Date d'inscription
    January 2008
    Messages
    249
    Pouvoir de réputation
    7

    Citation Envoyé par jeanjo Voir le message
    for(int c=0;c<OrdersTotal();c++)
    {
    OrderSelect(c, SELECT_BY_POS, MODE_TRADES);
    if(OrderType()==OP_SELL && OrderSymbol()==Symbol()){

    if (OrderProfit()>=Gain){
    OrderClose(OrderTicket(),OrderLots(),Ask,0,Green);

    On ne voit pas de quelle posision en attente du parles dany, pour le code c'est toujours le même si tu as plusieurs ordres :

    for(int c=0;c<OrdersTotal();c++)
    {
    OrderSelect(c, SELECT_BY_POS, MODE_TRADES);
    if(OrderType(c)==OP_SELL && OrderSymbol(c)==Symbol()){

    if (OrderProfit(c)>=Gain)
    {
    ticket = OrderTIcket(c) ;
    lot = OrderLots(c);
    (e c t )

    OrderClose(ticket, lot, Ask,0,Green); => ferme l'ordre N° c

    }

    En fait je crois que lorsque tu es dans le " OrderSelect " il faut que tu sélectionne ce dont tu as besoin, Lots, Profit, Ticket, Type e c t; puis tu fermes le OrderSelect, et tu procédes avec tes Lots, Profit, Ticket e ct ; parce que si tu intercales une fonction dans le OrderSelect ; ca ne marche plus.

    KK2val jette un oeil sur la fonction terminal() dans le book
    Bonjour Jeanjo..

    bien entendu on peut faire plusieurs méthodes..
    mais si j'ai bien compris..Dany veut éliminer les ordres en attente sur fermeture des ordres en cours

    donc ce petit bout de code va très bien pour ça

    if (OrderProfit()>=Gain){
    for (int c = OrdersTotal();c >= 0; c--) {
    OrderSelect(c, SELECT_BY_POS, MODE_TRADES);
    if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) {

    (scan de tous les ordres)

    if (OrderType() == OP_BUY || OrderType() == OP_SELL)
    OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 5, CLR_NONE);

    (Fermeture des ordres en cours)

    if (OrderType() != OP_BUY && OrderType() != OP_SELL)
    OrderDelete(OrderTicket());

    (Suppression des ordres en attente s'ils existent)

    j'utilise ce bout de code pour faire une sortie en "MinProfit" ou sur "Protection"
    dans mes EA..ça fonctionne nickel.

    voili ..bonne journée

    cdlt Kk2val

  5. #5
    Membre Performance jeanjo est sur la route de la réputation...
    Date d'inscription
    November 2010
    Messages
    181
    Pouvoir de réputation
    3

    D'accord KK2Val, pour supprimer les pending Orders en cours ...

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

    Pour supprimer les pending Orders en cours , j'ai juste supprimé des parenthèse de trop ...


    if (OrderSymbol()==Symbol() && OrderType () == OP_BUYSTOP && OrderMagicNumber()==100) OrderDelete (OrderTicket ());
    if (OrderSymbol()==Symbol() && OrderType () == OP_SELLSTOP && OrderMagicNumber()==100) OrderDelete (OrderTicket ());

    et ça marche correctement,

    merci a tous
    Dernière modification par dany31000 ; 27/05/2011 à 02h44.

Discussions similaires

  1. Question sur Mt4
    Par tontonka dans le forum Novice sur le Forex
    Réponses: 2
    Dernier message: 19/05/2011, 12h06
  2. svp une question ?
    Par dany31000 dans le forum Programmation
    Réponses: 2
    Dernier message: 18/04/2011, 02h33
  3. question
    Par bigyoss dans le forum Comptoir des Traders Forex
    Réponses: 1
    Dernier message: 17/06/2010, 23h38
  4. question sur mm
    Par gribouille74 dans le forum Programmation
    Réponses: 0
    Dernier message: 28/01/2010, 11h37
  5. Question sur le RSI
    Par nickleus dans le forum Novice sur le Forex
    Réponses: 0
    Dernier message: 26/01/2010, 16h49

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