Mon compte
Déjà membre ? S'identifier
Non inscrit ? S'inscrire
 
+ Répondre à la discussion
Page 2 sur 3 PremièrePremière 1 2 3 DernièreDernière
Affichage des résultats 11 à 20 sur 30
Like Tree1Likes

indicateur pour EA

  1. #11
    Membre Star ea23 est sur la route de la réputation... Avatar de ea23
    Date d'inscription
    August 2011
    Localisation
    paris
    Messages
    205
    Pouvoir de réputation
    2

    je vais jetter un coup d'oeil et essayer d'en faire un EA...
    je promet rien les gars ;-)
    Comptes réels Pepperstone razor/vps Ikoula + GridMeUp 3.5
    My fxbook

  2. #12
    Membre lvl 75 thierry83 est sur la route de la réputation...
    Date d'inscription
    January 2010
    Messages
    92
    Pouvoir de réputation
    4

    merci EA23
    je pense vraiment qu on pourrais faire un truc de ca
    en 5 ou 15 minutes en manuel c est pas mal
    mais helas pas le temps de rester devant mon pc
    a+

  3. #13
    Membre lvl 75 thierry83 est sur la route de la réputation...
    Date d'inscription
    January 2010
    Messages
    92
    Pouvoir de réputation
    4

    eurusd 3.jpg
    alors vous en pensez qoui ??
    lol

  4. #14
    Membre lvl 75 thierry83 est sur la route de la réputation...
    Date d'inscription
    January 2010
    Messages
    92
    Pouvoir de réputation
    4

    bonjour a tous helas plus personne lol
    domage ca marcheeeeeeeeeeeeeeeee ( en manuel helas )
    qui pourrais me rajouter une ligne pour fermeture de la position des que le RSI arrive a a 70 ou 30
    selon le sens bien sur
    merci d avance
    quandj ai de on resultats je vous le fait partager sans soucis



    #define SIGNAL_NONE 0
    #define SIGNAL_BUY 1
    #define SIGNAL_SELL 2
    //Paramètres SL/TP/TS
    bool EachTickMode = False;//mode chaque type non activé par défaut
    extern int Slippage = 3;
    extern bool UseStopLoss = True;
    extern int StopLoss = 120;
    extern bool UseTakeProfit = False;//non activée par défaut
    extern int TakeProfit = 250;
    double StopLossLevel;
    double TakeProfitLevel;
    extern bool UseTrailingStop=false;
    extern int TrailingStop=100;
    extern int TSLevel;
    bool isTrailingStop=false;
    double trailingstopLevel;
    //Paramètres MACD
    //MACD rapide
    extern string MACD_CONFIG_1;
    extern int ema_period_courte_1=25;
    extern int ema_period_longue_1=35;
    extern int ma_period=15;
    //MONEY MANAGEMENT------------------------------>
    extern double Size = 0.1;//taille des prises de position en contrats ou lots de base
    extern double nbFoisMargeDispo = 2.0;
    extern int MagicNumber=9624;//pour différencier les EAs
    extern bool ActivMail=true;
    extern bool ActivAlertes=true;
    int Current;
    double bougieCourrante;
    //+------------------------------------------------------------------+
    //| expert initialization function |
    //+------------------------------------------------------------------+
    int init()
    {
    if (EachTickMode) Current = 0; else Current = 1;

    return(0);
    }
    //+------------------------------------------------------------------+
    //| expert deinitialization function |
    //+------------------------------------------------------------------+
    int deinit()
    {


    return(0);
    }
    //+------------------------------------------------------------------+
    //| expert start function |
    //+------------------------------------------------------------------+
    int start(){

    double ma_rapide_now = iMACD(NULL, Period(), ema_period_courte_1, ema_period_longue_1, ma_period, PRICE_CLOSE, MODE_MAIN, Current);
    double ma_rapide_old = iMACD(NULL, Period(), ema_period_courte_1, ema_period_longue_1, ma_period, PRICE_CLOSE, MODE_MAIN, Current+1);

    double ma_lente_now = iMACD(NULL, Period(), ema_period_courte_1, ema_period_longue_1, ma_period, PRICE_CLOSE, MODE_SIGNAL, Current);
    double ma_lente_old = iMACD(NULL, Period(), ema_period_courte_1, ema_period_longue_1, ma_period, PRICE_CLOSE, MODE_SIGNAL, Current+1);

    double price_now=Close[Current];
    double price_old=Close[Current+1];

    bool IsTrade = False;
    int Total;
    int Signal=SIGNAL_NONE;


    //+------------------------------------------------------------------+
    //| Check Positions opened |
    //+------------------------------------------------------------------+
    Total = OrdersTotal();
    for (int i = Total-1; i >=0; i --) {
    OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
    if (OrderMagicNumber()!=MagicNumber) continue;
    //+------------------------------------------------------------------+
    //| Order opened |
    //+------------------------------------------------------------------+
    //+------------------------------------------------------------------+
    //| Long order opened |
    //+------------------------------------------------------------------+
    if((OrderType() == OP_BUY) && (OrderSymbol() == Symbol())) {
    IsTrade = True;

    if (ma_rapide_now<ma_lente_now){
    CloseOrder(OrderTicket(), OrderType(), OrderLots(), Bid, Slippage, Red);
    IsTrade = False;
    }

    /* TRAILING STOP */
    if (UseTrailingStop)trailingstopLevel=OrderStopLoss() +TSLevel*Point;
    {


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

    {
    if (OrderStopLoss()< Bid-StopLoss*Point)
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),trailin gstopLevel, OrderTakeProfit(),0);

    }
    }
    }
    }
    }

    //+------------------------------------------------------------------+
    //| Short order opened |
    //+------------------------------------------------------------------+
    if((OrderType() == OP_SELL) && (OrderSymbol() == Symbol())) {
    IsTrade = True;

    if (ma_rapide_now>ma_lente_now){
    CloseOrder(OrderTicket(), OrderType(), OrderLots(), Ask, Slippage, Red);
    IsTrade = False;

    }

    /* TRAILING STOP */
    if (UseTrailingStop)trailingstopLevel=OrderStopLoss()-TSLevel*Point;
    {

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

    if (OrderStopLoss()> Ask+StopLoss*Point)
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),trailin gstopLevel, OrderTakeProfit(),0);

    }
    }
    }
    }
    }//end for order opened


    //+------------------------------------------------------------------+
    //| No Order opened |
    //+------------------------------------------------------------------+
    if (IsTrade==false) {

    //+------------------------------------------------------------------+
    //| Signal Begin(Entry) |
    //+------------------------------------------------------------------+

    /*BUY CONDITIONS */
    if ((ma_rapide_now>ma_lente_now)&&(ma_rapide_old<ma_l ente_old)){
    if (UseStopLoss) StopLossLevel = NormalizeDouble(Ask - StopLoss * MarketInfo(Symbol(),MODE_POINT),Digits); else StopLossLevel = 0.0;
    if (UseTakeProfit) TakeProfitLevel = NormalizeDouble(Ask + TakeProfit * MarketInfo(Symbol(),MODE_POINT),Digits); else TakeProfitLevel = 0.0;
    isTrailingStop=false;
    RefreshRates();
    int ticket = SendOrder(Symbol(), OP_BUY, Size(), Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, Green);
    OrderSelect(ticket, SELECT_BY_TICKET);
    if (ActivMail) SendMail(OrderSymbol()+" : BUY Order ouvert par Moyenne MACD", OrderLots()+" lots at " +OrderOpenPrice());
    if (ActivAlertes) Alert(OrderSymbol()+" : BUY Order ouvert par Moyenne MACD", OrderLots()+" lots at " +OrderOpenPrice());
    }

    /*SELL CONDITIONS */
    if ((ma_rapide_now<ma_lente_now)&&(ma_rapide_old>ma_l ente_old)){
    if (UseStopLoss) StopLossLevel = NormalizeDouble(Bid + StopLoss * MarketInfo(Symbol(),MODE_POINT),Digits); else StopLossLevel = 0.0;
    if (UseTakeProfit)TakeProfitLevel = NormalizeDouble(Bid - TakeProfit * MarketInfo(Symbol(),MODE_POINT),Digits); else TakeProfitLevel = 0.0; RefreshRates();
    isTrailingStop=false;
    RefreshRates();
    ticket = SendOrder(Symbol(), OP_SELL, Size(), Bid, Slippage,StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, Blue);
    OrderSelect(ticket, SELECT_BY_TICKET);
    if (ActivMail) SendMail(OrderSymbol()+" : SELL Order ouvert par Moyenne MACD", OrderLots()+" lots at " +OrderOpenPrice());
    if (ActivAlertes) Alert(OrderSymbol()+" : SELL Order ouvert par Moyenne MACD", OrderLots()+" lots at " +OrderOpenPrice());
    }
    }//end if no order opened
    return(0);
    }
    //+------------------------------------------------------------------+
    //END START Function
    //+------------------------------------------------------------------+


    //+------------------------------------------------------------------+
    //Send Order Function
    //+------------------------------------------------------------------+
    int SendOrder(string symbol, int op, double size, double price, double slippage, double stoploss, double takeprofit, string comment, int magic, datetime expiration, color arrow_color ){
    //Check free margin
    if (AccountFreeMargin() < (nbFoisMargeDispo * size*MarketInfo(Symbol(),MODE_MARGINREQUIRED))) {
    Print("Il n y a plus assez d argent. Free Margin = ", AccountFreeMargin());
    Comment ("Il n y a plus assez d argent. Free Margin = ", AccountFreeMargin());
    return(0);
    }

    int Total=OrdersEATotal();
    int Ticket = OrderSend(symbol, op, size, price, slippage, stoploss, takeprofit, comment, magic, expiration, arrow_color);
    if(Ticket >= 0) {
    if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES))
    if (op==1) Print("SELL order opened : ", OrderOpenPrice());
    if (op==0) Print("BUY order opened : ", OrderOpenPrice());
    } else {
    if (op==1) Print("Error opening SELL order : ", GetLastError());
    if (op==0) Print("Error opening BUY order : ", GetLastError());
    int k=0;
    while ((Ticket<0)&&(k<1000)){
    if (k!=0){
    if (op==1) Print("Error opening SELL order : ", GetLastError());
    if (op==0) Print("Error opening BUY order : ", GetLastError());
    }
    //Gestion des erreurs de stop trop courts
    OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES);
    if (GetLastError()==130){
    if (op==0) stoploss=NormalizeDouble(Ask-(MarketInfo(Symbol(),MODE_STOPLEVEL)+30+k)* MarketInfo(Symbol(),MODE_POINT),Digits);
    if (op==1) stoploss=NormalizeDouble(Bid+(MarketInfo(Symbol(), MODE_STOPLEVEL)+30+k)* MarketInfo(Symbol(),MODE_POINT),Digits);
    }
    RefreshRates();
    if (op==1) Ticket = OrderSend(symbol, op, size, Bid, slippage, stoploss, takeprofit, comment, magic, expiration, arrow_color);
    if (op==0) Ticket = OrderSend(symbol, op, size, Ask, slippage, stoploss, takeprofit, comment, magic, expiration, arrow_color);
    k++;
    Sleep(10);

    }
    if(Ticket >= 0) {
    if (op==1) Print("SELL order opened : ", OrderOpenPrice());
    if (op==0) Print("BUY order opened : ", OrderOpenPrice());
    }
    }
    WaitPassToBO(Total);
    return (Ticket);
    }
    //+------------------------------------------------------------------+
    //Closer Order Function
    //+------------------------------------------------------------------+
    int CloseOrder(int ticket, int op, double lots, double price, int slippage, color Color ){
    OrderSelect(ticket,SELECT_BY_TICKET);

    int Ticket = OrderClose(ticket, lots, price, slippage, Color);

    //+------------------------------------------------------------------+
    //Gestion de fermeture
    //+------------------------------------------------------------------+
    if(Ticket >= 0) {
    if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES))
    Print("Order closed : ", OrderOpenPrice());
    } else {
    Print("Error closing order : ", GetLastError());
    int k=0;
    while ((Ticket<0)&&(k<1000)){
    if (k!=0){
    Print("Error closing order : ", GetLastError());
    }
    RefreshRates();
    if (op==1) Ticket = OrderClose(ticket, lots, Ask, slippage, Color);
    if (op==0) Ticket = OrderClose(ticket, lots, Bid, slippage, Color);
    Sleep(10);
    k++;
    }
    if(Ticket >= 0) {
    Print("Order closed : ", OrderOpenPrice());
    }
    }

    return (Ticket);
    }
    //+------------------------------------------------------------------+
    //Back Office processing functions
    //+------------------------------------------------------------------+
    int OrdersEATotal()
    {
    int nb=0;
    int Total=OrdersTotal();
    for (int i = Total-1; i >=0; i --) {
    OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
    if (OrderMagicNumber()!=MagicNumber) continue;
    if (OrderSymbol()==Symbol())
    {
    nb++;
    }
    }
    return (nb);
    }
    void WaitPassToBO(int Total)
    {
    while (OrdersEATotal()!=Total+1) Sleep(50);
    }

    //+------------------------------------------------------------------+
    //Size money management function
    //+------------------------------------------------------------------+
    double Size()
    {
    //placer le money management ici
    return (Size);
    }

  5. #15
    Membre lvl 50 passager57 est sur la route de la réputation...
    Date d'inscription
    November 2011
    Messages
    63
    Pouvoir de réputation
    2

    bravo et merci.

    je mets en test tout de suite et je ferai un retour

  6. #16
    Membre lvl 50 passager57 est sur la route de la réputation...
    Date d'inscription
    November 2011
    Messages
    63
    Pouvoir de réputation
    2

    7 ou 8 petites erreurs sans gravité apres le copier/coller. juste des espaces qui coupent des noms de variables en deux. 30 secondes pour corriger ça. courage.

  7. #17
    Membre Star ea23 est sur la route de la réputation... Avatar de ea23
    Date d'inscription
    August 2011
    Localisation
    paris
    Messages
    205
    Pouvoir de réputation
    2

    Ben tu rajoutes un truc dans le genre :

    if (iRSI(Symbol(),0, 9, PRICE_CLOSE,0) > 70)
    {

    OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
    OpenOrder = 0;

    }
    Comptes réels Pepperstone razor/vps Ikoula + GridMeUp 3.5
    My fxbook

  8. #18
    Membre Star ea23 est sur la route de la réputation... Avatar de ea23
    Date d'inscription
    August 2011
    Localisation
    paris
    Messages
    205
    Pouvoir de réputation
    2

    thierry83
    bon, tu as été plus rapide que moi
    je suis en cours de réal du miens... on va voir, on pourra comparer
    Comptes réels Pepperstone razor/vps Ikoula + GridMeUp 3.5
    My fxbook

  9. #19
    Membre lvl 75 thierry83 est sur la route de la réputation...
    Date d'inscription
    January 2010
    Messages
    92
    Pouvoir de réputation
    4

    Citation Envoyé par ea23 Voir le message
    thierry83
    bon, tu as été plus rapide que moi
    je suis en cours de réal du miens... on va voir, on pourra comparer
    il es certain que si on trouvé l EA qui achete ou vend comme sur l image en page 13 ( pointillés )
    on serrais au top mais, mes competences en programation sont assez limitées
    a par modifier quelques lignes

  10. #20
    Membre lvl 75 thierry83 est sur la route de la réputation...
    Date d'inscription
    January 2010
    Messages
    92
    Pouvoir de réputation
    4

    or trend2.jpg salut a tous
    grrrrrrrrrrrrr je met plus de stoppppppppppppppppppppp
    j etais tout a la vente depuis ce matin avec mon EA EURUSD EURGBP etc etc
    stop a 300 ou 500 ( 30 ou 50 pips )
    et je vous parle meme pas de L ORRRRRRRRRRR ( voir graf )
    j etais en venteeeeeeeeeeeeeeeeeeeeeeeeeee depuis 1784
    je crois que je vais metre que des stops manuel en suivant les pointillés ( plus une marge )
    putain je vais me coucher je suis trop deggggggggggggggggg
    mdrr
    j ai toujours fait que prendre sur ce forum alors j espere que cette fois je vais pouvoir vous rendre
    et que beuacoup de gens puissent en profiter
    mais a affiné c est sur
    l ideal c est trouvé les memes achats et vente que sur graf ( page 13 )
    aujourdhui c est pareil sauf que le NULLLLLLLLLLL qui vous parle a modifier les stops de peur de perdre
    bon je vous expliquerrais si ca vous interresse la base et les reglages de mon EA
    a plusssss

Discussions similaires

  1. Indicateur sessions pour trader?
    Par pheaureks973 dans le forum Novice sur le Forex
    Réponses: 2
    Dernier message: 12/12/2010, 19h23
  2. indicateur pour double zero
    Par loulou69 dans le forum Trading Divers
    Réponses: 8
    Dernier message: 23/02/2010, 19h47
  3. De l'aide pour modification indicateur
    Par vamm972 dans le forum Programmation
    Réponses: 4
    Dernier message: 01/12/2009, 17h12
  4. Point&Figure Indicateur pour MT4 ;)
    Par AgentFX dans le forum Trading Divers
    Réponses: 21
    Dernier message: 30/10/2009, 11h12
  5. Aide pour indicateur de force
    Par pipsforever dans le forum Trading Divers
    Réponses: 1
    Dernier message: 20/07/2009, 01h42

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