DEEPWATER_THE ONE For ThinkOrSwim

Join useThinkScript to post your question to a community of 21,000+ developers and traders.

This 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}
Have you experienced in some case "The One" cannot show the drawing in the chart for some stocks? eg. LEVI, CTVA, /BTC
 
Last edited:
Have you experienced in some case "The One" cannot show the drawing in the chart for some stocks? eg. LEVI, CTVA, /BTC
Try the forex version page 10. SPY works with it as an example. /BTC works during working hours Monday thru Friday for me.
 
Last edited:
Looking 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.
The Chande Lower Indicator does some of this I think. More EMA work
 
Last edited:
Why it does not plot anything on 4 hour chart? I see daily chart.

Daily chart
1759697397776.png


4 Hour chart
1759697429921.png



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.

1759698249135.png
 
Last edited:
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();
 
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 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.
 
Why 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
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
 
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
yes after reducing AverageLength from 2000 to 500 I see the full indicator.
 
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.
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.
 
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.
Thanks, BTD stands for?
 
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
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!
 
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!
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 screen
 
This 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}
Thanks for Update :) !
 

Similar threads

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
636 Online
Create Post

Similar threads

Similar threads

The Market Trading Game Changer

Join 2,500+ subscribers inside the useThinkScript VIP Membership Club
  • Exclusive indicators
  • Proven strategies & setups
  • Private Discord community
  • ‘Buy The Dip’ signal alerts
  • Exclusive members-only content
  • Add-ons and resources
  • 1 full year of unlimited support

Frequently Asked Questions

What is useThinkScript?

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.

How do I get started?

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.

What are the benefits of VIP Membership?
VIP members get exclusive access to these proven and tested premium indicators: Buy the Dip, Advanced Market Moves 2.0, Take Profit, and Volatility Trading Range. In addition, VIP members get access to over 50 VIP-only custom indicators, add-ons, and strategies, private VIP-only forums, private Discord channel to discuss trades and strategies in real-time, customer support, trade alerts, and much more. Learn all about VIP membership here.
How can I access the premium indicators?
To access the premium indicators, which are plug and play ready, sign up for VIP membership here.
Back
Top