Best Swing Trading Indicators for ThinkorSwim

Montana101x

New member
I am new here and a ThinkorSwim user. My goal is to become a Pro Swing Trader particularly on mid or small good Caps. I found quite few indicators on site while researching but they are customized for other platforms. I know but take it easy on me and I am on process of learning and growing.

I found so many awesome indicators but only have their images. There’s one indicator and I hope someone can code this it would be awesome. It’s MACD with SMA and works awesome for swing trading... find attached blew and let help each other....

What's the best way to scan stocks for swing trading that are close to hitting their bottom?

vJAkCIf.png


Here is the CODE and hope everyone enjoys, modify it and improve and make it share it here with us.

4ZoEA9h.png


Rich (BB code):
declare lower;

input length = 9;
input colorNormLength = 14;
input price = close;
input signalLength = 3;

def tr = ExpAverage(ExpAverage(ExpAverage(Log(price), length), length), length);

plot TRIX = (tr - tr[1]) * 10000;
plot Signal = ExpAverage(TRIX, signalLength);
plot ZeroLine = 0;

def normVal = FastKCustom(AbsValue(TRIX), colorNormLength);

TRIX.SetDefaultColor(GetColor(8));
TRIX.AssignValueColor(CreateColor(255, (240 - (100 - (if TRIX > 0 then normVal else (-normVal))) * 175 / 200), 0));
ZeroLine.SetDefaultColor(GetColor(5));
Signal.setDefaultColor(GetColor(3));
TRIX.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
 
Last edited:

cabe1332

Member
Hi All, I wanted to give my .02 cents on "Best Swing Trading Indicators for ThinkorSwim". My approach/strategy was to systematically find or identify the equity using a watchlist with custom columns using modified scripts already available here at usethinkscript. A indicator used momentum, ttmsqueeze/histogram, rate of change, and market stages. I trade on what I see and not on what I think. Maybe this might help and gives you some ideas. And in turn, maybe you will provide me with some feedback on how I may improve or add to my strategy.

The screenshot below is one of my watchlists for <$25 Overnight Swing trade.

Columns St(1m) and St(D) provides the stage (acceleration, accumulation, deceleration, and distribution) and count of a number of bars how long it is has been in a stage.

ROCDay and ROCWk provide the percent rate of change or price change for the day and week respectively. The higher percentage signifies a strong stock.

Mo1 (1min), MoD (Day), and MoWk (Week) relate to momentum with respective aggregation. The higher the number the stronger the momentum for that aggregation.

In summary, a combination of Market Stage, Rate of Change, and Momentum with Volume helps me quickly decide which stock to enter with a greater probability of a good trade. This has been working for me very well. I hope that gives you some idea or another option or addition to your "Best Swing Trading Indicators for ThinkorSwim". Good luck! @cabe1332

z36Z5pM.png


0FJirLf.png


41EdxbA.png


Again, your feedback is appreciated. @cabe1332
 
Last edited:

sunnybabu

New member
VIP
This indicator was designed to trade the S&P 500 (SPY) on a weekly chart. Developer Waylock created it and AlphaInvestor added weekly aggregation.

I modified the script a bit so that you can use it to day trade and swing trade $SPY on the lower timeframe.

From backtesting, the buy and sell signals worked really well. You may want to take a second look and see if this is something that may fit your trading style. I also added alerts in the code so that ThinkorSwim will let you know when there is a new bullish or bearish signal.

kbCFwQt.png

b5reLvA.png

wPI1xTz.png


Day Trading Version

Code:
# Original name: Big_Hand_Arrows_On_Study_w_Agg

# Script by Waylock

# AlphaInvestor - 05/12/2017 - force to weekly aggregation

# Modified by BenTen to work on lower timeframe. Alerts added.

declare lower;

input agg = AggregationPeriod.FIFTEEN_MIN;

input fastLength = 19;

input slowLength = 39;

def c = close(period = agg);

plot Value = ExpAverage(c, fastLength) - ExpAverage(c, slowLength);

def Value_color = if Value > 0 then yes else no;

Value.DefineColor( "ValueUp", Color.GREEN );

Value.DefineColor( "ValueDn", Color.RED );

Value.AssignValueColor( if Value_color then Value.Color( "ValueUp" ) else Value.Color( "ValueDn" ) );

plot ZeroLine = 0;

Value.SetDefaultColor(Color.CYAN);

ZeroLine.SetDefaultColor(Color.YELLOW);

ZeroLine.HideTitle();

ZeroLine.HideBubble();

def xUndr = Value[1] < 0 and Value > 0;

def xOver = Value[1] > 0 and Value < 0;

plot ArrowUp = if xUndr then xOver else Double.NaN;

ArrowUp.SetPaintingStrategy(PaintingStrategy.ARROW_UP);

ArrowUp.SetDefaultColor(Color.YELLOW);

ArrowUp.SetLineWeight(5);

ArrowUp.HideTitle();

ArrowUp.HideBubble();

plot ArrowDn = if xOver then xUndr else Double.NaN;

ArrowDn.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);

ArrowDn.SetDefaultColor(Color.YELLOW);

ArrowDn.SetLineWeight(5);

ArrowDn.HideTitle();

ArrowDn.HideBubble();

def data = Value;

# Alerts
Alert(ArrowUp, " ", Alert.Bar, Sound.Chimes);
Alert(ArrowDn, " ", Alert.Bar, Sound.Bell);

# End Study

Shareable Link: https://tos.mx/wJd6hZ

Swing Trading Version

oZs7YnY.png


Code:
# Original name: Big_Hand_Arrows_On_Study_w_Agg

# Script by Waylock

# AlphaInvestor - 05/12/2017 - force to weekly aggregation

# Modified by BenTen to work on lower timeframe. Alerts added.

declare lower;

input agg = AggregationPeriod.HOUR;

input fastLength = 19;

input slowLength = 39;

def c = close(period = agg);

plot Value = ExpAverage(c, fastLength) - ExpAverage(c, slowLength);

def Value_color = if Value > 0 then yes else no;

Value.DefineColor( "ValueUp", Color.GREEN );

Value.DefineColor( "ValueDn", Color.RED );

Value.AssignValueColor( if Value_color then Value.Color( "ValueUp" ) else Value.Color( "ValueDn" ) );

plot ZeroLine = 0;

Value.SetDefaultColor(Color.CYAN);

ZeroLine.SetDefaultColor(Color.YELLOW);

ZeroLine.HideTitle();

ZeroLine.HideBubble();

def xUndr = Value[1] < 0 and Value > 0;

def xOver = Value[1] > 0 and Value < 0;

plot ArrowUp = if xUndr then xOver else Double.NaN;

ArrowUp.SetPaintingStrategy(PaintingStrategy.ARROW_UP);

ArrowUp.SetDefaultColor(Color.YELLOW);

ArrowUp.SetLineWeight(5);

ArrowUp.HideTitle();

ArrowUp.HideBubble();

plot ArrowDn = if xOver then xUndr else Double.NaN;

ArrowDn.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);

ArrowDn.SetDefaultColor(Color.YELLOW);

ArrowDn.SetLineWeight(5);

ArrowDn.HideTitle();

ArrowDn.HideBubble();

def data = Value;

# Alerts
Alert(ArrowUp, " ", Alert.Bar, Sound.Chimes);
Alert(ArrowDn, " ", Alert.Bar, Sound.Bell);

# End Study

Shareable Link: https://tos.mx/VevVxf
@BenTen How can i get a scanner or whatchlist for this code please?
 

RickAns

Active member
VIP
Very nice @cabe1332 . I do like your watchlist and chart info. Think I saw in another post of yours that most of this is from these forums. I will try to patch something together later to mess around with it. Thanks.
 

natcom2020

New member
Hi All, I wanted to give my .02 cents on "Best Swing Trading Indicators for ThinkorSwim". My approach/strategy was to systematically find or identify the equity using a watchlist with custom columns using modified scripts already available here at usethinkscript. A indicator used momentum, ttmsqueeze/histogram, rate of change, and market stages. I trade on what I see and not on what I think. Maybe this might help and gives you some ideas. And in turn, maybe you will provide me with some feedback on how I may improve or add to my strategy.

The screenshot below is one of my watchlists for <$25 Overnight Swing trade.

Columns St(1m) and St(D) provides the stage (acceleration, accumulation, deceleration, and distribution) and count of a number of bars how long it is has been in a stage.

ROCDay and ROCWk provide the percent rate of change or price change for the day and week respectively. The higher percentage signifies a strong stock.

Mo1 (1min), MoD (Day), and MoWk (Week) relate to momentum with respective aggregation. The higher the number the stronger the momentum for that aggregation.

In summary, a combination of Market Stage, Rate of Change, and Momentum with Volume helps me quickly decide which stock to enter with a greater probability of a good trade. This has been working for me very well. I hope that gives you some idea or another option or addition to your "Best Swing Trading Indicators for ThinkorSwim". Good luck! @cabe1332

z36Z5pM.png


0FJirLf.png


41EdxbA.png


Again, your feedback is appreciated. @cabe1332
can you please share your chart so i can provide some feedback
 

Trader2021

New member
VIP
Hi Ben, I have been testing this swing trade version of SPY Strategy above. It is working out really good so far even for stocks other than SPY, Great work !!!. I would really Appreciate if you can please help us to get scan code. I am not still good at coding. tried to code , but did not even get close. Can you please help with scanner ? The reason being i would like to use this as a general scanner for all stocks rather than just SPY.
 
Last edited:

sunnybabu

New member
VIP
This indicator was designed to trade the S&P 500 (SPY) on a weekly chart. Developer Waylock created it and AlphaInvestor added weekly aggregation.

I modified the script a bit so that you can use it to day trade and swing trade $SPY on the lower timeframe.

From backtesting, the buy and sell signals worked really well. You may want to take a second look and see if this is something that may fit your trading style. I also added alerts in the code so that ThinkorSwim will let you know when there is a new bullish or bearish signal.

kbCFwQt.png

b5reLvA.png

wPI1xTz.png


Day Trading Version

Code:
# Original name: Big_Hand_Arrows_On_Study_w_Agg

# Script by Waylock

# AlphaInvestor - 05/12/2017 - force to weekly aggregation

# Modified by BenTen to work on lower timeframe. Alerts added.

declare lower;

input agg = AggregationPeriod.FIFTEEN_MIN;

input fastLength = 19;

input slowLength = 39;

def c = close(period = agg);

plot Value = ExpAverage(c, fastLength) - ExpAverage(c, slowLength);

def Value_color = if Value > 0 then yes else no;

Value.DefineColor( "ValueUp", Color.GREEN );

Value.DefineColor( "ValueDn", Color.RED );

Value.AssignValueColor( if Value_color then Value.Color( "ValueUp" ) else Value.Color( "ValueDn" ) );

plot ZeroLine = 0;

Value.SetDefaultColor(Color.CYAN);

ZeroLine.SetDefaultColor(Color.YELLOW);

ZeroLine.HideTitle();

ZeroLine.HideBubble();

def xUndr = Value[1] < 0 and Value > 0;

def xOver = Value[1] > 0 and Value < 0;

plot ArrowUp = if xUndr then xOver else Double.NaN;

ArrowUp.SetPaintingStrategy(PaintingStrategy.ARROW_UP);

ArrowUp.SetDefaultColor(Color.YELLOW);

ArrowUp.SetLineWeight(5);

ArrowUp.HideTitle();

ArrowUp.HideBubble();

plot ArrowDn = if xOver then xUndr else Double.NaN;

ArrowDn.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);

ArrowDn.SetDefaultColor(Color.YELLOW);

ArrowDn.SetLineWeight(5);

ArrowDn.HideTitle();

ArrowDn.HideBubble();

def data = Value;

# Alerts
Alert(ArrowUp, " ", Alert.Bar, Sound.Chimes);
Alert(ArrowDn, " ", Alert.Bar, Sound.Bell);

# End Study

Shareable Link: https://tos.mx/wJd6hZ

Swing Trading Version

oZs7YnY.png


Code:
# Original name: Big_Hand_Arrows_On_Study_w_Agg

# Script by Waylock

# AlphaInvestor - 05/12/2017 - force to weekly aggregation

# Modified by BenTen to work on lower timeframe. Alerts added.

declare lower;

input agg = AggregationPeriod.HOUR;

input fastLength = 19;

input slowLength = 39;

def c = close(period = agg);

plot Value = ExpAverage(c, fastLength) - ExpAverage(c, slowLength);

def Value_color = if Value > 0 then yes else no;

Value.DefineColor( "ValueUp", Color.GREEN );

Value.DefineColor( "ValueDn", Color.RED );

Value.AssignValueColor( if Value_color then Value.Color( "ValueUp" ) else Value.Color( "ValueDn" ) );

plot ZeroLine = 0;

Value.SetDefaultColor(Color.CYAN);

ZeroLine.SetDefaultColor(Color.YELLOW);

ZeroLine.HideTitle();

ZeroLine.HideBubble();

def xUndr = Value[1] < 0 and Value > 0;

def xOver = Value[1] > 0 and Value < 0;

plot ArrowUp = if xUndr then xOver else Double.NaN;

ArrowUp.SetPaintingStrategy(PaintingStrategy.ARROW_UP);

ArrowUp.SetDefaultColor(Color.YELLOW);

ArrowUp.SetLineWeight(5);

ArrowUp.HideTitle();

ArrowUp.HideBubble();

plot ArrowDn = if xOver then xUndr else Double.NaN;

ArrowDn.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);

ArrowDn.SetDefaultColor(Color.YELLOW);

ArrowDn.SetLineWeight(5);

ArrowDn.HideTitle();

ArrowDn.HideBubble();

def data = Value;

# Alerts
Alert(ArrowUp, " ", Alert.Bar, Sound.Chimes);
Alert(ArrowDn, " ", Alert.Bar, Sound.Bell);

# End Study

Shareable Link: https://tos.mx/VevVxf
@BenTen can you please help me make this swing trading code work for Day timeframe please
 

Trader2021

New member
VIP
Thanks Ben, I watched the video and tried to setup the scan for Daily timeframe. I see it does not give correct results eventhough the scan is set to true for "ARROW_UP" and within 6 bars. For example ADBE had a Arrow up in last 5 bars , but nothing comes up in scan. Any thoughts ?

I tried to insert a screen shot here, but was not sure how to add .png files here. Please advise.
 

solaris

New member
Hi All, I wanted to give my .02 cents on "Best Swing Trading Indicators for ThinkorSwim". My approach/strategy was to systematically find or identify the equity using a watchlist with custom columns using modified scripts already available here at usethinkscript. A indicator used momentum, ttmsqueeze/histogram, rate of change, and market stages. I trade on what I see and not on what I think. Maybe this might help and gives you some ideas. And in turn, maybe you will provide me with some feedback on how I may improve or add to my strategy.

The screenshot below is one of my watchlists for <$25 Overnight Swing trade.

Columns St(1m) and St(D) provides the stage (acceleration, accumulation, deceleration, and distribution) and count of a number of bars how long it is has been in a stage.

ROCDay and ROCWk provide the percent rate of change or price change for the day and week respectively. The higher percentage signifies a strong stock.

Mo1 (1min), MoD (Day), and MoWk (Week) relate to momentum with respective aggregation. The higher the number the stronger the momentum for that aggregation.

In summary, a combination of Market Stage, Rate of Change, and Momentum with Volume helps me quickly decide which stock to enter with a greater probability of a good trade. This has been working for me very well. I hope that gives you some idea or another option or addition to your "Best Swing Trading Indicators for ThinkorSwim". Good luck! @cabe1332

z36Z5pM.png


0FJirLf.png


41EdxbA.png


Again, your feedback is appreciated. @cabe1332
do you mind sharing the scripts for charts and watchlist, so i can provide feedback. Thanks
 

Similar threads

Top