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 5 gollum est sur la route de la réputation...
    Date d'inscription
    April 2010
    Messages
    22
    Pouvoir de réputation
    4

    EA ne passe pas d'ordre EA ne passe pas d'ordre

    bonjour a tous!! mes EA passe des ordres sans soucis en compte demo mais dés que je passe en compte reel (bestCFD) impossible de passer des ordres
    je fais mes EA avec Expert Advisor builder
    voici un EA de test qui est censé prendre position de suite , si vous voyez ce qui cloche....

    //+------------------------------------------------------------------+

    //| This MQL is generated by Expert Advisor Builder |

    //| Expert Advisor Builder for metatrader 4 |

    //| |

    //| In no event will author be liable for any damages whatsoever. |

    //| Use at your own risk. |

    //| |

    //+------------------- DO NOT REMOVE THIS HEADER --------------------+



    #define SIGNAL_NONE 0

    #define SIGNAL_BUY 1

    #define SIGNAL_SELL 2

    #define SIGNAL_CLOSEBUY 3

    #define SIGNAL_CLOSESELL 4



    #property copyright "Expert Advisor Builder"

    #property link "http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/"



    extern int MagicNumber = 0;

    extern bool SignalMail = False;

    extern bool EachTickMode = True;

    extern double Lots = 0.1;

    extern int Slippage = 3;

    extern bool UseStopLoss = False;

    extern int StopLoss = 30;

    extern bool UseTakeProfit = False;

    extern int TakeProfit = 60;

    extern bool UseTrailingStop = False;

    extern int TrailingStop = 30;



    int BarCount;

    int Current;

    bool TickCheck = False;

    //+------------------------------------------------------------------+

    //| expert initialization function |

    //+------------------------------------------------------------------+

    int init() {

    BarCount = Bars;



    if (EachTickMode) Current = 0; else Current = 1;



    return(0);

    }

    //+------------------------------------------------------------------+

    //| expert deinitialization function |

    //+------------------------------------------------------------------+

    int deinit() {

    return(0);

    }

    //+------------------------------------------------------------------+

    //| expert start function |

    //+------------------------------------------------------------------+

    int start() {

    int Order = SIGNAL_NONE;

    int Total, Ticket;

    double StopLossLevel, TakeProfitLevel;







    if (EachTickMode && Bars != BarCount) TickCheck = False;

    Total = OrdersTotal();

    Order = SIGNAL_NONE;



    //+------------------------------------------------------------------+

    //| Variable Begin |

    //+------------------------------------------------------------------+





    double Buy1_1 = iHigh(NULL, PERIOD_M1, Current + 0);

    double Buy1_2 = iBands(NULL, PERIOD_M1, 1, 2, 0, PRICE_CLOSE, MODE_UPPER, Current + 0);



    double Sell1_1 = iLow(NULL, PERIOD_M1, Current + 0);

    double Sell1_2 = iBands(NULL, PERIOD_M1, 1, 2, 0, PRICE_CLOSE, MODE_LOWER, Current + 0);









    //+------------------------------------------------------------------+

    //| Variable End |

    //+------------------------------------------------------------------+



    //Check position

    bool IsTrade = False;



    for (int i = 0; i < Total; i ++) {

    OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

    if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {

    IsTrade = True;

    if(OrderType() == OP_BUY) {

    //Close



    //+------------------------------------------------------------------+

    //| Signal Begin(Exit Buy) |

    //+------------------------------------------------------------------+







    //+------------------------------------------------------------------+

    //| Signal End(Exit Buy) |

    //+------------------------------------------------------------------+



    if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

    OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);

    if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");

    if (!EachTickMode) BarCount = Bars;

    IsTrade = False;

    continue;

    }

    //Trailing stop

    if(UseTrailingStop && TrailingStop > 0) {

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

    if(OrderStopLoss() < Bid - Point * TrailingStop) {

    OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);

    if (!EachTickMode) BarCount = Bars;

    continue;

    }

    }

    }

    } else {

    //Close



    //+------------------------------------------------------------------+

    //| Signal Begin(Exit Sell) |

    //+------------------------------------------------------------------+







    //+------------------------------------------------------------------+

    //| Signal End(Exit Sell) |

    //+------------------------------------------------------------------+



    if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

    OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);

    if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");

    if (!EachTickMode) BarCount = Bars;

    IsTrade = False;

    continue;

    }

    //Trailing stop

    if(UseTrailingStop && TrailingStop > 0) {

    if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {

    if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {

    OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);

    if (!EachTickMode) BarCount = Bars;

    continue;

    }

    }

    }

    }

    }

    }



    //+------------------------------------------------------------------+

    //| Signal Begin(Entry) |

    //+------------------------------------------------------------------+



    if (Buy1_1 > Buy1_2) Order = SIGNAL_BUY;



    if (Sell1_1 < Sell1_2) Order = SIGNAL_SELL;





    //+------------------------------------------------------------------+

    //| Signal End |

    //+------------------------------------------------------------------+



    //Buy

    if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

    if(!IsTrade) {

    //Check free margin

    if (AccountFreeMargin() < (1000 * Lots)) {

    Print("We have no money. Free Margin = ", AccountFreeMargin());

    return(0);

    }



    if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;

    if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;



    Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);

    if(Ticket > 0) {

    if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

    Print("BUY order opened : ", OrderOpenPrice());

    if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");

    } else {

    Print("Error opening BUY order : ", GetLastError());

    }

    }

    if (EachTickMode) TickCheck = True;

    if (!EachTickMode) BarCount = Bars;

    return(0);

    }

    }



    //Sell

    if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

    if(!IsTrade) {

    //Check free margin

    if (AccountFreeMargin() < (1000 * Lots)) {

    Print("We have no money. Free Margin = ", AccountFreeMargin());

    return(0);

    }



    if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;

    if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;



    Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);

    if(Ticket > 0) {

    if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

    Print("SELL order opened : ", OrderOpenPrice());

    if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");

    } else {

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

    }

    }

    if (EachTickMode) TickCheck = True;

    if (!EachTickMode) BarCount = Bars;

    return(0);

    }

    }



    if (!EachTickMode) BarCount = Bars;



    return(0);

    }

    //+------------------------------------------------------------------+

  2. #2
    Membre Star pipsforever is just really nice pipsforever is just really nice pipsforever is just really nice pipsforever is just really nice Avatar de pipsforever
    Date d'inscription
    November 2008
    Localisation
    Londres
    Messages
    1 340
    Pouvoir de réputation
    42

    Bonjour;

    BestCfd ne permet pas de passer les stoploss et takeprofit en même temps que le passage d'ordre lui même.
    Il va donc falloir mettre ces valeurs à 0 au moment du passage d'ordre, puis lorsqu'il est ouvert lui ajouter le stop et takeprofit.
    Essaye tes tests avec dans les variables externes stop et tp à 0 ;-)
    Chaque trade doit avoir seul et unique but ...... faire un nouveau plus haut sur votre équity!!!
    Chez moi, la prog c'est une affaire de famille!
    Même notre chien s'y met

  3. #3
    Membre lvl 5 gollum est sur la route de la réputation...
    Date d'inscription
    April 2010
    Messages
    22
    Pouvoir de réputation
    4

    salut et merci pour ta réponse , j'ai essayé mais ca marche toujours pas.... comprends pas trop ce qui se passe....

  4. #4
    Membre lvl 5 gollum est sur la route de la réputation...
    Date d'inscription
    April 2010
    Messages
    22
    Pouvoir de réputation
    4

    en fait ce n'est pas un probleme d'ea mais probablement liées a MT4, même lorsque je passe des ordres en manuels mes EA gerants les stop automatiquement ne fonctionnent pas
    bref malgré le smiley qui sourit sur mt4 aucun ea ne fonctionne....

  5. #5
    Membre Star pipsforever is just really nice pipsforever is just really nice pipsforever is just really nice pipsforever is just really nice Avatar de pipsforever
    Date d'inscription
    November 2008
    Localisation
    Londres
    Messages
    1 340
    Pouvoir de réputation
    42

    as tu des messages d'erreur dans le journal de metatrader?
    Il est visible dans l'onglet "expert" de la fenêtre ou l'état de ton compte est noté, le listing des trades ouverts, ect ..
    Chaque trade doit avoir seul et unique but ...... faire un nouveau plus haut sur votre équity!!!
    Chez moi, la prog c'est une affaire de famille!
    Même notre chien s'y met

  6. #6
    Membre lvl 5 gollum est sur la route de la réputation...
    Date d'inscription
    April 2010
    Messages
    22
    Pouvoir de réputation
    4

    non ca ne met rien , je pense que le problème vient de best CFD je leur est ecrit un mail; je vous tiendrais au courant si ca vous interesse

    merci pour les reponses

Discussions similaires

  1. Ordre différé
    Par condor666 dans le forum Programmation
    Réponses: 2
    Dernier message: 08/07/2011, 20h08
  2. Ordre stop / Ordre limite plateforme RTFX
    Par Gilbert1 dans le forum Utilisation des Plateformes de Trading
    Réponses: 1
    Dernier message: 16/06/2011, 12h42
  3. Comment limiter le passage d'ordre à un ordre par bougie ?
    Par mochel dans le forum Programmation
    Réponses: 3
    Dernier message: 12/06/2011, 13h34
  4. Passe d'ordre à l'ouverture d'un chandelier SI
    Par glidounette dans le forum Programmation
    Réponses: 0
    Dernier message: 01/08/2010, 23h13
  5. Soit ça casse, soit ça passe, mais quand ça passe...
    Par dopeo dans le forum Trading Divers
    Réponses: 3
    Dernier message: 22/12/2008, 21h50

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