Rob Smith's The STRAT Indicator for ThinkorSwim

Pelonsax

Active member
VIP
Been using the 1 and 2 bar rev strat scans, fantastic!. I'm not a programmer so can anyone help me understand how to turn the bullish scans into bearish scans? I appreciate any guidance. Thanks
I'm pretty sure that all you need to do is go in the code and switch around any and all <> signs. (where you see <, replace it with <, etc)
 

KCali

New member
VIP
Thank you. I was able to do the 1 Bar Rev Strat and the Inside Bull Break. The 2 Bar Rev Strat scan is looking for a 1-2dn-2up and the Thinkscript Editor says "no such function:TwoDown at 1:1". I'm not quite sure what that means, but it won't let me change it to "TwoUp", since I'd be looking for a 1-2up-2dn.
 

YikesItsme_

New member
VIP
In order to keep the post clean, updates are now found at the very bottom of the thread
NEWEST: 05/21/21

A SUITE OF PRODUCTS BY PELONSAX AKA RAMON DV FOR USE WITH: ROB SMITH’S THE STRAT

I am writing these to help myself learn The STRAT because I am a visual learner. And I am sharing them because many generous people have shared their time and expertise with me along my journey and we can do more when we work together.

But before we get to all of that, here is a link to a really great video that Rob just recorded for Benzinga where he gives a GREAT introduction to The STRAT. It is NOT recommended that you use any of my indicators for trading with live money until you've had the chance to gain a real understanding of how The STRAT works and given yourself ample opportunity to practice on paper.

Here's the video: https://benzinga.wistia.com/medias/zoi6e794v3?fbclid=IwAR06RBtG0bimZcgyDuryjd12K7BdbDPCdkrE-O0k3hcT7JvMsk889v8qv3c

Keep in mind that I am not the creator of The STRAT. I am a disciple who has been creating these TOS studies along the way in my journey to learn this system and be able to visualize how it works. For more information on the STRAT, and to really learn how to use it to trade effectively with or without any of my studies, please visit Rob on Ticker Tocker!!

https://www.tickertocker.com/?fbclid=IwAR1ZDPKpTX2WzOrnOFqFuMOw5Wx_u4eTZoxco8-yZeBIObQJHQsYmZAakQU

!!!VERY IMPORTANT!!!! THERE ARE NO BUY AND SELL SIGNALS.!!!
The decision to buy or sell MUST BE predicated upon a deeper understanding of this system and any other tools at your disposal. As a matter of fact this study only considers the four basic reversals. You can turn both the arrows and the bubbles off in the settings so they don't clutter your chart.

Lastly, I would like to point out that this is an active thread that is constantly evolving as I continue to improve and add to these studies. If you have questions or comments about them I just ask, as I noted above, that you first make sure you are referring to the most recent version of a particular study and that you be very specific using screenshots in any such comments.

For those of you from Twitter who are just here for the bare essentials, here are two very basic studies:

STRAT BAR NUMBERS 2.0

https://tos.mx/Kac4tLf
3PfcCmA.jpg


Code:
#------------------------------------
# S T R A T    N U M B E R S
#
# A study by Ramon DV. aka Pelonsax
#
# Version 1.0  8/01/20
#
# Version 2.0 8/4/20 Corrected errors in logic for scenarios
#
#------------------------------------
#------------------------------------
# DEFINE SCENARIOS
#------------------------------------
def H = high;
def L = low;
def C = close;
def O = open;

def insidebar =  (H < H[1] and L > L[1]) or (H == H[1] and L > L[1]) or (H < H[1] and L == L[1]) or (H == H[1] and L == L[1]);
def outsidebar =  H  > H[1] and L <  L[1];
def twoup  = H > H[1] and L >= L[1];
def twodown  = H <= H[1] and L < L[1];

#------------------------------------
# STRAT NUMBERS
#------------------------------------
input Show_Strat_Numbers = yes;
input Show_Twos = yes;
plot barType = if Show_Strat_Numbers and insidebar then 1 else if Show_Strat_Numbers and outsidebar then 3 else Double.NaN;
barType.SetPaintingStrategy(PaintingStrategy.VALUES_BELOW);
barType.AssignValueColor(color.WHITE);

plot barTypeDN = if Show_Strat_Numbers and !insidebar and !outsidebar and Show_Twos and twodown then 2 else Double.NaN;
barTypeDN.SetPaintingStrategy(PaintingStrategy.VALUES_BELOW);
barTypeDN.AssignValueColor(color.DOWNTICK);

plot barTypeUP = if Show_Strat_Numbers and !insidebar and !outsidebar and Show_Twos and twoup then 2 else Double.NaN;
barTypeUP.SetPaintingStrategy(PaintingStrategy.VALUES_ABOVE);
barTypeUP.AssignValueColor(color.UPTICK);

STRAT BAR CANDLES PAINT ON ONES AND THREES WITH NUMBERS BELOW

https://tos.mx/jdHvqj4

Add the following line to the code above, down at the very bottom:

assignPriceColor(if insidebar then color.yellow else if outsidebar then color.magenta else color.current);

MAIN STUDIES:

TIME_FRAME_CONTINUITY

https://tos.mx/JZROQzW

STRAT_REMIX_2.0

https://tos.mx/dpLsYg3

STRAT_REMIX_LITE_2.0

https://tos.mx/4osFry3
Same as the REMIX but with candle paint only on Inside Bars, Outside Bars, and Reversals. Allows user to turn toggle each.

STRAT_REMIX_SUPER_LITE

https://tos.mx/l7NLHn2
Same as the REMIX but completely stripped down to the bare essentials for machines with performance issues. This is the study I use.

CONTINUITY FLEX GRID

https://tos.mx/bWIOYRv
Custom Flex Grid I made for a friend. Here's a video for how to load the symbols on it:

Here's what it looks like:
G18g2H1.png


RADAR FLEX GRID

https://tos.mx/ekXrkrB
Custom Flex Grid that was Alex Option's idea. Here's a video for it:
https://youtu.be/v5LD-t_PH8A

Here's what it looks like:
a0A49ZA.png


VIDEO TUTORIAL FOR MAIN STUDIES:


HAMMERS AND SHOOTERS

This study is ONLY meant to allow the user to find the best settings for the hammer and shooting star component of the Remix study and Actionable Signals studies. All it does is find Hammers and Shooters using the same code in those other studies and paints them green or red while all other candles are painted gray. With this study you can tweak the settings in a way that best serves your purposes and then transfer those settings to the Strat studies.

Hammers_N_Shooters
https://tos.mx/zGPo4F4

Nv6NGSJ.png



NEW FULL COLOR VERSION OF OVERLAYS

These work great on a white chart
Darkest shade of green/red Version 1: https://tos.mx/tjloQ7e (the lowest time frame)
Medium shade of green/red Version 2:https://tos.mx/TCdGJMZ
Medium shade of green/red Version 3: https://tos.mx/tRTlDa1
Lightest shade of green/red Version 4: https://tos.mx/ZRF4K8Z(the highest time frame)

Pre-Loaded intraday chart: https://tos.mx/q7Bfm3J (Now complete with TFC study!)
Pre-Loaded full chart: https://tos.mx/jSJp52F (Now complete with TFC study!)


xqjCBIb.png


I find these are the best settings to the overall appearance the chart if you're using the green/red overlays:

BROUOrv.png



SIMPLE WATCHLIST COLUMNS

Here's what they look like:

ZeLjZmE.png


Here is a code for STRAT Candle watchlist column:


Code:
#------------------------------------
#
#        M T F      S T R A T
#         W A T C H L I S T
# a Study by Ramon DV. aka Pelonsax
#
#------------------------------------
#------------------------------------
# S T R A T    R E V E R S A L S
#
# A study by Ramon DV. aka Pelonsax
#
# Version 1.0  8/01/20
#
# Version 2.0 8/4/20 Corrected errors in logic for scenarios
# Version 2.1 8/15/20 Added Reversals
#
#------------------------------------
def H = high;
def L = low;
def O = open;
def C = close;
#------------------------------------
# DEFINE SCENARIOS
#------------------------------------
def insidebar =  (H < H[1] and L > L[1]) or (H == H[1] and L > L[1]) or (H < H[1] and L == L[1]) or (H == H[1] and L == L[1]);
def outsidebar =  H  > H[1] and L <  L[1];

def insidebarup  = insidebar and O < C;
def twoup  = H > H[1] and L >= L[1];
def outsidebarup  = outsidebar and O < C;
def insidebardown  = insidebar and O > C;
def twodown  = H <= H[1] and L < L[1];
def outsidebardown  = outsidebar and O > C;
#------------------------------------
# LABEL SECTION
#------------------------------------
AddLabel(yes,

if twoup then “2U” else if twodown then “2D” else if insidebarup then “1U" else if insidebardown then “1D” else if outsidebarup then “3U” else if outsidebardown then “3D” else if insidebar and !insidebarup and !insidebardown then "1" else if outsidebar and !outsidebarup and !outsidebardown then "3" else "", color.black);

assignbackgroundColor(
if
twoup then color.green else if
twodown then color.red else if
outsidebarup then color.dark_green else if
insidebarup then color.light_green else if
outsidebardown then color.dark_red else if
insidebardown then color.orange else if
!insidebarup and
!insidebardown and
insidebar then color.white else if
!outsidebardown and
!outsidebarup and
outsidebar then color.white else color.current);

Here is a code for FTC Watchlist columns:

Code:
#S T R A T      F T C
#WATCHLIST
#Ramon DV aka Pelonsax
plot O = open;
def C = close;
assignBackgroundColor(if C > O then color.GREEN else if O > C then color.RED else if O == C then color.white else color.current);
addlabel(yes, O, color.black);
# END
·

NEW WATCHLIST COLUMN.

Here's a video tutorial for how to set it up:

Code:
#------------------------------------
#
#        M T F      S T R A T
#         W A T C H L I S T
# a Study by Ramon DV. aka Pelonsax
#
#------------------------------------
#------------------------------------
# S T R A T    R E V E R S A L S
#
# A study by Ramon DV. aka Pelonsax
#
# Version 1.0  8/01/20
#
# Version 2.0 8/4/20 Corrected errors in logic for scenarios
# Version 2.1 8/15/20 Added Reversals
#  9/15/20 added two previous bars and reversals for WL columns
#
#------------------------------------
def H = high;
def L = low;
def O = open;
def C = close;
#------------------------------------
# DEFINE SCENARIOS
#------------------------------------
def insidebar =  (H < H[1] and L > L[1]) or (H == H[1] and L > L[1]) or (H < H[1] and L == L[1]) or (H == H[1] and L == L[1]);
def outsidebar =  H  > H[1] and L <  L[1];

def insidebarup  = insidebar and O < C;
def twoup  = H > H[1] and L >= L[1];
def outsidebarup  = outsidebar and O < C;
def insidebardown  = insidebar and O > C;
def twodown  = H <= H[1] and L < L[1];
def outsidebardown  = outsidebar and O > C;


def insidebar1 =  (H[1] < H[2] and L[1] > L[2]) or (H[1] == H[2] and L[1] > L[2]) or (H[1] < H[2] and L[1] == L[2]) or (H[1] == H[2] and L[1] == L[2]);
def outsidebar1 =  H[1]  > H[2] and L[1] <  L[2];

def insidebarup1  = insidebar1 and O[1] < C[1];
def twoup1 = H[1] > H[2] and L[1] >= L[2];
def outsidebarup1  = outsidebar1 and O[1] < C[1];
def insidebardown1  = insidebar1 and O[1] > C[1];
def twodown1  = H[1] <= H[2] and L[1] < L[2];
def outsidebardown1  = outsidebar1 and O[1] > C[1];


def insidebar2 =  (H[2] < H[3] and L[2] > L[3]) or (H[2] == H[3] and L[2] > L[3]) or (H[2] < H[3] and L[2] == L[3]) or (H[2] == H[3] and L[2] == L[3]);
def outsidebar2 =  H[2]  > H[3] and L[2] <  L[3];

def insidebarup2  = insidebar2 and O[2] < C[2];
def twoup2  = H[2] > H[3] and L[2] >= L[3];
def outsidebarup2  = outsidebar2 and O[2] < C[2];
def insidebardown2  = insidebar2 and O[2] > C[2];
def twodown2  = H[2] <= H[3] and L[2] < L[3];
def outsidebardown2  = outsidebar2 and O[2] > C[2];

#------------------------------------
# DEFINE REVERSALS (Basic four)
#------------------------------------

# Bullish
def TwoOneTwoBull = twoup and insidebar1 and twodown2;
def TwoTwoBull = twoup and twodown1;
def ThreeBull = outsidebarup and (twodown1 or insidebar1 or outsidebardown1);
def ThreeOneTwoBull = twoup and insidebar1 and outsidebardown2;

# Bearish
def TwoOneTwoBear = twodown and insidebar1 and twoup2;
def TwoTwoBear = twodown and twoup2;
def ThreeBear = outsidebardown and (twoup1 or insidebar1 or outsidebarup1);
def ThreeOneTwoBear = twodown and insidebar1 and outsidebarup2;

#------------------------------------
# LABEL SECTION
#------------------------------------
AddLabel(yes,

(if twoup2 then “2U” else if twodown2 then “2D” else if insidebarup2 then “1U" else if insidebardown2 then “1D” else if outsidebarup2 then “3U” else if outsidebardown2 then “3D” else if insidebar2 and !insidebarup2 and !insidebardown2 then "1" else if outsidebar2 and !outsidebarup2 and !outsidebardown2 then "3" else “”) + “-“ +

(if twoup1 then “2U” else if twodown1 then “2D” else if insidebarup1 then “1U" else if insidebardown1 then “1D” else if outsidebarup1 then “3U” else if outsidebardown1 then “3D” else if insidebar1 and !insidebarup1 and !insidebardown1 then "1" else if outsidebar1 and !outsidebarup1 and !outsidebardown1 then "3" else “”)+ ”-“ +

(if twoup then “[2U]” else if twodown then “[2D]” else if insidebarup then “[1U]” else if insidebardown then “[1D]” else if outsidebarup then “[3U]” else if outsidebardown then “[3D]” else if insidebar and !insidebarup and !insidebardown then “[1]” else if outsidebar and !outsidebarup and !outsidebardown then “[3]” else “”), color.black);

assignbackgroundColor(if TwoOneTwoBull or TwoTwoBull or ThreeBull or ThreeOneTwoBull then color.cyan else if TwoOneTwoBear or TwoTwoBear or ThreeBear or ThreeOneTwoBear then color.magenta else if

!TwoTwoBull and
!ThreeBull and
!ThreeOneTwoBull and
!TwoOneTwoBear and
!TwoTwoBear and
!ThreeBear and
!ThreeOneTwoBear and
twoup then color.green else if

!TwoOneTwoBull and
!TwoTwoBull and
!ThreeBull and
!ThreeOneTwoBull and
!TwoOneTwoBear and
!TwoTwoBear and
!ThreeBear and
!ThreeOneTwoBear and
twodown then color.red else if

!TwoOneTwoBull and
!TwoTwoBull and
!ThreeBull and
!ThreeOneTwoBull and
!TwoOneTwoBear and
!TwoTwoBear and
!ThreeBear and
!ThreeOneTwoBear and
outsidebarup then color.dark_green else if

!TwoOneTwoBull and
!TwoTwoBull and
!ThreeBull and
!ThreeOneTwoBull and
!TwoOneTwoBear and
!TwoTwoBear and
!ThreeBear and
!ThreeOneTwoBear and
insidebarup then color.light_green else if

!TwoOneTwoBull and
!TwoTwoBull and
!ThreeBull and
!ThreeOneTwoBull and
!TwoOneTwoBear and
!TwoTwoBear and
!ThreeBear and
!ThreeOneTwoBear and
outsidebardown then color.dark_red else if

!TwoOneTwoBull and
!TwoTwoBull and
!ThreeBull and
!ThreeOneTwoBull and
!TwoOneTwoBear and
!TwoTwoBear and
!ThreeBear and
!ThreeOneTwoBear and
insidebardown then color.orange else if

!TwoOneTwoBull and
!TwoTwoBull and
!ThreeBull and
!ThreeOneTwoBull and
!TwoOneTwoBear and
!TwoTwoBear and
!ThreeBear and
!ThreeOneTwoBear and
!insidebarup and
!insidebardown and
insidebar then color.white else if

!TwoOneTwoBull and
!TwoTwoBull and
!ThreeBull and
!ThreeOneTwoBull and
!TwoOneTwoBear and
!TwoTwoBear and
!ThreeBear and
!ThreeOneTwoBear and
!outsidebardown and
!outsidebarup and
outsidebar then color.white

else color.current);

Here's what how they appear:
JXfTMz6.png


USER MOD BY BOB'S A STRATTER (THANK'S BOB!)

gmLABfX.png

Code:
#------------------------------------
#
#        M T F      S T R A T
#         W A T C H L I S T
# a Study by Ramon DV. aka Pelonsax
# Modified by Bob's a Stratter
#
#------------------------------------
#------------------------------------
# S T R A T    R E V E R S A L S
#
# A study by Ramon DV. aka Pelonsax
#
# Version 1.0  8/01/20
#
# Version 2.0 8/4/20 Corrected errors in logic for scenarios
# Version 2.1 8/15/20 Added Reversals
#
#------------------------------------
plot O = open;
def H = high;
def L = low;

def C = close;
#------------------------------------
# DEFINE SCENARIOS
#------------------------------------
def insidebar =  (H < H[1] and L > L[1]) or (H == H[1] and L > L[1]) or (H < H[1] and L == L[1]) or (H == H[1] and L == L[1]);
def outsidebar =  H  > H[1] and L <  L[1];

def insidebarup  = insidebar and O < C;
def twoup  = H > H[1] and L >= L[1];
def outsidebarup  = outsidebar and O < C;
def insidebardown  = insidebar and O > C;
def twodown  = H <= H[1] and L < L[1];
def outsidebardown  = outsidebar and O > C;
#------------------------------------
# LABEL SECTION
#------------------------------------

AssignBackgroundColor(
if
twoup then Color.GREEN else if
twodown then Color.RED else if
outsidebarup then Color.DARK_GREEN else if
insidebarup then Color.LIGHT_GREEN else if
outsidebardown then Color.DARK_RED else if
insidebardown then Color.ORANGE else if
!insidebarup and
!insidebardown and
insidebar then Color.WHITE else if
!outsidebardown and
!outsidebarup and
outsidebar then Color.YELLOW else Color.CURRENT);
addlabel(yes, O, color.black);

COMPLETE TIME FRAME CONTINUITY STUDY WITH BACKGROUND COLOR AND ALERTS

THIS STUDY HAS BEEN INCORPORATED INTO THE TIME FRAME CONTINUITY STUDY AT THE TOP

DO NOT LOAD THIS ON THE WHITE PRELOADED CHARTS. THEY ALREADY HAVE A VERSION THAT DOESN'T CHANGE THE BACKGROUND COLOR


This study incorporates the same elements of the previous TFC studies in one complete script. You can place this script on any chart in any time frame and it will work, but there is a catch and there is nothing anyone can do to change it: like ANY multi time frame study in tThink or Swim, this WILL NOT use the aggregations for time frames that are lower than the chart. This means that it will not draw or consider the open for a lower time frame (for example any intraday TF on a daily chart. I recommend that you use a grid with multiple time frames in order to make the best use of this study. When you place this on a chart, you must check to see how much data you are providing. For example, if you are on a 1min 1D chart, you have only two days worth of data, so you cannot use any time frame higher than a day. In order to use the week or month or year, you would need the chart to include a week, month, year's worth of time. Once you have the time frame the chart is set to and the amount of time that is on the chart, you should go into the settings and select "No" for any time frames that are not included. For example: If you use a 5 min 10 D chart, you should select "no" on Use Minute, Use Three, Use Month, Use Year. If you are only looking for intraday time frame continuity, you should select Use Minute through Use Hour. The study changes the background color of the chart when there is FTFC to the upside (green) or to the downside (red). If the background is black, there is no FTFC. It also has the highest and lowest open levels painted as cyan and magenta lines (like the previous studies) as well as arrows wherever there is FTFC. You can choose to not display only of the elements listed above with the exception of the background color. I recommend you allow the use of the lines and labels when you first place the study on the chart so that you can be sure that you are displaying time frame continuity correctly or as desired. There is also an audible alert. Here's what it looks like:

vPDRqbR.png


LOQAqlt.png




Here's the study link:
https://tos.mx/JZROQzW

Here's the code:
Code:
#-------------------------------
#
# S T R A T    O P E N S
#
# a study that indicates the opens
# on mutliple time frames
# for full time frame continuity INTRADAY
# and FULL. All in one.
# Author: Ramon DV aka Pelonsax
#
#--------------------------------
declare upper;
# -----------------------------------
# INPUTS
# -----------------------------------
input Use_Minute = yes;
input Use_Three = yes;
input Use_Five = yes;
input Use_Fifteen = yes;
input Use_Thirty = yes;
input Use_Sixty = yes;
input Use_Day = yes;
input Use_Week = yes;
input Use_Month = yes;
input Use_Year = yes;
input Show_Lines = yes;
input Show_Arrows = yes;
input Show_Label = yes;
# -----------------------------------
# 1 Minute
# -----------------------------------
def "1mAGG" = AggregationPeriod.MIN;
def Vminute = GetAggregationPeriod() <= AggregationPeriod.MIN;
def minute;
if Use_Minute and Vminute {
    minute = open(period = "1mAGG");
} else {
    minute = open;
}
# -----------------------------------
# 3 Minute
# -----------------------------------
def "3mAGG" = AggregationPeriod.THREE_MIN;
def Vthree = GetAggregationPeriod() <= AggregationPeriod.THREE_MIN;
def three;
if Use_Three and Vthree {
    three = open(period = "3mAGG");
} else {
    three = open;
}
# -----------------------------------
# 5 Minute
# -----------------------------------
def "5mAGG" = AggregationPeriod.FIVE_MIN;
def Vfive = GetAggregationPeriod() <= AggregationPeriod.FIVE_MIN;
def five;
if Use_Five and Vfive {
    five = open(period = "5mAGG");
} else {
    five = open;
}
# -----------------------------------
# 15 Minute Line
# -----------------------------------
def "15mAGG" = AggregationPeriod.FIFTEEN_MIN;
def Vfifteen = GetAggregationPeriod() <= AggregationPeriod.FIFTEEN_MIN;
def fifteen;
if Use_Fifteen and  Vfifteen {
    fifteen = open(period = "15mAGG");
} else {
    fifteen = open;
}
# -----------------------------------
# 30 Minute Line
# -----------------------------------
def "30mAGG" = AggregationPeriod.THIRTY_MIN;
def Vthirty = GetAggregationPeriod() <= AggregationPeriod.THIRTY_MIN;
def thirty;
if Use_Thirty and Vthirty {
    thirty = open(period = "30mAGG");
} else {
    thirty = open;
}
# -----------------------------------
# 60 Minute Line
# -----------------------------------
def "60mAGG" = AggregationPeriod.HOUR;
def Vhour = GetAggregationPeriod() <= AggregationPeriod.HOUR;
def hour;
if Use_Sixty and Vhour {
    hour = open(period = "60mAGG");
} else {
    hour = open;
}
# -----------------------------------
# Day
# -----------------------------------
def "1DAGG" = AggregationPeriod.DAY;
def Vday = GetAggregationPeriod() <= AggregationPeriod.DAY;
def day;
if Use_Day and Vday {
    day = open(period = "1DAGG");
} else {
    day = open;
}
# -----------------------------------
# Week
# -----------------------------------
def "1wAGG" = AggregationPeriod.WEEK;
def Vweek = GetAggregationPeriod() <= AggregationPeriod.WEEK;
def week;
if Use_Week and Vweek {
    week = open(period = "1wAGG");
} else {
    week = open;
}
# -----------------------------------
# Month
# -----------------------------------
def "1MOAGG" = AggregationPeriod.MONTH;
def Vmonth = GetAggregationPeriod() <= AggregationPeriod.MONTH;
def month;
if Use_Month and Vmonth {
    month = open(period = "1MOAGG");
} else {
    month = open;
}
# -----------------------------------
# Year
# -----------------------------------
def "1YAGG" = AggregationPeriod.YEAR;
def Vyear = GetAggregationPeriod() <= AggregationPeriod.YEAR;
def year;
if Use_Year and Vyear {
    year = open(period = "1YAGG");
} else {
    year = open;
}

# -----------------------------------
# FTC COMPONENT
# -----------------------------------

# TOP

plot top = if minute >=
three and minute >=
five and minute >=
fifteen and minute >=
thirty and minute >=
hour and minute >=
day and minute >=
week and minute >=
month and minute >=
year then minute else

if three >=
minute and three >=
five and three >=
fifteen and three >=
thirty and three >=
hour and three >=
day and three >=
week and three >=
month and three >=
year then three else

if five >=
minute and five >=
three and five >=
fifteen and five >=
thirty and five >=
hour and five >=
day and five >=
week and five >=
month and five >=
year then five else

if fifteen >=
minute and fifteen >=
three and fifteen >=
five and fifteen >=
thirty and fifteen >=
hour and fifteen >=
day and fifteen >=
week and fifteen >=
month and fifteen >=
year then fifteen else

if thirty >=
minute and thirty >=
three and thirty >=
five and thirty >=
fifteen and thirty >=
hour and thirty >=
day and thirty >=
week and thirty >=
month and thirty >=
year then thirty  else

if hour >=
minute and hour >=
three and hour >=
five and hour >=
fifteen and hour >=
thirty and hour >=
day and hour >=
week and hour >=
month and hour >=
year then hour else

if day >=
minute and day >=
three and day >=
five and day >=
fifteen and day >=
thirty and day >=
hour and day >=
week and day >=
month and day >=
year then day else

if week >=
minute and week >=
three and week >=
five and week >=
fifteen and week >=
thirty and week >=
hour and week >=
day and week >=
month and week >=
year then week else

if month >=
minute and month >=
three and month >=
five and month >=
fifteen and month >=
thirty and month >=
hour and month >=
day and month >=
week and month >=
year then month else

if year >=
minute and year >=
three and year >=
five and year >=
fifteen and year >=
thirty and year >=
hour and year >=
day and year >=
week and year >=
month then year else

Double.NaN;

# BOTTOM

plot bottom = if minute <=
three and minute <=
five and minute <=
fifteen and minute <=
thirty and minute <=
hour and minute <=
day and minute <=
week and minute <=
month and minute <=
year then minute else

if three <=
minute and three <=
five and three <=
fifteen and three <=
thirty and three <=
hour and three <=
day and three <=
week and three <=
month and three <=
year then three else

if five <=
minute and five <=
three and five <=
fifteen and five <=
thirty and five <=
hour and five <=
day and five <=
week and five <=
month and five <=
year then five else

if fifteen <=
minute and fifteen <=
three and fifteen <=
five and fifteen <=
thirty and fifteen <=
hour and fifteen <=
day and fifteen <=
week and fifteen <=
month and fifteen <=
year then fifteen else

if thirty <=
minute and thirty <=
three and thirty <=
five and thirty <=
fifteen and thirty <=
hour and thirty <=
day and thirty <=
week and thirty <=
month and thirty <=
year then thirty  else

if hour <=
minute and hour <=
three and hour <=
five and hour <=
fifteen and hour <=
thirty and hour <=
day and hour <=
week and hour <=
month and hour <=
year then hour else

if day <=
minute and day <=
three and day <=
five and day <=
fifteen and day <=
thirty and day <=
hour and day <=
week and day <=
month and day <=
year then day else

if week <=
minute and week <=
three and week <=
five and week <=
fifteen and week <=
thirty and week <=
hour and week <=
day and week <=
month and week <=
year then week else

if month <=
minute and month <=
three and month <=
five and month <=
fifteen and month <=
thirty and month <=
hour and month <=
day and month <=
week and month <=
year then month else

if year <=
minute and year <=
three and year <=
five and year <=
fifteen and year <=
thirty and year <=
hour and year <=
day and year <=
week and year <=
month then year else
Double.NaN;

top.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
top.SetLineWeight(3);
top.SetDefaultColor(Color.CYAN);
top.SetHiding(!Show_lines);

bottom.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
bottom.SetLineWeight(3);
bottom.SetDefaultColor(Color.MAGENTA);
bottom.SetHiding(!Show_lines);

plot FTCUp = close crosses above top;
FTCUp.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
FTCUp.SetDefaultColor(Color.gray);
FTCUp.SetLineWeight(1);
FTCUp.SetHiding(!Show_Arrows);

plot FTCDN = close crosses below bottom;
FTCDN.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
FTCDN.SetDefaultColor(Color.gray);
FTCDN.SetLineWeight(1);
FTCDN.SetHiding(!Show_Arrows);

addlabel(Show_Label, "CONTINUITY UP " + asdollars(top) + " DOWN " + asdollars(bottom) + " ", color.light_gray);
addlabel(Show_Label, " USING: ", color.light_gray);
addlabel(Show_Label and Use_Minute, "1min ", color.light_gray);
addlabel(Show_Label and Use_Three, "3min ", color.light_gray);
addlabel(Show_Label and Use_Five, "5min ", color.light_gray);
addlabel(Show_Label and Use_Fifteen, "15min ", color.light_gray);
addlabel(Show_Label and Use_Thirty, "30min ", color.light_gray);
addlabel(Show_Label and Use_Sixty, "60min ", color.light_gray);
addlabel(Show_Label and Use_Day, "Day ", color.light_gray);
addlabel(Show_Label and Use_Week, "Week ", color.light_gray);
addlabel(Show_Label and Use_Month, "Month ", color.light_gray);
addlabel(Show_Label and Use_Year, "Year ", color.light_gray);
# -----------------------------------
# BACKGROUND COLOR
# -----------------------------------

DefineGlobalColor("UP”, CreateColor(000, 065, 000));
DefineGlobalColor("DOWN”, CreateColor(125, 000, 000));

assignBackgroundColor(if FTCUP then GlobalColor("UP") else if FTCDN then GlobalColor("DOWN") else color.black);
input Use_Alerts = yes;
Alert(Use_Alerts and FTCUP, "FTC Upside", Alert.BAR, Sound.Bell);
Alert(Use_Alerts and FTCDN, "FTC Downside", Alert.BAR, Sound.Bell);



BROADENING FORMATIONS (1ST DRAFT)

This study will only find 1-3 combos and extend diagonal lines outward. I wasn't going to release it yet because I'm waiting to really make it work with multi bar pivots, but someone asked for exactly this in the comments and since this one is ready now, here you go. Keep in mind that this is not exactly the same as a broadening formation as Rob describes it. (It is and it isn't. This is only one example of a broadening formation). It could come in handy if you want to run it on a higher time frame like the daily or weekly and then draw over the lines so that it shows up on the lower time frames. I have to credit Halcyon Guy (Don L.) who wrote the backbone and has given me permission to publish. I moded his version of a similar study that looks for wedges. This is basically the 2 bar inverse of his study.

7www253.png


3_1_Broadening_Formation
https://tos.mx/U6xvWgx

Code:
## ----------------------------------------
# BROADENING FORMATION
# A STRAT STUDY BY PELONSAX AKA RAMON DV
#
# ADAPTED FROM
# quadinsidebar_01
# 2020-06-27
# halcyonguy
# ----------------------------------------

input extend_lines = 100;

def na = double.nan;
def hi = high;
def lo = low;
def bn = barnumber();


# ----- 2 bar outside pattern ---------------------------------
def insidebar0 = hi < hi[-1] and lo > lo[-1];

def insidebar = insidebar0 or insidebar0[1];
def next = insidebar0[-1];

def pattern = fold i = 0 to extend_lines
                 with p
                 do if i > bn then p + 0 else p + GetValue(insidebar,i);

def extend = if (!next and pattern > 0) then 1 else 0;
def en_slopelines = extend;

# ===================================================================

def bargaps = 1;
def slopehi2 = (hi[-bargaps] - hi[0])/bargaps;
def slopelo2 = (lo[-bargaps] - lo[0])/bargaps;
def slopehi = if insidebar0 then slopehi2 else if en_slopelines then slopehi[1] else na;
def slopelo = if insidebar0 then slopelo2 else if en_slopelines then slopelo[1] else na;
def bar0number = if insidebar0 then barnumber() else if en_slopelines then bar0number[1] else na;
def bar0high = if insidebar0 then hi else if en_slopelines then bar0high[1] else na;
def bar0low = if insidebar0 then lo else if en_slopelines then bar0low[1] else na;

plot diaghi = if en_slopelines then ( bar0high + (slopehi * (barnumber() - bar0number))) else na;
diaghi.AssignValueColor(Color.dark_Green);
diaghi.SetStyle(Curve.MEDIUM_DASH);

plot diaglo = if en_slopelines then ( bar0low + (slopelo * (barnumber() - bar0number))) else na;
diaglo.AssignValueColor(Color.dark_green);
diaglo.SetStyle(Curve.MEDIUM_DASH);

#

# ------------------------------------------------------------------

#

!!ACTIONABLE SIGNAL SCANS!!

Rather than go into another lengthy description, I just decided to make a video and post the links.


1 Bar Rev Strat Daily
https://tos.mx/sml8vKo

2 Bar Rev Strat Daily
https://tos.mx/fUIotqN

Hammer Rev
https://tos.mx/A2w2Jkt

Inside Break Bull
https://tos.mx/JKIrGGZ

Kicking Bull
https://tos.mx/JLI4AXC

Link to James Fox’s STRAT Scan video:

UPDATE: 03/23/21 Tried to re-upload complete overlay charts with a new link because I noticed that they were set to use log scale. I noticed it messes with my drawings so I turn it off on all my charts. I think it's the best setting. Ill try to give y'all fresh links later (probably just a problem with TOS right now), but for now, to change it manually, it looks like this:

mAJ243X.png


UPDATE: 05/21/21 Updated strat numbers so that the 1's and 3's appear as white numbers below, the 2U is a green number above and the 2D is a red number below. Added that component to all REMIX studies. Added REMIX SUPER LITE for machines with performance issues. And lastly, I have added two flex grids, one that is only continuity labels, and another that is a full radar screen based on Alex Option's idea. There are video tutorials for each. I also removed the studies that have been incorporated into the REMIX or TFC master studies as well as older studies that were glitchy and I don't have time or desire to support.

UPDATE: 04/01/21 Updated Kicker Actionable signal to include opposite continuity for kick age and fixed bug with measured move. Streamlined thread removing studies that are now obsolete.

UPDATE: 02/28/21 Added TFC study to Pre-Loaded Color Overlay Charts. This is because the Complete TFC study at the top changes the color of the background which defeats the purpose of the color overlay chart on a white background. This is simply a condensed, simplified version of the TFC study. It will only work if the intraday chart is set to 1 minute and the full chart is set to 1 hour.

UPDATE: 02/28/21 Added additional new version of color script. Re-worked the colors to let each TF stand out.

UPDATE: 02/26/21 Added new color version of the overlay study. There are three separate versions, each a different shade.

UPDATE: 01/02/21 Corrected bug in watchlist columns. Then you very much for catching that @fishstick1229 !!!!!!

UPDATE: 10/19/20 Placed link for the two main studies at the top. Added set up tutorial video for two main (most recent studies). Removed older studies (Basic Four). Added Hammers_and_Shooters study. Added Actionable Signal Scans and video

UPDATE: 10/15/20 Made Background Color script all inclusive and MTF capable. Added specific type of actionable signal onto the alerts written into the Remix version

UPDATE: 10/14/20 Per request, added alerts for reversals to the Reversal Remix and Actionable Signal study. Added alert to Background Color FTC Study. Added 1st draft Broadening Formation study.
For the

HAMMERS AND SHOOTERS

is there a way i can keep my candle colors and change the colors of the hammer and shooter candles?
 

Ray3

New member
Does anyone have a ThinkScript that automatically charts the high/low of the previous candle for Daily and longer timeframes? Thanks!
 

Similar threads

Top