from Utils import (
alligator,
bottom_change_percent,
+ calculate_zero_lag,
get_ma_fn,
- zero_lag,
zigzag,
ewo,
non_zero_diff,
INTERFACE_VERSION = 3
def version(self) -> str:
- return "3.3.61"
+ return "3.3.62"
timeframe = "5m"
def get_trade_natr(df: DataFrame, trade_duration_candles: int) -> Optional[float]:
if not QuickAdapterV3.is_trade_duration_valid(trade_duration_candles):
return None
- trade_zl_natr = zero_lag(
+ trade_zl_natr = calculate_zero_lag(
df["natr_label_period_candles"], period=trade_duration_candles
)
if trade_zl_natr.empty:
return vwap_low, vwap, vwap_high
-def zero_lag(series: pd.Series, period: int) -> pd.Series:
+def calculate_zero_lag(series: pd.Series, period: int) -> pd.Series:
"""Applies a zero lag filter to reduce MA lag."""
lag = max(int(0.5 * (period - 1)), 0)
if lag == 0:
closes = df["close"]
if zero_lag:
- highs = zero_lag(highs, period=period)
- lows = zero_lag(lows, period=period)
- closes = zero_lag(closes, period=period)
+ highs = calculate_zero_lag(highs, period=period)
+ lows = calculate_zero_lag(lows, period=period)
+ closes = calculate_zero_lag(closes, period=period)
fd = pd.Series(np.nan, index=closes.index)
for i in range(period, n):
return pd.Series(index=series.index, dtype=float)
if zero_lag:
- series = zero_lag(series, period=period)
+ series = calculate_zero_lag(series, period=period)
smma = pd.Series(np.nan, index=series.index)
smma.iloc[period - 1] = series.iloc[:period].mean()
prices = get_price_fn(pricemode)(dataframe)
if zero_lag:
- prices_ma1 = zero_lag(prices, period=ma1_length)
- prices_ma2 = zero_lag(prices, period=ma2_length)
+ prices_ma1 = calculate_zero_lag(prices, period=ma1_length)
+ prices_ma2 = calculate_zero_lag(prices, period=ma2_length)
else:
prices_ma1 = prices
prices_ma2 = prices