RSM Indicator for ThinkorSwim

Team, I am pretty stupid...I know.

I do not see the code for all the different RSM SCANs; like RSM Uptrend in progress, RSM Uptrend just started. Would anyone point that out? I am sorry to waste your time :-(
 

New Indicator: Buy the Dip

Check out our Buy the Dip indicator and see how it can help you find profitable swing trading ideas. Scanner, watchlist columns, and add-ons are included.

Download the indicator

Team, I am pretty stupid...I know.

I do not see the code for all the different RSM SCANs; like RSM Uptrend in progress, RSM Uptrend just started. Would anyone point that out? I am sorry to waste your time :-(

Create a new Study and call it RSM_Scan and past the code under RSM_Scan from Comment #1, don't add it to chart, head over the scanner tab remove all filters and create a custom filter and head over to thinkscipt editor tab and past one of the codes. you have a scanner for the described condition.

You would want to save the scan queries, like RSM_Bull or RSM_Bear, so you can just load it when you need it. Watch the video in RSM_Scan section.
  • The following scan queries are available
    1. RSM_Scan().UpTrend (UpTrend in Progress, in the selected timeframe for Scan)
    2. RSM_Scan().UpTrendJustStarted (Uptrend Just started, in the selected timeframe for Scan)
    3. RSM_Scan().DownTrend (DownTrend in Progress, in the selected timeframe for Scan)
    4. RSM_Scan().DownTrendJustStarted (DownTrend Just started, in the selected timeframe for Scan)
    5. RSM_Scan().UpTrendJustEnded (UpTrend finished, in the selected timeframe for Scan)
    6. RSM_Scan().DownTrendJustEnded (DownTrend finished, in the selected timeframe for Scan)
 
Team, I am pretty stupid...I know.

I do not see the code for all the different RSM SCANs; like RSM Uptrend in progress, RSM Uptrend just started. Would anyone point that out? I am sorry to waste your time :-(
there with video first page just scroll down with heading --> RSM SCAN
 
Greetings. I use the RSM
https://usethinkscript.com/threads/rsm-indicator-for-thinkorswim.5407/
every day but can't figure out how to add in the RSM MTF labels a candle count. Is there any way to do this ? Still wondering ....

UPDATE:
# --- Start
# A multi time frame MTF Label with candle count.
#
# Simply name to RSM_MTF_10m and duplicate as desired then change aggregation time add to chart.
# --
#
input Time_Frame = AggregationPeriod.TEN_MIN;
# RSI
def lengthRSI = 7;
def averageTypeRSI = AverageType.EXPONENTIAL;
# Stochastic
def over_boughtSt = 80;
def over_soldSt = 20;
def KPeriod = 14;
def DPeriod = 3;
input averageTypeStoch = AverageType.WILDERS;
# MACD
def fastLength = 12;
def slowLength = 26;
def MACDLength = 9;
def averageTypeMACD = AverageType.WEIGHTED;

###############################################################
########## RSI #########
################################################################

def NetChgAvg = MovingAverage(averageTypeRSI, close(period = Time_Frame) - close(period = Time_Frame)[1], lengthRSI);
def TotChgAvg = MovingAverage(averageTypeRSI, AbsValue(close(period = Time_Frame) - close(period = Time_Frame)[1]), lengthRSI);
def ChgRatio = if TotChgAvg != 0 then NetChgAvg / TotChgAvg else 0;
def RSI_ = 50 * (ChgRatio + 1);

################################################################
########## Stochastic Slow #########
################################################################

def SlowK_ = reference StochasticFull(over_boughtSt, over_soldSt, KPeriod, DPeriod, high(period = Time_Frame), low(period = Time_Frame), close(period = Time_Frame), 3, if (averageTypeStoch == 1) then AverageType.SIMPLE else AverageType.EXPONENTIAL).FullK;
def SlowD_ = reference StochasticFull(over_boughtSt, over_soldSt, KPeriod, DPeriod, high(period = Time_Frame), low(period = Time_Frame), close(period = Time_Frame), 3, if (averageTypeStoch == 1) then AverageType.SIMPLE else AverageType.EXPONENTIAL).FullD;

################################################################
########## MACD ###########
################################################################

def Value_ = MovingAverage(averageTypeMACD, close(period = Time_Frame), fastLength) - MovingAverage(averageTypeMACD, close(period = Time_Frame), slowLength);
def Avg_ = MovingAverage(averageTypeMACD, Value_, MACDLength);
def Diff_ = Value_ - Avg_;

#################################################################
########## Trend & Labels #########
#################################################################
def UpTrend = if RSI_ >= 50 and SlowK_ >= 50 and Value_ > Avg_ then 1 else 0;
def DownTrend = if RSI_ < 50 and SlowK_ < 50 and Value_ < Avg_ then 1 else 0;
plot Trend_ = if UpTrend then 1 else if DownTrend then 0 else -1;

#Color Assignment


#--------------
def bnumUp;
def bnumDown;
def closeUpTrendStart;
def closeDownTrendStart;
def UpTrendBarCount;
def DownTrendBarCount;
if UpTrend and (!UpTrend[1] or DownTrend[1]) {
bnumUp = BarNumber();
bnumDown = 0;
closeUpTrendStart = close(period = Time_Frame);
closeDownTrendStart = 0;
UpTrendBarCount = 1;
DownTrendBarCount = 0;
} else if UpTrend {
bnumUp = bnumUp[1];
bnumDown = 0;
closeUpTrendStart = closeUpTrendStart[1];
closeDownTrendStart = 0;
UpTrendBarCount = UpTrendBarCount[1] + 1;
DownTrendBarCount = 0;
} else if DownTrend and (!DownTrend[1] or UpTrend[1]) {
bnumUp = 0;
bnumDown = BarNumber();
closeDownTrendStart = close(period = Time_Frame);
closeUpTrendStart = 0;
UpTrendBarCount = 0;
DownTrendBarCount = 1;
} else if DownTrend {
bnumDown = bnumDown[1];
closeDownTrendStart = closeDownTrendStart[1];
DownTrendBarCount = DownTrendBarCount[1] + 1;
bnumUp = 0;
closeUpTrendStart = 0;
UpTrendBarCount = 0;
} else {
bnumUp = 0;
bnumDown = 0;
closeUpTrendStart = 0;
closeDownTrendStart = 0;
UpTrendBarCount = 0;
DownTrendBarCount = 0;
}
################################################################
########## ATR/ADR Calc #########
################################################################
input ATRlength = 14;
input rangeType = { default "ADR", "ATR" };
input ATRaverageType = AverageType.WILDERS;
def Range;
if rangeType == rangeType.ATR {
Range = MovingAverage(ATRaverageType, TrueRange(high(period = Time_Frame), close(period = Time_Frame), low(period = Time_Frame)), ATRlength);
} else {
Range = Average(high(period = Time_Frame) - low(period = Time_Frame), 7);
}


def c;
if BarNumber() == bnumUp or BarNumber() == bnumDown {
c = Range;
} else if UpTrend or DownTrend {
c = c[1];
} else {
c = 0;
}
input debug = no;
AddLabel(if debug then yes else no, "Current Bar:" + BarNumber());
AddLabel(if debug then yes else no, "C:" + c);


#-----------------------
#}

def currentPeriod = GetAggregationPeriod();
#def RSM;
def bnum;

#if period >= currentPeriod {
# bnum = RSM_();

#} else {
bnum = Double.NaN;
#}

plot UpDnClr = 0;
UpDnClr.AssignValueColor(if UpTrend == 1 then Color.GREEN else if DownTrend == 1 then Color.Red else Color.White);

input ShowLabel = yes;
#AddLabel(ShowLabel ,"RSM10m" + (if bnumUp > 0 then UpTrendBarCount else DownTrendBarCount), UpDnClr.takeValueColor());

AddLabel(ShowLabel,"RSM" + (if Time_Frame == AggregationPeriod.MONTH then "M"
else if Time_Frame == AggregationPeriod.WEEK then "W"
else if Time_Frame == AggregationPeriod.FOUR_DAYS then "4D"
else if Time_Frame == AggregationPeriod.THREE_DAYS then "3D"
else if Time_Frame == AggregationPeriod.TWO_DAYS then "2D"
else if Time_Frame == AggregationPeriod.DAY then "D"
else if Time_Frame == AggregationPeriod.FOUR_HOURS then "4H"
else if Time_Frame == AggregationPeriod.TWO_HOURS then "2H"
else if Time_Frame == AggregationPeriod.HOUR then "1h"
else if Time_Frame == AggregationPeriod.THIRTY_MIN then "30m"
else if Time_Frame == AggregationPeriod.TWENTY_MIN then "20m"
else if Time_Frame == AggregationPeriod.TEN_MIN then "10m"
else if Time_Frame == AggregationPeriod.FIVE_MIN then "5m"
else if Time_Frame == AggregationPeriod.FOUR_MIN then "4m"
else if Time_Frame == AggregationPeriod.THREE_MIN then "3m"
else if Time_Frame == AggregationPeriod.TWO_MIN then "2m"
else if Time_Frame == AggregationPeriod.MIN then "1m"
else "" ) + (if bnumUp > 0 then UpTrendBarCount else DownTrendBarCount), UpDnClr.takeValueColor());
#
#---------- END

The above code seems to work. Although I am not to crazy about the efficiency of parsing the time frame with concat so settled with pre-defined method when OnDemand is so laggy.
Anyway testing it now with 10m 30m and 1h. I did this to minimize my flipping about time frames to see bar count. If the 1h chart is 2 bars into
an RSM its more risky to hold for up and may wish to consider for down. Nice to know trigger timing 1st bar seems to be best with 1h or no trigger may consider waiting or watching for lower time frame triggers to make a decision or rely on other means.

Looks good so far. Gives me a really good way to know what is going on with higher time frames without having higher time frame charts open and still watch lower. Thanks to the RSM team members here for sure.
 
Last edited by a moderator:
hello to everyone, this is a great job, a quick question... i've traying this strategy it is very great!! but is only for day trading.. can someone changes to a swing trading, i will like to try it for more then a day!! also i see the original strategy have the two targets and the stop loss. if somenone can help me really appreciate. thanks in advance
Did you solve the issue with the strategy on daily charts?
Did you ever get this resolved?
 
Last edited by a moderator:
@dougn @FOTM_8888 From what we can see in the members' comments, it seems like quite a few of them are using this strategy for swing trading. But, it's not as simple as just relying on a straightforward buy or sell signal. The comments reveal a deeper level of analysis, making it a little more complicated. Which means no, unfortunately, it is not possible to create a backtesting script for swing trading.

To learn more about how to swing trade with this indicator, here are the posts that discuss what is involved:
https://usethinkscript.com/search/1059059/?q=swing&t=post&c[thread]=14332&o=date
(best to read these posts from the bottom to Top of the list, the oldest first)
 
Last edited:
I appreciate receiving your Weekly Newsletter today. Thanks for that!

The newsletter mentioned the RSM Indicator and the links brought me in to the thinkScript site.

I reviewed several of the pages for "RSM", but I felt my head starting to blow up.. ;-) Could someone please guide me for just the basic script where I can get the up/down arrows on the chart?

I didn't want to get too deep into it due to my lack of skills.

Any help would be appreciated,

"B"

Sorry if I didn't post this in the right location. On the RSM threads, I did not see where I could post a question.....
 
Last edited by a moderator:
I appreciate receiving your Weekly Newsletter today. Thanks for that!

The newsletter mentioned the RSM Indicator and the links brought me in to the thinkScript site.

I reviewed several of the pages for "RSM", but I felt my head starting to blow up.. ;-) Could someone please guide me for just the basic script where I can get the up/down arrows on the chart?

I didn't want to get too deep into it due to my lack of skills.

Any help would be appreciated,

"B"

3PWaHPR.png

Here is a shared chart link with the RSM already loaded up and ready to go!
Shared Chart Link: http://tos.mx/OiOsDrS Click here for --> Easiest way to load shared links

To get started, review the chart on multiple timeframes and with multiple instruments. You can add your favorite indicators to get a more comprehensive view.

(in answer to your question of how to post into this thread: just type in the box below and hit reply)
Feel free to keep asking questions.
 
Greetings and gratitude to all who have contributed to this study over the years.

A question: for TIME and COLOR in the upper left of the chart. DAY, WEEK and MONTH calculate and paint perfectly.

I can't get the 5M or 15M set up. Have tried to replace DAY with 5M, "5M" but as soon as those inputs are entered, the code is rejected.

What am I doing wrong, please.

Many thanks, Bill
 
Greetings and gratitude to all who have contributed to this study over the years.

A question: for TIME and COLOR in the upper left of the chart. DAY, WEEK and MONTH calculate and paint perfectly.

I can't get the 5M or 15M set up. Have tried to replace DAY with 5M, "5M" but as soon as those inputs are entered, the code is rejected.

What am I doing wrong, please.

Many thanks, Bill
Hey there! It sounds like you might be having some trouble and we want to help!
Unfortunately, it is not possible to provide an exact answer since we do not know which script you are working with on what chart.

A guess would be that you are working with one of the "MTF" scripts in this thread.
An MTF script overlays another timeframe onto your current chart.

The error you are describing is likely due to a ToS restriction that only allows overlaying a higher timeframe onto a lower aggregation. For instance, if you are trying to overlay a 5-minute timeframe, your chart must be a timeframe of 4 minutes or less.

If I have misunderstood your question, help us help you.
To make sure your post gets the attention and assistance it deserves, here are a few directions to keep in mind, on this and future posts.

When posting, always include a shared chart link. This will help others understand the context of your question and allow them to replicate the conditions that you are describing.

If you're unsure of how to share chart links or upload screenshots to the forum, don't worry, we've included some easy-to-follow directions for you.
How to create a shared chart link:
https://usethinkscript.com/threads/how-to-share-a-chart-in-thinkorswim.14221/
 
Last edited:
The RSM Lower indicator - RSI plot (version 1.5 , called out in #1 post) , doesnt update in real-time, but only after the candle close. Can anyone, kindly alter the code to have it updated real-time , or is that not possible with this version of RSI plot ?

The regular RSI study updates in real-time.

Thanks
 
The RSM Lower indicator - RSI plot (version 1.5 , called out in #1 post) , doesnt update in real-time, but only after the candle close. Can anyone, kindly alter the code to have it updated real-time , or is that not possible with this version of RSI plot ?

The regular RSI study updates in real-time.

Thanks
To calculate the RSI pivots, the code in this indicator uses:
def RSI_HighPivots = BN >= HighestAll(RSI_LastPHBar);
def RSI_LowPivots = BN >= HighestAll(RSI_LastPLBar);
Because the HighestAll() functions are resource-intensive. Schwab has decided to no longer allow them to update in real time.

Read more:
https://usethinkscript.com/threads/...e-no-update-in-real-time-in-thinkorswim.8794/
 
Here is a pretty significant unofficial update to the RSM Upper study. I'm calling it V2.0. It reduces the complexity of the code significantly. It reuses the same 10 plots for targets and stops on short and long entries instead of using 10 plots for shorts and 10 for long. It also fixes various bugs and adds some quality of life features like global variables to select bar colors and rounding to the nearest tick on futures and forex.

Also of note, I changed the default average types for the RSI, Stochastic, and MACD studies to be their default values of Wilders, Simple, and Exponential, respectively. These are not only the default values in ToS, but the average types that Markus Heitkotter used in his official tradingview published version of the indicator. I also defaulted the stochastic to use FullD instead of FullK, for the same reason. Note that as previously mentioned in this forum you can sometimes get a signal one bar earlier using FullK, but you can also get false positives this way too.

2022.07.29 V2.0 @bigboss
  • Major rewrite of ADR target and stop loss lines.
  • Updated defaults to match Heitkotter's defaults
    • Changed RSI to use WILDERS
    • Changed Stochastics to use SIMPLE and FullD (configurable)
    • Changed MACD to use Exponential
  • Fixed ADX not respecting the lengthADX input
  • Changed code to use reference indicators where available (ex. RSI, MACD)
  • Changed default entry to be one tick above or below signal bar
    • Stops and Targets are now based off this entry
    • User can opt to continue to use close via entryMode input.
  • Set default Stop Loss Multiplier to 1.5
  • Added logic to calculate ticks and decimal places for futures and forex support.
  • Removed Stochastic overbought/oversold inputs, they're not used
  • Removed a bunch of unnecessary code. This version has 10 less plots.
  • Fixed an issue where "Show Today Only" hid ADR plots on daily and greater charts
  • Added Global Colors to control bar, shade, zone and line colors
  • Added Stop Loss label when "Show ADR Labels" is selected

Code:
#START OF RSI/Stochastic/MACD Confluence Strategy for ThinkOrSwim
#RSM_STANDARD_UPPER
#
#CHANGELOG
#
# 2022.07.29 V2.0 @bigboss
#                         - Major rewrite of ADR target and stop loss lines.
#                         - Updated defaults to match Heitkotter's defaults
#                            - Changed RSI to use WILDERS
#                            - Changed Stochastics to use SIMPLE and FullD (configurable)
#                            - Changed MACD to use Exponential
#                         - Fixed ADX not respecting the lengthADX input
#                         - Changed code to use reference indicators where available (ex. RSI, MACD)
#                         - Changed default entry to be one tick above or below signal bar
#                            - Stops and Targets are now based off this entry
#                            - User can opt to continue to use close via entryMode input.
#                         - Set default Stop Loss Multiplier to 1.5
#                         - Added logic to calculate ticks and decimal places for futures and forex support.
#                         - Removed Stochastic overbought/oversold inputs, they're not used
#                         - Removed a bunch of unnecessary code. This version has 10 less plots.
#                         - Fixed an issue where "Show Today Only" hid ADR plots on daily and greater charts
#                         - Added Global Colors to control bar, shade, zone and line colors
#                         - Added Stop Loss label when "Show ADR Labels" is selected
#                      
# 2021.05.11 V1.9 @cos251 - Added feature to plot only current ADR Targets and Stoploss
#                            - Feature credit goes to @SleepyZ (thx)
#
# 2021.05.04 V1.8 @cos251 - Fixed >= error to match original strategy as noted by community
#                            - Fixed UpTrend and DownTrend Arrows to display on weekly chart
#                            - Fixed StopLoss and UpTrend/DownTrend targets to display on weekly chart
#
# 2021.04.13 V1.7 @cos251 - Added additional price targets (7, 8, 9) as an input option (ShowExtraTargets789) -
#                            - can be turned on and off independent of targets 1-6 but dependent on trend
#                         - Added ADX triangle plot to stoploss in either direction.  Indicates if ADX #
#                            - is greater than previous ADX[1] and denotes if ADR has crossed
#                            - above ADXR for trend confirmation/strength
#                            - ADX Uptrend - White = ADX > ADX[1], RED = ADX crossed above ADXR, CYAN = ADX > 35
#                            - ADX DownTrend - Purple = ADX > ADX[1], GREEN = ADX crossed above ADXR, YELLOW = ADX > 35
#
# 2021.01.15 V1.6 @SuryaKirnaC
#                         - Modifed ADR Zones shading colors
#                         - Adjusted Indicator and target labels for space
#                         - Made audible alerts user configurable via settings
#
# 2021.01.04 V1.5 @cos251 - Fixed long, short ADR Zone plots to match TradeType selection (Long, Short, BOTH)
#                         - will only plot as selected
#
# 2020.12.21 V1.4 @cos251 - Added input "plotADR"
#                            - plots dynamic ATR/ADR targets- default plots 3 targets - can be turned off by setting #                              "plotADR" to no
#                         - Added input "showExtraTargets"
#                            -  - plots dynamic ATR/ADR targets- for targets 4, 5, and 6
#                         - Added input "showADRZones"
#                            - Dynamic shading of ATR/ADR targets - can be turned off in settings using "showADRZones"
#                         - Added dynamic calculation of both ATR and ADR. User can select between ATR and ADR in #                              settings
#                         - Added input "showADRLabels"
#                            - Added Dynamic Target labels for UpTrend or DownTrend; they will be green or red #                              depending on Up or Down trend
#                         - Added input "showTodayOnly"
#                            - Added option to display shaded ADR/ATR zones for today only "showTodayOnly"
#                            - if set to no - ADR/ATR plots will be plotted for all available data on chart
#                         - Added ability to plot ATR or ADR on DAY chart - MUST TURN OFF "showTodayOnly"
#                         - Added Labels that can be used for "debug" - MUST change "debug" setting to yes
#                         - Added Trend information labels that can be turned on/off
#                    
#
# 2020.11.30 V1.3 @cos251 - Stripped down TICK Version; No ADR since time based aggregation period do not work on TICK #                           Charts
#
# 2020.11.30 V1.2 @cos251 - Add ADR plots and shading per request; will tweak these settings to improve overall
#                           options
# 2020.11.12 V1.1 @cos251 - Changed from strategy to standard study. Added Green Arrow UP
#                           and Red Arrow down when trend starts.  Added option to change to high
#                           timeframe but this WILL repaint; if used, should be used with other
#                           indicators to confirm an entry/exit.
#
# 2020.10.27 V1.0 @cos251 - Added RSI, StochasticSlow and MACD to same indicator
#                         - also calculates MACD;
#                         - Will shade the lower plot area of the following conditions are met
#                           Shade GREEN = RSI > 50 and SlowK > 50 and (macd)Value > (macd)Avg
#                           Shade RED = RSI < 50 and SlowK < 50 and (macd)Value < (macd)Avg
#
#            
#REQUIREMENTS - RSI Set to 7, EXPONENTIAL
#               Stoch Slow 14 and 3 WILDERS
#               MACD 12,26,9 WEIGHTED

declare upper;
################################################################
##########                 Variables                   #########
################################################################

input paintBars = yes;
input entryMode = {default high_low, close};
input showRSMShade = no;
input tradetype = { "long", "short", default "both" };
input rangeType = { default "ADR", "ATR" };
input stopLossMultiplier = 1.5;
input plotADR = yes;
input showADRZones = yes;
input showCurrentTargetsOnly = yes;
input showTodayOnly = yes;
input showTrendLabels = no;
input showADRLabels = no;
input showExtraTargets = no;
input showExtraTargets789 = no;
input showADXTriangle = yes;
input lengthADX = 21;
input showIndicatorLabels = no;
input audibleAlerts = yes;
input debug = no; # change to "NO" after testing

################################################################
##########              Global Colors                  #########
################################################################

DefineGlobalColor("TargetsBull", Color.LIGHT_GREEN);
DefineGlobalColor("TargetsBear", Color.LIGHT_RED);

DefineGlobalColor("CandlesBull",Color.GREEN);
DefineGlobalColor("CandlesBear",Color.RED);
DefineGlobalColor("CandlesNeutral",Color.DARK_GRAY);

DefineGlobalColor("ZoneTarget",CreateColor(213, 252, 213));
DefineGlobalColor("ZoneStopLoss",CreateColor(255, 174, 174));

DefineGlobalColor("ShadeBull",Color.LIGHT_GREEN);
DefineGlobalColor("ShadeBear",Color.LIGHT_RED);

# Rounding Factor
def rf = fold index = 1 to 10 with c = 1 while power(10,index)*ticksize()%1 != 0 do c+1;

################################################################
##########              ATR/ADR Calc                   #########
################################################################
input atrLength = 14;
input atrAverageType = AverageType.WILDERS;
def Range;
if rangeType == rangeType.ATR {
    Range = ATR(averagetype = ATRAverageType, length = ATRLength);
} else {
    Range = Average(high - low, 7);
}

################################################################
##########         Booleans Set for Plot Use           #########
################################################################
def afterStart;
def beforeEnd;
def today;
def openPrice;
def intraday;
if GetAggregationPeriod() < AggregationPeriod.DAY {
    afterStart = GetTime() > RegularTradingStart(GetYYYYMMDD());
    beforeEnd = GetTime() < RegularTradingEnd(GetYYYYMMDD());
    today = if GetLastDay() == GetDay() then 1 else Double.NaN;
    openPrice = DailyOpen();
    intraday = yes;
} else {
    afterStart = Double.NaN;
    beforeEnd = Double.NaN;
    today = Double.NaN;
    openPrice = Double.NaN;
    intraday = no;
}

plot DailyO = if openPrice then openPrice else Double.NaN;
AddLabel(if debug then yes else no, "Day = :" + today);
AddLabel(if debug then yes else no, "Day = :" + GetDay());

################################################################
##########           ADX Indicator Reference           #########
################################################################
def ADX = ADX(length = lengthADX);
def ADXR = (ADX + ADX[lengthADX - 1]) / 2;

################################################################
##########                 RSI                         #########
################################################################
input lengthRSI = 7;
input price = close;
input averageTypeRSI = AverageType.WILDERS;
def RSI = RSI(price = price, AverageType = averageTypeRSI, length = lengthRSI);

################################################################
##########                 Stochastic Slow             #########
################################################################
input KPeriod = 14;
input DPeriod = 3;
input averageTypeStoch = AverageType.SIMPLE;
input stochValue = {default FullD, FullK};
def stoch;
switch(stochValue){
    case FullD:
        stoch = StochasticFull(80,20, KPeriod, DPeriod, high, low, close, 3, averageTypeStoch).FullD;
    case FullK:
        stoch = StochasticFull(80,20, KPeriod, DPeriod, high, low, close, 3, averageTypeStoch).FullK;
}
################################################################
##########                  MACD                       #########
################################################################
input fastLength = 12;
input slowLength = 26;
input MACDLength = 9;
input averageTypeMACD = AverageType.EXPONENTIAL;
def Diff = MACD(fastlength,slowlength,MACDLength,AverageTypeMACD).Diff;

#################################################################
#####   Up/Down Trend Check/SCAN Variables              #########
#################################################################
def UpTrend = if RSI > 50 and stoch > 50 and Sign(Diff) > 0 then 1 else 0;
def DownTrend = if RSI < 50 and stoch < 50 and Sign(Diff) < 0 then 1 else 0;
plot upArrow = if UpTrend == 1 and UpTrend[1] == 0 and (tradetype == tradetype.long or tradetype == tradetype.both) then low else Double.NaN;
upArrow.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
upArrow.SetDefaultColor(Color.GREEN);
upArrow.SetLineWeight(4);
plot downArrow = if DownTrend == 1 and DownTrend[1] == 0 and (tradetype == tradetype.short or tradetype == tradetype.both) then high else Double.NaN;
downArrow.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
downArrow.SetDefaultColor(Color.RED);
downArrow.SetLineWeight(4);

def entry;
def barnum;
def r;
if UpTrend and UpArrow {
    entry = if entryMode == entryMode.high_low then high + TickSize() else close;
    barnum = BarNumber();
    r =  Range;
} else if DownTrend and DownArrow {
    entry = if entryMode == entryMode.high_low then low - ticksize() else close;
    barnum = BarNumber();
    r = -Range;
} else if DownTrend or UpTrend {
    entry = entry[1];
    barnum = barnum[1];
    r = r[1];
} else {
    entry = Double.NaN;
    barnum = Double.NaN;
    r = Double.NaN;
}

AddLabel(if debug then yes else no, "Current Bar:" + BarNumber());
AddLabel(if debug then yes else no, "R:" + r);
AddLabel( if debug then yes else no, "PlotADR: " + plotADR);
AddLabel( if debug then yes else no, "TodayOnly: " + showTodayOnly);

#################################################################
############        ADR/ATR Targets Shading              #########
#################################################################

def drawCurrentOnly = showCurrentTargetsOnly and (barnum < HighestAll(barnum));
def drawAllDays = plotADR and !showTodayOnly;
def drawTodayOnly = plotADR and if intraday then showTodayOnly and today and afterStart and beforeEnd else 1;

# - UpTrend Targets and StopLoss
plot StopLoss = if drawCurrentOnly then Double.NaN
                else if drawAllDays then Round((entry - r * stopLossMultiplier)/ticksize(),0)*ticksize()
                else if drawTodayOnly then Round((entry - r * stopLossMultiplier)/ticksize(),0)*ticksize()
                else Double.NaN;

plot Target1 = if drawCurrentOnly then Double.NaN
               else if drawAllDays then Round((entry + r) / ticksize(),0) * ticksize()
               else if drawTodayOnly then Round((entry + r) / ticksize(),0) * ticksize()
               else Double.NaN;

plot Target2 = if drawCurrentOnly then Double.NaN
               else if drawAllDays then Round((entry + r * 2) / ticksize(),0) * ticksize()
               else if drawTodayOnly then Round((entry + r * 2) / ticksize(),0) * ticksize()
               else Double.NaN;

plot Target3 = if drawCurrentOnly then Double.NaN
               else if drawAllDays then Round((entry + r * 3) / ticksize(),0) * ticksize()
               else if drawTodayOnly then Round((entry + r * 3) / ticksize(),0) * ticksize()
               else Double.NaN;

plot Target4 = if drawCurrentOnly then Double.NaN
               else if drawAllDays and showExtraTargets then Round((entry + r * 4) / ticksize(),0) * ticksize()
               else if drawTodayOnly and showExtraTargets then Round((entry + r * 4) / ticksize(),0) * ticksize()
               else Double.NaN;

plot Target5 = if drawCurrentOnly then Double.NaN
               else if drawAllDays and showExtraTargets then Round((entry + r * 5) / ticksize(),0) * ticksize()
               else if drawTodayOnly and showExtraTargets then Round((entry + r * 5) / ticksize(),0) * ticksize()
               else Double.NaN;

plot Target6 = if drawCurrentOnly then Double.NaN
               else if drawAllDays and showExtraTargets then Round((entry + r * 6) / ticksize(),0) * ticksize()
               else if drawTodayOnly and showExtraTargets then Round((entry + r * 6) / ticksize(),0) * ticksize()
               else Double.NaN;

plot Target7 = if drawCurrentOnly then Double.NaN
               else if drawAllDays and showExtraTargets and showExtraTargets789 then Round((entry + r * 7) / ticksize(),0) * ticksize()
               else if drawTodayOnly and showExtraTargets and showExtraTargets789 then Round((entry + r * 7) / ticksize(),0) * ticksize()
               else Double.NaN;

plot Target8 = if drawCurrentOnly then Double.NaN
               else if drawAllDays and showExtraTargets and showExtraTargets789 then Round((entry + r * 8) / ticksize(),0) * ticksize()
               else if drawTodayOnly and showExtraTargets and showExtraTargets789 then Round((entry + r * 8) / ticksize(),0) * ticksize()
               else Double.NaN;

plot Target9 = if drawCurrentOnly then Double.NaN
               else if drawAllDays and showExtraTargets and showExtraTargets789 then Round((entry + r * 9) / ticksize(),0) * ticksize()
               else if drawTodayOnly and showExtraTargets and showExtraTargets789 then Round((entry + r * 9) / ticksize(),0) * ticksize()
               else Double.NaN;

StopLoss.AssignValueColor(if UpTrend then GlobalColor("TargetsBear") else GlobalColor("TargetsBull"));
Target1.AssignValueColor(if UpTrend then GlobalColor("TargetsBull") else GlobalColor("TargetsBear"));
Target2.AssignValueColor(if UpTrend then GlobalColor("TargetsBull") else GlobalColor("TargetsBear"));
Target3.AssignValueColor(if UpTrend then GlobalColor("TargetsBull") else GlobalColor("TargetsBear"));
Target4.AssignValueColor(if UpTrend then GlobalColor("TargetsBull") else GlobalColor("TargetsBear"));
Target5.AssignValueColor(if UpTrend then GlobalColor("TargetsBull") else GlobalColor("TargetsBear"));
Target6.AssignValueColor(if UpTrend then GlobalColor("TargetsBull") else GlobalColor("TargetsBear"));
Target7.AssignValueColor(if UpTrend then GlobalColor("TargetsBull") else GlobalColor("TargetsBear"));
Target8.AssignValueColor(if UpTrend then GlobalColor("TargetsBull") else GlobalColor("TargetsBear"));
Target9.AssignValueColor(if UpTrend then GlobalColor("TargetsBull") else GlobalColor("TargetsBear"));

# Assign Price Color
AssignPriceColor(if paintBars and UpTrend then GlobalColor("CandlesBull") else if paintBars and DownTrend then GlobalColor("CandlesBear") else if paintBars then GlobalColor("CandlesNeutral") else Color.CURRENT);

########### ADX Triangle Plot ###################################
plot ADXTriangle = if ShowADXTriangle and ADX > ADX[1] then StopLoss else Double.NaN;
ADXTriangle.SetPaintingStrategy(PaintingStrategy.TRIANGLES);
ADXTriangle.AssignValueColor(if ADX > ADXR and ADX[1] < ADXR[1] and UpTrend then Color.RED
                             else if ADX > ADXR and ADX[1] < ADXR[1] and DownTrend then Color.GREEN
                             else if ADX > 35 and UpTrend then Color.CYAN
                             else if ADX > 35 and DownTrend then Color.Yellow
                             else if UpTrend then Color.White
                             else Color.Magenta);
ADXTriangle.SetLineWeight(1);

#################################################################
############          ADR/ATR Zone Shading              #########
#################################################################
def e = entry;
AddCloud(if showADRZones and showExtraTargets and showExtraTargets789 then Target9 else if showADRZones and  showExtraTargets then Target6 else if showADRZones  then Target3 else Double.NaN, if showADRZones then e else Double.NaN , GlobalColor("ZoneTarget"), GlobalColor("ZoneTarget"));
AddCloud(if showADRZones then e else Double.NaN, if showADRZones then StopLoss else Double.NaN ,GlobalColor("ZoneStopLoss"), GlobalColor("ZoneStopLoss"));

#################################################################
####    RSM shade areas based on criteria; adjust as needed  ####
#################################################################
AddCloud(if showRSMShade and UpTrend then Double.POSITIVE_INFINITY else Double.NaN, if UpTrend then Double.NEGATIVE_INFINITY else Double.NaN, GlobalColor("ShadeBull"));
AddCloud(if showRSMShade and DownTrend then Double.POSITIVE_INFINITY else Double.NaN, if DownTrend then Double.NEGATIVE_INFINITY else Double.NaN, GlobalColor("ShadeBear"));

#################################################################
############   Labels disable/blockout as needed        #########
#################################################################
# - Trend Labels
AddLabel(showTrendLabels and (barnum != 0), "Trend BAR#: " + barnum, if UpTrend then Color.GREEN else Color.RED);
AddLabel(showTrendLabels and (barnum != 0), "Trend @ $:" + entry, if UpTrend then Color.GREEN else Color.RED);
AddLabel(showTrendLabels, "Tot Bars:" + (BarNumber() - barnum + 1), if UpTrend then Color.GREEN else Color.RED);
AddLabel(showTrendLabels, "RSM:" + (if UpTrend then "L" else if DownTrend then "S" else "I"), if UpTrend then Color.GREEN else if DownTrend then Color.RED else Color.GRAY);

# - ADR/ATR Labels Targets
AddLabel(openPrice and showADRLabels, "Open:" + DailyO, Color.ORANGE);

AddLabel(showADRLabels and (UpTrend or DownTrend), "Target #1: " + Round(Target1, rf) + " ", if UpTrend then Color.GREEN else if DownTrend then Color.RED else Color.GRAY);
AddLabel(showADRLabels and (UpTrend or DownTrend), "Target #2: " + Round(Target2, rf) + " ", if UpTrend then Color.GREEN else if DownTrend then Color.RED else Color.GRAY);
AddLabel(showADRLabels and (UpTrend or DownTrend), "Target #3: " + Round(Target3, rf) + " ", if UpTrend then Color.GREEN else if DownTrend then Color.RED else Color.GRAY);
AddLabel(showADRLabels and (UpTrend or DownTrend), "Stop Loss: " + Round(StopLoss, rf) + " ", if UpTrend then Color.RED else if DownTrend then Color.GREEN else Color.GRAY);

# - Indicator Label
AddLabel(showIndicatorLabels, "RSI:" + Round (RSI, rf) + " | sK:" + Round(stoch,rf) + " | Macd:" + Round(Diff, rf) + "  ", Color.ORANGE);

#### ALERTS Sound
Alert(audibleAlerts and upArrow, "RSM UpTrend Started", Alert.BAR, Sound.Ding);
Alert(audibleAlerts and downArrow, "RSM DownTrend Started", Alert.BAR, Sound.Ding);
 
Last edited:
Greetings and gratitude to all who have contributed to this study over the years.

A question: for TIME and COLOR in the upper left of the chart. DAY, WEEK and MONTH calculate and paint perfectly.

I can't get the 5M or 15M set up. Have tried to replace DAY with 5M, "5M" but as soon as those inputs are entered, the code is rejected.

What am I doing wrong, please.

Many thanks, Bill
It's "FIVE_MIN", or "TEN_MIN", etc
 
I have an issue where a buy order is submitted with a Study condition, but the condition is ignored, and the order is submitted right away. Is this a problem with the Study condition, or is it a bug in the ToS platform?

All credits to the original authors!!

In my original post, the code was a jpg file. Here is the same code in text:
Ruby:
#START OF RSI/Stochastic/MACD Confluence Strategy for ThinkOrSwim
#RSM_STANDARD_UPPER
#
#CHANGELOG
#
# 2021.05.11 V1.9 @cos251 - Added feature to plot only current ADR Targets and Stoploss
# - Feature credit goes to @SleepyZ (thx)
#
# 2021.05.04 V1.8 @cos251 - Fixed >= error to match original strategy as noted by community
# - Fixed UpTrend and DownTrend Arrows to display on weekly chart
# - Fixed StopLoss and UpTrend/DownTrend targets to display on weekly chart
#
# 2021.04.13 V1.7 @cos251 - Added additional price targets (7, 8, 9) as an input option (ShowExtraTargets789) -
# - can be turned on and off independent of targets 1-6 but dependent on trend
# - Added ADX triangle plot to stoploss in either direction. Indicates if ADX # - is greater than previous ADX[1] and denotes if ADR has crossed
# - above ADXR for trend confirmation/strength
# - ADX Uptrend - White = ADX > ADX[1], RED = ADX crossed above ADXR, CYAN = ADX > 35
# - ADX DownTrend - Purple = ADX > ADX[1], GREEN = ADX crossed above ADXR, YELLOW = ADX > 35
#
# 2021.01.15 V1.6 @SuryaKirnaC
# - Modifed ADR Zones shading colors
# - Adjusted Indicator and target labels for space
# - Made audible alerts user configurable via settings
#
# 2021.01.04 V1.5 @cos251 - Fixed long, short ADR Zone plots to match TradeType selection (Long, Short, BOTH)
# - will only plot as selected
#
# 2020.12.21 V1.4 @cos251 - Added input "plotADR"
# - plots dynamic ATR/ADR targets- default plots 3 targets - can be turned off by setting # "plotADR" to no
# - Added input "showExtraTargets"
# - - plots dynamic ATR/ADR targets- for targets 4, 5, and 6
# - Added input "showADRZones"
# - Dynamic shading of ATR/ADR targets - can be turned off in settings using "showADRZones"
# - Added dynamic calculation of both ATR and ADR. User can select between ATR and ADR in # settings
# - Added input "showADRLabels"
# - Added Dynamic Target labels for UpTrend or DownTrend; they will be green or red # depending on Up or Down trend
# - Added input "showTodayOnly"
# - Added option to display shaded ADR/ATR zones for today only "showTodayOnly"
# - if set to no - ADR/ATR plots will be plotted for all available data on chart
# - Added ability to plot ATR or ADR on DAY chart - MUST TURN OFF "showTodayOnly"
# - Added Labels that can be used for "debug" - MUST change "debug" setting to yes
# - Added Trend information labels that can be turned on/off
#
#
# 2020.11.30 V1.3 @cos251 - Stripped down TICK Version; No ADR since time based aggregation period do not work on TICK # Charts
#
# 2020.11.30 V1.2 @cos251 - Add ADR plots and shading per request; will tweak these settings to improve overall
# options
# 2020.11.12 V1.1 @cos251 - Changed from strategy to standard study. Added Green Arrow UP
# and Red Arrow down when trend starts. Added option to change to high
# timeframe but this WILL repaint; if used, should be used with other
# indicators to confirm an entry/exit.
#
# 2020.10.27 V1.0 @cos251 - Added RSI, StochasticSlow and MACD to same indicator
# - also calculates MACD;
# - Will shade the lower plot area of the following conditions are met
# Shade GREEN = RSI > 50 and SlowK > 50 and (macd)Value > (macd)Avg
# Shade RED = RSI < 50 and SlowK < 50 and (macd)Value < (macd)Avg
#
#REQUIREMENTS - RSI Set to 7, EXPONENTIAL
# Stoch Slow 14 and 3 WILDERS
# MACD 12,26,9 WEIGHTED

declare upper;
################################################################
########## Variables #########
################################################################
input audibleAlerts = yes;

################################################################
########## RSI #########
################################################################
input lengthRSI = 7;
input price = close;
input averageTypeRSI = AverageType.EXPONENTIAL;
def NetChgAvg = MovingAverage(averageTypeRSI, close - close[1], lengthRSI);
def TotChgAvg = MovingAverage(averageTypeRSI, AbsValue(close - close[1]), lengthRSI);
def ChgRatio = if TotChgAvg != 0 then NetChgAvg / TotChgAvg else 0;
def RSI = 50 * (ChgRatio + 1);

################################################################
########## Stochastic Slow #########
################################################################
input over_boughtSt = 80;
input over_soldSt = 20;
input KPeriod = 14;
input DPeriod = 3;
input averageTypeStoch = AverageType.WILDERS;
def SlowK = reference StochasticFull(over_boughtSt, over_soldSt, KPeriod, DPeriod, high, low, close, 3, averageTypeStoch).FullK;
def SlowD = reference StochasticFull(over_boughtSt, over_soldSt, KPeriod, DPeriod, high, low, close, 3, averageTypeStoch).FullD;

################################################################
########## MACD #########
################################################################
input fastLength = 12;
input slowLength = 26;
input MACDLength = 9;
input averageTypeMACD = AverageType.WEIGHTED;
def Value = MovingAverage(averageTypeMACD, close, fastLength) - MovingAverage(averageTypeMACD, close, slowLength);
def Avg = MovingAverage(averageTypeMACD, Value, MACDLength);
def Diff = Value - Avg;

#################################################################
##### Up/Down Trend Check/SCAN Variables #########
#################################################################
def UpTrend = if RSI > 50 and SlowK > 50 and Value > Avg then 1 else 0;
def DownTrend = if RSI < 50 and SlowK < 50 and Value < Avg then 1 else 0;
def NoTrend = if !UpTrend and !DownTrend then 1 else 0;
#
plot upArrow = if UpTrend == 1 and UpTrend[1] == 0 and NoTrend == 0 then 1 else 0;

#### ALERTS Sound
Alert(audibleAlerts and upArrow, "RSM UpTrend Started", Alert.BAR, Sound.Chimes);
 
Last edited by a moderator:
I have an issue where a buy order is submitted with a Study condition, but the condition is ignored, and the order is submitted right away. Is this a problem with the Study condition, or is it a bug in the ToS platform?

All credits to the original authors!!

In my original post, the code was a jpg file. Here is the same code in text:
Ruby:
#START OF RSI/Stochastic/MACD Confluence Strategy for ThinkOrSwim
#RSM_STANDARD_UPPER
#
#CHANGELOG
#
# 2021.05.11 V1.9 @cos251 - Added feature to plot only current ADR Targets and Stoploss
# - Feature credit goes to @SleepyZ (thx)
#
# 2021.05.04 V1.8 @cos251 - Fixed >= error to match original strategy as noted by community
# - Fixed UpTrend and DownTrend Arrows to display on weekly chart
# - Fixed StopLoss and UpTrend/DownTrend targets to display on weekly chart
#
# 2021.04.13 V1.7 @cos251 - Added additional price targets (7, 8, 9) as an input option (ShowExtraTargets789) -
# - can be turned on and off independent of targets 1-6 but dependent on trend
# - Added ADX triangle plot to stoploss in either direction. Indicates if ADX # - is greater than previous ADX[1] and denotes if ADR has crossed
# - above ADXR for trend confirmation/strength
# - ADX Uptrend - White = ADX > ADX[1], RED = ADX crossed above ADXR, CYAN = ADX > 35
# - ADX DownTrend - Purple = ADX > ADX[1], GREEN = ADX crossed above ADXR, YELLOW = ADX > 35
#
# 2021.01.15 V1.6 @SuryaKirnaC
# - Modifed ADR Zones shading colors
# - Adjusted Indicator and target labels for space
# - Made audible alerts user configurable via settings
#
# 2021.01.04 V1.5 @cos251 - Fixed long, short ADR Zone plots to match TradeType selection (Long, Short, BOTH)
# - will only plot as selected
#
# 2020.12.21 V1.4 @cos251 - Added input "plotADR"
# - plots dynamic ATR/ADR targets- default plots 3 targets - can be turned off by setting # "plotADR" to no
# - Added input "showExtraTargets"
# - - plots dynamic ATR/ADR targets- for targets 4, 5, and 6
# - Added input "showADRZones"
# - Dynamic shading of ATR/ADR targets - can be turned off in settings using "showADRZones"
# - Added dynamic calculation of both ATR and ADR. User can select between ATR and ADR in # settings
# - Added input "showADRLabels"
# - Added Dynamic Target labels for UpTrend or DownTrend; they will be green or red # depending on Up or Down trend
# - Added input "showTodayOnly"
# - Added option to display shaded ADR/ATR zones for today only "showTodayOnly"
# - if set to no - ADR/ATR plots will be plotted for all available data on chart
# - Added ability to plot ATR or ADR on DAY chart - MUST TURN OFF "showTodayOnly"
# - Added Labels that can be used for "debug" - MUST change "debug" setting to yes
# - Added Trend information labels that can be turned on/off
#
#
# 2020.11.30 V1.3 @cos251 - Stripped down TICK Version; No ADR since time based aggregation period do not work on TICK # Charts
#
# 2020.11.30 V1.2 @cos251 - Add ADR plots and shading per request; will tweak these settings to improve overall
# options
# 2020.11.12 V1.1 @cos251 - Changed from strategy to standard study. Added Green Arrow UP
# and Red Arrow down when trend starts. Added option to change to high
# timeframe but this WILL repaint; if used, should be used with other
# indicators to confirm an entry/exit.
#
# 2020.10.27 V1.0 @cos251 - Added RSI, StochasticSlow and MACD to same indicator
# - also calculates MACD;
# - Will shade the lower plot area of the following conditions are met
# Shade GREEN = RSI > 50 and SlowK > 50 and (macd)Value > (macd)Avg
# Shade RED = RSI < 50 and SlowK < 50 and (macd)Value < (macd)Avg
#
#REQUIREMENTS - RSI Set to 7, EXPONENTIAL
# Stoch Slow 14 and 3 WILDERS
# MACD 12,26,9 WEIGHTED

declare upper;
################################################################
########## Variables #########
################################################################
input audibleAlerts = yes;

################################################################
########## RSI #########
################################################################
input lengthRSI = 7;
input price = close;
input averageTypeRSI = AverageType.EXPONENTIAL;
def NetChgAvg = MovingAverage(averageTypeRSI, close - close[1], lengthRSI);
def TotChgAvg = MovingAverage(averageTypeRSI, AbsValue(close - close[1]), lengthRSI);
def ChgRatio = if TotChgAvg != 0 then NetChgAvg / TotChgAvg else 0;
def RSI = 50 * (ChgRatio + 1);

################################################################
########## Stochastic Slow #########
################################################################
input over_boughtSt = 80;
input over_soldSt = 20;
input KPeriod = 14;
input DPeriod = 3;
input averageTypeStoch = AverageType.WILDERS;
def SlowK = reference StochasticFull(over_boughtSt, over_soldSt, KPeriod, DPeriod, high, low, close, 3, averageTypeStoch).FullK;
def SlowD = reference StochasticFull(over_boughtSt, over_soldSt, KPeriod, DPeriod, high, low, close, 3, averageTypeStoch).FullD;

################################################################
########## MACD #########
################################################################
input fastLength = 12;
input slowLength = 26;
input MACDLength = 9;
input averageTypeMACD = AverageType.WEIGHTED;
def Value = MovingAverage(averageTypeMACD, close, fastLength) - MovingAverage(averageTypeMACD, close, slowLength);
def Avg = MovingAverage(averageTypeMACD, Value, MACDLength);
def Diff = Value - Avg;

#################################################################
##### Up/Down Trend Check/SCAN Variables #########
#################################################################
def UpTrend = if RSI > 50 and SlowK > 50 and Value > Avg then 1 else 0;
def DownTrend = if RSI < 50 and SlowK < 50 and Value < Avg then 1 else 0;
def NoTrend = if !UpTrend and !DownTrend then 1 else 0;
#
plot upArrow = if UpTrend == 1 and UpTrend[1] == 0 and NoTrend == 0 then 1 else 0;

#### ALERTS Sound
Alert(audibleAlerts and upArrow, "RSM UpTrend Started", Alert.BAR, Sound.Chimes);

Your post was very well-documented. But the crucial images had to be removed because they included your account number and other personal information.

It 'appeared' in one of the images, that you submitted the conditional order and the condition was:
uparrow is value

The standard syntax is:
uparrow is true

Did you know that a chart alert (right click on any chart, and choose alert) uses the same widget as a conditional order?
It is a simple and easy way to test out whether your conditional order is working.
It has the lucky strike extra, of 'saving' your order filter so you don't have to recreate it each time.
read more: https://usethinkscript.com/threads/answers-to-commonly-asked-questions.6006/#post-80482
 
Your post was very well-documented. But the crucial images had to be removed because they included your account number and other personal information.

It 'appeared' in one of the images, that you submitted the conditional order and the condition was:


The standard syntax is:


Did you know that a chart alert (right click on any chart, and choose alert) uses the same widget as a conditional order?
It is a simple and easy way to test out whether your conditional order is working.
It has the lucky strike extra, of 'saving' your order filter so you don't have to recreate it each time.
read more: https://usethinkscript.com/threads/answers-to-commonly-asked-questions.6006/#post-80482
Thanks so much for your reply, MerryDay! I'll give this a shot when the markets open on Tuesday.
 

BenTen's Watchlist + Setup + Trade Recaps

Get access to Ben's watchlist, swing trading strategy, ThinkorSwim setup, and trade examples.

Learn more

Similar threads

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
297 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