0% found this document useful (0 votes)
352 views

Master Pattern Babak

Master Pattern

Uploaded by

katrin.k1394
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)
352 views

Master Pattern Babak

Master Pattern

Uploaded by

katrin.k1394
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
You are on page 1/ 3

// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.

0
International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © Babak

//@version=5
indicator("Master Pattern [Babak]", "Babak - Master Pattern Indicator", overlay =
true, max_boxes_count = 50000, max_lines_count = 500)
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
length = input.int(3, 'Contraction Detection Lookback', minval = 1)
liqLength = input.int(20, 'Liquidity Levels', minval = 1)

showMajor = input(true, 'Show Major Pattern')


showMinor = input(true, 'Show Minor Pattern')

//Style
bullCss = input.color(color.teal, 'Bullish Pattern', inline = 'bull', group =
'Pattern Style')
showBullBox = input(true, 'Area', inline = 'bull', group = 'Pattern Style')
showBullLvl = input(true, 'Line', inline = 'bull', group = 'Pattern Style')

bearCss = input.color(color.red, 'Bearish Pattern', inline = 'bear', group =


'Pattern Style')
showBearBox = input(true, 'Area', inline = 'bear', group = 'Pattern Style')
showBearLvl = input(true, 'Line', inline = 'bear', group = 'Pattern Style')

//Liquidity Style
showLiq = input(true, 'Show Liquidity Levels', group = 'Liquidity')
bullLiqCss = input.color(color.teal, 'Upper Liquidity', group = 'Liquidity')
bearLiqCss = input.color(color.red, 'Lower Liquidity', group = 'Liquidity')

//-----------------------------------------------------------------------------}
//UDT
//-----------------------------------------------------------------------------{
type mp
box area
line avg
bool breakup
bool breakdn

//-----------------------------------------------------------------------------}
//Detect contraction
//-----------------------------------------------------------------------------{
var phy = 0., var phx = 0, var pht = 0.
var ply = 0., var plx = 0, var plt = 0.

var float top = na


var float btm = na

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

if ph
pht := math.sign(ph - phy)
phy := ph

if pht == -1 and plt == 1


top := ph
btm := ply
phx := n-length

if pl
plt := math.sign(pl - ply)
ply := pl

if pht == -1 and plt == 1


top := phy
btm := pl
plx := n-length

//-----------------------------------------------------------------------------}
//Set pattern
//-----------------------------------------------------------------------------{
var mp master = mp.new()

//Detect master pattern


isbull = high[length] > top and top > btm
isbear = low[length] < btm and top > btm

if isbull or isbear
css = isbull ? bullCss : bearCss

master.avg.set_x2(n-length)

val = math.avg(top, btm)

//Create new master pattern object


master := mp.new(
(isbull and showBullBox) or (isbear and showBearBox) ? box.new(math.max(phx,
plx), top, n-length, btm, na, bgcolor = showMinor ? color.new(css, 50) : na) : na
, (isbull and showBullLvl) or (isbear and showBearLvl) ? line.new(n-length,
val, n, val, color = showMinor ? css : na) : na
, isbull
, isbear)

top := na
btm := na

//Determine if pattern switch to major


if master.breakup
if low < master.area.get_bottom()
if not showMajor
master.area.delete()
master.avg.delete()
else
master.area.set_border_color(bullCss)
if not showMinor
master.area.set_bgcolor(color.new(bullCss, 50))
master.avg.set_color(bullCss)
else if master.breakdn
if high > master.area.get_top()
if not showMajor
master.area.delete()
master.avg.delete()
else
master.area.set_border_color(bearCss)
if not showMinor
master.area.set_bgcolor(color.new(bearCss, 50))
master.avg.set_color(bearCss)

//Set friction level x2 coordinate to current bar


if not na(master.avg)
master.avg.set_x2(n)

//-----------------------------------------------------------------------------}
//Liquidity levels
//-----------------------------------------------------------------------------{
var line liqup = na, var liqup_reach = false
var line liqdn = na, var liqdn_reach = false

liqph = ta.pivothigh(liqLength, liqLength)


liqpl = ta.pivotlow(liqLength, liqLength)

//Set upper liquidity


if liqph and showLiq
if not liqup_reach
liqup.set_x2(n-liqLength)

liqup := line.new(n-liqLength, liqph, n, liqph, color = bullLiqCss, style =


line.style_dotted)
liqup_reach := false
else if not liqup_reach and showLiq
liqup.set_x2(n)

if high > liqup.get_y1()


liqup_reach := true

//Set lower liquidity


if liqpl and showLiq
if not liqdn_reach
liqdn.set_x2(n-liqLength)

liqdn := line.new(n-liqLength, liqpl, n, liqpl, color = bearLiqCss, style =


line.style_dotted)
liqdn_reach := false
else if not liqdn_reach and showLiq
liqdn.set_x2(n)

if low < liqdn.get_y1()


liqdn_reach := true

//-----------------------------------------------------------------------------}

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy