master patter by ATS
Forums › ProRealTime English forum › ProBuilder support › master patter by ATS
- This topic has 23 replies, 5 voices, and was last updated 3 days ago by
LucasBest.
-
-
03/16/2025 at 1:54 PM #244961
HI GUys , i would like this amazing indicator originally desibngen by ATS and then been coded on Trading view . Its an amzing tool. It draws a box and has a line protruding out of it at the 50% mark.
This line remains in place until another box is formed . How is the box formed ? Its when market is in contraction phase and we get a HL then a LH in a consecutive time. see examples on TV. I have the code fo rit and i have attached a couple of u tube s on it ?
https://www.tradingview.com/x/scvXjbNd/
here is the u tube
I assure you thi will realy help finding points to buy and sell….
There is also liquidity lines
Also I have the code in Trading view maybe someone knows how to change into Prorealtime code?
03/16/2025 at 1:59 PM #244962I have an indicator called Master Pattern line (ATS ) coded on TV pinescript. I would like it on my PRT. Is there anyone who can convert the code please? We can share this on thie platform and there are lots of eduction of how to use it on You Tube. Its an amazing tool i assure you ?
03/16/2025 at 3:19 PM #244965Moderation message:
Your 2 new topics are now merged to your same topic from a year ago on the very same subject, during which you already did not copy and paste your code to be converted, and not described the rules for coding it. Copying and pasting the source code for a code converstion request is not “optional”, screenshots and videos don’t replace it, they are only useful additions to the mandatory source code script.
Please see this form for free code conversions: https://www.prorealcode.com/free-code-conversion/
The choice is yours:
– providing source code here in the next post, for someone knowledgeable in both TV and PRT languages to assess whether it can be converted to PRT and to publish its conversion for free in the forum
– or ask for a quote for a private paid code conversion in the “trading programming services” in the “help” section from main menu above, direct link: https://www.prorealcode.com/trading-programming-services/
– or, should none of the above occur, taking into account last year conversation, the third option would be to be considered as not really wanting a code conversion for spamming purposes (will imply posts removal by moderation).
03/19/2025 at 11:22 AM #24504003/22/2025 at 5:54 PM #245136Here’s my attempt! Others will be able to code it better I’m sure!!
RR
defparam drawonlastbaronly=true
defparam calculateonlastbars=3000BarsBefore = max(BarsBefore,1)
BarsAfter = max(BarsAfter,1)
StartBack = max(0,startback)BarLookBack = BarsAfter + 1
if low[BarsAfter] < lowest[BarsBefore](low)[BarLookBack] THEN
if low[BarsAfter] = lowest[BarLookBack](low) THEN
a = a + 1
$supportbar[a] = barindex[barsafter]
$supportvalue[a] = low[barsafter]
endif
endif
if high[BarsAfter] > highest[BarsBefore](high)[BarLookBack] THEN
if high[BarsAfter] = highest[BarLookBack](high) THEN
b = b + 1
$resistancebar[b] = barindex[barsafter]
$resistancevalue[b] = high[barsafter]
endif
endifif a>10 then
drawtext(“🔼”,$supportbar[a],$supportvalue[a],dialog,bold,20)coloured(“lime”)
drawtext(“🔼”,$supportbar[a-1],$supportvalue[a-1],dialog,bold,20)coloured(“lime”)
endifif b>10 then
drawtext(“🔽”,$resistancebar[b],$resistancevalue[b],dialog,bold,20)coloured(“red”)
drawtext(“🔽”,$resistancebar[b-1],$resistancevalue[b-1],dialog,bold,20)coloured(“red”)
endif
//////compression point
once tradepole=0
if b>3 and a>3 then
if $resistancevalue[b-1]>$resistancevalue[b] and $supportvalue[a-1]<$supportvalue[a] then
compress=1
tradepole=tradepole+1
$tradepoleB[tradepole]=barindex
$tradepoleP[tradepole]=$resistancevalue[b-1]+(($supportvalue[a-1]-$resistancevalue[b-1])/2)
else
compress=0
endif
if compress=1 then
drawsegment($tradepoleB[tradepole]-5,$tradepoleP[tradepole],barindex,$tradepoleP[tradepole])style(dottedline4,5)coloured(“white”)
if $resistancevalue[b-1]<$supportvalue[a-1] then
liqH=$resistancevalue[b-1]
liqL=$tradepoleP[tradepole]-(liqh-$tradepoleP[tradepole])
drawsegment($tradepoleB[tradepole]-5,liqH,barindex,liqH)style(dottedline4,3)coloured(“white”)
drawsegment($tradepoleB[tradepole]-5,liqL,barindex,liqL)style(dottedline4,3)coloured(“white”)
else
liqL=$supportvalue[a-1]
liqH=$tradepoleP[tradepole]+($tradepoleP[tradepole]-liql)
drawsegment($tradepoleB[tradepole]-5,liqH,barindex,liqH)style(dottedline4,3)coloured(“white”)
drawsegment($tradepoleB[tradepole]-5,liqL,barindex,liqL)style(dottedline4,3)coloured(“white”)
endif
else
if $resistancevalue[b-1]>$resistancevalue[b] then
drawsegment($tradepoleB[tradepole],$tradepoleP[tradepole],barindex,$tradepoleP[tradepole])style(dottedline4,5)coloured(“red”)
drawsegment($tradepoleB[tradepole],liqH,barindex,liqH)style(dottedline4,3)coloured(“red”)
drawsegment($tradepoleB[tradepole],liqL,barindex,liqL)style(dottedline4,3)coloured(“red”)
liq150=$tradepoleP[tradepole]-liql
drawsegment($tradepoleB[tradepole],liqL-liq150,barindex,liqL-liq150)style(dottedline1,5)coloured(“red”)
elsif $supportvalue[a-1]<$supportvalue[a] then
drawsegment($tradepoleB[tradepole],$tradepoleP[tradepole],barindex,$tradepoleP[tradepole])style(dottedline4,5)coloured(“lime”)
drawsegment($tradepoleB[tradepole],liqH,barindex,liqH)style(dottedline4,3)coloured(“lime”)
drawsegment($tradepoleB[tradepole],liqL,barindex,liqL)style(dottedline4,3)coloured(“lime”)
liq150=$tradepoleP[tradepole]-liql
drawsegment($tradepoleB[tradepole],liqh+liq150,barindex,liqh+liq150)style(dottedline1,5)coloured(“lime”)
endif
endifendif
return1 user thanked author for this post.
03/23/2025 at 2:11 AM #24514603/23/2025 at 2:15 AM #24514703/23/2025 at 8:12 AM #245150It didnt quite work….I think we need help on this but thanks for input again .
It is coded for black background. If you are using white background, try this :
For white background screen12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576defparam drawonlastbaronly=truedefparam calculateonlastbars=3000BarsBefore = max(BarsBefore,1)BarsAfter = max(BarsAfter,1)StartBack = max(0,startback)BarLookBack = BarsAfter + 1if low[BarsAfter] < lowest[BarsBefore](low)[BarLookBack] THENif low[BarsAfter] = lowest[BarLookBack](low) THENa = a + 1$supportbar[a] = barindex[barsafter]$supportvalue[a] = low[barsafter]endifendifif high[BarsAfter] > highest[BarsBefore](high)[BarLookBack] THENif high[BarsAfter] = highest[BarLookBack](high) THENb = b + 1$resistancebar[b] = barindex[barsafter]$resistancevalue[b] = high[barsafter]endifendifif a>10 thendrawtext("🔼",$supportbar[a],$supportvalue[a],dialog,bold,20)coloured("lime")drawtext("🔼",$supportbar[a-1],$supportvalue[a-1],dialog,bold,20)coloured("lime")endifif b>10 thendrawtext("🔽",$resistancebar[b],$resistancevalue[b],dialog,bold,20)coloured("red")drawtext("🔽",$resistancebar[b-1],$resistancevalue[b-1],dialog,bold,20)coloured("red")endif//////compression pointonce tradepole=0if b>3 and a>3 thenif $resistancevalue[b-1]>$resistancevalue[b] and $supportvalue[a-1]<$supportvalue[a] thencompress=1tradepole=tradepole+1$tradepoleB[tradepole]=barindex$tradepoleP[tradepole]=$resistancevalue[b-1]+(($supportvalue[a-1]-$resistancevalue[b-1])/2)elsecompress=0endifif compress=1 thendrawsegment($tradepoleB[tradepole]-5,$tradepoleP[tradepole],barindex,$tradepoleP[tradepole])style(dottedline4,5)coloured("grey")if $resistancevalue[b-1]<$supportvalue[a-1] thenliqH=$resistancevalue[b-1]liqL=$tradepoleP[tradepole]-(liqh-$tradepoleP[tradepole])drawsegment($tradepoleB[tradepole]-5,liqH,barindex,liqH)style(dottedline4,3)coloured("grey")drawsegment($tradepoleB[tradepole]-5,liqL,barindex,liqL)style(dottedline4,3)coloured("grey")elseliqL=$supportvalue[a-1]liqH=$tradepoleP[tradepole]+($tradepoleP[tradepole]-liql)drawsegment($tradepoleB[tradepole]-5,liqH,barindex,liqH)style(dottedline4,3)coloured("grey")drawsegment($tradepoleB[tradepole]-5,liqL,barindex,liqL)style(dottedline4,3)coloured("grey")endifelseif $resistancevalue[b-1]>$resistancevalue[b] thendrawsegment($tradepoleB[tradepole],$tradepoleP[tradepole],barindex,$tradepoleP[tradepole])style(dottedline4,5)coloured("red")drawsegment($tradepoleB[tradepole],liqH,barindex,liqH)style(dottedline4,3)coloured("red")drawsegment($tradepoleB[tradepole],liqL,barindex,liqL)style(dottedline4,3)coloured("red")liq150=$tradepoleP[tradepole]-liqldrawsegment($tradepoleB[tradepole],liqL-liq150,barindex,liqL-liq150)style(dottedline1,5)coloured("red")elsif $supportvalue[a-1]<$supportvalue[a] thendrawsegment($tradepoleB[tradepole],$tradepoleP[tradepole],barindex,$tradepoleP[tradepole])style(dottedline4,5)coloured("lime")drawsegment($tradepoleB[tradepole],liqH,barindex,liqH)style(dottedline4,3)coloured("lime")drawsegment($tradepoleB[tradepole],liqL,barindex,liqL)style(dottedline4,3)coloured("lime")liq150=$tradepoleP[tradepole]-liqldrawsegment($tradepoleB[tradepole],liqh+liq150,barindex,liqh+liq150)style(dottedline1,5)coloured("lime")endifendifendifreturn3 users thanked author for this post.
03/23/2025 at 8:17 AM #245151Original code for tradingview123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318//@version=5indicator("Master Pattern Indicator",overlay = true,max_boxes_count = 500, max_lines_count = 500, max_bars_back = 5000)Major_Box_Color = input.color(color.rgb(81, 55, 226),"Major Box Color")show_minor_boxes = input.bool(false,"Show Minor Boxes")Minor_Box_Color = input.color(color.rgb(163, 160, 160),"Minor Box Color")Major_Expansion_Line_Color = input.color(color.rgb(238, 238, 238),"Major Expansion Line Color")Major_Expansion_Line_Style = input.string("Solid","Major Expansion Line Style",["Solid","Dotted","Dashed"])Major_Expansion_Line_Thickness = input.int(2,"Major Expansion Line Thickness")show_minor_expansion = input.bool(true,"Show Minor Expansion Lines")Minor_Expansion_Line_Color = input.color(color.rgb(241, 238, 239),"Minor Expansion Line Color")Minor_Expansion_Line_Style = input.string("Dashed","Minor Expansion Line Style",["Solid","Dotted","Dashed"])Minor_Expansion_Line_Thickness = input.int(1,"Minor Expansion Line Thickness")Sell_Line_Color = input.color(color.red,"Sell Side Liquidity Line Color")Sell_Line_Style = input.string("Dotted","Sell Side Liquidity Line Style",["Solid","Dotted","Dashed"])Sell_Line_Thickness = input.int(1,"Sell Side Liquidity Line Thickness")Buy_Line_Color = input.color(color.green,"Buy Side Liquidity Line Color")Buy_Line_Style = input.string("Dotted","Buy Side Liquidity Line Style",["Solid","Dotted","Dashed"])Buy_Line_Thickness = input.int(1,"Buy Side Liquidity Line Thickness")max_bars = input.int(500,"Max Bars Back")indi_type = input.int(1,"Type")alert_major_line_confirm = input.bool(true,"Major Line Confirmation",group = "Alerts")alert_major_line_cross = input.bool(true,"Major Line Crossing",group = "Alerts")alert_liquidity_line_touch = input.bool(true,"Liquidity Line Touching",group = "Alerts")//n = input.int(title="Fractals Periods", defval=2, minval=2)repaint = true// // UpFractal// bool upflagDownFrontier = true// bool upflagUpFrontier0 = true// bool upflagUpFrontier1 = true// bool upflagUpFrontier2 = true// bool upflagUpFrontier3 = true// bool upflagUpFrontier4 = true// for i = 1 to n// upflagDownFrontier := upflagDownFrontier and (high[n-i] < high[n])// upflagUpFrontier0 := upflagUpFrontier0 and (high[n+i] < high[n])// upflagUpFrontier1 := upflagUpFrontier1 and (high[n+1] <= high[n] and high[n+i + 1] < high[n])// upflagUpFrontier2 := upflagUpFrontier2 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+i + 2] < high[n])// upflagUpFrontier3 := upflagUpFrontier3 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+i + 3] < high[n])// upflagUpFrontier4 := upflagUpFrontier4 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+4] <= high[n] and high[n+i + 4] < high[n])// flagUpFrontier = upflagUpFrontier0 or upflagUpFrontier1 or upflagUpFrontier2 or upflagUpFrontier3 or upflagUpFrontier4// upFractal = (upflagDownFrontier and flagUpFrontier)// // downFractal// bool downflagDownFrontier = true// bool downflagUpFrontier0 = true// bool downflagUpFrontier1 = true// bool downflagUpFrontier2 = true// bool downflagUpFrontier3 = true// bool downflagUpFrontier4 = true// for i = 1 to n// downflagDownFrontier := downflagDownFrontier and (low[n-i] > low[n])// downflagUpFrontier0 := downflagUpFrontier0 and (low[n+i] > low[n])// downflagUpFrontier1 := downflagUpFrontier1 and (low[n+1] >= low[n] and low[n+i + 1] > low[n])// downflagUpFrontier2 := downflagUpFrontier2 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+i + 2] > low[n])// downflagUpFrontier3 := downflagUpFrontier3 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+i + 3] > low[n])// downflagUpFrontier4 := downflagUpFrontier4 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+4] >= low[n] and low[n+i + 4] > low[n])// flagDownFrontier = downflagUpFrontier0 or downflagUpFrontier1 or downflagUpFrontier2 or downflagUpFrontier3 or downflagUpFrontier4// downFractal = (downflagDownFrontier and flagDownFrontier)// var zz = array.new_float()// var yy = array.new_int()// if upFractal// array.push(zz, high)// array.push(yy,bar_index)// if downFractal// array.push(zz, low)// array.push(yy,bar_index)var Depth = 3var Deviation = 1var Backstep = 1if(indi_type==2)Depth := 2var last_h = 1, last_h := last_h + 1var last_l = 1, last_l := last_l + 1var lw = 1, var hg = 1lw := lw + 1, hg := hg + 1p_lw = -ta.lowestbars(Depth), p_hg = -ta.highestbars(Depth)lowing = lw == p_lw or low - low[p_lw] > Deviation*syminfo.mintickhighing = hg == p_hg or high[p_hg] - high > Deviation*syminfo.minticklh = ta.barssince(not highing[1]), ll = ta.barssince(not lowing[1])down = ta.barssince(not (lh > ll)) >= Backstep, lower = low[lw] > low[p_lw], higher = high[hg] < high[p_hg]if lw != p_lw and (not down[1] or lower)lw := p_lw < hg ? p_lw : 0if hg != p_hg and (down[1] or higher)hg := p_hg < lw ? p_hg : 0var zz = array.new_float()var yy = array.new_int()x1 = down ? lw : hgy1 = down ? low[lw] : high[hg]if down == down[1]if repaintif(array.size(zz)>0)array.pop(zz)array.pop(yy)downif down != down[1]if downlast_h := hgelselast_l := lwif not repaintnx = down?last_h:last_larray.push(zz, (down ? low[last_l] : high[last_h]))array.push(yy,bar_index-(down?last_l:last_h))downif repaintarray.push(zz, y1)array.push(yy,bar_index-x1)allowPlot()=>(last_bar_index-bar_index<=max_bars)checkTrigger()=>value1 = 0.0, value2 = 0.0, value3 = 0.0, value4 = 0.0, counter = 0, res = false, pos = 0if(array.size(zz)>=4 and array.size(yy)>=4)for x = array.size(zz)-1 to 0if(x<array.size(zz))price = array.get(zz,x)counter += 1if(counter == 1)value1 := priceif(counter == 2)value2 := pricepos := array.get(yy,x)if(counter == 3)value3 := priceif(counter == 4)value4 := pricebreakif((value1<value2 and value1>value3 and value4>value2) or(value1>value2 and value1<value3 and value4<value2))res := true[res, math.max(value1,value2), math.min(value1,value2), pos]var minorBoxes = array.new_box()var minorBoxNames = array.new_string()var minorCrossedHigh = array.new_bool()var minorCrossedLow = array.new_bool()var expansionLines = array.new_line()var minorExpansionLines = array.new_line()[RES,Val1,Val2,POS] = checkTrigger()if(RES and allowPlot())array.push(minorBoxes, box.new(time[bar_index-POS],Val1,time,Val2,xloc=xloc.bar_time,border_color=(show_minor_boxes?Minor_Box_Color:na),bgcolor=(show_minor_boxes?Minor_Box_Color:na)))array.push(minorBoxNames, "Active Box")array.push(minorCrossedHigh, false), array.push(minorCrossedLow, false)updateExpansionLines(Time,Line,clear,checktimes)=>if(array.size(Line)>0)for x = 0 to array.size(Line)-1if(x < array.size(checktimes) and x < array.size(Line))if(Time>array.get(checktimes,x))line.set_x2(array.get(Line,x),Time)if(clear)array.remove(Line,x)var check = array.new_int()var checkMinor = array.new_int()updateExpansionLines(time,expansionLines,false,check)updateExpansionLines(time,minorExpansionLines,false,checkMinor)var majorBoxLines = array.new_line()var majorBoxLineType = array.new_int()var majorBoxLineRef = array.new_int()var Crossed = array.new_bool()getHighOffset(Time)=>x = 1, hi = high, res = 0while(time[x]>=Time)if(high[x]>hi)hi := high[x]res := xx += 1resgetLowOffset(Time)=>x = 1, lo = low, res = 0while(time[x]>=Time)if(low[x]<lo)lo := low[x]res := xx += 1rescheckCross(line_array, price)=>result = falsePrices = priceif array.size(line_array) > 0for x = 0 to array.size(line_array)-1Price = line.get_y1(array.get(line_array,x))if (Prices > Price and Prices[1] <= Price) or (Prices < Price and Prices[1] >= Price)result := trueresultoperateMinorBox(price,hi_price,lo_price,Time)=>var lastMinorExp = 0confirm = falseif(array.size(minorBoxes)>0 and array.size(minorCrossedHigh)>0 and array.size(minorCrossedLow)>0 and array.size(minorBoxNames)>0)x = array.size(minorBoxes)-1if array.get(minorBoxNames,x)!="NULL"top = box.get_top(array.get(minorBoxes,x)), bottom = box.get_bottom(array.get(minorBoxes,x))time1 = box.get_left(array.get(minorBoxes,x))time2 = box.get_right(array.get(minorBoxes,x)), ppp = bottom+(top-bottom)/2origCrossedHigh = array.get(minorCrossedHigh,x)origCrossedLow = array.get(minorCrossedLow,x)if(not array.get(minorCrossedHigh,x) and not array.get(minorCrossedLow,x))if(not barstate.islast or barstate.isconfirmed)if(price>top)array.set(minorCrossedHigh,x,true)if(price<bottom)array.set(minorCrossedLow,x,true)elseif(hi_price>top)array.set(minorCrossedHigh,x,true)if(lo_price<bottom)array.set(minorCrossedLow,x,true)if(array.get(minorCrossedHigh,x) and array.get(minorCrossedLow,x))box.set_bgcolor(array.get(minorBoxes,x),Major_Box_Color)array.set(minorBoxNames,x,"NULL")updateExpansionLines(time2,expansionLines,true,check)confirm := trueif(show_minor_expansion)updateExpansionLines(time2,minorExpansionLines,true,checkMinor)array.push(expansionLines,line.new(time2,ppp,time,ppp,xloc.bar_time,extend.none,Major_Expansion_Line_Color,(Major_Expansion_Line_Style=="Solid"?line.style_solid:Major_Expansion_Line_Style=="Dotted"?line.style_dotted:line.style_dashed),Major_Expansion_Line_Thickness))array.push(check,time2)hi_pos = getHighOffset(time2)lo_pos = getLowOffset(time2)if(not origCrossedHigh)rrr = low[lo_pos]array.push(majorBoxLines, line.new(time[lo_pos],rrr,Time,rrr,xloc.bar_time,extend.none,Buy_Line_Color,(Buy_Line_Style=="Solid"?line.style_solid:Buy_Line_Style=="Dotted"?line.style_dotted:line.style_dashed),Buy_Line_Thickness))array.push(majorBoxLineType,0)else if(not origCrossedLow)rrr = high[hi_pos]array.push(majorBoxLines, line.new(time[hi_pos],rrr,Time,rrr,xloc.bar_time,extend.none,Sell_Line_Color,(Sell_Line_Style=="Solid"?line.style_solid:Sell_Line_Style=="Dotted"?line.style_dotted:line.style_dashed),Sell_Line_Thickness))array.push(majorBoxLineType,1)array.push(majorBoxLineRef,time2)array.push(Crossed,false)trueelse if(not array.get(minorCrossedHigh,x) and not array.get(minorCrossedLow,x))box.set_right(array.get(minorBoxes,x),Time)trueelse if(show_minor_expansion and time1!=lastMinorExp)updateExpansionLines(time2,minorExpansionLines,true,checkMinor)array.push(minorExpansionLines, line.new(time2,ppp,time,ppp,xloc.bar_time,extend.none,Minor_Expansion_Line_Color,(Minor_Expansion_Line_Style=="Solid"?line.style_solid:Minor_Expansion_Line_Style=="Dotted"?line.style_dotted:line.style_dashed),Minor_Expansion_Line_Thickness))array.push(checkMinor,time2)lastMinorExp := time1trueconfirmoperateLiquidity(hi_price,lo_price,Time)=>result = falseif(array.size(majorBoxLines)>0 and array.size(majorBoxLineRef)>0 and array.size(Crossed)>0)z = array.size(majorBoxLines)-1for x = 0 to zline_price = line.get_y2(array.get(majorBoxLines,x))hi_pos = getHighOffset(array.get(majorBoxLineRef,x))lo_pos = getLowOffset(array.get(majorBoxLineRef,x))qq = 0.0if(array.get(majorBoxLineType,x)==0 and lo_price <= line_price)if not array.get(Crossed,x)result := trueqq := high[hi_pos]if x == zarray.set(majorBoxLines,x,line.new(time[hi_pos],qq,Time,qq,xloc.bar_time,extend.none,Sell_Line_Color,(Sell_Line_Style=="Solid"?line.style_solid:Sell_Line_Style=="Dotted"?line.style_dotted:line.style_dashed),Sell_Line_Thickness))array.set(majorBoxLineType,x,1)elsearray.set(Crossed,x,true)else if(array.get(majorBoxLineType,x)==1 and hi_price >= line_price)if not array.get(Crossed,x)result := trueqq := low[lo_pos]if x == zarray.set(majorBoxLines,x,line.new(time[lo_pos],qq,Time,qq,xloc.bar_time,extend.none,Buy_Line_Color,(Buy_Line_Style=="Solid"?line.style_solid:Buy_Line_Style=="Dotted"?line.style_dotted:line.style_dashed),Buy_Line_Thickness))array.set(majorBoxLineType,x,0)elsearray.set(Crossed,x,true)if not array.get(Crossed,x)line.set_x2(array.get(majorBoxLines,x),Time)resultmajor_line_confirm = operateMinorBox(close,high,low,time)major_line_cross = checkCross(expansionLines,close)liquidity_line_touch = operateLiquidity(high,low,time)if alert_major_line_confirm and major_line_confirmalert("Major Line Confirmed.")if alert_major_line_cross and major_line_crossalert("Major Line Crossed.")if alert_liquidity_line_touch and liquidity_line_touchalert("Liquidity Line Touched.") -
AuthorPosts