fxDreema

    • Register
    • Login
    • Search
    • Back to the main page
    • Categories
    • Recent
    • Tags
    • Popular
    • Search
    1. Home
    2. stonegoldtz
    3. Best
    • Profile
    • Following 4
    • Followers 0
    • Topics 17
    • Posts 35
    • Best 4
    • Controversial 0
    • Groups 0

    Best posts made by stonegoldtz

    • RE: One Trade Cycle Per Candle (No Re-Entry After TP/SL in Same Candle)

      @jstap thank you

      posted in Questions & Answers
      stonegoldtz
      stonegoldtz
    • amazing

      Re: Close All MT5 trades quickly

      posted in Tutorials by Users
      stonegoldtz
      stonegoldtz
    • RE: One Trade Cycle Per Candle (No Re-Entry After TP/SL in Same Candle)

      I am looking for professional assistance in building the logic for my EA in FXDreema. My requirement is to allow the robot to open multiple orders within a single 5‑minute candle if conditions are met. However, once those orders are closed (either by Take Profit or Stop Loss), the EA should not open any new trades again within the same candle. Trading should only resume when the next candle begins. I am willing to pay for this technical support. Please contact me if you can help

      posted in Questions & Answers
      stonegoldtz
      stonegoldtz
    • RE: MT5 Timeframes

      //+------------------------------------------------------------------+
      //| RSI.mq5 |
      //| Copyright 2000-2025, MetaQuotes Ltd. |
      //| https://www.mql5.com |
      //+------------------------------------------------------------------+
      #property copyright "Copyright 2000-2025, MetaQuotes Ltd."
      #property link "https://www.mql5.com"
      #property description "Relative Strength Index"
      //--- indicator settings
      #property indicator_separate_window
      #property indicator_minimum 0
      #property indicator_maximum 100
      #property indicator_level1 30
      #property indicator_level2 70
      #property indicator_buffers 3
      #property indicator_plots 1
      #property indicator_type1 DRAW_LINE
      #property indicator_color1 DodgerBlue
      //--- input parameters
      input int InpPeriodRSI=14; // Period
      //--- indicator buffers
      double ExtRSIBuffer[];
      double ExtPosBuffer[];
      double ExtNegBuffer[];

      int ExtPeriodRSI;
      //+------------------------------------------------------------------+
      //| Custom indicator initialization function |
      //+------------------------------------------------------------------+
      void OnInit()
      {
      //--- check for input
      if(InpPeriodRSI<1)
      {
      ExtPeriodRSI=14;
      PrintFormat("Incorrect value for input variable InpPeriodRSI = %d. Indicator will use value %d for calculations.",
      InpPeriodRSI,ExtPeriodRSI);
      }
      else
      ExtPeriodRSI=InpPeriodRSI;
      //--- indicator buffers mapping
      SetIndexBuffer(0,ExtRSIBuffer,INDICATOR_DATA);
      SetIndexBuffer(1,ExtPosBuffer,INDICATOR_CALCULATIONS);
      SetIndexBuffer(2,ExtNegBuffer,INDICATOR_CALCULATIONS);
      //--- set accuracy
      IndicatorSetInteger(INDICATOR_DIGITS,2);
      //--- sets first bar from what index will be drawn
      PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,ExtPeriodRSI);
      //--- name for DataWindow and indicator subwindow label
      IndicatorSetString(INDICATOR_SHORTNAME,"RSI("+string(ExtPeriodRSI)+")");
      }
      //+------------------------------------------------------------------+
      //| Relative Strength Index |
      //+------------------------------------------------------------------+
      int OnCalculate(const int rates_total,
      const int prev_calculated,
      const int begin,
      const double &price[])
      {
      if(rates_total<=ExtPeriodRSI)
      return(0);
      //--- preliminary calculations
      int pos=prev_calculated-1;
      if(pos<=ExtPeriodRSI)
      {
      double sum_pos=0.0;
      double sum_neg=0.0;
      //--- first RSIPeriod values of the indicator are not calculated
      ExtRSIBuffer[0]=0.0;
      ExtPosBuffer[0]=0.0;
      ExtNegBuffer[0]=0.0;
      for(int i=1; i<=ExtPeriodRSI; i++)
      {
      ExtRSIBuffer[i]=0.0;
      ExtPosBuffer[i]=0.0;
      ExtNegBuffer[i]=0.0;
      double diff=price[i]-price[i-1];
      sum_pos+=(diff>0?diff:0);
      sum_neg+=(diff<0?-diff:0);
      }
      //--- calculate first visible value
      ExtPosBuffer[ExtPeriodRSI]=sum_pos/ExtPeriodRSI;
      ExtNegBuffer[ExtPeriodRSI]=sum_neg/ExtPeriodRSI;
      if(ExtNegBuffer[ExtPeriodRSI]!=0.0)
      ExtRSIBuffer[ExtPeriodRSI]=100.0-(100.0/(1.0+ExtPosBuffer[ExtPeriodRSI]/ExtNegBuffer[ExtPeriodRSI]));
      else
      {
      if(ExtPosBuffer[ExtPeriodRSI]!=0.0)
      ExtRSIBuffer[ExtPeriodRSI]=100.0;
      else
      ExtRSIBuffer[ExtPeriodRSI]=50.0;
      }
      //--- prepare the position value for main calculation
      pos=ExtPeriodRSI+1;
      }
      //--- the main loop of calculations
      for(int i=pos; i<rates_total && !IsStopped(); i++)
      {
      double diff=price[i]-price[i-1];
      ExtPosBuffer[i]=(ExtPosBuffer[i-1](ExtPeriodRSI-1)+(diff>0.0?diff:0.0))/ExtPeriodRSI;
      ExtNegBuffer[i]=(ExtNegBuffer[i-1]
      (ExtPeriodRSI-1)+(diff<0.0?-diff:0.0))/ExtPeriodRSI;
      if(ExtNegBuffer[i]!=0.0)
      ExtRSIBuffer[i]=100.0-100.0/(1+ExtPosBuffer[i]/ExtNegBuffer[i]);
      else
      {
      if(ExtPosBuffer[i]!=0.0)
      ExtRSIBuffer[i]=100.0;
      else
      ExtRSIBuffer[i]=50.0;
      }
      }
      //--- OnCalculate done. Return new prev_calculated.
      return(rates_total);
      }
      //+------------------------------------------------------------------+
      how to present this

      posted in Tutorials by Users
      stonegoldtz
      stonegoldtz
    • 1 / 1