--// 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')