https://github.com/sponsors/robcaulk
     """
 
-    version = "3.7.15"
+    version = "3.7.16"
 
     @cached_property
     def _optuna_config(self) -> dict:
                 np.inf,
                 -np.inf,
                 None,
-            )  # (trial_peaks_size, trial_peaks_range, trial_index)
+            )  # (trial_peaks_size, trial_scaled_natr, trial_index)
             nearest_below_quantile = (
                 -np.inf,
                 -np.inf,
                 None,
-            )  # (trial_peaks_size, trial_peaks_range, trial_index)
+            )  # (trial_peaks_size, trial_scaled_natr, trial_index)
             for idx, trial in enumerate(best_trials):
                 peaks_size = trial.values[1]
                 if peaks_size >= quantile_peaks_size:
         ratio=label_natr_ratio,
     )
 
-    if len(peak_values) < 2:
-        return -float("inf"), -float("inf")
-
-    previous_value = peak_values[0]
-    peak_ranges = []
-    for peak_value in peak_values[1:]:
-        peak_ranges.append(abs(peak_value - previous_value))
-        previous_value = peak_value
+    scaled_natr_label_period_candles = (
+        ta.NATR(df, timeperiod=label_period_candles) * label_natr_ratio
+    )
 
-    return np.median(peak_ranges), len(peak_ranges)
+    return scaled_natr_label_period_candles.median(), len(peak_values)
 
 
 def smoothed_max(series: pd.Series, temperature=1.0) -> float:
 
 # VWAP bands
 def vwapb(dataframe: pd.DataFrame, window=20, num_of_std=1) -> tuple:
     vwap = qtpylib.rolling_vwap(dataframe, window=window)
-    rolling_std = vwap.rolling(window=window).std()
+    rolling_std = vwap.rolling(window=window, min_periods=window).std()
     vwap_low = vwap - (rolling_std * num_of_std)
     vwap_high = vwap + (rolling_std * num_of_std)
     return vwap_low, vwap, vwap_high