OPEN-SOURCE SCRIPT

Trendlines with Breaks Strategy [AlexGoldHunter]

Strategy Overview
This strategy, named "Trendlines with Breaks Strategy [AlexGoldHunter]", is designed to identify and trade trendline breakouts. It uses pivot highs and lows to detect significant levels and calculates slopes to plot trendlines. The strategy places buy and sell orders based on these trendlines and triggers alerts for potential breakouts.

Inputs and Parameters
Swing Detection Lookback (length): Defines the number of bars to look back for identifying pivot highs and lows.

Slope Multiplier (mult): Adjusts the steepness of the trendlines.

Slope Calculation Method (calcMethod): Determines how the slope is calculated (Atr, Stdev, or Linreg).

Backpainting (backpaint): Toggles the display of elements in the past, providing real-time information when disabled.

Style Settings
Up Trendline Color (upCss): Color for upward trendlines (default: teal).

Down Trendline Color (dnCss): Color for downward trendlines (default: red).

Show Extended Lines (showExt): Option to show extended trendlines.

Calculations
Pivot High (ph) and Pivot Low (pl): Identifies significant highs and lows based on the lookback period.

Slope Calculation: Determines the slope of trendlines using the selected calculation method.

Trendline Calculation: Updates the positions of the upper and lower trendlines based on the pivot points and slopes.

Plotting
Upper and Lower Trendlines: Plots the calculated trendlines on the chart.

Breakout Labels: Adds labels "alex_buy_now" for upward trendline breaks and "alex_sell_now" for downward trendline breaks.

Strategy Conditions
Buy Condition:

Triggers a buy order when the price breaks above the downward trendline.

Sell Condition:

Triggers a sell order when the price breaks below the upward trendline.

Alerts
Upward Breakout Alert: Notifies when the price breaks above the downward trendline.

Downward Breakout Alert: Notifies when the price breaks below the upward trendline.

Example Code Explanation

//version=5
strategy("Trendlines with Breaks Strategy [AlexGoldHunter]", overlay=true)

// Input parameters
length = input.int(14, title="Swing Detection Lookback")
mult = input.float(1.0, title="Slope", minval=0, step=0.1)
calcMethod = input.string('Atr', title="Slope Calculation Method", options=['Atr','Stdev','Linreg'])
backpaint = input(true, tooltip='Backpainting offset displayed elements in the past. Disable backpainting to see real-time information returned by the indicator.')

// Style settings
upCss = input.color(color.teal, title="Up Trendline Color", group="Style")
dnCss = input.color(color.red, title="Down Trendline Color", group="Style")
showExt = input(true, title="Show Extended Lines")

// Calculations
var upper = 0.0
var lower = 0.0
var slope_ph = 0.0
var slope_pl = 0.0

var offset = backpaint ? length : 0

n = bar_index
src = close

ph = ta.pivothigh(length, length)
pl = ta.pivotlow(length, length)

// Slope Calculation Method
slope = switch calcMethod
'Atr' => ta.atr(length) / length * mult
'Stdev' => ta.stdev(src, length) / length * mult
'Linreg' => math.abs(ta.sma(src * n, length) - ta.sma(src, length) * ta.sma(n, length)) / ta.variance(n, length) / 2 * mult

// Get slopes and calculate trendlines
slope_ph := ph ? slope : slope_ph
slope_pl := pl ? slope : slope_pl

upper := ph ? ph : upper - slope_ph
lower := pl ? pl : lower + slope_pl

var upos = 0
var dnos = 0
upos := ph ? 0 : close > upper - slope_ph * length ? 1 : upos
dnos := pl ? 0 : close < lower + slope_pl * length ? 1 : dnos

// Extended Lines
var uptl = line.new(na, na, na, na, color=upCss, style=line.style_dashed, extend=extend.right)
var dntl = line.new(na, na, na, na, color=dnCss, style=line.style_dashed, extend=extend.right)

if ph and showExt
uptl.set_xy1(n - offset, backpaint ? ph : upper - slope_ph * length)
uptl.set_xy2(n - offset + 1, backpaint ? ph - slope : upper - slope_ph * (length + 1))

if pl and showExt
dntl.set_xy1(n - offset, backpaint ? pl : lower + slope_pl * length)
dntl.set_xy2(n - offset + 1, backpaint ? pl + slope : lower + slope_pl * (length + 1))

// Plots
plot(backpaint ? upper : upper - slope_ph * length, title="Upper", color=ph ? na : upCss, offset=-offset)
plot(backpaint ? lower : lower + slope_pl * length, title="Lower", color=pl ? na : dnCss, offset=-offset)

// Breakouts
plotshape(upos > upos[1] ? low : na, title="Upper Break",
style=shape.labelup, location=location.absolute, color=upCss, text="alex_buy_now", textcolor=color.white, size=size.tiny)
plotshape(dnos > dnos[1] ? high : na, title="Lower Break",
style=shape.labeldown, location=location.absolute, color=dnCss, text="alex_sell_now", textcolor=color.white, size=size.tiny)

// Strategy: Buy and Sell conditions
if (upos > upos[1])
strategy.entry("Buy", strategy.long)
if (dnos > dnos[1])
strategy.entry("Sell", strategy.short)

// Alerts
alertcondition(upos > upos[1], title="Upward Breakout", message="Price broke the down-trendline upward")
alertcondition(dnos > dnos[1], title="Downward Breakout", message="Price broke the up-trendline downward")


-------------------------------------------

This script effectively integrates the trendline detection, breakout identification, and automated trading into a single strategy, making it a powerful tool for technical traders on TradingView. If you have any questions or need further clarification, feel free to ask!

Follow Alexgoldhunter for more strategic ideas and minds

Trend Analysis

Script open-source

Dans le plus pur esprit TradingView, l'auteur de ce script l'a publié en open-source, afin que les traders puissent le comprendre et le vérifier. Bravo à l'auteur! Vous pouvez l'utiliser gratuitement, mais la réutilisation de ce code dans une publication est régie par nos Règles. Vous pouvez le mettre en favori pour l'utiliser sur un graphique.

Vous voulez utiliser ce script sur un graphique ?


Alex Gold Hunter

Free Signals & analysis
Join for Free

tinyurl.com/ClassicFreeSignals

bit.ly/4fQGd0G

bit.ly/3ODlUI4
Aussi sur:

Clause de non-responsabilité