Join useThinkScript to post your question to a community of 21,000+ developers and traders.
Horserider, I just found this indicator and was hoping you could help me as I am pretty new at this. I put this on my chart and I cannot tell which is Supply/Demand and which is Support/Resistance. Is the Green/Red cloud Supply/Demand? Is there also a way to allow for Support/Resistance to be turned off and on? Thank you for your work and sharing this.Support/Resistance or Supply/Demand whichever you prefer. Based on pivots and ATR. Change the n to get zones for the time you wish.
Update: ATR is now straight lines and user can input ATR multiple.
New share: https://tos.mx/Lv0FsZi
https://tos.mx/VeGhwv
Code:# Support/Resistance Zones around pivot S/R points. #Added the zones using ATR to the Theotrade Pivots study. #Additions by Horserider 9/30/2019 input length = 252; input averageType = AverageType.WILDERS; def ATR = MovingAverage(averageType, TrueRange(high, close, low), length); # User Inputs input n = 21; #hint n: periods used for pivot calculations. def Num_Dev_Dn = ATR; def Num_Dev_up = -ATR; # Internal Script Reference script LinePlot { input BarID = 0; input Value = 0; input BarOrigin = 0; def ThisBar = HighestAll(BarOrigin); def ValueLine = if BarOrigin == ThisBar then Value else Double.NaN; plot P = if ThisBar - BarID <= BarOrigin then HighestAll(ValueLine) else Double.NaN; } # Variables def o = open; def h = high; def l = low; def c = close; def bar = BarNumber(); def BBar = bar == HighestAll(bar); # Parent High def ParentHigh = HighestAll(h); def ParentHBarOrigin = if h == ParentHigh then bar else ParentHBarOrigin[1]; def ParentHBarID = bar - HighestAll(ParentHBarOrigin); # R1 def hh = fold i = 1 to n + 1 with p = 1 while p do h > GetValue(h, -i); def PivotH = if (bar > n and h == Highest(h, n) and hh) then h else Double.NaN; def PHValue = if !IsNaN(PivotH) then PivotH else PHValue[1]; def PHBarOrigin = if !IsNaN(PivotH) then bar else PHBarOrigin[1]; def PHBarID = bar - PHBarOrigin; # R2 def R2PHValue = if PHBarOrigin != PHBarOrigin[1] then PHValue[1] else R2PHValue[1]; def R2PHBarOrigin = if PHBarOrigin != PHBarOrigin[1] then PHBarOrigin[1] else R2PHBarOrigin[1]; def R2PHBarID = bar - R2PHBarOrigin; # R3 def R3PHValue = if R2PHBarOrigin != R2PHBarOrigin[1] then R2PHValue[1] else R3PHValue[1]; def R3PHBarOrigin = if R2PHBarOrigin != R2PHBarOrigin[1] then R2PHBarOrigin[1] else R3PHBarOrigin[1]; def R3PHBarID = bar - R3PHBarOrigin; # R4 def R4PHValue = if R3PHBarOrigin != R3PHBarOrigin[1] then R3PHValue[1] else R4PHValue[1]; def R4PHBarOrigin = if R3PHBarOrigin != R3PHBarOrigin[1] then R3PHBarOrigin[1] else R4PHBarOrigin[1]; def R4PHBarID = bar - R4PHBarOrigin; # Parent Low def ParentLow = LowestAll(l); def ParentLBarOrigin = if l == ParentLow then bar else ParentLBarOrigin[1]; def ParentLBarID = bar - HighestAll(ParentLBarOrigin); # S1 def ll = fold j = 1 to n + 1 with q = 1 while q do l < GetValue(l, -j); def PivotL = if (bar > n and l == Lowest(l, n) and ll) then l else Double.NaN; def PLValue = if !IsNaN(PivotL) then PivotL else PLValue[1]; def PLBarOrigin = if !IsNaN(PivotL) then bar else PLBarOrigin[1]; def PLBarID = bar - PLBarOrigin; # S2 def S2PLValue = if PLBarOrigin != PLBarOrigin[1] then PLValue[1] else S2PLValue[1]; def S2PLBarOrigin = if PLBarOrigin != PLBarOrigin[1] then PLBarOrigin[1] else S2PLBarOrigin[1]; def S2PLBarID = bar - S2PLBarOrigin; # S3 def S3PLValue = if S2PLBarOrigin != S2PLBarOrigin[1] then S2PLValue[1] else S3PLValue[1]; def S3PLBarOrigin = if S2PLBarOrigin != S2PLBarOrigin[1] then S2PLBarOrigin[1] else S3PLBarOrigin[1]; def S3PLBarID = bar - S3PLBarOrigin; # S4 def S4PLValue = if S3PLBarOrigin != S3PLBarOrigin[1] then S3PLValue[1] else S4PLValue[1]; def S4PLBarOrigin = if S3PLBarOrigin != S3PLBarOrigin[1] then S3PLBarOrigin[1] else S4PLBarOrigin[1]; def S4PLBarID = bar - S4PLBarOrigin; # Plots plot PR1 = LinePlot(BarID = ParentHBarID, Value = ParentHigh, BarOrigin = HighestAll(ParentHBarOrigin)); PR1.SetDefaultColor(Color.GREEN); #addChartBubble(Bar == HighestAll(ParentHBarOrigin), ParentHigh, "High", color.yellow, 1); plot R1 = LinePlot(BarID = PHBarID, Value = PHValue, BarOrigin = PHBarOrigin); R1.SetDefaultColor(Color.GREEN); #AddChartBubble(bar == HighestAll(PHBarOrigin), PHValue, "R1", Color.GREEN, 1); plot LowerBandr1 = R1 + Num_Dev_Dn ; plot UpperBandr1 = R1 + Num_Dev_up ; AddCloud(UpperBandr1, R1, Color.GREEN, Color.RED ); AddCloud(LowerBandr1, R1, Color.GREEN, Color.RED ); lowerbandr1.hide(); upperbandr1.hide(); plot R2 = LinePlot(BarID = R2PHBarID, Value = R2PHValue, BarOrigin = R2PHBarOrigin); R2.SetDefaultColor(Color.GREEN); #AddChartBubble(bar == HighestAll(R2PHBarOrigin), PHValue, "R2", Color.GREEN, 1); plot LowerBandr2 = R2 + Num_Dev_Dn ; plot UpperBandr2 = R2 + Num_Dev_up ; AddCloud(UpperBandr2, R2, Color.GREEN, Color.RED); AddCloud(LowerBandr2, R2, Color.GREEN, Color.RED); lowerbandr2.hide(); upperbandr2.hide(); plot R3 = LinePlot(BarID = R3PHBarID, Value = R3PHValue, BarOrigin = R3PHBarOrigin); R3.SetDefaultColor(Color.GREEN); #AddChartBubble(bar == HighestAll(R3PHBarOrigin), PHValue, "R3", Color.GREEN, 1); plot LowerBandr3 = R3 + Num_Dev_Dn ; plot UpperBandr3 = R3 + Num_Dev_up ; AddCloud(UpperBandr3, R3, Color.LIGHT_GRAY, Color.LIGHT_ORANGE); AddCloud(LowerBandr3, R3, Color.LIGHT_GRAY, Color.LIGHT_ORANGE); lowerbandr3.hide(); upperbandr3.hide(); plot R4 = LinePlot(BarID = R4PHBarID, Value = R4PHValue, BarOrigin = R4PHBarOrigin); R4.SetDefaultColor(Color.GREEN); #AddChartBubble(bar == HighestAll(R4PHBarOrigin), PHValue, "R4", Color.GREEN, 1); plot LowerBandr4 = R4 + Num_Dev_Dn ; plot UpperBandr4 = R4 + Num_Dev_up ; AddCloud(UpperBandr4, R4, Color.LIME, Color.PINK); AddCloud(LowerBandr4, R4, Color.LIME, Color.PINK); lowerbandr4.hide(); upperbandr4.hide(); plot PS1 = LinePlot(BarID = ParentLBarID, Value = ParentLow, BarOrigin = HighestAll(ParentLBarOrigin)); PS1.SetDefaultColor(Color.RED); #AddChartBubble(bar == HighestAll(ParentLBarOrigin), ParentLow, "Low", Color.YELLOW, 0); plot S1 = LinePlot(BarID = PLBarID, Value = PLValue, BarOrigin = PLBarOrigin); S1.SetDefaultColor(Color.RED); #AddChartBubble(bar == HighestAll(PLBarOrigin), PLValue, "S1", Color.RED, 0); plot LowerBands1 = S1 + Num_Dev_Dn ; plot UpperBands1 = S1 + Num_Dev_up ; AddCloud(UpperBands1, S1, Color.GREEN, Color.RED); AddCloud(LowerBands1, S1, Color.GREEN, Color.RED); lowerbands1.hide(); upperbands1.hide(); plot S2 = LinePlot(BarID = S2PLBarID, Value = S2PLValue, BarOrigin = S2PLBarOrigin); S2.SetDefaultColor(Color.RED); #AddChartBubble(bar == HighestAll(S2PLBarOrigin), PLValue, "S2", Color.RED, 0); plot LowerBands2 = S2 + Num_Dev_Dn ; plot UpperBands2 = S2 + Num_Dev_up ; AddCloud(UpperBands2, S2, Color.GREEN, Color.RED); AddCloud(LowerBands2, S2, Color.GREEN, Color.RED); lowerbands2.hide(); upperbands2.hide(); plot S3 = LinePlot(BarID = S3PLBarID, Value = S3PLValue, BarOrigin = S3PLBarOrigin); S3.SetDefaultColor(Color.RED); #AddChartBubble(bar == HighestAll(S3PLBarOrigin), PLValue, "S3", Color.RED, 0); plot LowerBands3 = S3 + Num_Dev_Dn ; plot UpperBands3 = S3 + Num_Dev_up ; AddCloud(UpperBands3, S3, Color.LIGHT_GRAY, Color.LIGHT_ORANGE); AddCloud(LowerBands3, S3, Color.LIGHT_GRAY, Color.LIGHT_ORANGE); lowerbands3.hide(); upperbands3.hide(); plot S4 = LinePlot(BarID = S4PLBarID, Value = S4PLValue, BarOrigin = S4PLBarOrigin); S4.SetDefaultColor(Color.RED); #AddChartBubble(bar == HighestAll(S4PLBarOrigin), PLValue, "S4", Color.RED, 0); plot LowerBands4 = S4 + Num_Dev_Dn ; plot UpperBands4 = S4 + Num_Dev_up ; AddCloud(UpperBands4, S4, Color.LIME, Color.PINK); AddCloud(LowerBands4, S4, Color.LIME, Color.PINK); lowerbands4.hide(); upperbands4.hide(); plot BearScan = if (close crosses below S1) or (close crosses below S2) then close else Double.NaN; plot BullScan = if (close crosses above R1) or (close crosses above R2) then close else Double.NaN; # End Code Fractal Array
No, there is no separate Supply/Demand and Support/Resistance.Horserider, I just found this indicator and was hoping you could help me as I am pretty new at this. I put this on my chart and I cannot tell which is Supply/Demand and which is Support/Resistance. Is the Green/Red cloud Supply/Demand? Is there also a way to allow for Support/Resistance to be turned off and on? Thank you for your work and sharing this.
Support & Resistance repaint on purpose. If an instrument breaks through the Support or Resistance, it is important to draw the new levels.@horserider is there a way to make this a MTF script? I use a 2m chart but would like to see the zones based off the 15m chart on the 2m chart. Can this be achieved?
Can you share the indicators you use? or where can i find it? Thank youHey @BenTen @horserider Wanted to get your thoughts, do you think the below chart is same as what you guys have posted above with the exception of labels or this is something we can incorporate into your existing code.Thank You for all your help
View attachment 1665
Did you know that by clicking on a member's name, you can easily check when they were last seen on the uTS forum? It's a great way to keep track of who's been around recently, and who hasn't. Speaking of which, it looks like @mohitdas has not been around in a while.Can you share the indicators you use? or where can i find it? Thank you
Can someone write the code to scan for PR1 and PS1?Horserider, I just found this indicator and was hoping you could help me as I am pretty new at this. I put this on my chart and I cannot tell which is Supply/Demand and which is Support/Resistance. Is the Green/Red cloud Supply/Demand? Is there also a way to allow for Support/Resistance to be turned off and on? Thank you for your work and sharing this.
anybody can help on scanning the support and resistance pivots?Can someone write the code to scan for PR1 and PS1?
Can someone write the code to scan for PR1 and PS1?
This script is too complex for the scanner, watchlists, or conditional orders.anybody can help on scanning the support and resistance pivots?
Start a new thread and receive assistance from our community.
useThinkScript is the #1 community of stock market investors using indicators and other tools to power their trading strategies. Traders of all skill levels use our forums to learn about scripting and indicators, help each other, and discover new ways to gain an edge in the markets.
We get it. Our forum can be intimidating, if not overwhelming. With thousands of topics, tens of thousands of posts, our community has created an incredibly deep knowledge base for stock traders. No one can ever exhaust every resource provided on our site.
If you are new, or just looking for guidance, here are some helpful links to get you started.