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