1. Welcome back! Thank you for being a part of this Traders Community. Let's discuss and share :)
    Selamat datang kembali! Trimakasih telah menjadi bagian dari Komunitas Trader ini. Mari berdiskusi dan berbagi :)
    Dismiss Notice

Suggestion pls indicator to ea

Discussion in 'Expert Advisor atau Robot Forex' started by brolyssj2020, 28 Dec 2024 at 01:08.

  1. brolyssj2020

    brolyssj2020 Member

    Equity
    Credit
    Ref Point
    hello
    pls
    I want to convert this indicator into an expert


    setting



    -------------------------indicator setup----------------------
    #ADX _Bot_v1
    --------------------------------------------------------------

    ADX_Period : 3

    DeltaAdx : 1

    Smoothing : 1

    SignalGap : 3

    Arrow : true

    close all in opposite signal : true

    lot : 0.01

    use risk : true

    risk percent : 0.01 (At the amount of $50, the trade open with a lot of 0.01) (100 usd-0.01)(200 usd-0.02)(300 usd-0.03)(400 usd-0.04)........

    stop loss on : true

    points SL : 20 points

    Trailing stop on : true

    Trailing stop : 3 points

    Comment : ++ ADX_Bot_v1 ++

    EAName : ADX_Bot_v1

    Magic : 11111


    ------------------------------------------------------------------------------------------------------------
     

    Attached Files:

    Last edited: 28 Dec 2024 at 01:49
  2. LuigiM2604

    LuigiM2604 Member Credit Hunter

    Equity
    Credit
    Ref Point
    //+-------------------------------------------------------------- -------------------+
    //| ADX_Bot_v1.mq4 |
    //| Expert Advisor basato su ADX |
    //+-------------------------------------------------------------- -------------------+
    #proprietà rigorosa
    // Impostazioni di input
    ingresso int ADX_Period = 3;
    immettere doppio DeltaAdx = 1.0;
    input int Levigatura = 1;
    ingresso int SignalGap = 3;
    immettere double LotSize = 0,01;
    input bool UseRisk = true;
    immettere double RiskPercentage = 0,01;
    input bool CloseAllOppositeSignal = true;
    input bool StopLossOn = vero;
    input int PuntiSL = 20;
    input bool TrailingStopOn = true;
    ingresso int TrailingStop = 3;
    stringa di input CommentText = "++ ADX_Bot_v1 ++";
    input int NumeroMagico = 11111;
    // Variabili globali
    doppio PrevADX = 0,0;
    //+-------------------------------------------------------------- -------------------+
    //| Funzione di inizializzazione esperta |
    //+-------------------------------------------------------------- -------------------+
    int OnInit()
    {
    Print("ADX_Bot_v1 inizializzato.");
    restituisci(INIT_RIUSCITO);
    }
    //+-------------------------------------------------------------- -------------------+
    //| Funzione di deinizializzazione esperta |
    //+-------------------------------------------------------------- -------------------+
    void OnDeinit(const int motivo)
    {
    Print("ADX_Bot_v1 deinizializzato.");
    }
    //+-------------------------------------------------------------- -------------------+
    //| Funzione tick esperto |
    //+-------------------------------------------------------------- -------------------+
    annullare OnTick()
    {
    doppio ADX = iADX(NULL, 0, ADX_Period, PRICE_CLOSE, MODE_MAIN, 0);
    doppio PlusDI = iADX(NULL, 0, ADX_Period, PRICE_CLOSE, MODE_PUSDI, 0);
    doppio MinusDI = iADX(NULL, 0, ADX_Period, PRICE_CLOSE, MODE_MINUSDI, 0);
    // Controlla se ADX ha superato la soglia Delta
    bool BuySignal = (ADX > DeltaAdx && PlusDI > MinusDI);
    bool SellSignal = (ADX > DeltaAdx && MinusDI > PlusDI);
    // Gestire le posizioni di chiusura sul segnale opposto
    se (ChiudiTuttiSegnaliOpposti)
    {
    se (BuySignal) ChiudiTutto(OP_SELL);
    se (SellSignal) ChiudiTutto(OP_BUY);
    }
    // Apri le negoziazioni in base ai segnali
    se (BuySignal && !PositionExists(OP_BUY))
    OpenTrade(OP_BUY);
    altrimenti se (SellSignal && !PositionExists(OP_SELL))
    OpenTrade(OP_SELL);
    // Arresto di fine corsa
    se (TrailingStopOn) ApplicaTrailingStop();
    }
    //+-------------------------------------------------------------- -------------------+
    //| Funzioni |
    //+-------------------------------------------------------------- -------------------+
    void OpenTrade(int segnaleType)
    {
    doppio lotto = LotSize;
    se (UseRisk)
    lotto = CalcolaRischio();
    prezzo doppio = (signalType == OP_BUY) ? Chiedi : Offerta;
    double sl = (signalType == OP_BUY) ? prezzo - PuntiSL * Punto : prezzo + PuntiSL * Punto;
    double tp = 0; // Take profit non specificato
    int ticket = OrderSend(Symbol(), signalType, lot, price, 3, sl, tp, CommentText, MagicNumber, 0, clrBlue);
    se (biglietto < 0)
    Print("Errore durante l'apertura dell'ordine: ", GetLastError());
    }
    void CloseAll(int segnaleType)
    {
    per (int i = OrdersTotal() - 1; i >= 0; i--)
    {
    se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
    {
    if (OrderMagicNumber() == MagicNumber && OrderType() != signalType)
    {
    se (!OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 3, clrRed))
    Print("Errore durante la chiusura dell'ordine: ", GetLastError());
    }
    }
    }
    }
    bool PosizioneEsiste(int segnaleTipo)
    {
    per (int i = OrdersTotal() - 1; i >= 0; i--)
    {
    se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
    {
    if (OrderMagicNumber() == MagicNumber && OrderType() == signalType)
    restituisci vero;
    }
    }
    restituisci falso;
    }
    doppio CalcolaRischio()
    {
    doppio saldo = AccountBalance();
    doppio riskAmount = saldo * RiskPercentage;
    doppio lotto = riskAmount / (PointsSL * Point * MarketInfo(Symbol(), MODE_TICKVALUE));
    restituisci NormalizeDouble(lotto, 2);
    }
    void ApplicaStopTrailing()
    {
    per (int i = OrdersTotal() - 1; i >= 0; i--)
    {
    se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
    {
    se (OrderMagicNumber() == MagicNumber)
    {
    doppio newStop = 0;
    se (OrderType() == OP_BUY)
    newStop = Offerta - TrailingStop * Punto;
    altrimenti se (OrderType() == OP_SELL)
    newStop = Chiedi + TrailingStop * Punto;
    if ((OrderType() == OP_BUY && newStop > OrderStopLoss()) ||
    (OrderType() == OP_SELL && newStop < OrderStopLoss()))
    {
    if (!OrderModify(OrderTicket(), OrderOpenPrice(), newStop, OrderTakeProfit(), 0, clrGreen))
    Print("Errore durante la modifica dell'ordine: ", GetLastError());
    }
    }
    }
    }
    }
     
  3. LuigiM2604

    LuigiM2604 Member Credit Hunter

    Equity
    Credit
    Ref Point
  4. samruk

    samruk Member Credit Hunter

    Equity
    Credit
    Ref Point

    It is an advisor. So what do you need?
     
  5. brolyssj2020

    brolyssj2020 Member

    Equity
    Credit
    Ref Point
    hi
    Did you convert it? Send it to the file ea
    .ex4
     

Share This Page