• 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 :)
General chit-chat
Help Users
  • No one is chatting at the moment.

      Suggestion pls indicator to ea

      brolyssj2020

      Member
      Credits
      0
      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


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

      Attachments

      Last edited:
      //+-------------------------------------------------------------- -------------------+
      //| 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());
      }
      }
      }
      }
      }
       
      //+-------------------------------------------------------------- -------------------+
      //| 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());
      }
      }
      }
      }
      }


      It is an advisor. So what do you need?
       
      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


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

      Attachments

      Back
      Top