Dark Theme
Light Theme
Trading Articles
Article Categories
Article Tools
Welcome to NexusFi: the best trading community on the planet, with over 150,000 members Sign Up Now for Free
Genuine reviews from real traders, not fake reviews from stealth vendors
Quality education from leading professional traders
We are a friendly, helpful, and positive community
We do not tolerate rude behavior, trolling, or vendors advertising in posts
We are here to help, just let us know what you need
You'll need to
register in order to view the content of the threads and start contributing to our community.
It's free for basic access, or support us by becoming an Elite Member -- see if you qualify for a discount below.
-- Big Mike, Site Administrator
(If you already have an account, login at the top of the page)
MTF_RSI for THINKORSWIM
Updated February 16, 2021
Top Posters
looks_one
alagrande
with 19 posts (11 thanks)
looks_two
netarchitech
with 8 posts (2 thanks)
looks_3
wldman
with 4 posts (0 thanks)
looks_4
joe77199
with 2 posts (0 thanks)
trending_up
13,420 views
thumb_up
14 thanks given
group
10 followers
forum
36 posts
attach_file
1 attachments
MTF_RSI for THINKORSWIM
December 21st, 2017, 12:57 PM
Chicago Illinois USA
Legendary Market Wizard
Experience: Advanced
Broker: IB, ToS
Trading: /ES, US Equities/Options
Frequency: Several times daily
Duration: Hours
Posts: 3,512 since Aug 2011
Thanks Given: 2,047
Thanks Received: 9,513
@alagrande
Can I share your ToS scripts with people on that platform, or will you consider doing so? @Big Mike have you a position on this? Of course I defer and will not break the confidence of the forum.
Dan
Can you help answer these questions from other members on NexusFi?
Best Threads (Most Thanked) in the last 7 days on NexusFi
December 21st, 2017, 01:02 PM
glendale ca usa
Posts: 97 since Sep 2017
Thanks Given: 11
Thanks Received: 88
wldman
@
alagrande
Can I share your
ToS scripts with people on that platform, or will you consider doing so? @
Big Mike have you a position on this? Of course I defer and will not break the confidence of the forum.
Dan
you can share, it is ok.
January 8th, 2018, 08:00 PM
glendale ca usa
Posts: 97 since Sep 2017
Thanks Given: 11
Thanks Received: 88
netarchitech
Hi alagrande,
Thanks for your recent posts and sharing the interesting scripts. I've been trying them out, but can only get them working on a 5 min chart. Any chance of getting them to work on longer timeframes with longer aggregations? I swingtrade more than I daytrade...
Thanks in advance...
Regards,
netarchitech
P.S. - The "FORCE RSI SQUEEZE" indicator in the accompanying image looked very interesting as well. Any chance you might share the script for that?
Hi, you wanna try this indicator? here it is and get me feedback please.'
##################Ehlers_STUDY####################
DECLARE LOWER;
input length = 34;#34
def price = (high + low) / 2;
def coeff = length * price * price - 2 * price * sum(price, length)[1] + sum(price * price, length)[1];
plot Ehlers = sum(coeff * price, length) / sum(coeff, length);
Ehlers.SetDefaultColor(GetColor(2));
###########################################################
input length1 = 14;#34
def price1 = (high + low) / 2;
def coeff1 = length1 * price * price - 2 * price * sum(price, length1)[1] + sum(price * price, length1)[1];
plot Ehlers1 = sum(coeff * price, length1) / sum(coeff, length1);
Ehlers1.SetDefaultColor(GetColor(3));
###########################################################
input length2 = 9;#34
def coeff2 = length2 * price * price -2 * price * sum(PRICE, length2)[1] + sum(price * PRICE, length2)[1];
plot Ehlers2 = sum(coeff * close(period = AggregationPeriod.Twenty_MIN), length2) / sum(coeff, length2);
Ehlers2.SetDefaultColor(GetColor(1));
AddCloud( Ehlers2, Ehlers, Color.UPTICK );
##########################################################
input length3 = 9;#34
def coeff3 = length3 * price * price -2 * price * sum(PRICE, length2)[1] + sum(price * PRICE, length3)[1];
plot Ehlers3 = sum(coeff * close(period = AggregationPeriod.hour), length3) / sum(coeff, length3);
Ehlers3.SetDefaultColor(GetColor(4));
##AddCloud( Ehlers3, Ehlers, Color.UPTICK);
#############################################
############################################################
#plot UpSignal = if Diff crosses above ZeroLine then ZeroLine else Double.NaN;
plot DownSignal = if Ehlers1 crosses ABOVE Ehlers3 then Ehlers3 else Double.NaN;
plot DownSignal2 = if Ehlers1 crosses ABOVE Ehlers2 then Ehlers2 else Double.NaN;
#UpSignal.SetDefaultColor(Color.UPTICK);
#UpSignal.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
DownSignal.SetDefaultColor(Color.DOWNTICK );
DownSignal.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
DownSignal.setLineWeight (4);
DownSignal2.SetDefaultColor(Color.PINK);
DownSignal2.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
DownSignal2.setLineWeight (4);
January 9th, 2018, 05:01 PM
NY, NY
Posts: 68 since Dec 2011
Thanks Given: 27
Thanks Received: 19
January 9th, 2018, 05:55 PM
glendale ca usa
Posts: 97 since Sep 2017
Thanks Given: 11
Thanks Received: 88
netarchitech
Hey there alagrande,
Thanks for sharing yet another interesting script. Unfortunately, it appears to suffer from lag, as do many other studies
With that said, I think the Multi-Timeframe concept is a great idea
All the best,
netarchitech
HI MY FRIEND, I AGREE WITH YOU, am not so happy with multi time frames.
Here is a real time study, as long as the lines are touching the ceiling all is good to go! check it out.
##################EhlersCeiling#########
declare lower;
input price = close;
input cutoffLength = 9;#10.....9
assert(cutoffLength > 0, "cutoffLength must be positive: " + cutoffLength);
def a1 = Exp(-Double.Pi * Sqrt(2) / cutoffLength);
def coeff2 = 2 * a1 * Cos(Sqrt(2) * Double.Pi / cutoffLength);
def coeff3 = - Sqr(a1);
def coeff1 = 1 - coeff2 - coeff3;
def filt = if IsNaN(price + price[1]) then filt[1] else coeff1 * (price + price[1]) / 2 + coeff2 * filt[1] + coeff3 * filt[2];
##plot data = NewStudy55()."SuperSmootherFilter" is true;
plot SuperSmootherFilter = if !IsNaN(price) then filt else Double.NaN;
SuperSmootherFilter.SetDefaultColor(GetColor(5));
supersmootherFilter.setDefaultColor (color.yellow);
#####################
input length = 14;#34....14
def price2 = (high + low) / 2;
def coeff = length * price2 * price2 - 2 * price2 * sum(price2, length)[1] + sum(price2 * price2, length)[1];
plot Ehlers = sum(coeff * price, length) / sum(coeff, length);
Ehlers.SetDefaultColor(GetColor(2));
Ehlers.DefineColor("Up", Color.UPTICK );
Ehlers.DefineColor("Down", Color.DOWNTICK );
Ehlers.AssignValueColor(if Ehlers> Ehlers[1] then Ehlers.color("Up") else if Ehlers < Ehlers[1] then Ehlers.color("Down") else GetColor(1));
AddCloud(supersmootherFilter, Ehlers, Color.UPTICK);
##############################
January 10th, 2018, 02:33 PM
NY, NY
Posts: 68 since Dec 2011
Thanks Given: 27
Thanks Received: 19
alagrande
HI MY FRIEND, I AGREE WITH YOU, am not so happy with multi time frames.
Here is a real time study, as long as the lines are touching the ceiling all is good to go! check it out.
Code
##################EhlersCeiling#########
declare lower;
input price = close;
input cutoffLength = 9;#10.....9
assert(cutoffLength > 0, "cutoffLength must be positive: " + cutoffLength);
def a1 = Exp(-Double.Pi * Sqrt(2) / cutoffLength);
def coeff2 = 2 * a1 * Cos(Sqrt(2) * Double.Pi / cutoffLength);
def coeff3 = - Sqr(a1);
def coeff1 = 1 - coeff2 - coeff3;
def filt = if IsNaN(price + price[1]) then filt[1] else coeff1 * (price + price[1]) / 2 + coeff2 * filt[1] + coeff3 * filt[2];
##plot data = NewStudy55()."SuperSmootherFilter" is true;
plot SuperSmootherFilter = if !IsNaN(price) then filt else Double.NaN;
SuperSmootherFilter.SetDefaultColor(GetColor(5));
supersmootherFilter.setDefaultColor (color.yellow);
#####################
input length = 14;#34....14
def price2 = (high + low) / 2;
def coeff = length * price2 * price2 - 2 * price2 * sum(price2, length)[1] + sum(price2 * price2, length)[1];
plot Ehlers = sum(coeff * price, length) / sum(coeff, length);
Ehlers.SetDefaultColor(GetColor(2));
Ehlers.DefineColor("Up", Color.UPTICK);
Ehlers.DefineColor("Down", Color.DOWNTICK);
Ehlers.AssignValueColor(if Ehlers> Ehlers[1] then Ehlers.color("Up") else if Ehlers < Ehlers[1] then Ehlers.color("Down") else GetColor(1));
AddCloud(supersmootherFilter, Ehlers, Color.UPTICK);
##############################
Hey there alagrande,
Thanks for the Ehlers script...while it looks interesting, I can't quite seem to pinpoint actionable trades from it. I'll have to spend a little more time and report back...
netarchitech
January 10th, 2018, 02:59 PM
glendale ca usa
Posts: 97 since Sep 2017
Thanks Given: 11
Thanks Received: 88
netarchitech
Hey there alagrande,
Thanks for the Ehlers script...while it looks interesting, I can't quite seem to pinpoint actionable trades from it. I'll have to spend a little more time and report back...
netarchitech
Hi, yes i understand, you have to wait so it touches the top area of the study (ceiling) for an entry.
January 11th, 2018, 06:45 PM
glendale ca usa
Posts: 97 since Sep 2017
Thanks Given: 11
Thanks Received: 88
netarchitech
Hey there alagrande,
Thanks for the Ehlers script...while it looks interesting, I can't quite seem to pinpoint actionable trades from it. I'll have to spend a little more time and report back...
netarchitech
HI, HERE IS A NEW STUDY.... FOR YOU TO TRY
###DMI_COLORED####
declare lower;
input length = 9;##14
input averageType = AverageType.WILDERS;
input line_40 = 40;
input line_20 = 20;
input line_10 = 10;
plot Line40 = line_40;
Line40.SetDefaultColor(Color.YELLOW);
plot Line20 = line_20;
Line20.SetDefaultColor(Color.WHITE);
Line20.SetLineWeight (2);
plot Line10 = line_10;
Line10.SetDefaultColor(Color.RED);
Line10.SetLineWeight (2);
def hiDiff = high - high[1];
def loDiff = low[1] - low;
def plusDM = if hiDiff > loDiff and hiDiff > 0 then hiDiff else 0;
def minusDM = if loDiff > hiDiff and loDiff > 0 then loDiff else 0;
def ATR = MovingAverage(averageType, TrueRange(high, close, low), length);
plot "DI+" = 100 * MovingAverage(averageType, plusDM, length) / ATR;
plot "DI-" = 100 * MovingAverage(averageType, minusDM, length) / ATR;
def DX = if ("DI+" + "DI-" > 0) then 100 * AbsValue("DI+" - "DI-") / ("DI+" + "DI-") else 0;
plot ADX = MovingAverage(averageType, DX, length);
ADX.SetDefaultColor(GetColor(2));
ADX.DefineColor("Up", Color.CYAN);
ADX.DefineColor("Down", Color.YELLOW);
ADX.AssignValueColor(if ADX > ADX[1] then ADX.Color("Up") else if ADX < ADX[1] then ADX.Color("Down") else GetColor(1));
###AddCloud(supersmootherFilter, Ehlers, Color.UPTICK );
"DI+".SetDefaultColor (Color.GREEN);
"DI-".SetDefaultColor (Color.RED);
###ADX.SetDefaultColor(GetColor(5));
AddCloud("DI+", "DI-", Color.UPTICK);
###########################################################
###########################################
input fastLength60R = 3;#9
#input price = close;
#input price60 = close;
input slowLength60R = 5;#18
input averageType60R = AverageType.SIMPLE;
#input line = 1;
##plot Line = (.99);
###Line.SetDefaultColor(Color.YELLOW);
##plot Line2 = (.1);
###Line2.SetDefaultColor(Color.YELLOW);
plot arriba2R = MovingAverage(averageType60R, close[-1], fastLength60R) - MovingAverage(averageType60R, close[-1], slowLength60R) is greater than MovingAverage(averageType60R, close[-1], fastLength60R) - MovingAverage(averageType60R, close[-1], slowLength60R) from 1 bars ago ;
arriba2R.SetLineWeight (3);
##
arriba2R.DefineColor("Up", Color.GREEN);
arriba2R.DefineColor("Down", Color.RED);
arriba2R.AssignValueColor(if arriba2R < arriba2R[1] then arriba2R.Color("Up") else if arriba2R > arriba2R[1] then arriba2R.Color("Down") else GetColor(9));
#plot DATA = (ADX is greater than "Line20" and "DI+" crosses above "DI-");
########################################################
##AddCloud(LINE, arriba2R, Color.UPTICK, COLOR.DOWNTICK );
##AddCloud( arriba2R, LINE2, Color.DOWNTICK, COLOR.UPTICK);
##########################################################
January 11th, 2018, 07:00 PM
NY, NY
Posts: 68 since Dec 2011
Thanks Given: 27
Thanks Received: 19
alagrande
HI, HERE IS A NEW STUDY.... FOR YOU TO TRY
Code
###DMI_COLORED####
declare lower;
input length = 9;##14
input averageType = AverageType.WILDERS;
input line_40 = 40;
input line_20 = 20;
input line_10 = 10;
plot Line40 = line_40;
Line40.SetDefaultColor(Color.YELLOW);
plot Line20 = line_20;
Line20.SetDefaultColor(Color.WHITE);
Line20.SetLineWeight (2);
plot Line10 = line_10;
Line10.SetDefaultColor(Color.RED);
Line10.SetLineWeight (2);
def hiDiff = high - high[1];
def loDiff = low[1] - low;
def plusDM = if hiDiff > loDiff and hiDiff > 0 then hiDiff else 0;
def minusDM = if loDiff > hiDiff and loDiff > 0 then loDiff else 0;
def ATR = MovingAverage(averageType, TrueRange(high, close, low), length);
plot "DI+" = 100 * MovingAverage(averageType, plusDM, length) / ATR;
plot "DI-" = 100 * MovingAverage(averageType, minusDM, length) / ATR;
def DX = if ("DI+" + "DI-" > 0) then 100 * AbsValue("DI+" - "DI-") / ("DI+" + "DI-") else 0;
plot ADX = MovingAverage(averageType, DX, length);
ADX.SetDefaultColor(GetColor(2));
ADX.DefineColor("Up", Color.CYAN);
ADX.DefineColor("Down", Color.YELLOW);
ADX.AssignValueColor(if ADX > ADX[1] then ADX.Color("Up") else if ADX < ADX[1] then ADX.Color("Down") else GetColor(1));
###AddCloud(supersmootherFilter, Ehlers, Color.UPTICK);
"DI+".SetDefaultColor (Color.GREEN);
"DI-".SetDefaultColor (Color.RED);
###ADX.SetDefaultColor(GetColor(5));
AddCloud("DI+", "DI-", Color.UPTICK);
###########################################################
###########################################
input fastLength60R = 3;#9
#input price = close;
#input price60 = close;
input slowLength60R = 5;#18
input averageType60R = AverageType.SIMPLE;
#input line = 1;
##plot Line = (.99);
###Line.SetDefaultColor(Color.YELLOW);
##plot Line2 = (.1);
###Line2.SetDefaultColor(Color.YELLOW);
plot arriba2R = MovingAverage(averageType60R, close[-1], fastLength60R) - MovingAverage(averageType60R, close[-1], slowLength60R) is greater than MovingAverage(averageType60R, close[-1], fastLength60R) - MovingAverage(averageType60R, close[-1], slowLength60R) from 1 bars ago ;
arriba2R.SetLineWeight (3);
##
arriba2R.DefineColor("Up", Color.GREEN);
arriba2R.DefineColor("Down", Color.RED);
arriba2R.AssignValueColor(if arriba2R < arriba2R[1] then arriba2R.Color("Up") else if arriba2R > arriba2R[1] then arriba2R.Color("Down") else GetColor(9));
#plot DATA = (ADX is greater than "Line20" and "DI+" crosses above "DI-");
########################################################
##AddCloud(LINE, arriba2R, Color.UPTICK, COLOR.DOWNTICK);
##AddCloud( arriba2R, LINE2, Color.DOWNTICK, COLOR.UPTICK);
##########################################################
Hey there alagrande,
Thanks for sharing another script. I played around with the ADX in the past. Can't say I was ever able to really get the hang of it, but I appreciate you forwarding it nonetheless
netarchitech
May 6th, 2018, 08:58 AM
NYC
Posts: 2 since Jul 2010
Thanks Given: 1
Thanks Received: 0
been looking for a TOS MTF-RSI. Thanks. Anyway it can be converted to a tick periord instead?
Last Updated on February 15, 2021