Indicateur OBO Trend Bars, conversion code mq4 vers prorealtime

Forums ProRealTime forum Français Support ProBuilder Indicateur OBO Trend Bars, conversion code mq4 vers prorealtime

Viewing 5 posts - 1 through 5 (of 5 total)
  • #136673
    JPP

    Bonjour,

    Pourriez vous m’aider à convertir le code mq4 ci dessous en indicateur ProRealtime. Il s’agit de l’indicateur OBO Trend Bars.

    Je vous remercie d’avance.

    extern string rem1=”//—- Definition Trend et Breakout”;
    extern int BreakoutPeriode=1;
    extern int TrendPeriode=3;
    extern string rem2=”//—- Order”;
    extern int MaxTradesPerBar=1;
    extern int StopLoss=7;
    extern int BreakEven=7;
    extern int PartialTP1=55;
    extern int PartialRatio1=30;
    extern int PartialTP2=110;
    extern int PartialRatio2=70;
    extern int TakeProfit=150;
    extern int Slippage=3;
    extern string rem3=”//—- MM: 1.Fixed 2.Geometrical 3.Proportional 4.Smart 5.TSSF”;
    extern int MMType=3;
    extern double FixedLots=0.1;
    extern int GeometricalFactor=3;
    extern int ProportionalRisk=90;
    extern int LastXTrades=10;
    extern double DecreaseFactor=2;
    extern double TSSFTrigger1=1;
    extern int TSSFRatio1=50;
    extern double TSSFTrigger2=2;
    extern int TSSFRatio2=75;
    extern double TSSFTrigger3=3;
    extern int TSSFRatio3=100;
    extern string rem4=”//—- Debug”;
    extern bool DebugMode=false;

    int Magic=12387;
    double Lots;
    bool SignalBuy=false;
    bool SignalSell=false;
    double highrange, lowrange;
    double trend, trend1, signaltrend;
    datetime LastTradeTime=0;
    int MaxTrades=false;
    int FlagPartial=0;
    int OrdersThisBar;
    int orders;
    int losses;

    int tradegagnant,tradeperdant;
    double profit, perte, avgwin, avgloss, prcwin, tssf;

    bool TradingRange;

    //+——————————————————————+
    //| expert initialization function |
    //+——————————————————————+
    int init()
    {
    //—-

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

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

    if (OrdersTotal()0) OrdersList();
    if (OrdersTotal()=MaxTradesPerBar)
    {MaxTrades=true;}
    else
    {MaxTrades=false;}
    if (Time[0]!=LastTradeTime)
    {OrdersThisBar=0;}

    if (Close[0]==High[0]&&Close[0]highrange&&signaltrend0&&OrdersTotal()=orders-LastXTrades;i–)
    {
    if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==False)
    {
    Print(“Erreur dans l historique!”);
    break;
    }
    if(OrderSymbol()!=Symbol() || OrderType()OP_SELL)
    continue;
    //—-
    if(OrderProfit()0)
    break;
    if(OrderProfit()1)
    Lots=NormalizeDouble(Lots-Lots*losses/DecreaseFactor,1);
    }

    if (MMType==5&&OrdersTotal()=orders-LastXTrades;j–)
    {
    if(OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)==False)
    {
    Print(“Erreur dans l historique!”);
    break;
    }

    if(OrderProfit()=0)
    {
    tradegagnant++;
    profit=profit+OrderProfit();
    }
    else
    {
    tradeperdant++;
    perte=perte+OrderProfit();
    }

    }
    if (ordersLastXTrades)avgwin=profit/tradegagnant;
    if (ordersLastXTrades)avgloss=perte/tradeperdant;
    if (ordersLastXTrades)prcwin=tradegagnant/(tradegagnant+tradeperdant);
    if (ordersLastXTrades)tssf=avgwin/avgloss*((1.1-prcwin)/(prcwin-0.1)+1);

    if(tssfTSSFTrigger1&&tssfTSSFTrigger2&&tssfTSSFTrigger3)Lots=NormalizeDouble(AccountFreeMargin()*ProportionalRisk/TSSFRatio3*100/100000,1);
    }

    if(LotsPoint*BreakEven&&OrderStopLoss()!=OrderOpenPrice())
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,LightGreen);
    return(0);
    }
    //—- PartialTP1
    if (Bid-OrderOpenPrice()Point*PartialTP1&&FlagPartial==0&&PartialTP10&&OrderLots()*PartialRatio1*PartialRatio2/10000=0.1)
    {
    OrderClose(OrderTicket(),OrderLots()*PartialRatio1/100,Bid,Slippage,Red);
    FlagPartial=1;
    return(0);
    }
    //—- PartialTP2
    if (Bid-OrderOpenPrice()Point*PartialTP2&&FlagPartial==1&&PartialTP20)
    {
    OrderClose(OrderTicket(),OrderLots()*PartialRatio2/100,Bid,Slippage,Red);
    FlagPartial=2;
    return(0);
    }
    }
    if (OrderType()==OP_SELL)
    {
    //—- BreakEven
    if (OrderOpenPrice()-AskPoint*BreakEven&&OrderStopLoss()!=OrderOpenPrice())
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Yellow);
    return(0);
    }
    //—- PartialTP1
    if (OrderOpenPrice()-AskPoint*PartialTP1&&FlagPartial==0&&PartialTP10&&OrderLots()*PartialRatio1*PartialRatio2/10000=0.1)
    {
    OrderClose(OrderTicket(),OrderLots()*PartialRatio1/100,Ask,Slippage,Red);
    FlagPartial=1;
    return(0);
    }
    //—- PartialTP2
    if (OrderOpenPrice()-AskPoint*PartialTP2&&FlagPartial==1&&PartialTP20)
    {
    OrderClose(OrderTicket(),OrderLots()*PartialRatio2/100,Ask,Slippage,Red);
    FlagPartial=2;
    return(0);
    }
    }
    }
    }
    }

    #136724

    Le code fournit n’a rien à avoir avec l’indicateur dont tu parles, il s’agit d’un gestionnaire d’ordres couplés à un money management particulier. Je pense que tu es mal renseigné 🙄

     

    #244500

    https://www.centralcharts.com/fr/gm/1-apprendre/7-analyse-technique/26-indicateur-technique/408-indicateur-technique-obo-trend-bars

    Le fichier ci-joint a été téléchargé sur cet page, mais je n’ai pas metatrader pour le tester/l’ouvrir

    #244507

    Pour effectuer la conversion, vous avez besoin du fichier source (le texte original et lisible du code), tandis que celui que vous avez joint est le fichier exécutable qui ne peut pas être lu.

    Il devrait avoir l’extension mq4 ou mq5.

     

    1 user thanked author for this post.
    #244510

    Ok. Merci pour le retour

Viewing 5 posts - 1 through 5 (of 5 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login