Trendline Breakout Navigator
The Trendline Breakout Navigator is a multi-timeframe trendline detection indicator. It detects pivot highs and lows at three swing lengths (long, medium, short), constructs trendlines on HH/LL trend reversals, and tracks trendline breakouts and wick interactions.
def trendline_breakout_navigator(
data: Union[PdDataFrame, PlDataFrame],
swing_long: int = 60,
swing_medium: int = 30,
swing_short: int = 10,
enable_long: bool = True,
enable_medium: bool = True,
enable_short: bool = True,
high_column: str = "High",
low_column: str = "Low",
close_column: str = "Close",
) -> Union[PdDataFrame, PlDataFrame]:
Returns the following columns:
tbn_trend_long/tbn_trend_medium/tbn_trend_short: Trend direction per timeframe (1 = bullish, −1 = bearish, 0 = undetermined)tbn_value_long/tbn_value_medium/tbn_value_short: Projected trendline price per timeframetbn_slope_long/tbn_slope_medium/tbn_slope_short: Trendline slope per bar per timeframetbn_wick_bull/tbn_wick_bear: Wick break flags (bullish / bearish)tbn_hh/tbn_ll: Higher High / Lower Low confirmation flagstbn_composite_trend: Sum of all enabled timeframe trends (−3 to +3)
Signal function:
tbn_signal:1= bullish (composite > 0),-1= bearish (composite < 0),0= neutral
from investing_algorithm_framework import download
from pyindicators import (
trendline_breakout_navigator,
trendline_breakout_navigator_signal,
get_trendline_breakout_navigator_stats,
)
pd_df = download(
symbol="btc/eur",
market="bitvavo",
time_frame="4h",
start_date="2024-01-01",
end_date="2024-06-01",
pandas=True,
)
# Detect trendlines and breakouts
pd_df = trendline_breakout_navigator(pd_df, swing_long=60, swing_medium=30, swing_short=10)
pd_df = trendline_breakout_navigator_signal(pd_df)
# Get summary statistics
stats = get_trendline_breakout_navigator_stats(pd_df)
print(stats)
pd_df[["Close", "tbn_trend_long", "tbn_value_long", "tbn_composite_trend",
"tbn_wick_bull", "tbn_wick_bear", "tbn_hh", "tbn_ll", "tbn_signal"]].tail(10)