0% found this document useful (0 votes)
53 views18 pages

All Chart Patterns Pine Script Code

This document contains a Pine Script code for an indicator named 'All Chart Patterns' designed for use in trading analysis. It includes various pattern detection features such as ascending and descending broadening, double tops and bottoms, and alerts for these patterns. The script allows customization of colors and settings for different chart patterns and includes functionality for drawing lines and labels on the chart.

Uploaded by

mrbaravi87.1
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views18 pages

All Chart Patterns Pine Script Code

This document contains a Pine Script code for an indicator named 'All Chart Patterns' designed for use in trading analysis. It includes various pattern detection features such as ascending and descending broadening, double tops and bottoms, and alerts for these patterns. The script allows customization of colors and settings for different chart patterns and includes functionality for drawing lines and labels on the chart.

Uploaded by

mrbaravi87.1
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

--// This Pine Script code is subject to the terms of the Mozilla Public License

2.0 at [Link]
--// 2024 theEccentricTrader--// 2024 Ozan Kaplanbasoglu--//@version=5

indicator{"All Chart Patterns [theEccentricTrader]", overlay = true,


max_lines_count = 500, max_labels_count = 500}
--// IMPORTS //

--import theEccentricTrader/PubLibSwing/1 as sw
--import theEccentricTrader/PubLibPattern/2 as pa
--// SWING VARIABLES //
shp_0 = [Link](0)
shpbi_0 = [Link](0)
shrr_0 = [Link](0)

slp_0 = [Link](0)
slpbi_0 = [Link](0)
slrr_0 = [Link](0)

shp_1 = [Link](1)
shpbi_1 = [Link](1)
shrr_1 = [Link](1)

slp_1 = [Link](1)
slpbi_1 = [Link](1)
slrr_1 = [Link](1)

shp_2 = [Link](2)
shpbi_2 = [Link](2)
shrr_2 = [Link](2)

slp_2 = [Link](2)
slpbi_2 = [Link](2)
slrr_2 = [Link](2)

shp_3 = [Link](3)
shpbi_3 = [Link](3)
shrr_3 = [Link](3)

slp_3 = [Link](3)
slpbi_3 = [Link](3)
slrr_3 = [Link](3)

--// PATTERN INPUTS //

bear_pattern_colour = input{[Link], 'Bearish Pattern Colour', group = 'Pattern


Colours'}
bull_pattern_colour = input{[Link], 'Bullish Pattern Colour', group = 'Pattern
Colours'}
neutral_pattern_colour = input{[Link], 'Neutral Pattern Colour', group =
'Pattern Colours'}
dot_colour = input{[Link], 'Dotted Line Colour', group = 'Pattern Colours'}
label_colour = input{[Link], 'Label Colour', group = 'Pattern Colours'}

show_asc_broadening = input{true, 'Show Asc. Broadening', group = 'Patterns'}


show_broadening = input{true, 'Show Broadening', group = 'Patterns'}
show_desc_broadening = input{true, 'Show Desc. Broadening', group = 'Patterns'}
show_double_bot = input{true, 'Show Double Bottom', group = 'Patterns'}
show_double_top = input{true, 'Show Double Top', group = 'Patterns'}
show_triple_bot = input{true, 'Show Triple Bottom', group = 'Patterns'}
show_triple_top = input{true, 'Show Triple Top', group = 'Patterns'}
show_bear_elliot = input{true, 'Show Bear Elliot Wave', group = 'Patterns'}
show_bull_elliot = input{true, 'Show Bull Elliot Wave', group = 'Patterns'}
show_bear_alt_flag = input{true, 'Show Bear Alt. Flag', group = 'Patterns'}
show_bull_alt_flag = input{true, 'Show Bull Alt. Flag', group = 'Patterns'}
show_bear_flag = input{true, 'Show Bear Flag', group = 'Patterns'}
show_bull_flag = input{true, 'Show Bull Flag', group = 'Patterns'}
show_bear_asc_head_shoulders = input{true, 'Show Bear Asc. Head and Shoulders',
group = 'Patterns'}
show_bull_asc_head_shoulders = input{true, 'Show Bull Asc. Head and Shoulders',
group = 'Patterns'}
show_bear_desc_head_shoulders = input{true, 'Show Bear Desc. Head and Shoulders',
group = 'Patterns'}
show_bull_desc_head_shoulders = input{true, 'Show Bull Desc. Head and Shoulders',
group = 'Patterns'}
show_bear_head_shoulders = input{false, 'Show Bear Head and Shoulders', group =
'Patterns'}
show_bull_head_shoulders = input{false, 'Show Bull Head and Shoulders', group =
'Patterns'}
show_bear_pennant = input{true, 'Show Bear Pennant', group = 'Patterns'}
show_bull_pennant = input{true, 'Show Bull Pennant', group = 'Patterns'}
show_asc_wedge = input{true, 'Show Asc. Wedge', group = 'Patterns'}
show_desc_wedge = input{true, 'Show Desc. Wedge', group = 'Patterns'}
show_wedge = input{true, 'Show Wedge', group = 'Patterns'}

ab_ratio = input{defval = 100, title = 'AB Minimum Ratio', group = 'Pattern


Ratios'}
bc_ratio = input{defval = 30, title = 'BC Maximum Ratio', group = 'Pattern Ratios'}
be_ratio = input{defval = 40, title = 'BE Maximum Ratio', group = 'Pattern Ratios'}

low_tol = input{defval = 10, title = 'Lower Tolerance {%}', group = 'Pattern


Tolerances'}
up_tol = input{defval = 10, title = 'Upper Tolerance {%}', group = 'Pattern
Tolerances'}

asc_broadening_alert = input{true, 'Asc. Broadening Alert', group = 'Alerts'}


broadening_alert = input{true, 'Broadening Alert', group = 'Alerts'}
desc_broadening_alert = input{true, 'Desc. Broadening Alert', group = 'Alerts'}
double_bot_alert = input{true, 'Double Bot Alert', group = 'Alerts'}
double_top_alert = input{true, 'Double Top Alert', group = 'Alerts'}
triple_bot_alert = input{true, 'Triple Bot Alert', group = 'Alerts'}
triple_top_alert = input{true, 'Triple Top Alert', group = 'Alerts'}
bear_elliot_alert = input{true, 'Bear Elliot Wave Alert', group = 'Alerts'}
bull_elliot_alert = input{true, 'Bull Elliot Wave Alert', group = 'Alerts'}
bear_alt_flag_alert = input{true, 'Bear Alt. Flag Alert', group = 'Alerts'}
bull_alt_flag_alert = input{true, 'Bull Alt. Flag Alert', group = 'Alerts'}
bear_flag_alert = input{true, 'Bear Flag Alert', group = 'Alerts'}
bull_flag_alert = input{true, 'Bull Flag Alert', group = 'Alerts'}
bear_asc_head_shoulders_alert = input{true, 'Bear Asc. Head and Shoulders Alert',
group = 'Alerts'}
bull_asc_head_shoulders_alert = input{true, 'Bull Asc. Head and Shoulders Alert',
group = 'Alerts'}
bear_desc_head_shoulders_alert = input{true, 'Bear Desc. Head and Shoulders Alert',
group = 'Alerts'}
bull_desc_head_shoulders_alert = input{true, 'Bull Desc. Head and Shoulders Alert',
group = 'Alerts'}
bear_head_shoulders_alert = input{false, 'Bear Head and Shoulders Alert', group =
'Alerts'}
bull_head_shoulders_alert = input{false, 'Bull Head and Shoulders Alert', group =
'Alerts'}
bear_pennant_alert = input{true, 'Bear Pennant Alert', group = 'Alerts'}
bull_pennant_alert = input{true, 'Bull Pennant Alert', group = 'Alerts'}
asc_wedge_alert = input{true, 'Asc. Wedge Alert', group = 'Alerts'}
desc_wedge_alert = input{true, 'Desc. Wedge Alert', group = 'Alerts'}
wedge_alert = input{true, 'Wedge Alert', group = 'Alerts'}
--// ASCENDING BROADENING //

var.asc_broadening_line_1 = [Link]{na, na, na, na, color =


neutral_pattern_colour, width = 2}
var.asc_broadening_line_2 = [Link]{na, na, na, na, color =
neutral_pattern_colour, width = 2}
var.asc_broadening_label_1 = [Link]{na, na, color = [Link](54, 58, 69, 100),
style = label.style_none, text = 'ASC. BROADENING', textcolor = label_colour}

if [Link]() and pa.asc_broadening() and [Link] then


if show_asc_broadening then
line.set_xy1(asc_broadening_line_1, slpbi_1, slp_1)
line.set_xy2(asc_broadening_line_1, slpbi_0, slp_0)
line.set_xy1(asc_broadening_line_2, shpbi_1, shp_1)
line.set_xy2(asc_broadening_line_2, shpbi_0, shp_0)
label.set_xy(asc_broadening_label_1, shpbi_0, shp_0)
label.set_style(asc_broadening_label_1, label.style_label_down)
if asc_broadening_alert then
alert('Asc. Broadening')

if [Link]() and pa.asc_broadening() and [Link] then


if show_asc_broadening then
line.set_xy1(asc_broadening_line_1, slpbi_1, slp_1)
line.set_xy2(asc_broadening_line_1, slpbi_0, slp_0)
line.set_xy1(asc_broadening_line_2, shpbi_1, shp_1)
line.set_xy2(asc_broadening_line_2, shpbi_0, shp_0)
label.set_xy(asc_broadening_label_1, slpbi_0, slp_0)
label.set_style(asc_broadening_label_1, label.style_label_up)
if asc_broadening_alert then
alert('Asc. Broadening')

--// BROADENING //

var. broadening_line_1 = [Link]{na, na, na, na, color = neutral_pattern_colour,


width = 2}
var. broadening_line_2 = [Link]{na, na, na, na, color = neutral_pattern_colour,
width = 2}
var. broadening_label_1 = [Link]{na, na, color = [Link](54, 58, 69, 100),
style = label.style_none, text = 'BROADENING', textcolor = label_colour}

if [Link]() and [Link]() and [Link] then


if show_broadening then
line.set_xy1(broadening_line_1, slpbi_1, slp_1)
line.set_xy2(broadening_line_1, slpbi_0, slp_0)
line.set_xy1(broadening_line_2, shpbi_1, shp_1)
line.set_xy2(broadening_line_2, shpbi_0, shp_0)
label.set_xy(broadening_label_1, shpbi_0, shp_0)
label.set_style(broadening_label_1, label.style_label_down)
if broadening_alert then
alert('Broadening')

if [Link]() and [Link]() and [Link] then


if show_broadening then
line.set_xy1(broadening_line_1, slpbi_1, slp_1)
line.set_xy2(broadening_line_1, slpbi_0, slp_0)
line.set_xy1(broadening_line_2, shpbi_1, shp_1)
line.set_xy2(broadening_line_2, shpbi_0, shp_0)
label.set_xy(broadening_label_1, slpbi_0, slp_0)
label.set_style(broadening_label_1, label.style_label_up)
if broadening_alert then
alert('Broadening')

--// DESCENDING BROADENING //


var. desc_broadening_line_1 = [Link]{na, na, na, na, color =
neutral_pattern_colour, width = 2}
var. desc_broadening_line_2 = [Link]{na, na, na, na, color =
neutral_pattern_colour, width = 2}
var. desc_broadening_label_1 = [Link]{na, na, color = [Link](54, 58, 69,
100), style = label.style_none, text = 'DESC. BROADENING', textcolor =
label_colour}

if [Link]() and pa.desc_broadening() and [Link] then


if show_desc_broadening then
line.set_xy1(desc_broadening_line_1, slpbi_1, slp_1)
line.set_xy2(desc_broadening_line_1, slpbi_0, slp_0)
line.set_xy1(desc_broadening_line_2, shpbi_1, shp_1)
line.set_xy2(desc_broadening_line_2, shpbi_0, shp_0)
label.set_xy(desc_broadening_label_1, shpbi_0, shp_0)
label.set_style(desc_broadening_label_1, label.style_label_down)
if desc_broadening_alert then
alert('Desc. Broadening')

if [Link]() and pa.desc_broadening() and [Link] then


if show_desc_broadening then
line.set_xy1(desc_broadening_line_1, slpbi_1, slp_1)
line.set_xy2(desc_broadening_line_1, slpbi_0, slp_0)
line.set_xy1(desc_broadening_line_2, shpbi_1, shp_1)
line.set_xy2(desc_broadening_line_2, shpbi_0, shp_0)
label.set_xy(desc_broadening_label_1, slpbi_0, slp_0)
label.set_style(desc_broadening_label_1, label.style_label_up)
if desc_broadening_alert then
alert('Desc. Broadening')

--// DOUBLE BOTTOM/TOP //

var. double_bot_line_1 = [Link]{na, na, na, na, color = bull_pattern_colour,


width = 2}
var. double_bot_line_2 = [Link]{na, na, na, na, color = bull_pattern_colour,
width = 2}
var. double_bot_line_3 = [Link]{na, na, na, na, color = bull_pattern_colour,
width = 2}
var. double_bot_line_4 = [Link]{na, na, na, na, color = dot_colour, style =
line.style_dashed}
var. double_bot_label_1 = [Link]{na, na, color = [Link]{54, 58, 69, 100},
style = label.style_label_up, text = 'DOUBLE BOTTOM', textcolor = label_colour}

if [Link]() and pa.double_bot(low_tol, up_tol) and [Link] then


if show_double_bot then
line.set_xy1(double_bot_line_1, slpbi_1, slp_1)
line.set_xy2(double_bot_line_1, shpbi_0, shp_0)
line.set_xy1(double_bot_line_2, shpbi_0, shp_0)
line.set_xy2(double_bot_line_2, slpbi_0, slp_0)
line.set_xy1(double_bot_line_3, slpbi_1, slp_1)
line.set_xy2(double_bot_line_3, bar_index, slp_1)
line.set_xy1(double_bot_line_4, shpbi_0, shp_0)
line.set_xy2(double_bot_line_4, bar_index, shp_0)
label.set_xy(double_bot_label_1, slpbi_0, slp_0)
if double_bot_alert then
alert('Double Bottom')

var. double_top_line_1 = [Link]{na, na, na, na, color = bear_pattern_colour,


width = 2}
var. double_top_line_2 = [Link]{na, na, na, na, color = bear_pattern_colour,
width = 2}
var. double_top_line_3 = [Link]{na, na, na, na, color = bear_pattern_colour,
width = 2}
var. double_top_line_4 = [Link]{na, na, na, na, color = dot_colour, style =
line.style_dashed}
var. double_top_label_1 = [Link]{na, na, color = [Link]{54, 58, 69, 100},
style = label.style_label_down, text = 'DOUBLE TOP', textcolor = label_colour}
if [Link]() and pa.double_top(low_tol, up_tol) and [Link] then
if show_double_top then
line.set_xy1(double_top_line_1, shpbi_1, shp_1)
line.set_xy2(double_top_line_1, slpbi_0, slp_0)
line.set_xy1(double_top_line_2, slpbi_0, slp_0)
line.set_xy2(double_top_line_2, shpbi_0, shp_0)
line.set_xy1(double_top_line_3, shpbi_1, shp_1)
line.set_xy2(double_top_line_3, bar_index, shp_1)
line.set_xy1(double_top_line_4, slpbi_0, slp_0)
line.set_xy2(double_top_line_4, bar_index, slp_0)
label.set_xy(double_top_label_1, shpbi_0, shp_0)
if double_top_alert then
alert('Double Top')

--// TRIPLE BOTTOM/TOP //

var. triple_bot_line_1 = [Link]{na, na, na, na, color = bull_pattern_colour,


width = 2}
var. triple_bot_line_2 = [Link]{na, na, na, na, color = bull_pattern_colour,
width = 2}
var. triple_bot_line_3 = [Link]{na, na, na, na, color = bull_pattern_colour,
width = 2}
var. triple_bot_line_4 = [Link]{na, na, na, na, color = bull_pattern_colour,
width = 2}
var. triple_bot_line_5 = [Link]{na, na, na, na, color = bull_pattern_colour,
width = 2}
var. triple_bot_line_6 = [Link]{na, na, na, na, color = dot_colour, style =
line.style_dashed}
var. triple_bot_label_1 = [Link]{na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_up, text = 'TRIPLE BOTTOM', textcolor = label_colour}
if [Link]() and pa.triple_bot(low_tol, up_tol) and [Link] then
if show_triple_bot then
line.set_xy1(triple_bot_line_1, slpbi_2, slp_2)
line.set_xy2(triple_bot_line_1, shpbi_1, shp_1)
line.set_xy1(triple_bot_line_2, shpbi_1, shp_1)
line.set_xy2(triple_bot_line_2, slpbi_1, slp_1)
line.set_xy1(triple_bot_line_3, slpbi_1, slp_1)
line.set_xy2(triple_bot_line_3, shpbi_0, shp_0)
line.set_xy1(triple_bot_line_4, shpbi_0, shp_0)
line.set_xy2(triple_bot_line_4, slpbi_0, slp_0)
line.set_xy1(triple_bot_line_5, slpbi_2, slp_2)
line.set_xy2(triple_bot_line_5, bar_index, slp_2)
line.set_xy1(triple_bot_line_6, shpbi_0, shp_0)
line.set_xy2(triple_bot_line_6, bar_index, shp_0)
label.set_xy(triple_bot_label_1, slpbi_0, slp_0)
if triple_bot_alert then
alert('Triple Bottom')

var. triple_top_line_1 = [Link]{na, na, na, na, color = bear_pattern_colour,


width = 2}
var. triple_top_line_2 = [Link]{na, na, na, na, color = bear_pattern_colour,
width = 2}
var. triple_top_line_3 = [Link]{na, na, na, na, color = bear_pattern_colour,
width = 2}
var. triple_top_line_4 = [Link]{na, na, na, na, color = bear_pattern_colour,
width = 2}
var. triple_top_line_5 = [Link]{na, na, na, na, color = bear_pattern_colour,
width = 2}
var. triple_top_line_6 = [Link]{na, na, na, na, color = dot_colour, style =
line.style_dashed}
var. triple_top_label_1 = [Link]{na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_down, text = 'TRIPLE TOP', textcolor = label_colour}

if [Link]() and pa.triple_top(low_tol, up_tol) and [Link] then


if show_triple_top then
line.set_xy1(triple_top_line_1, shpbi_2, shp_2)
line.set_xy2(triple_top_line_1, slpbi_1, slp_1)
line.set_xy1(triple_top_line_2, slpbi_1, slp_1)
line.set_xy2(triple_top_line_2, shpbi_1, shp_1)
line.set_xy1(triple_top_line_3, shpbi_1, shp_1)
line.set_xy2(triple_top_line_3, slpbi_0, slp_0)
line.set_xy1(triple_top_line_4, slpbi_0, slp_0)
line.set_xy2(triple_top_line_4, shpbi_0, shp_0)
line.set_xy1(triple_top_line_5, shpbi_2, shp_2)
line.set_xy2(triple_top_line_5, bar_index, shp_2)
line.set_xy1(triple_top_line_6, slpbi_0, slp_0)
line.set_xy2(triple_top_line_6, bar_index, slp_0)
label.set_xy(triple_top_label_1, shpbi_0, shp_0)
if triple_top_alert then
alert('Triple Top')

--// ELLIOT WAVE //

var. bear_elliot_line_1 = [Link]{na, na, na, na, color = bear_pattern_colour,


width = 2}
var. bear_elliot_line_2 = [Link]{na, na, na, na, color = bear_pattern_colour,
width = 2}
var. bear_elliot_line_3 = [Link]{na, na, na, na, color = bear_pattern_colour,
width = 2}
var. bear_elliot_line_4 = [Link]{na, na, na, na, color = bear_pattern_colour,
width = 2}
var. bear_elliot_line_5 = [Link]{na, na, na, na, color = bear_pattern_colour,
width = 2}
var. bear_elliot_line_6 = [Link]{na, na, na, na, color = bear_pattern_colour,
width = 2}
var. bear_elliot_line_7 = [Link]{na, na, na, na, color = bear_pattern_colour,
width = 2}
var. bear_elliot_label_1 = [Link]{na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_down, text = na, textcolor = label_colour}
var. bear_elliot_label_2 = [Link]{na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_up, text = na, textcolor = label_colour}
var. bear_elliot_label_3 = [Link]{na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_down, text = na, textcolor = label_colour}
var. bear_elliot_label_4 = [Link]{na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_up, text = na, textcolor = label_colour}
var. bear_elliot_label_5 = [Link]{na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_down, text = na, textcolor = label_colour}
var. bear_elliot_label_6 = [Link]{na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_up, text = na, textcolor = label_colour}
var. bear_elliot_label_7 = [Link]{na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_down, text = na, textcolor = label_colour}

if [Link]() and pa.bear_elliot() and [Link] then


if show_bear_elliot then
line.set_xy1(bear_elliot_line_1, slpbi_3, slp_3)
line.set_xy2(bear_elliot_line_1, shpbi_3, shp_3)
line.set_xy1(bear_elliot_line_2, shpbi_3, shp_3)
line.set_xy2(bear_elliot_line_2, slpbi_2, slp_2)
line.set_xy1(bear_elliot_line_3, slpbi_2, slp_2)
line.set_xy2(bear_elliot_line_3, shpbi_2, shp_2)
line.set_xy1(bear_elliot_line_4, shpbi_2, shp_2)
line.set_xy2(bear_elliot_line_4, slpbi_1, slp_1)
line.set_xy1(bear_elliot_line_5, slpbi_1, slp_1)
line.set_xy2(bear_elliot_line_5, shpbi_1, shp_1)
line.set_xy1(bear_elliot_line_6, shpbi_1, shp_1)
line.set_xy2(bear_elliot_line_6, slpbi_0, slp_0)
line.set_xy1(bear_elliot_line_7, slpbi_0, slp_0)
line.set_xy2(bear_elliot_line_7, shpbi_0, shp_0)
label.set_xy(bear_elliot_label_1, shpbi_3, shp_3)
label.set_xy(bear_elliot_label_2, slpbi_2, slp_2)
label.set_xy(bear_elliot_label_3, shpbi_2, shp_2)
label.set_xy(bear_elliot_label_4, slpbi_1, slp_1)
label.set_xy(bear_elliot_label_5, shpbi_1, shp_1)
label.set_xy(bear_elliot_label_6, slpbi_0, slp_0)
label.set_xy(bear_elliot_label_7, shpbi_0, shp_0)
label.set_text(bear_elliot_label_1, '1 (' + [Link]([Link](shrr_3,
2)) + ')')
label.set_text(bear_elliot_label_2, '2 (' + [Link]([Link](slrr_2,
2)) + ')')
label.set_text(bear_elliot_label_3, '3 (' + [Link]([Link](shrr_2,
2)) + ')')
label.set_text(bear_elliot_label_4, '4 (' + [Link]([Link](slrr_1,
2)) + ')')
label.set_text(bear_elliot_label_5, '5 (' + [Link]([Link](shrr_1,
2)) + ')')
label.set_text(bear_elliot_label_6, 'A (' + [Link]([Link](slrr_0,
2)) + ')')
label.set_text(bear_elliot_label_7, 'BEAR ELLIOT WAVE\nB (' +
[Link]([Link](shrr_0, 2)) + ')')
if bear_elliot_alert then
alert('Bearish Elliot Wave')

var. bull_elliot_line_1 = [Link]{na, na, na, na, color = bull_pattern_colour,


width = 2}
var. bull_elliot_line_2 = [Link]{na, na, na, na, color = bull_pattern_colour,
width = 2}
var. bull_elliot_line_3 = [Link]{na, na, na, na, color = bull_pattern_colour,
width = 2}
var. bull_elliot_line_4 = [Link]{na, na, na, na, color = bull_pattern_colour,
width = 2}
var. bull_elliot_line_5 = [Link]{na, na, na, na, color = bull_pattern_colour,
width = 2}
var. bull_elliot_line_6 = [Link]{na, na, na, na, color = bull_pattern_colour,
width = 2}
var. bull_elliot_line_7 = [Link]{na, na, na, na, color = bull_pattern_colour,
width = 2}
var. bull_elliot_label_1 = [Link]{na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_up, text = na, textcolor = label_colour}
var. bull_elliot_label_2 = [Link]{na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_down, text = na, textcolor = label_colour}
var. bull_elliot_label_3 = [Link]{na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_up, text = na, textcolor = label_colour}
var. bull_elliot_label_4 = [Link]{na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_down, text = na, textcolor = label_colour}
var. bull_elliot_label_5 = [Link]{na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_up, text = na, textcolor = label_colour}
var. bull_elliot_label_6 = [Link]{na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_down, text = na, textcolor = label_colour}
var. bull_elliot_label_7 = [Link]{na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_up, text = na, textcolor = label_colour}

if [Link]() and pa.bull_elliot() and [Link]


if show_bull_elliot
line.set_xy1(bull_elliot_line_1, shpbi_3, shp_3)
line.set_xy2(bull_elliot_line_1, slpbi_3, slp_3)
line.set_xy1(bull_elliot_line_2, slpbi_3, slp_3)
line.set_xy2(bull_elliot_line_2, shpbi_2, shp_2)
line.set_xy1(bull_elliot_line_3, shpbi_2, shp_2)
line.set_xy2(bull_elliot_line_3, slpbi_2, slp_2)
line.set_xy1(bull_elliot_line_4, slpbi_2, slp_2)
line.set_xy2(bull_elliot_line_4, shpbi_1, shp_1)
line.set_xy1(bull_elliot_line_5, shpbi_1, shp_1)
line.set_xy2(bull_elliot_line_5, slpbi_1, slp_1)
line.set_xy1(bull_elliot_line_6, slpbi_1, slp_1)
line.set_xy2(bull_elliot_line_6, shpbi_0, shp_0)
line.set_xy1(bull_elliot_line_7, shpbi_0, shp_0)
line.set_xy2(bull_elliot_line_7, slpbi_0, slp_0)
label.set_xy(bull_elliot_label_1, slpbi_3, slp_3)
label.set_xy(bull_elliot_label_2, shpbi_2, shp_2)
label.set_xy(bull_elliot_label_3, slpbi_2, slp_2)
label.set_xy(bull_elliot_label_4, shpbi_1, shp_1)
label.set_xy(bull_elliot_label_5, slpbi_1, slp_1)
label.set_xy(bull_elliot_label_6, shpbi_0, shp_0)
label.set_xy(bull_elliot_label_7, slpbi_0, slp_0)
label.set_text(bull_elliot_label_1, '1 (' + [Link]([Link](slrr_3,
2)) + ')')
label.set_text(bull_elliot_label_2, '2 (' + [Link]([Link](shrr_2,
2)) + ')')
label.set_text(bull_elliot_label_3, '3 (' + [Link]([Link](slrr_2,
2)) + ')')
label.set_text(bull_elliot_label_4, '4 (' + [Link]([Link](shrr_1,
2)) + ')')
label.set_text(bull_elliot_label_5, '5 (' + [Link]([Link](slrr_1,
2)) + ')')
label.set_text(bull_elliot_label_6, 'A (' + [Link]([Link](shrr_0,
2)) + ')')
label.set_text(bull_elliot_label_7, 'BULL ELLIOT WAVE\nB (' +
[Link]([Link](slrr_0, 2)) + ')')
if bull_elliot_alert
alert('Bullish Elliot Wave')

--// ALTERNATE FLAG //

var bear_alt_flag_line_1 = [Link](na, na, na, na, color = bear_pattern_colour,


width = 2)
var bear_alt_flag_line_2 = [Link](na, na, na, na, color = bear_pattern_colour,
width = 2)
var bear_alt_flag_line_3 = [Link](na, na, na, na, color = dot_colour, style =
line.style_dashed)
var bear_alt_flag_label_1 = [Link](na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_down, text = 'A', textcolor = label_colour)
var bear_alt_flag_label_2 = [Link](na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_up, text = na, textcolor = label_colour)
var bear_alt_flag_label_3 = [Link](na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_down, text = na, textcolor = label_colour)

if [Link]() and pa.bear_alt_flag(ab_ratio, bc_ratio) and [Link]


if show_bear_alt_flag
line.set_xy1(bear_alt_flag_line_1, shpbi_1, shp_1)
line.set_xy2(bear_alt_flag_line_1, slpbi_0, slp_0)
line.set_xy1(bear_alt_flag_line_2, slpbi_0, slp_0)
line.set_xy2(bear_alt_flag_line_2, shpbi_0, shp_0)
line.set_xy1(bear_alt_flag_line_3, shpbi_0, shp_0)
line.set_xy2(bear_alt_flag_line_3, shpbi_0 - 1, shp_0)
label.set_xy(bear_alt_flag_label_1, shpbi_1, shp_1)
label.set_xy(bear_alt_flag_label_2, slpbi_0, slp_0)
label.set_xy(bear_alt_flag_label_3, shpbi_0, shp_0)
label.set_text(bear_alt_flag_label_2, 'B (' +
[Link]([Link](slrr_0, 2)) + ')')
label.set_text(bear_alt_flag_label_3, 'BEAR ALT. FLAG\nC (' +
[Link]([Link](shrr_0, 2)) + ')')
if bear_alt_flag_alert
alert('Bearish Alt. Flag')

var bull_alt_flag_line_1 = [Link](na, na, na, na, color = bull_pattern_colour,


width = 2)
var bull_alt_flag_line_2 = [Link](na, na, na, na, color = bull_pattern_colour,
width = 2)
var bull_alt_flag_line_3 = [Link](na, na, na, na, color = dot_colour, style =
line.style_dashed)
var bull_alt_flag_label_1 = [Link](na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_up, text = 'A', textcolor = label_colour)
var bull_alt_flag_label_2 = [Link](na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_down, text = na, textcolor = label_colour)
var bull_alt_flag_label_3 = [Link](na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_up, text = na, textcolor = label_colour)

if [Link]() and pa.bull_alt_flag(ab_ratio, bc_ratio) and [Link]


if show_bull_alt_flag
line.set_xy1(bull_alt_flag_line_1, slpbi_1, slp_1)
line.set_xy2(bull_alt_flag_line_1, shpbi_0, shp_0)
line.set_xy1(bull_alt_flag_line_2, shpbi_0, shp_0)
line.set_xy2(bull_alt_flag_line_2, slpbi_0, slp_0)
line.set_xy1(bull_alt_flag_line_3, slpbi_0, slp_0)
line.set_xy2(bull_alt_flag_line_3, slpbi_0 - 1, slp_0)
label.set_xy(bull_alt_flag_label_1, slpbi_1, slp_1)
label.set_xy(bull_alt_flag_label_2, shpbi_0, shp_0)
label.set_xy(bull_alt_flag_label_3, slpbi_0, slp_0)
label.set_text(bull_alt_flag_label_2, 'B (' +
[Link]([Link](shrr_0, 2)) + ')')
label.set_text(bull_alt_flag_label_3, 'BULL ALT. FLAG\nC (' +
[Link]([Link](slrr_0, 2)) + ')')
if bull_alt_flag_alert
alert('Bullish Alt. Flag')

--// FLAG //

var bear_flag_line_1 = [Link](na, na, na, na, color = bear_pattern_colour, width


= 2)
var bear_flag_line_2 = [Link](na, na, na, na, color = bear_pattern_colour, width
= 2)
var bear_flag_line_3 = [Link](na, na, na, na, color = dot_colour, style =
line.style_dashed)
var bear_flag_label_1 = [Link](na, na, color = [Link](54, 58, 69, 100), style
= label.style_label_down, text = 'A', textcolor = label_colour)
var bear_flag_label_2 = [Link](na, na, color = [Link](54, 58, 69, 100), style
= label.style_label_up, text = na, textcolor = label_colour)
var bear_flag_label_3 = [Link](na, na, color = [Link](54, 58, 69, 100), style
= label.style_label_down, text = na, textcolor = label_colour)
var bear_flag_label_4 = [Link](na, na, color = [Link](54, 58, 69, 100), style
= label.style_label_up, text = na, textcolor = label_colour)
var bear_flag_label_5 = [Link](na, na, color = [Link](54, 58, 69, 100), style
= label.style_label_down, text = na, textcolor = label_colour)

if [Link]() and pa.bear_flag(ab_ratio, bc_ratio, be_ratio) and [Link]


if show_bear_flag
berr = (shp_0 - slp_1) / (shp_2 - slp_1) * 100
line.set_xy1(bear_flag_line_1, shpbi_2, shp_2)
line.set_xy2(bear_flag_line_1, slpbi_1, slp_1)
line.set_xy1(bear_flag_line_2, slpbi_1, slp_1)
line.set_xy2(bear_flag_line_2, slpbi_0, slp_0)
line.set_xy1(bear_flag_line_3, shpbi_1, shp_1)
line.set_xy2(bear_flag_line_3, shpbi_0, shp_0)
label.set_xy(bear_flag_label_1, shpbi_2, shp_2)
label.set_xy(bear_flag_label_2, slpbi_1, slp_1)
label.set_xy(bear_flag_label_3, shpbi_1, shp_1)
label.set_xy(bear_flag_label_4, slpbi_0, slp_0)
label.set_xy(bear_flag_label_5, shpbi_0, shp_0)
label.set_text(bear_flag_label_2, 'B (' + [Link]([Link](slrr_1,
2)) + ')')
label.set_text(bear_flag_label_3, 'C (' + [Link]([Link](shrr_1,
2)) + ')')
label.set_text(bear_flag_label_4, 'D (' + [Link]([Link](slrr_0,
2)) + ')')
label.set_text(bear_flag_label_5, 'BEAR FLAG\nE (' +
[Link]([Link](berr, 2)) + ')')
if bear_flag_alert
alert('Bearish Flag')

var bull_flag_line_1 = [Link](na, na, na, na, color = bull_pattern_colour, width


= 2)
var bull_flag_line_2 = [Link](na, na, na, na, color = bull_pattern_colour, width
= 2)
var bull_flag_line_3 = [Link](na, na, na, na, color = dot_colour, style =
line.style_dashed)
var bull_flag_label_1 = [Link](na, na, color = [Link](54, 58, 69, 100), style
= label.style_label_up, text = 'A', textcolor = label_colour)
var bull_flag_label_2 = [Link](na, na, color = [Link](54, 58, 69, 100), style
= label.style_label_down, text = na, textcolor = label_colour)
var bull_flag_label_3 = [Link](na, na, color = [Link](54, 58, 69, 100), style
= label.style_label_up, text = na, textcolor = label_colour)
var bull_flag_label_4 = [Link](na, na, color = [Link](54, 58, 69, 100), style
= label.style_label_down, text = na, textcolor = label_colour)
var bull_flag_label_5 = [Link](na, na, color = [Link](54, 58, 69, 100), style
= label.style_label_up, text = na, textcolor = label_colour)

if [Link]() and pa.bull_flag(ab_ratio, bc_ratio, be_ratio) and [Link]


if show_bull_flag
berr = (shp_1 - slp_0) / (shp_1 - slp_2) * 100
line.set_xy1(bull_flag_line_1, slpbi_2, slp_2)
line.set_xy2(bull_flag_line_1, shpbi_1, shp_1)
line.set_xy1(bull_flag_line_2, shpbi_1, shp_1)
line.set_xy2(bull_flag_line_2, shpbi_0, shp_0)
line.set_xy1(bull_flag_line_3, slpbi_1, slp_1)
line.set_xy2(bull_flag_line_3, slpbi_0, slp_0)
label.set_xy(bull_flag_label_1, slpbi_2, slp_2)
label.set_xy(bull_flag_label_2, shpbi_1, shp_1)
label.set_xy(bull_flag_label_3, slpbi_1, slp_1)
label.set_xy(bull_flag_label_4, shpbi_0, shp_0)
label.set_xy(bull_flag_label_5, slpbi_0, slp_0)
label.set_text(bull_flag_label_2, 'B (' + [Link]([Link](shrr_1,
2)) + ')')
label.set_text(bull_flag_label_3, 'C (' + [Link]([Link](slrr_1,
2)) + ')')
label.set_text(bull_flag_label_4, 'D (' + [Link]([Link](shrr_0,
2)) + ')')
label.set_text(bull_flag_label_5, 'BULL FLAG\nE (' +
[Link]([Link](berr, 2)) + ')')
if bull_flag_alert
alert('Bullish Flag')

--// ASCENDING HEAD AND SHOULDERS //

var bear_asc_head_shoulders_line_1 = [Link](na, na, na, na, color =


bear_pattern_colour, width = 2)
var bear_asc_head_shoulders_line_2 = [Link](na, na, na, na, color =
bear_pattern_colour, width = 2)
var bear_asc_head_shoulders_line_3 = [Link](na, na, na, na, color =
bear_pattern_colour, width = 2)
var bear_asc_head_shoulders_line_4 = [Link](na, na, na, na, color =
bear_pattern_colour, width = 2)
var bear_asc_head_shoulders_line_5 = [Link](na, na, na, na, color = dot_colour,
style = line.style_dashed)
var bear_asc_head_shoulders_line_6 = [Link](na, na, na, na, color = dot_colour,
style = line.style_dashed)
var bear_asc_head_shoulders_label_1 = [Link](na, na, color = [Link](54, 58,
69, 100), style = label.style_label_down, text = 'BEAR ASC. HEAD AND SHOULDERS',
textcolor = label_colour)

if [Link]() and pa.bear_asc_head_shoulders() and [Link]


if show_bear_asc_head_shoulders
line.set_xy1(bear_asc_head_shoulders_line_1, shpbi_2, shp_2)
line.set_xy2(bear_asc_head_shoulders_line_1, slpbi_1, slp_1)
line.set_xy1(bear_asc_head_shoulders_line_2, slpbi_1, slp_1)
line.set_xy2(bear_asc_head_shoulders_line_2, shpbi_1, shp_1)
line.set_xy1(bear_asc_head_shoulders_line_3, shpbi_1, shp_1)
line.set_xy2(bear_asc_head_shoulders_line_3, slpbi_0, slp_0)
line.set_xy1(bear_asc_head_shoulders_line_4, slpbi_0, slp_0)
line.set_xy2(bear_asc_head_shoulders_line_4, shpbi_0, shp_0)
line.set_xy1(bear_asc_head_shoulders_line_5, shpbi_2, shp_2)
line.set_xy2(bear_asc_head_shoulders_line_5, shpbi_1, shp_1)
line.set_xy1(bear_asc_head_shoulders_line_6, shpbi_1, shp_1)
line.set_xy2(bear_asc_head_shoulders_line_6, shpbi_0, shp_0)
label.set_xy(bear_asc_head_shoulders_label_1, shpbi_1, shp_1)
if bear_asc_head_shoulders_alert
alert('Bearish Asc. Head and Shoulders')

var bull_asc_head_shoulders_line_1 = [Link](na, na, na, na, color =


bull_pattern_colour, width = 2)
var bull_asc_head_shoulders_line_2 = [Link](na, na, na, na, color =
bull_pattern_colour, width = 2)
var bull_asc_head_shoulders_line_3 = [Link](na, na, na, na, color =
bull_pattern_colour, width = 2)
var bull_asc_head_shoulders_line_4 = [Link](na, na, na, na, color =
bull_pattern_colour, width = 2)
var bull_asc_head_shoulders_line_5 = [Link](na, na, na, na, color = dot_colour,
style = line.style_dashed)
var bull_asc_head_shoulders_line_6 = [Link](na, na, na, na, color = dot_colour,
style = line.style_dashed)
var bull_asc_head_shoulders_label_1 = [Link](na, na, color = [Link](54, 58,
69, 100), style = label.style_label_up, text = 'BULL ASC. HEAD AND SHOULDERS',
textcolor = label_colour)

if [Link]() and pa.bull_asc_head_shoulders() and [Link]


if show_bull_asc_head_shoulders
line.set_xy1(bull_asc_head_shoulders_line_1, slpbi_2, slp_2)
line.set_xy2(bull_asc_head_shoulders_line_1, shpbi_1, shp_1)
line.set_xy1(bull_asc_head_shoulders_line_2, shpbi_1, shp_1)
line.set_xy2(bull_asc_head_shoulders_line_2, slpbi_1, slp_1)
line.set_xy1(bull_asc_head_shoulders_line_3, slpbi_1, slp_1)
line.set_xy2(bull_asc_head_shoulders_line_3, shpbi_0, shp_0)
line.set_xy1(bull_asc_head_shoulders_line_4, shpbi_0, shp_0)
line.set_xy2(bull_asc_head_shoulders_line_4, slpbi_0, slp_0)
line.set_xy1(bull_asc_head_shoulders_line_5, slpbi_2, slp_2)
line.set_xy2(bull_asc_head_shoulders_line_5, slpbi_1, slp_1)
line.set_xy1(bull_asc_head_shoulders_line_6, slpbi_1, slp_1)
line.set_xy2(bull_asc_head_shoulders_line_6, slpbi_0, slp_0)
label.set_xy(bull_asc_head_shoulders_label_1, slpbi_1, slp_1)
if bull_asc_head_shoulders_alert
alert('Bullish Asc. Head and Shoulders')

--// DESCENDING HEAD AND SHOULDERS //

var bear_desc_head_shoulders_line_1 = [Link](na, na, na, na, color =


bear_pattern_colour, width = 2)
var bear_desc_head_shoulders_line_2 = [Link](na, na, na, na, color =
bear_pattern_colour, width = 2)
var bear_desc_head_shoulders_line_3 = [Link](na, na, na, na, color =
bear_pattern_colour, width = 2)
var bear_desc_head_shoulders_line_4 = [Link](na, na, na, na, color =
bear_pattern_colour, width = 2)
var bear_desc_head_shoulders_line_5 = [Link](na, na, na, na, color = dot_colour,
style = line.style_dashed)
var bear_desc_head_shoulders_line_6 = [Link](na, na, na, na, color = dot_colour,
style = line.style_dashed)
var bear_desc_head_shoulders_label_1 = [Link](na, na, color = [Link](54, 58,
69, 100), style = label.style_label_down, text = 'BEAR DESC. HEAD AND SHOULDERS',
textcolor = label_colour)

if [Link]() and pa.bear_desc_head_shoulders() and [Link]


if show_bear_desc_head_shoulders
line.set_xy1(bear_desc_head_shoulders_line_1, shpbi_2, shp_2)
line.set_xy2(bear_desc_head_shoulders_line_1, slpbi_1, slp_1)
line.set_xy1(bear_desc_head_shoulders_line_2, slpbi_1, slp_1)
line.set_xy2(bear_desc_head_shoulders_line_2, shpbi_1, shp_1)
line.set_xy1(bear_desc_head_shoulders_line_3, shpbi_1, shp_1)
line.set_xy2(bear_desc_head_shoulders_line_3, slpbi_0, slp_0)
line.set_xy1(bear_desc_head_shoulders_line_4, slpbi_0, slp_0)
line.set_xy2(bear_desc_head_shoulders_line_4, shpbi_0, shp_0)
line.set_xy1(bear_desc_head_shoulders_line_5, shpbi_2, shp_2)
line.set_xy2(bear_desc_head_shoulders_line_5, shpbi_1, shp_1)
line.set_xy1(bear_desc_head_shoulders_line_6, shpbi_1, shp_1)
line.set_xy2(bear_desc_head_shoulders_line_6, shpbi_0, shp_0)
label.set_xy(bear_desc_head_shoulders_label_1, shpbi_1, shp_1)
if bear_desc_head_shoulders_alert
alert('Bearish Desc. Head and Shoulders')

var bull_desc_head_shoulders_line_1 = [Link](na, na, na, na, color =


bull_pattern_colour, width = 2)
var bull_desc_head_shoulders_line_2 = [Link](na, na, na, na, color =
bull_pattern_colour, width = 2)
var bull_desc_head_shoulders_line_3 = [Link](na, na, na, na, color =
bull_pattern_colour, width = 2)
var bull_desc_head_shoulders_line_4 = [Link](na, na, na, na, color =
bull_pattern_colour, width = 2)
var bull_desc_head_shoulders_line_5 = [Link](na, na, na, na, color = dot_colour,
style = line.style_dashed)
var bull_desc_head_shoulders_line_6 = [Link](na, na, na, na, color = dot_colour,
style = line.style_dashed)
var bull_desc_head_shoulders_label_1 = [Link](na, na, color = [Link](54, 58,
69, 100), style = label.style_label_up, text = 'BULL DESC. HEAD AND SHOULDERS',
textcolor = label_colour)

if [Link]() and pa.bull_desc_head_shoulders() and [Link]


if show_bull_desc_head_shoulders
line.set_xy1(bull_desc_head_shoulders_line_1, slpbi_2, slp_2)
line.set_xy2(bull_desc_head_shoulders_line_1, shpbi_1, shp_1)
line.set_xy1(bull_desc_head_shoulders_line_2, shpbi_1, shp_1)
line.set_xy2(bull_desc_head_shoulders_line_2, slpbi_1, slp_1)
line.set_xy1(bull_desc_head_shoulders_line_3, slpbi_1, slp_1)
line.set_xy2(bull_desc_head_shoulders_line_3, shpbi_0, shp_0)
line.set_xy1(bull_desc_head_shoulders_line_4, shpbi_0, shp_0)
line.set_xy2(bull_desc_head_shoulders_line_4, slpbi_0, slp_0)
line.set_xy1(bull_desc_head_shoulders_line_5, slpbi_2, slp_2)
line.set_xy2(bull_desc_head_shoulders_line_5, slpbi_1, slp_1)
line.set_xy1(bull_desc_head_shoulders_line_6, slpbi_1, slp_1)
line.set_xy2(bull_desc_head_shoulders_line_6, slpbi_0, slp_0)
label.set_xy(bull_desc_head_shoulders_label_1, slpbi_1, slp_1)
if bull_desc_head_shoulders_alert
alert('Bullish Desc. Head and Shoulders')

--// HEAD AND SHOULDERS //

var bear_head_shoulders_line_1 = [Link](na, na, na, na, color =


bear_pattern_colour, width = 2)
var bear_head_shoulders_line_2 = [Link](na, na, na, na, color =
bear_pattern_colour, width = 2)
var bear_head_shoulders_line_3 = [Link](na, na, na, na, color =
bear_pattern_colour, width = 2)
var bear_head_shoulders_line_4 = [Link](na, na, na, na, color =
bear_pattern_colour, width = 2)
var bear_head_shoulders_line_5 = [Link](na, na, na, na, color = dot_colour, style
= line.style_dashed)
var bear_head_shoulders_line_6 = [Link](na, na, na, na, color = dot_colour, style
= line.style_dashed)
var bear_head_shoulders_label_1 = [Link](na, na, color = [Link](54, 58, 69,
100), style = label.style_label_down, text = 'BEAR HEAD AND SHOULDERS', textcolor =
label_colour)

if [Link]() and pa.bear_head_shoulders() and [Link]


if show_bear_head_shoulders
line.set_xy1(bear_head_shoulders_line_1, shpbi_2, shp_2)
line.set_xy2(bear_head_shoulders_line_1, slpbi_1, slp_1)
line.set_xy1(bear_head_shoulders_line_2, slpbi_1, slp_1)
line.set_xy2(bear_head_shoulders_line_2, shpbi_1, shp_1)
line.set_xy1(bear_head_shoulders_line_3, shpbi_1, shp_1)
line.set_xy2(bear_head_shoulders_line_3, slpbi_0, slp_0)
line.set_xy1(bear_head_shoulders_line_4, slpbi_0, slp_0)
line.set_xy2(bear_head_shoulders_line_4, shpbi_0, shp_0)
line.set_xy1(bear_head_shoulders_line_5, shpbi_2, shp_2)
line.set_xy2(bear_head_shoulders_line_5, shpbi_1, shp_1)
line.set_xy1(bear_head_shoulders_line_6, shpbi_1, shp_1)
line.set_xy2(bear_head_shoulders_line_6, shpbi_0, shp_0)
label.set_xy(bear_head_shoulders_label_1, shpbi_1, shp_1)
if bear_head_shoulders_alert
alert('Bearish Head and Shoulders')

var bull_head_shoulders_line_1 = [Link](na, na, na, na, color =


bull_pattern_colour, width = 2)
var bull_head_shoulders_line_2 = [Link](na, na, na, na, color =
bull_pattern_colour, width = 2)
var bull_head_shoulders_line_3 = [Link](na, na, na, na, color =
bull_pattern_colour, width = 2)
var bull_head_shoulders_line_4 = [Link](na, na, na, na, color =
bull_pattern_colour, width = 2)
var bull_head_shoulders_line_5 = [Link](na, na, na, na, color = dot_colour, style
= line.style_dashed)
var bull_head_shoulders_line_6 = [Link](na, na, na, na, color = dot_colour, style
= line.style_dashed)
var bull_head_shoulders_label_1 = [Link](na, na, color = [Link](54, 58, 69,
100), style = label.style_label_up, text = 'BULL HEAD AND SHOULDERS', textcolor =
label_colour)

if [Link]() and pa.bull_head_shoulders() and [Link]


if show_bull_head_shoulders
line.set_xy1(bull_head_shoulders_line_1, slpbi_2, slp_2)
line.set_xy2(bull_head_shoulders_line_1, shpbi_1, shp_1)
line.set_xy1(bull_head_shoulders_line_2, shpbi_1, shp_1)
line.set_xy2(bull_head_shoulders_line_2, slpbi_1, slp_1)
line.set_xy1(bull_head_shoulders_line_3, slpbi_1, slp_1)
line.set_xy2(bull_head_shoulders_line_3, shpbi_0, shp_0)
line.set_xy1(bull_head_shoulders_line_4, shpbi_0, shp_0)
line.set_xy2(bull_head_shoulders_line_4, slpbi_0, slp_0)
line.set_xy1(bull_head_shoulders_line_5, slpbi_2, slp_2)
line.set_xy2(bull_head_shoulders_line_5, slpbi_1, slp_1)
line.set_xy1(bull_head_shoulders_line_6, slpbi_1, slp_1)
line.set_xy2(bull_head_shoulders_line_6, slpbi_0, slp_0)
label.set_xy(bull_head_shoulders_label_1, slpbi_1, slp_1)
if bull_head_shoulders_alert
alert('Bullish Head and Shoulders')

--// PENNANT //

var bear_pennant_line_1 = [Link](na, na, na, na, color = bear_pattern_colour,


width = 2)
var bear_pennant_line_2 = [Link](na, na, na, na, color = bear_pattern_colour,
width = 2)
var bear_pennant_line_3 = [Link](na, na, na, na, color = dot_colour, style =
line.style_dashed)
var bear_pennant_label_1 = [Link](na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_down, text = 'A', textcolor = label_colour)
var bear_pennant_label_2 = [Link](na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_up, text = na, textcolor = label_colour)
var bear_pennant_label_3 = [Link](na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_down, text = na, textcolor = label_colour)
var bear_pennant_label_4 = [Link](na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_up, text = na, textcolor = label_colour)
var bear_pennant_label_5 = [Link](na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_down, text = na, textcolor = label_colour)

if [Link]() and pa.bear_pennant(ab_ratio, bc_ratio) and [Link]


if show_bear_pennant
line.set_xy1(bear_pennant_line_1, shpbi_2, shp_2)
line.set_xy2(bear_pennant_line_1, slpbi_1, slp_1)
line.set_xy1(bear_pennant_line_2, slpbi_1, slp_1)
line.set_xy2(bear_pennant_line_2, slpbi_0, slp_0)
line.set_xy1(bear_pennant_line_3, shpbi_1, shp_1)
line.set_xy2(bear_pennant_line_3, shpbi_0, shp_0)
label.set_xy(bear_pennant_label_1, shpbi_2, shp_2)
label.set_xy(bear_pennant_label_2, slpbi_1, slp_1)
label.set_xy(bear_pennant_label_3, shpbi_1, shp_1)
label.set_xy(bear_pennant_label_4, slpbi_0, slp_0)
label.set_xy(bear_pennant_label_5, shpbi_0, shp_0)
label.set_text(bear_pennant_label_2, 'B (' +
[Link]([Link](slrr_1, 2)) + ')')
label.set_text(bear_pennant_label_3, 'C (' +
[Link]([Link](shrr_1, 2)) + ')')
label.set_text(bear_pennant_label_4, 'D (' +
[Link]([Link](slrr_0, 2)) + ')')
label.set_text(bear_pennant_label_5, 'BEAR PENNANT\nE (' +
[Link]([Link](shrr_0, 2)) + ')')
if bear_pennant_alert
alert('Bearish Pennant')

var bull_pennant_line_1 = [Link](na, na, na, na, color = bull_pattern_colour,


width = 2)
var bull_pennant_line_2 = [Link](na, na, na, na, color = bull_pattern_colour,
width = 2)
var bull_pennant_line_3 = [Link](na, na, na, na, color = dot_colour, style =
line.style_dashed)
var bull_pennant_label_1 = [Link](na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_up, text = 'A', textcolor = label_colour)
var bull_pennant_label_2 = [Link](na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_down, text = na, textcolor = label_colour)
var bull_pennant_label_3 = [Link](na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_up, text = na, textcolor = label_colour)
var bull_pennant_label_4 = [Link](na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_down, text = na, textcolor = label_colour)
var bull_pennant_label_5 = [Link](na, na, color = [Link](54, 58, 69, 100),
style = label.style_label_up, text = na, textcolor = label_colour)

if [Link]() and pa.bull_pennant(ab_ratio, bc_ratio) and [Link]


if show_bull_pennant
line.set_xy1(bull_pennant_line_1, slpbi_2, slp_2)
line.set_xy2(bull_pennant_line_1, shpbi_1, shp_1)
line.set_xy1(bull_pennant_line_2, shpbi_1, shp_1)
line.set_xy2(bull_pennant_line_2, shpbi_0, shp_0)
line.set_xy1(bull_pennant_line_3, slpbi_1, slp_1)
line.set_xy2(bull_pennant_line_3, slpbi_0, slp_0)
label.set_xy(bull_pennant_label_1, slpbi_2, slp_2)
label.set_xy(bull_pennant_label_2, shpbi_1, shp_1)
label.set_xy(bull_pennant_label_3, slpbi_1, slp_1)
label.set_xy(bull_pennant_label_4, shpbi_0, shp_0)
label.set_xy(bull_pennant_label_5, slpbi_0, slp_0)
label.set_text(bull_pennant_label_2, 'B (' +
[Link]([Link](shrr_1, 2)) + ')')
label.set_text(bull_pennant_label_3, 'C (' +
[Link]([Link](slrr_1, 2)) + ')')
label.set_text(bull_pennant_label_4, 'D (' +
[Link]([Link](shrr_0, 2)) + ')')
label.set_text(bull_pennant_label_5, 'BULL PENNANT\nE (' +
[Link]([Link](slrr_0, 2)) + ')')
if bull_pennant_alert
alert('Bullish Pennant')

--// ASCENDING WEDGE //


var asc_wedge_line_1 = [Link](na, na, na, na, color = neutral_pattern_colour,
width = 2)
var asc_wedge_line_2 = [Link](na, na, na, na, color = neutral_pattern_colour,
width = 2)
var asc_wedge_label_1 = [Link](na, na, color = [Link](54, 58, 69, 100), style
= label.style_none, text = 'ASC. WEDGE', textcolor = label_colour)

if [Link]() and pa.asc_wedge() and [Link]


if show_asc_wedge
line.set_xy1(asc_wedge_line_1, slpbi_1, slp_1)
line.set_xy2(asc_wedge_line_1, slpbi_0, slp_0)
line.set_xy1(asc_wedge_line_2, shpbi_1, shp_1)
line.set_xy2(asc_wedge_line_2, shpbi_0, shp_0)
label.set_xy(asc_wedge_label_1, shpbi_0, shp_0)
label.set_style(asc_wedge_label_1, label.style_label_down)
if asc_wedge_alert
alert('Asc. Wedge')

if [Link]() and pa.asc_wedge() and [Link]


if show_asc_wedge
line.set_xy1(asc_wedge_line_1, slpbi_1, slp_1)
line.set_xy2(asc_wedge_line_1, slpbi_0, slp_0)
line.set_xy1(asc_wedge_line_2, shpbi_1, shp_1)
line.set_xy2(asc_wedge_line_2, shpbi_0, shp_0)
label.set_xy(asc_wedge_label_1, slpbi_0, slp_0)
label.set_style(asc_wedge_label_1, label.style_label_up)
if asc_wedge_alert
alert('Asc. Wedge')

--// DESCENDING WEDGE //

var desc_wedge_line_1 = [Link](na, na, na, na, color = neutral_pattern_colour,


width = 2)
var desc_wedge_line_2 = [Link](na, na, na, na, color = neutral_pattern_colour,
width = 2)
var desc_wedge_label_1 = [Link](na, na, color = [Link](54, 58, 69, 100),
style = label.style_none, text = 'DESC. WEDGE', textcolor = label_colour)

if [Link]() and pa.desc_wedge() and [Link]


if show_desc_wedge
line.set_xy1(desc_wedge_line_1, slpbi_1, slp_1)
line.set_xy2(desc_wedge_line_1, slpbi_0, slp_0)
line.set_xy1(desc_wedge_line_2, shpbi_1, shp_1)
line.set_xy2(desc_wedge_line_2, shpbi_0, shp_0)
label.set_xy(desc_wedge_label_1, shpbi_0, shp_0)
label.set_style(desc_wedge_label_1, label.style_label_down)
if desc_wedge_alert
alert('Desc. Wedge')

if [Link]() and pa.desc_wedge() and [Link]


if show_desc_wedge
line.set_xy1(desc_wedge_line_1, slpbi_1, slp_1)
line.set_xy2(desc_wedge_line_1, slpbi_0, slp_0)
line.set_xy1(desc_wedge_line_2, shpbi_1, shp_1)
line.set_xy2(desc_wedge_line_2, shpbi_0, shp_0)
label.set_xy(desc_wedge_label_1, slpbi_0, slp_0)
label.set_style(desc_wedge_label_1, label.style_label_up)
if desc_wedge_alert
alert('Desc. Wedge')

-- WEDGE

var wedge_line_1 = [Link](na, na, na, na, color = neutral_pattern_colour, width =


2)
var wedge_line_2 = [Link](na, na, na, na, color = neutral_pattern_colour, width =
2)
var wedge_label_1 = [Link](na, na, color = [Link](54, 58, 69, 100), style =
label.style_none, text = 'WEDGE', textcolor = label_colour)

if [Link]() and [Link]() and [Link]


if show_wedge
line.set_xy1(wedge_line_1, slpbi_1, slp_1)
line.set_xy2(wedge_line_1, slpbi_0, slp_0)
line.set_xy1(wedge_line_2, shpbi_1, shp_1)
line.set_xy2(wedge_line_2, shpbi_0, shp_0)
label.set_xy(wedge_label_1, shpbi_0, shp_0)
label.set_style(wedge_label_1, label.style_label_down)
if wedge_alert
alert('Wedge')

if [Link]() and [Link]() and [Link]


if show_wedge
line.set_xy1(wedge_line_1, slpbi_1, slp_1)
line.set_xy2(wedge_line_1, slpbi_0, slp_0)
line.set_xy1(wedge_line_2, shpbi_1, shp_1)
line.set_xy2(wedge_line_2, shpbi_0, shp_0)
label.set_xy(wedge_label_1, slpbi_0, slp_0)
label.set_style(wedge_label_1, label.style_label_up)
if wedge_alert
alert('Wedge')

You might also like