Attachments forums

List of attachments posted on this forum.


All files on forums: 159943

Re: 🔺 MT5 XARD - Simple Trend Following Trading System

asgariHoo, Wed Aug 20, 2025 2:15 pm

xard777 wrote: Wed Aug 20, 2025 12:19 pm RE: Changing the ADR settings in the Panel back to their original setting.
Best,
Xard777

Here is the code...

Code: Select all

static double cachedAdrAvg = 0.0;
   static double cachedYestAvg = 0.0;
   static int lastDailyBars = 0;
   int currDailyBars = iBars(symbol, PERIOD_D1);
   if (cachedAdrAvg == 0.0 || currDailyBars > lastDailyBars)
   {
      double sum1 = 0, sum5 = 0, sum10 = 0, sum20 = 0;
      int cnt1 = 0, cnt5 = 0, cnt10 = 0, cnt20 = 0;
      int maxBars = MathMin(Bars(symbol, PERIOD_D1), BarsCount);
      int maxD = MathMin(20, maxBars - 1);
      for (int i = 1; i <= maxD; i++)
      {
         double r = iHigh(symbol, PERIOD_D1, i) - iLow(symbol, PERIOD_D1, i);
         sum20 += r; cnt20++;
         if (i <= 10) { sum10 += r; cnt10++; }
         if (i <= 5) { sum5 += r; cnt5++; }
         if (i <= 1) { sum1 += r; cnt1++; }
      }
      double adr1 = (cnt1 > 0) ? sum1 / cnt1 : 0;
      double adr5 = (cnt5 > 0) ? sum5 / cnt5 : 0;
      double adr10 = (cnt10 > 0) ? sum10 / cnt10 : 0;
      double adr20 = (cnt20 > 0) ? sum20 / cnt20 : 0;
      double adrAvgRaw = (adr1 + adr5 + adr10 + adr20) / 4;
      cachedAdrAvg = adrAvgRaw * pipsize;
      cachedYestAvg = (iHigh(symbol, PERIOD_D1, 1) - iLow(symbol, PERIOD_D1, 1)) * pipsize;
      lastDailyBars = currDailyBars;
      if (DebugWithSquealers) Print("SQUEALER: Cached ADR Update - New Daily Bars: ", currDailyBars, ", ADR Avg: ", cachedAdrAvg, ", Yest Avg: ", cachedYestAvg);
   }
   double adrAvg = cachedAdrAvg;
   double yestAvg = cachedYestAvg;
   if (DebugWithSquealers) Print("SQUEALER: 20 Day Range - Raw Avg: ", adrAvg / pipsize, ", Pipsize: ", pipsize, ", Result: ", adrAvg);
   ObjectSetString(chartID, ID1+"Xard14", OBJPROP_TEXT, DoubleToString(adrAvg, 0));
   ObjectSetInteger(chartID, ID1+"Xard14", OBJPROP_COLOR, adrAvg > yestAvg ? C'255,140,255' : clrDeepSkyBlue);
Thanks, XARD. :Fire:
All files in topic