Rejoindre la communauté
banner_forum
Devenez membre de la plus grande
communauté francophone sur le Forex
Partagez, échangez et apprenez en gagnant des crédits sur votre compte de trading

RSI mon premier robot

  • cohenhugo21

    extern int MagicNumber=10001;
    extern double Lots =0.1;
    extern double StopLoss=30;
    extern double TakeProfit=70;
    extern int TrailingStop=50;
    extern int Slippage=3;
    //+------------------------------------------------------------------+
    // expert start function
    //+------------------------------------------------------------------+
    int start()
    {
    double MyPoint=Point;
    if(Digits==3 || Digits==5) MyPoint=Point*10;

    double TheStopLoss=0;
    double TheTakeProfit=0;
    if( TotalOrdersCount()==0 )
    {
    int result=0;
    if((iRSI(NULL,0,14,PRICE_CLOSE,2)<20)&&(iRSI(NULL,0,14,PRICE_CLOSE,1)>20)) // Here is your open buy rule
    {
    result=OrderSend(Symbol(),OP_BUY,AdvancedMM(),Ask,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",MagicNumber,0,Blue);
    if(result>0)
    {
    TheStopLoss=0;
    TheTakeProfit=0;
    if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
    if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
    OrderSelect(result,SELECT_BY_TICKET);
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
    }
    return(0);
    }
    if((iRSI(NULL,0,14,PRICE_CLOSE,2)>80)&&(iRSI(NULL,0,14,PRICE_CLOSE,1)>80)) // Here is your open Sell rule
    {
    result=OrderSend(Symbol(),OP_SELL,AdvancedMM(),Bid,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",MagicNumber,0,Red);
    if(result>0)
    {
    TheStopLoss=0;
    TheTakeProfit=0;
    if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
    if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
    OrderSelect(result,SELECT_BY_TICKET);
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
    }
    return(0);
    }
    }

    for(int cnt=0;cnt<OrdersTotal();cnt++)
    {
    OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
    if(OrderType()<=OP_SELL &&
    OrderSymbol()==Symbol() &&
    OrderMagicNumber()==MagicNumber
    )
    {
    if(OrderType()==OP_BUY)
    {
    if(TrailingStop>0)
    {
    if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
    {
    if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
    return(0);
    }
    }
    }
    }
    else
    {
    if(TrailingStop>0)
    {
    if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
    {
    if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red);
    return(0);
    }
    }
    }
    }
    }
    }
    return(0);
    }

    int TotalOrdersCount()
    {
    int result=0;
    for(int i=0;i<OrdersTotal();i++)
    {
    OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
    if (OrderMagicNumber()==MagicNumber) result++;

    }
    return (result);
    }
    double AdvancedMM()
    {
    int i;
    double AdvancedMMLots = 0;
    bool profit1=false;
    int SystemHistoryOrders=0;
    for( i=0;i<OrdersHistoryTotal();i++)
    { OrderSelect(i,SELECT_BY_POS ,MODE_HISTORY);
    if (OrderMagicNumber()==MagicNumber) SystemHistoryOrders++;
    }
    bool profit2=false;
    int LO=0;
    if(SystemHistoryOrders<2) return(Lots);
    for( i=OrdersHistoryTotal()-1;i>=0;i--)
    {
    if(OrderSelect(i,SELECT_BY_POS ,MODE_HISTORY))
    if (OrderMagicNumber()==MagicNumber)
    {
    if(OrderProfit()>=0 && profit1) return(Lots);
    if( LO==0)
    { if(OrderProfit()>=0) profit1=true;
    if(OrderProfit()<0) return(OrderLots());
    LO=1;
    }
    if(OrderProfit()>=0 && profit2) return(AdvancedMMLots);
    if(OrderProfit()>=0) profit2=true;
    if(OrderProfit()<0 )
    { profit1=false;
    profit2=false;
    AdvancedMMLots+=OrderLots();
    }
    }
    }
    return(AdvancedMMLots);
    }
  • lefeuvr3

    le deuxieme
    Code
    //+------------------------------------------------------------------+ //| BOLLINGER _HUGO.mq4 | //| Copyright 2020, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2020, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ extern double LotFactor =95; //lotsize factor extern int Indicatorperiod=41; extern int BBDeviation=0; extern int MagicNumber=10001; extern double Lots =0.1; extern double StopLoss=73; extern double TakeProfit=00; extern int TrailingStop=45; extern int Slippage=3; //+------------------------------------------------------------------+ // expert start function //+------------------------------------------------------------------+ int start() { double MyPoint=Point; if(Digits==3 || Digits==5) MyPoint=Point*10; double TheStopLoss=0; double TheTakeProfit=0; if( TotalOrdersCount()==0 ) { int result=0; if((iMA(NULL,PERIOD_M1,1,0,MODE_EMA,PRICE_CLOSE,1)<iBands(NULL,PERIOD_M1,Indicatorperiod,BBDeviation,0,PRICE_OPEN,MODE_LOWER,1))&&(iMA(NULL,PERIOD_M1,1,0,MODE_EMA,PRICE_CLOSE,0)>iBands(NULL,PERIOD_M1,Indicatorperiod,BBDeviation,0,PRICE_OPEN,MODE_LOWER,0))) // Here is your open buy rule { result=OrderSend(Symbol(),OP_BUY,(AccountBalance() * 0.01 /LotFactor),Ask,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",MagicNumber,0,Blue); if(result>0) { TheStopLoss=0; TheTakeProfit=0; if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint; if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint; OrderSelect(result,SELECT_BY_TICKET); OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green); } return(0); } if((iMA(NULL,PERIOD_M1,1,0,MODE_EMA,PRICE_CLOSE,1)>iBands(NULL,PERIOD_M1,Indicatorperiod,BBDeviation,0,PRICE_OPEN,MODE_UPPER,1))&&(iMA(NULL,PERIOD_M1,1,0,MODE_EMA,PRICE_CLOSE,0)<iBands(NULL,PERIOD_M1,Indicatorperiod,BBDeviation,0,PRICE_OPEN,MODE_UPPER,0))) // Here is your open Sell rule { result=OrderSend(Symbol(),OP_SELL,(AccountBalance() * 0.01 /LotFactor),Bid,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",MagicNumber,0,Red); if(result>0) { TheStopLoss=0; TheTakeProfit=0; if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint; if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint; OrderSelect(result,SELECT_BY_TICKET); OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green); } return(0); } } for(int cnt=0;cnt<OrdersTotal();cnt++) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber ) { if(OrderType()==OP_BUY) { if(TrailingStop>0) { if(Bid-OrderOpenPrice()>MyPoint*TrailingStop) { if(OrderStopLoss()<Bid-MyPoint*TrailingStop) { OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green); return(0); } } } } else { if(TrailingStop>0) { if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop)) { if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red); return(0); } } } } } } return(0); } int TotalOrdersCount() { int result=0; for(int i=0;i<OrdersTotal();i++) { OrderSelect(i,SELECT_BY_POS ,MODE_TRADES); if (OrderMagicNumber()==MagicNumber) result++; } return (result); }
  • arka3579

    "MDR". Rien a ajouter ; heuuuuu ...
    Prends moi pour un con, je te dirais.. JE T AIME.

    Et ceux qui débute.. On les encules.. ou .. je sais pas..
    BANDE DE SAUVAGE !!! (c'est un film ca)

    Le 2ème quoi, de quoi et pk et sous quelle condition .. En clair ?!
    J AI RIEN COMPRIS. (Et je suis pas le seul)
  • arka3579

    Quel différence, on été mise en œuvre pour qu'on EVOLUE.;
    Merci.
  • cohenhugo21 — en réponse à arka3579 dans son message #124676

    eux mec je debute vraiment et les 1 premier robot je les fais seul et les 2 lefeuvre la fait avec moi mais du coup tu m'aime merci
  • arka3579 — en réponse à cohenhugo21 dans son message #124687

    C'est bien, je parlais de la 2ème version, ca aurai été bien de comprendre l'évolution. Mais tkt.
    Bon courage dans tes avancements. Je débute aussi, on a besoin d'être aidé c'est clair. (Epuisant dans les débuts)
    Lâche rien et bonne journée.
  • cohenhugo21

    merci beaucoup en fait on a juste changer la stratégies qu'on a mis dans le robot et le 2 a fait des back teste donc il gagne plus
    bonne journée
  • cohenhugo21

    Code
    extern int MagicNumber=10001; extern double Lots =0.01; extern double StopLoss=50; extern double TakeProfit=80; extern int TrailingStop=70; extern int Slippage=3; extern int PeriodRSI =30; extern int LowLevel=70; extern int HighLevel=80; extern double LotFactor=200; //+------------------------------------------------------------------+ // expert start function //+------------------------------------------------------------------+ int start() { double MyPoint=Point; if(Digits==3 || Digits==5) MyPoint=Point*10; double TheStopLoss=0; double TheTakeProfit=0; if( TotalOrdersCount()==0 ) { int result=0; if((iRSI(NULL,0,PeriodRSI,PRICE_CLOSE,2)<LowLevel)&&(iRSI(NULL,0,PeriodRSI,PRICE_CLOSE,1)>LowLevel)) // Here is your open buy rule { result=OrderSend(Symbol(),OP_BUY,(AccountBalance() * 0.01 /LotFactor),Ask,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",MagicNumber,0,Blue); if(result>0) { TheStopLoss=0; TheTakeProfit=0; if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint; if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint; if(OrderSelect(result,SELECT_BY_TICKET)) bool modif1=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green); } return(0); } if((iRSI(NULL,0,PeriodRSI,PRICE_CLOSE,2)>HighLevel)&&(iRSI(NULL,0,PeriodRSI,PRICE_CLOSE,1)<HighLevel)) // Here is your open Sell rule { result=OrderSend(Symbol(),OP_SELL,(AccountBalance() * 0.01 /LotFactor),Bid,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",MagicNumber,0,Red); if(result>0) { TheStopLoss=0; TheTakeProfit=0; if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint; if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint; if(OrderSelect(result,SELECT_BY_TICKET)) bool modif2=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green); } return(0); } } for(int cnt=0;cnt<OrdersTotal();cnt++) { if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) if(OrderType()<=OP_SELL && OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber ) { if(OrderType()==OP_BUY) { if(TrailingStop>0) { if(Bid-OrderOpenPrice()>MyPoint*TrailingStop) { if(OrderStopLoss()<Bid-MyPoint*TrailingStop) { bool modif3= OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green); return(0); } } } } else { if(TrailingStop>0) { if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop)) { if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0)) { bool modif4=OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*TrailingStop,OrderTakeProfit(),0,Red); return(0); } } } } } } return(0); } int TotalOrdersCount() { int result=0; for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS ,MODE_TRADES)) if (OrderMagicNumber()==MagicNumber) result++; } return (result); } double AdvancedMM() { int i; double AdvancedMMLots = 0; bool profit1=false; int SystemHistoryOrders=0; for( i=0;i<OrdersHistoryTotal();i++) { if(OrderSelect(i,SELECT_BY_POS ,MODE_HISTORY))
    Modifié le 2021-07-05 15:44:49 par cohenhugo21