ProRealCode - Trading & Coding with ProRealTime™
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?
I 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 ?
Moderation 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).
My apologies for any confusion. Here is the code .
Here’s my attempt! Others will be able to code it better I’m sure!!
RR
defparam drawonlastbaronly=true
defparam calculateonlastbars=3000
BarsBefore = 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
endif
if 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”)
endif
if 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
endif
endif
return
I cant thank you enough for your efforts much apprecaited. I will give it a go
It didnt quite work….I think we need help on this but thanks for input again .
It 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 :
defparam drawonlastbaronly=true
defparam calculateonlastbars=3000
BarsBefore = 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
endif
if 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")
endif
if 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("grey")
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("grey")
drawsegment($tradepoleB[tradepole]-5,liqL,barindex,liqL)style(dottedline4,3)coloured("grey")
else
liqL=$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")
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
endif
endif
return
//@version=5
indicator("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 = 3
var Deviation = 1
var Backstep = 1
if(indi_type==2)
Depth := 2
var last_h = 1, last_h := last_h + 1
var last_l = 1, last_l := last_l + 1
var lw = 1, var hg = 1
lw := lw + 1, hg := hg + 1
p_lw = -ta.lowestbars(Depth), p_hg = -ta.highestbars(Depth)
lowing = lw == p_lw or low - low[p_lw] > Deviation*syminfo.mintick
highing = hg == p_hg or high[p_hg] - high > Deviation*syminfo.mintick
lh = 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 : 0
if hg != p_hg and (down[1] or higher)
hg := p_hg < lw ? p_hg : 0
var zz = array.new_float()
var yy = array.new_int()
x1 = down ? lw : hg
y1 = down ? low[lw] : high[hg]
if down == down[1]
if repaint
if(array.size(zz)>0)
array.pop(zz)
array.pop(yy)
down
if down != down[1]
if down
last_h := hg
else
last_l := lw
if not repaint
nx = down?last_h:last_l
array.push(zz, (down ? low[last_l] : high[last_h]))
array.push(yy,bar_index-(down?last_l:last_h))
down
if repaint
array.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 = 0
if(array.size(zz)>=4 and array.size(yy)>=4)
for x = array.size(zz)-1 to 0
if(x<array.size(zz))
price = array.get(zz,x)
counter += 1
if(counter == 1)
value1 := price
if(counter == 2)
value2 := price
pos := array.get(yy,x)
if(counter == 3)
value3 := price
if(counter == 4)
value4 := price
break
if((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)-1
if(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 = 0
while(time[x]>=Time)
if(high[x]>hi)
hi := high[x]
res := x
x += 1
res
getLowOffset(Time)=>
x = 1, lo = low, res = 0
while(time[x]>=Time)
if(low[x]<lo)
lo := low[x]
res := x
x += 1
res
checkCross(line_array, price)=>
result = false
Prices = price
if array.size(line_array) > 0
for x = 0 to array.size(line_array)-1
Price = line.get_y1(array.get(line_array,x))
if (Prices > Price and Prices[1] <= Price) or (Prices < Price and Prices[1] >= Price)
result := true
result
operateMinorBox(price,hi_price,lo_price,Time)=>
var lastMinorExp = 0
confirm = false
if(array.size(minorBoxes)>0 and array.size(minorCrossedHigh)>0 and array.size(minorCrossedLow)>0 and array.size(minorBoxNames)>0)
x = array.size(minorBoxes)-1
if 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)/2
origCrossedHigh = 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)
else
if(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 := true
if(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)
true
else if(not array.get(minorCrossedHigh,x) and not array.get(minorCrossedLow,x))
box.set_right(array.get(minorBoxes,x),Time)
true
else 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 := time1
true
confirm
operateLiquidity(hi_price,lo_price,Time)=>
result = false
if(array.size(majorBoxLines)>0 and array.size(majorBoxLineRef)>0 and array.size(Crossed)>0)
z = array.size(majorBoxLines)-1
for x = 0 to z
line_price = line.get_y2(array.get(majorBoxLines,x))
hi_pos = getHighOffset(array.get(majorBoxLineRef,x))
lo_pos = getLowOffset(array.get(majorBoxLineRef,x))
qq = 0.0
if(array.get(majorBoxLineType,x)==0 and lo_price <= line_price)
if not array.get(Crossed,x)
result := true
qq := high[hi_pos]
if x == z
array.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)
else
array.set(Crossed,x,true)
else if(array.get(majorBoxLineType,x)==1 and hi_price >= line_price)
if not array.get(Crossed,x)
result := true
qq := low[lo_pos]
if x == z
array.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)
else
array.set(Crossed,x,true)
if not array.get(Crossed,x)
line.set_x2(array.get(majorBoxLines,x),Time)
result
major_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_confirm
alert("Major Line Confirmed.")
if alert_major_line_cross and major_line_cross
alert("Major Line Crossed.")
if alert_liquidity_line_touch and liquidity_line_touch
alert("Liquidity Line Touched.")
I am so sorry, I still cant get this to work for me. Can anyone help me please . I am an old man who is not tech savy. If it can be put into a file i will be able to import it . I know how to do that . Please help me convert this code ? best
I’m unsure what you’re struggling with; it works fine.
Guys , is there any chance we can include all the variables that Trading view has for this master pattern indicator. It has a big following on trading view. I think it will be really useful for the platform to have this? Would really appreciate it if we could have adjustments like TV?
master patter by ATS
This topic contains 26 replies,
has 5 voices, and was last updated by Kratos
6 months ago.
| Forum: | ProBuilder: Indicators & Custom Tools |
| Language: | English |
| Started: | 02/26/2024 |
| Status: | Active |
| Attachments: | 1 files |
The information collected on this form is stored in a computer file by ProRealCode to create and access your ProRealCode profile. This data is kept in a secure database for the duration of the member's membership. They will be kept as long as you use our services and will be automatically deleted after 3 years of inactivity. Your personal data is used to create your private profile on ProRealCode. This data is maintained by SAS ProRealCode, 407 rue Freycinet, 59151 Arleux, France. If you subscribe to our newsletters, your email address is provided to our service provider "MailChimp" located in the United States, with whom we have signed a confidentiality agreement. This company is also compliant with the EU/Swiss Privacy Shield, and the GDPR. For any request for correction or deletion concerning your data, you can directly contact the ProRealCode team by email at privacy@prorealcode.com If you would like to lodge a complaint regarding the use of your personal data, you can contact your data protection supervisory authority.