Chart scaling does not work in the Strategy Tester

This is a very old bug. I have already reported it years ago, but it still hasn't been fixed. 

Scale adjustment functions do not work in the Strategy Tester. The values ​​cannot be set either manually or via code.

scale fix bug


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   EventSetTimer(1);

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   EventKillTimer();

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   double min=SymbolInfoDouble(_Symbol,SYMBOL_BID)-100*_Point;
   double max=SymbolInfoDouble(_Symbol,SYMBOL_BID)+100*_Point;
   SetChartPriceRange(min,max);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int32_t id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool SetChartPriceRange(const double min_price,
                        const double max_price)
  {
   long chart_id=ChartID();

   if(min_price>=max_price)
      return false;

   ResetLastError();
   if(!ChartSetInteger(chart_id,CHART_SCALEFIX,true))
     {
      Print("CHART_SCALEFIX failed: ",GetLastError());
      return false;
     }

   ResetLastError();
   if(!ChartSetDouble(chart_id,CHART_FIXED_MIN,min_price))
     {
      Print("CHART_FIXED_MIN failed: ",GetLastError());
      return false;
     }

   ResetLastError();
   if(!ChartSetDouble(chart_id,CHART_FIXED_MAX,max_price))
     {
      Print("CHART_FIXED_MAX failed: ",GetLastError());
      return false;
     }

   ChartRedraw(chart_id);
   return true;
  }
//+------------------------------------------------------------------+