Slow Down Chart Scale

 

 if(id==CHARTEVENT_MOUSE_WHEEL) {
      //wheel up
      if(dparam>0) {
         scale=(int)ChartGetInteger(ChartID(),CHART_SCALE);
         scale++;
         if(scale>5) {
            scale=5;
         }
         ChartSetInteger(ChartID(),CHART_MOUSE_SCROLL,false);
         ChartSetInteger(ChartID(),CHART_EVENT_MOUSE_MOVE,false);
         if(ChartSetInteger(ChartID(),CHART_SCALE,scale)==false) Print(GetLastError());
         ChartSetInteger(ChartID(),CHART_MOUSE_SCROLL,true);
         ChartSetInteger(ChartID(),CHART_EVENT_MOUSE_MOVE,true);

         ChartRedraw(ChartID());
      }
      //wheel down
      if(dparam<0) {
         scale=(int)ChartGetInteger(ChartID(),CHART_SCALE);
         //Print(scale);
         scale--;
         if(scale<0) {
            scale=0;
         }
         if(ChartSetInteger(ChartID(),CHART_MOUSE_SCROLL,false)==false) Print(GetLastError());
         if(ChartSetInteger(ChartID(),CHART_EVENT_MOUSE_MOVE,false)==false) Print(GetLastError());
         if(ChartSetInteger(ChartID(),CHART_SCALE,scale)==false) Print(GetLastError());
         if(ChartSetInteger(ChartID(),CHART_EVENT_MOUSE_MOVE,true)==false) Print(GetLastError());
         if(ChartSetInteger(ChartID(),CHART_MOUSE_SCROLL,true)==false) Print(GetLastError());

         ChartRedraw(ChartID());
      }
   }

Mr. Lorentzos posted an awesome code once in forum to scale chart using mouse wheels but now I feel its too fast, so is there any way to slow it down so chart zoom +- a little slow smoothly

Reason: