Join useThinkScript to post your question to a community of 21,000+ developers and traders.
Have you experienced in some case "The One" cannot show the drawing in the chart for some stocks? eg. LEVI, CTVA, /BTCThis ASGOODASITGETS Indicator compliments the
DEEPWATER_THE ONE. Combined very strong combo IMHO along with the Chande Oscillator
mod note:
https://usethinkscript.com/threads/agaig-zigzag-lower-verticals-for-thinkorswim.18233/
Code:# AsGoodAsItGets Lower Indicator #CSR Buy/Sell Arrows with Short/Long Bubbles #Developed 4-23-23 First Edition 8-23-22 Revised #Updated 3/16/24 by C. Ricks declare lower; declare real_size; input atrreversal = 2.0; def priceh = MovingAverage(AverageType.EXPONENTIAL, high, 5); def pricel = MovingAverage(AverageType.EXPONENTIAL, low, 5); def EIL = ZigZagHighLow("price h" = priceh, "price l" = pricel, "percentage reversal" = .01, "absolute reversal" = .05, "atr length" = 5, "atr reversal" = atrreversal).lastL; def EIH = ZigZagHighLow("price h" = priceh, "price l" = pricel, "percentage reversal" = .01, "absolute reversal" = .05, "atr length" = 5, "atr reversal" = atrreversal).lastH; def signaldown = !isNAN(EIH); AddVerticalLine(!isNAN(EIH),"SHORT", color.Red,curve.long_dash); def signalrevBot = !isNaN(EIL); AddVerticalLine(!isNAN(EIL),"LONG", color.Green,curve.long_dash); input usealerts = yes; alert(usealerts and signaldown[1] == 1, "Short", alert.bar, sound.ding); alert(usealerts and signalrevbot[1] == 1, "Long", alert.bar, sound.ding); #End Code {/CODE}
Try the forex version page 10. SPY works with it as an example. /BTC works during working hours Monday thru Friday for me.Have you experienced in some case "The One" cannot show the drawing in the chart for some stocks? eg. LEVI, CTVA, /BTC
Yes, it does work. The result was very similar, however the drawing was much faster. Thanks!Try the forex version page 10. SPY works with it as an example. /BTC works during working hours Minday thru Friday for me.
Text alerts are only for chart alert. I don't think TOS built in alerts that will also go to my phone. Not seen it in any code either. Be great if it supported thatThis is awesome! Greatness @Deepwater !
How do you set it up to give you text alerts, for when to buy or sell? Thanks
The Chande Lower Indicator does some of this I think. More EMA workLooking at the charts today with most stocks in a down trend, it seems the best signals are for going short not long. Perhaps you can add a filter using EMA trends to filter out the buy signals or at least the weaker buy signals otherwise there are too many false positives on the long side.
#DEEPWATER_THE ONE 10/04/2025 revision 8 - Modified to Upper Study with Arrows
# Original Credit - Deepwater [https://usethinkscript.com/members/deepwater.11630/]
#https://usethinkscript.com/threads/deepwater_the-one.6518/
declare upper;
input length = 20;
input length2 = 15;
input price = close;
input averageType = AverageType.WILDERS;
input fastLength = 12;
input slowLength = 26;
input MACDLength = 9;
input averageTypeMACD = AverageType.EXPONENTIAL;
def Diff = MACD(fastLength, slowLength, MACDLength, averageTypeMACD).Diff;
def NetChgAvg = MovingAverage(averageType, price - price[1], length);
def TotChgAvg = MovingAverage(averageType, AbsValue(price - price[1]), length);
def ChgRatio = if TotChgAvg != 0 then NetChgAvg / TotChgAvg else 0;
def RSI = 50 * (ChgRatio + 1);
def RSIAvg3 = MovingAverage(averageType, (RSI), 3);
def RSIAvg5 = MovingAverage(averageType, (RSI), 5);
def RSI3OverSoldpivit = RSIAvg3 > RSIAvg3[1] and RSIAvg3[1] > RSIAvg3[2] and RSIAvg3[2] < RSIAvg3[3] and RSIAvg3[3] < RSIAvg3 [4];
def RSI3OverBoughtpivit = RSIAvg3 < RSIAvg3[1] and RSIAvg3[1] < RSIAvg3[2] and RSIAvg3[2] > RSIAvg3[3] and RSIAvg3[3] > RSIAvg3 [4];
#--------------------5 day MA
input displace = 0;
input showBreakoutSignals = no;
def MAvgExp14 = ExpAverage(price[-displace], 14);
def MAvgExp7 = ExpAverage(price[-displace], 7);
#--------------------oversold
def twoBarPivotMACD = Diff > Diff[1] and Diff[1] > Diff[2] and Diff[2] < Diff[3] and Diff[3] < Diff [4];
def overSoldRSI = RSI <= 32;
def overSoldRSIHeavy = RSI <= 30 and Diff < 0 and (close < close[7]);
def TrendReversalalert = (twoBarPivotMACD and Highest(overSoldRSI, 6) > 0) / 3;
def TrendReversal1 = (twoBarPivotMACD and RSIAvg3 < 45 and Highest(overSoldRSIHeavy, 6) > 0) / 1.4;
def TrendReversalstrongbuy = ((TrendReversal1[1] > 0 or TrendReversal1[2] > 0 or TrendReversal1[3] > 0 or TrendReversal1[4] > 0 or TrendReversal1[5] > 0 or TrendReversal1[6] > 0 or TrendReversal1[7] > 0 or TrendReversal1[8] > 0 or TrendReversal1[9] > 0 or TrendReversal1[10] > 0 or TrendReversal1[11] > 0 or TrendReversal1[12] > 0 or TrendReversal1[13] > 0 or TrendReversal1[14] > 0) and twoBarPivotMACD and RSIAvg3 < 45 and Highest(overSoldRSIHeavy, 6) > 0) / 1.1;
def TrendReversal = (twoBarPivotMACD and TrendReversalstrongbuy < 1 and Highest(overSoldRSI, 6) > 0) / 3;
# Plot small yellow arrow when small yellow condition meets and no green conditions
plot YellowArrow = if TrendReversal > 0 and TrendReversal1 <= 0 and TrendReversalstrongbuy <= 0 then low * 0.995 else Double.NaN;
YellowArrow.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
YellowArrow.SetDefaultColor(Color.YELLOW);
YellowArrow.SetLineWeight(1);
YellowArrow.HideBubble();
# Plot medium green arrow when medium green condition meets and no strong buy
plot MediumGreenArrow = if TrendReversal1 > 0 and TrendReversalstrongbuy <= 0 then low * 0.995 else Double.NaN;
MediumGreenArrow.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
MediumGreenArrow.SetDefaultColor(Color.GREEN);
MediumGreenArrow.SetLineWeight(3);
MediumGreenArrow.HideBubble();
# Plot big green arrow when big green condition meets
plot BigGreenArrow = if TrendReversalstrongbuy > 0 then low * 0.99 else Double.NaN;
BigGreenArrow.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
BigGreenArrow.SetDefaultColor(Color.GREEN);
BigGreenArrow.SetLineWeight(5);
BigGreenArrow.HideBubble();
#-----------------------Overbought
def twoBarPivotMACD1 = Diff < Diff[1] and Diff[1] < Diff[2] and Diff[2] > Diff[3] and Diff[3] > Diff [4];
def overboughtRSI = RSIAvg3 >= 65 and Diff > 0;
def TrendReversalalert20 = (twoBarPivotMACD1 and Highest(overboughtRSI[1], 7) > 0);
def TrendReversal20 = 1 - (((RSIAvg3 >= 68 and RSI < RSIAvg3[2]) and RSI3OverBoughtpivit)/ 1.5) ;
def TrendReversal20a = 1 - ((((RSIAvg3 >= 60 and RSIAvg3 < 65 )and RSI < RSIAvg3[2]) and RSI3OverBoughtpivit) / 4) ;
def TrendReversal50 = 1 - ((RSIAvg5 >= 65 and close < MAvgExp14) / 2) ;
#--------------------------RSI cumulative running total
def RSICalc1 = if RSI > 70 then 4 else if RSI < 30 then -4 else 0;
def RSICalc2 = if RSI[1] > 70 then 3 else if RSI[1] < 30 then -3 else 0;
def RSICalc3 = if RSI[2] > 70 then 1 else if RSI[2] < 30 then -1 else 0;
def RSICalc4 = if RSI[3] > 70 then 1 else if RSI[3] < 30 then -1 else 0;
def RSICalc5 = if RSI[4] > 70 then 1 else if RSI[4] < 30 then -1 else 0;
def RSICalc6 = if RSI[5] > 70 then 1 else if RSI[5] < 30 then -1 else 0;
def RSICalc7 = if RSI[6] > 70 then 1 else if RSI[6] < 30 then -1 else 0;
def RSICalc8 = if RSI[7] > 70 then 1 else if RSI[7] < 30 then -1 else 0;
def RSICalc9 = if RSI[8] > 70 then 1 else if RSI[8] < 30 then -1 else 0;
def RSICalc10 = if RSI[9] > 70 then 1 else if RSI[9] < 30 then -1 else 0;
def RSICalc11 = if RSI[10] > 70 then 1 else if RSI[10] < 30 then -1 else 0;
def RSICalc12 = if RSI[11] > 70 then 1 else if RSI[11] < 30 then -1 else 0;
def RSICalc13 = if RSI[12] > 70 then 1 else if RSI[12] < 30 then -1 else 0;
def RSICalc14 = if RSI[13] > 70 then 1 else if RSI[13] < 30 then -1 else 0;
def RSICalc15 = if RSI[14] > 70 then 1 else if RSI[14] < 30 then -1 else 0;
def RSICalc16 = if RSI[15] > 70 then 1 else if RSI[15] < 30 then -1 else 0;
def RSICalc17 = if RSI[16] > 70 then 1 else if RSI[16] < 30 then -1 else 0;
def RSICalc18 = if RSI[17] > 70 then 1 else if RSI[17] < 30 then -1 else 0;
def RSICalc19 = if RSI[18] > 70 then 1 else if RSI[18] < 30 then -1 else 0;
def RSICalc20 = if RSI[19] > 70 then 1 else if RSI[19] < 30 then -1 else 0;
def RSICalc21 = if RSI[20] > 70 then 1 else if RSI[20] < 30 then -1 else 0;
def RSICalc22 = if RSI[21] > 70 then .1 else if RSI[21] < 30 then -.1 else 0;
def RSICalc23 = if RSI[22] > 70 then .1 else if RSI[22] < 30 then -.1 else 0;
def RSICalc24 = if RSI[23] > 70 then .1 else if RSI[23] < 30 then -.1 else 0;
def RSICalc25 = if RSI[24] > 70 then .1 else if RSI[24] < 30 then -.1 else 0;
def RSICalc26 = if RSI[25] > 70 then .1 else if RSI[25] < 30 then -.1 else 0;
def RSICalc27 = if RSI[26] > 70 then .1 else if RSI[26] < 30 then -.1 else 0;
def RSICalc28 = if RSI[27] > 70 then .1 else if RSI[27] < 30 then -.1 else 0;
def RSICalc29 = if RSI[28] > 70 then .1 else if RSI[28] < 30 then -.1 else 0;
def RSICalc30 = if RSI[29] > 70 then .1 else if RSI[29] < 30 then -.1 else 0;
def RSI30DayAvg = RSICalc1 + RSICalc2 + RSICalc3 + RSICalc4 + RSICalc5 + RSICalc6 + RSICalc7 + RSICalc8 + RSICalc9 + RSICalc10 + RSICalc11 + RSICalc12 + RSICalc13 + RSICalc14 + RSICalc15 + RSICalc16 + RSICalc17 + RSICalc18 + RSICalc19 + RSICalc20 + RSICalc21 + RSICalc22 + RSICalc23 + RSICalc24 + RSICalc25 + RSICalc26 + RSICalc27 + RSICalc28 + RSICalc29 + RSICalc30;
def TrendReversal5 = 1 - (((RSI30DayAvg >= 10 and RSI30DayAvg < 15) and close < MAvgExp7) / 2) ;
def TrendReversal5a = 1 - (((RSI30DayAvg >= 16 and RSI30DayAvg < 25) and close < MAvgExp7) / 1.3) ;
def TrendReversal5b = 1 - ((RSI30DayAvg >= 25 and close < MAvgExp7) / 1.05) ;
def RedCondition = TrendReversal20 < 1 or TrendReversal20a < 1 or TrendReversal50 < 1;
def MagentaCondition = TrendReversal5 < 1 or TrendReversal5a < 1 or TrendReversal5b < 1;
# Plot down arrow when magenta condition meets after recent red condition
plot DownArrow = if MagentaCondition and Highest(RedCondition[1], 14) then high * 1.005 else Double.NaN;
DownArrow.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
DownArrow.SetDefaultColor(Color.MAGENTA);
DownArrow.SetLineWeight(3);
DownArrow.HideBubble();
I like the Modification to make it an Upper slimmed down Indicator but you stripped out a lot of valuable alerts. I'm going to run them both. About the 4 hour, I only look at 1 min to 15 minute charts mostly, I would look at a number of stock symbols but 4 hour might be too long to capture the parameters to trigger. Thanks for posting it.This is really great. To save some space on chart, converted to upper study with below,
1. It plot green buy arrow if there is green and yellow spike.
2. It plot yellow arrow (less conviction) when there is only yellow spike.
3. It will block sell (Magenta) arrow only if there is big red downward spike followed by magenta spike to avoid false signal.
Ruby:#DEEPWATER_THE ONE 10/04/2025 revision 8 - Modified to Upper Study with Arrows # Original Credit - Deepwater [https://usethinkscript.com/members/deepwater.11630/] #https://usethinkscript.com/threads/deepwater_the-one.6518/ declare upper; input length = 20; input length2 = 15; input price = close; input averageType = AverageType.WILDERS; input fastLength = 12; input slowLength = 26; input MACDLength = 9; input averageTypeMACD = AverageType.EXPONENTIAL; def Diff = MACD(fastLength, slowLength, MACDLength, averageTypeMACD).Diff; def NetChgAvg = MovingAverage(averageType, price - price[1], length); def TotChgAvg = MovingAverage(averageType, AbsValue(price - price[1]), length); def ChgRatio = if TotChgAvg != 0 then NetChgAvg / TotChgAvg else 0; def RSI = 50 * (ChgRatio + 1); def RSIAvg3 = MovingAverage(averageType, (RSI), 3); def RSIAvg5 = MovingAverage(averageType, (RSI), 5); def RSI3OverSoldpivit = RSIAvg3 > RSIAvg3[1] and RSIAvg3[1] > RSIAvg3[2] and RSIAvg3[2] < RSIAvg3[3] and RSIAvg3[3] < RSIAvg3 [4]; def RSI3OverBoughtpivit = RSIAvg3 < RSIAvg3[1] and RSIAvg3[1] < RSIAvg3[2] and RSIAvg3[2] > RSIAvg3[3] and RSIAvg3[3] > RSIAvg3 [4]; #--------------------5 day MA input displace = 0; input showBreakoutSignals = no; def MAvgExp14 = ExpAverage(price[-displace], 14); def MAvgExp7 = ExpAverage(price[-displace], 7); #--------------------oversold def twoBarPivotMACD = Diff > Diff[1] and Diff[1] > Diff[2] and Diff[2] < Diff[3] and Diff[3] < Diff [4]; def overSoldRSI = RSI <= 32; def overSoldRSIHeavy = RSI <= 30 and Diff < 0 and (close < close[7]); def TrendReversalalert = (twoBarPivotMACD and Highest(overSoldRSI, 6) > 0) / 3; def TrendReversal1 = (twoBarPivotMACD and RSIAvg3 < 45 and Highest(overSoldRSIHeavy, 6) > 0) / 1.4; def TrendReversalstrongbuy = ((TrendReversal1[1] > 0 or TrendReversal1[2] > 0 or TrendReversal1[3] > 0 or TrendReversal1[4] > 0 or TrendReversal1[5] > 0 or TrendReversal1[6] > 0 or TrendReversal1[7] > 0 or TrendReversal1[8] > 0 or TrendReversal1[9] > 0 or TrendReversal1[10] > 0 or TrendReversal1[11] > 0 or TrendReversal1[12] > 0 or TrendReversal1[13] > 0 or TrendReversal1[14] > 0) and twoBarPivotMACD and RSIAvg3 < 45 and Highest(overSoldRSIHeavy, 6) > 0) / 1.1; def TrendReversal = (twoBarPivotMACD and TrendReversalstrongbuy < 1 and Highest(overSoldRSI, 6) > 0) / 3; # Plot small yellow arrow when small yellow condition meets and no green conditions plot YellowArrow = if TrendReversal > 0 and TrendReversal1 <= 0 and TrendReversalstrongbuy <= 0 then low * 0.995 else Double.NaN; YellowArrow.SetPaintingStrategy(PaintingStrategy.ARROW_UP); YellowArrow.SetDefaultColor(Color.YELLOW); YellowArrow.SetLineWeight(1); YellowArrow.HideBubble(); # Plot medium green arrow when medium green condition meets and no strong buy plot MediumGreenArrow = if TrendReversal1 > 0 and TrendReversalstrongbuy <= 0 then low * 0.995 else Double.NaN; MediumGreenArrow.SetPaintingStrategy(PaintingStrategy.ARROW_UP); MediumGreenArrow.SetDefaultColor(Color.GREEN); MediumGreenArrow.SetLineWeight(3); MediumGreenArrow.HideBubble(); # Plot big green arrow when big green condition meets plot BigGreenArrow = if TrendReversalstrongbuy > 0 then low * 0.99 else Double.NaN; BigGreenArrow.SetPaintingStrategy(PaintingStrategy.ARROW_UP); BigGreenArrow.SetDefaultColor(Color.GREEN); BigGreenArrow.SetLineWeight(5); BigGreenArrow.HideBubble(); #-----------------------Overbought def twoBarPivotMACD1 = Diff < Diff[1] and Diff[1] < Diff[2] and Diff[2] > Diff[3] and Diff[3] > Diff [4]; def overboughtRSI = RSIAvg3 >= 65 and Diff > 0; def TrendReversalalert20 = (twoBarPivotMACD1 and Highest(overboughtRSI[1], 7) > 0); def TrendReversal20 = 1 - (((RSIAvg3 >= 68 and RSI < RSIAvg3[2]) and RSI3OverBoughtpivit)/ 1.5) ; def TrendReversal20a = 1 - ((((RSIAvg3 >= 60 and RSIAvg3 < 65 )and RSI < RSIAvg3[2]) and RSI3OverBoughtpivit) / 4) ; def TrendReversal50 = 1 - ((RSIAvg5 >= 65 and close < MAvgExp14) / 2) ; #--------------------------RSI cumulative running total def RSICalc1 = if RSI > 70 then 4 else if RSI < 30 then -4 else 0; def RSICalc2 = if RSI[1] > 70 then 3 else if RSI[1] < 30 then -3 else 0; def RSICalc3 = if RSI[2] > 70 then 1 else if RSI[2] < 30 then -1 else 0; def RSICalc4 = if RSI[3] > 70 then 1 else if RSI[3] < 30 then -1 else 0; def RSICalc5 = if RSI[4] > 70 then 1 else if RSI[4] < 30 then -1 else 0; def RSICalc6 = if RSI[5] > 70 then 1 else if RSI[5] < 30 then -1 else 0; def RSICalc7 = if RSI[6] > 70 then 1 else if RSI[6] < 30 then -1 else 0; def RSICalc8 = if RSI[7] > 70 then 1 else if RSI[7] < 30 then -1 else 0; def RSICalc9 = if RSI[8] > 70 then 1 else if RSI[8] < 30 then -1 else 0; def RSICalc10 = if RSI[9] > 70 then 1 else if RSI[9] < 30 then -1 else 0; def RSICalc11 = if RSI[10] > 70 then 1 else if RSI[10] < 30 then -1 else 0; def RSICalc12 = if RSI[11] > 70 then 1 else if RSI[11] < 30 then -1 else 0; def RSICalc13 = if RSI[12] > 70 then 1 else if RSI[12] < 30 then -1 else 0; def RSICalc14 = if RSI[13] > 70 then 1 else if RSI[13] < 30 then -1 else 0; def RSICalc15 = if RSI[14] > 70 then 1 else if RSI[14] < 30 then -1 else 0; def RSICalc16 = if RSI[15] > 70 then 1 else if RSI[15] < 30 then -1 else 0; def RSICalc17 = if RSI[16] > 70 then 1 else if RSI[16] < 30 then -1 else 0; def RSICalc18 = if RSI[17] > 70 then 1 else if RSI[17] < 30 then -1 else 0; def RSICalc19 = if RSI[18] > 70 then 1 else if RSI[18] < 30 then -1 else 0; def RSICalc20 = if RSI[19] > 70 then 1 else if RSI[19] < 30 then -1 else 0; def RSICalc21 = if RSI[20] > 70 then 1 else if RSI[20] < 30 then -1 else 0; def RSICalc22 = if RSI[21] > 70 then .1 else if RSI[21] < 30 then -.1 else 0; def RSICalc23 = if RSI[22] > 70 then .1 else if RSI[22] < 30 then -.1 else 0; def RSICalc24 = if RSI[23] > 70 then .1 else if RSI[23] < 30 then -.1 else 0; def RSICalc25 = if RSI[24] > 70 then .1 else if RSI[24] < 30 then -.1 else 0; def RSICalc26 = if RSI[25] > 70 then .1 else if RSI[25] < 30 then -.1 else 0; def RSICalc27 = if RSI[26] > 70 then .1 else if RSI[26] < 30 then -.1 else 0; def RSICalc28 = if RSI[27] > 70 then .1 else if RSI[27] < 30 then -.1 else 0; def RSICalc29 = if RSI[28] > 70 then .1 else if RSI[28] < 30 then -.1 else 0; def RSICalc30 = if RSI[29] > 70 then .1 else if RSI[29] < 30 then -.1 else 0; def RSI30DayAvg = RSICalc1 + RSICalc2 + RSICalc3 + RSICalc4 + RSICalc5 + RSICalc6 + RSICalc7 + RSICalc8 + RSICalc9 + RSICalc10 + RSICalc11 + RSICalc12 + RSICalc13 + RSICalc14 + RSICalc15 + RSICalc16 + RSICalc17 + RSICalc18 + RSICalc19 + RSICalc20 + RSICalc21 + RSICalc22 + RSICalc23 + RSICalc24 + RSICalc25 + RSICalc26 + RSICalc27 + RSICalc28 + RSICalc29 + RSICalc30; def TrendReversal5 = 1 - (((RSI30DayAvg >= 10 and RSI30DayAvg < 15) and close < MAvgExp7) / 2) ; def TrendReversal5a = 1 - (((RSI30DayAvg >= 16 and RSI30DayAvg < 25) and close < MAvgExp7) / 1.3) ; def TrendReversal5b = 1 - ((RSI30DayAvg >= 25 and close < MAvgExp7) / 1.05) ; def RedCondition = TrendReversal20 < 1 or TrendReversal20a < 1 or TrendReversal50 < 1; def MagentaCondition = TrendReversal5 < 1 or TrendReversal5a < 1 or TrendReversal5b < 1; # Plot down arrow when magenta condition meets after recent red condition plot DownArrow = if MagentaCondition and Highest(RedCondition[1], 14) then high * 1.005 else Double.NaN; DownArrow.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN); DownArrow.SetDefaultColor(Color.MAGENTA); DownArrow.SetLineWeight(3); DownArrow.HideBubble();
I changed the source on page 1Why it does not plot anything on 4 hour chart? I see daily chart.
Daily chart
View attachment 25882
4 Hour chart
View attachment 25883
Update:
I enabled Extended hour and now can see the indicator, however I see it only for couple of days. I don't see it for historical data? My chart is for 180 days (4 hour) and I see indicator from Aug 2025.
View attachment 25884
yes after reducingI changed the source on page 1
from
input AverageLength = 2000;
input VolumeMultiplier = 10;
input VolumeMultiplier2 = 5;
input VolumeMultiplier3 = 3;
input MinutesAfterOpen = 30;
to
input AverageLength = 500;
input VolumeMultiplier = 10;
input VolumeMultiplier2 = 5;
input VolumeMultiplier3 = 3;
input MinutesAfterOpen = 30;
See if that doesn't make your four hour chart show a full The One Indicator rather than start 2/3 over
AverageLength
from 2000 to 500 I see the full indicator.You're spot on, I removed the alerts since I'm focused on swing trading, not day trading, and they're not helpful when I can't watch the charts constantly. I tested the indicator on daily and 4-hour charts, and it's looking really solid. Pairing it with BTD turns it into a powerhouse for swing setups.I like the Modification to make it an Upper slimmed down Indicator but you stripped out a lot of valuable alerts. I'm going to run them both. About the 4 hour, I only look at 1 min to 15 minute charts mostly, I would look at a number of stock symbols but 4 hour might be too long to capture the parameters to trigger. Thanks for posting it.
Thanks, BTD stands for?You're spot on, I removed the alerts since I'm focused on swing trading, not day trading, and they're not helpful when I can't watch the charts constantly. I tested the indicator on daily and 4-hour charts, and it's looking really solid. Pairing it with BTD turns it into a powerhouse for swing setups.
It is buy the deep vip study. You need vip subscription to access that study.Thanks, BTD stands for?
Hi @Deepwater, can you share your chart link? I tried to copy the code and saved as a study but it’s not displaying properly!I changed the source on page 1
from
input AverageLength = 2000;
input VolumeMultiplier = 10;
input VolumeMultiplier2 = 5;
input VolumeMultiplier3 = 3;
input MinutesAfterOpen = 30;
to
input AverageLength = 500;
input VolumeMultiplier = 10;
input VolumeMultiplier2 = 5;
input VolumeMultiplier3 = 3;
input MinutesAfterOpen = 30;
See if that doesn't make your four hour chart show a full The One Indicator rather than start 2/3 over
My chart setup is too complicated to share. I don't know why you say it's not displaying properly. Copy the code on page 10 for forex or SPY type. Use page 1 first code for stocks.Hi @Deepwater, can you share your chart link? I tried to copy the code and saved as a study but it’s not displaying properly!
After you create a new study, paste in the code and name the study. Make sure you don't have a bunch of studies already loaded, otherwise Deepwater The One will appear below your viewable screenHi @Deepwater, can you share your chart link? I tried to copy the code and saved as a study but it’s not displaying properly!
Thanks for UpdateThis ASGOODASITGETS Indicator compliments the
DEEPWATER_THE ONE. Combined very strong combo IMHO along with the Chande Oscillator
mod note:
https://usethinkscript.com/threads/agaig-zigzag-lower-verticals-for-thinkorswim.18233/
Code:# AsGoodAsItGets Lower Indicator #CSR Buy/Sell Arrows with Short/Long Bubbles #Developed 4-23-23 First Edition 8-23-22 Revised #Updated 3/16/24 by C. Ricks declare lower; declare real_size; input atrreversal = 2.0; def priceh = MovingAverage(AverageType.EXPONENTIAL, high, 5); def pricel = MovingAverage(AverageType.EXPONENTIAL, low, 5); def EIL = ZigZagHighLow("price h" = priceh, "price l" = pricel, "percentage reversal" = .01, "absolute reversal" = .05, "atr length" = 5, "atr reversal" = atrreversal).lastL; def EIH = ZigZagHighLow("price h" = priceh, "price l" = pricel, "percentage reversal" = .01, "absolute reversal" = .05, "atr length" = 5, "atr reversal" = atrreversal).lastH; def signaldown = !isNAN(EIH); AddVerticalLine(!isNAN(EIH),"SHORT", color.Red,curve.long_dash); def signalrevBot = !isNaN(EIL); AddVerticalLine(!isNAN(EIL),"LONG", color.Green,curve.long_dash); input usealerts = yes; alert(usealerts and signaldown[1] == 1, "Short", alert.bar, sound.ding); alert(usealerts and signalrevbot[1] == 1, "Long", alert.bar, sound.ding); #End Code {/CODE}
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.