B-Xtrender Indicator For ThinkOrSwim

mbarcala

Active member
This is BXtrender Indicator from trading view to TOS. This is combination of long and short term trading entry and exit ideas, play by your knowledge, Enjoy!
Link: https://www.tradingview.com/script/YHZimEz8-B-Xtrender-Puppytherapy/

Photo
https%3A//i.imgur.com/0lB61Rt.png[/img]']
0lB61Rt.png


Script
Code:
# BXtrender converted to TOS mbarcala and IgorF
#Link: https://www.tradingview.com/script/YHZimEz8-B-Xtrender-Puppytherapy/

declare lower;

input short_l1 = 5;
input short_l2 = 20;
input short_l3 = 15;
input long_l1 = 20;
input long_l2 = 15;

def shortTermXtrender = RSI(price = ExpAverage(close, short_l1) - ExpAverage(close, short_l2), length = short_l3) - 50;
def longTermXtrender = RSI(price = ExpAverage(close, long_l1), length = long_l2) - 50;

script t3 {
    input src = close;
    input len = 10;
    def xe1_1 = ExpAverage(src, len);
    def xe2_1 = ExpAverage(xe1_1, len);
    def xe3_1 = ExpAverage(xe2_1, len);
    def xe4_1 = ExpAverage(xe3_1, len);
    def xe5_1 = ExpAverage(xe4_1, len);
    def xe6_1 = ExpAverage(xe5_1, len);
    def b_1 = 0.7;
    def c1_1 = -b_1 * b_1 * b_1;
    def c2_1 = 3 * b_1 * b_1 + 3 * b_1 * b_1 * b_1;
    def c3_1 = -6 * b_1 * b_1 - 3 * b_1 - 3 * b_1 * b_1 * b_1;
    def c4_1 = 1 + 3 * b_1 + b_1 * b_1 * b_1 + 3 * b_1 * b_1;
    plot t3 = c1_1 * xe6_1 + c2_1 * xe5_1 + c3_1 * xe4_1 + c4_1 * xe3_1;
}

def maShortTermXtrender = t3( shortTermXtrender, 5);

plot BXtrenderColor = maShortTermXtrender;
BXtrenderColor.AssignValueColor(if maShortTermXtrender > maShortTermXtrender[1] then Color.Lime else color.red);
BXtrenderColor.SetLineWeight(3);
BXtrenderColor.HideBubble();

plot BXtrenderShadow = maShortTermXtrender;
BXtrenderShadow.SetDefaultColor(color.black);
BXtrenderShadow.SetLineWeight(5);
BXtrenderShadow.HideBubble();

plot shape1 = if maShortTermXtrender > maShortTermXtrender[1] and maShortTermXtrender[1] < maShortTermXtrender[2] then maShortTermXtrender else double.nan;
shape1.SetPaintingStrategy(PaintingStrategy.POINTS);
shape1.SetLineWeight(5);
shape1.SetDefaultColor(color.lime);
shape1.HideBubble();

plot shape2 = if maShortTermXtrender < maShortTermXtrender[1] and maShortTermXtrender[1] > maShortTermXtrender[2] then maShortTermXtrender else double.nan;
shape2.SetPaintingStrategy(PaintingStrategy.POINTS);
shape2.SetLineWeight(5);
shape2.SetDefaultColor(color.red);
shape2.HideBubble();

plot BXtrenderTrendLine = longTermXtrender;
BXtrenderTrendLine.SetDefaultColor(color.black);
BXtrenderTrendLine.SetLineWeight(3);
BXtrenderTrendLine.AssignValueColor(if longTermXtrender > longTermXtrender[1] then color.lime else color.red);
BXtrenderTrendLine.HideBubble();

plot BXtrenderTrendLineShadow = longTermXtrender;
BXtrenderTrendLineShadow.SetDefaultColor(color.black);
BXtrenderTrendLineShadow.SetLineWeight(5);
BXtrenderTrendLineShadow.HideBubble();

plot BXtrenderTrendHistogram = longTermXtrender;
BXtrenderTrendHistogram.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
BXtrenderTrendHistogram.SetLineWeight(1);
BXtrenderTrendHistogram.AssignValueColor(if longTermXtrender > 0 then (if longTermXtrender > longTermXtrender[1] then color.lime else CreateColor(34, 139, 34)) else if longTermXtrender > longTermXtrender[1] then color.red else CreateColor(139, 0, 0));
BXtrenderTrendHistogram.HideBubble();

plot BXtrenderHistogram = shortTermXtrender;
#BXtrenderHistogram.AssignValueColor(if shortTermXtrender > 0 then (if shortTermXtrender > shortTermXtrender[1] then color.lime else createColor(34, 139, 34)) else if shortTermXtrender > shortTermXtrender[1] then color.red else createColor(139, 0, 0));
BXtrenderHistogram.AssignValueColor(if shortTermXtrender > 0 then Color.DARK_GREEN else Color.DARK_RED);

BXtrenderHistogram.SetPaintingStrategy(PaintingStrategy.SQUARED_HISTOGRAM);
BXtrenderHistogram.HideBubble();

plot cline = 0;
cline.SetDefaultColor(Color.GRAY);
 
The BXTrender was previously converted for TOS. However, I wanted to ask for assistance with converting it to a chart label.

1. Chart label will change color/text depending on whether shape1 or shape2 logic is true. (shape1 = bullish trend, shape2 = bearish trend)

2. Ideally the indicator timeframe can be selected instead of using the TF from the chart.

Thank you!


https://usethinkscript.com/threads/b-xtrender-indicator-for-thinkorswim.10272/

# BXtrender converted to TOS mbarcala and IgorF
#Link: https://www.tradingview.com/script/YHZimEz8-B-Xtrender-Puppytherapy/

declare lower;

input short_l1 = 5;
input short_l2 = 20;
input short_l3 = 15;
input long_l1 = 20;
input long_l2 = 15;

def shortTermXtrender = RSI(price = ExpAverage(close, short_l1) - ExpAverage(close, short_l2), length = short_l3) - 50;
def longTermXtrender = RSI(price = ExpAverage(close, long_l1), length = long_l2) - 50;

script t3 {
input src = close;
input len = 10;
def xe1_1 = ExpAverage(src, len);
def xe2_1 = ExpAverage(xe1_1, len);
def xe3_1 = ExpAverage(xe2_1, len);
def xe4_1 = ExpAverage(xe3_1, len);
def xe5_1 = ExpAverage(xe4_1, len);
def xe6_1 = ExpAverage(xe5_1, len);
def b_1 = 0.7;
def c1_1 = -b_1 * b_1 * b_1;
def c2_1 = 3 * b_1 * b_1 + 3 * b_1 * b_1 * b_1;
def c3_1 = -6 * b_1 * b_1 - 3 * b_1 - 3 * b_1 * b_1 * b_1;
def c4_1 = 1 + 3 * b_1 + b_1 * b_1 * b_1 + 3 * b_1 * b_1;
plot t3 = c1_1 * xe6_1 + c2_1 * xe5_1 + c3_1 * xe4_1 + c4_1 * xe3_1;
}

def maShortTermXtrender = t3( shortTermXtrender, 5);

plot BXtrenderColor = maShortTermXtrender;
BXtrenderColor.AssignValueColor(if maShortTermXtrender > maShortTermXtrender[1] then Color.Lime else color.red);
BXtrenderColor.SetLineWeight(3);
BXtrenderColor.HideBubble();

plot BXtrenderShadow = maShortTermXtrender;
BXtrenderShadow.SetDefaultColor(color.black);
BXtrenderShadow.SetLineWeight(5);
BXtrenderShadow.HideBubble();

plot shape1 = if maShortTermXtrender > maShortTermXtrender[1] and maShortTermXtrender[1] < maShortTermXtrender[2] then maShortTermXtrender else double.nan;
shape1.SetPaintingStrategy(PaintingStrategy.POINTS);
shape1.SetLineWeight(5);
shape1.SetDefaultColor(color.lime);
shape1.HideBubble();

plot shape2 = if maShortTermXtrender < maShortTermXtrender[1] and maShortTermXtrender[1] > maShortTermXtrender[2] then maShortTermXtrender else double.nan;
shape2.SetPaintingStrategy(PaintingStrategy.POINTS);
shape2.SetLineWeight(5);
shape2.SetDefaultColor(color.red);
shape2.HideBubble();

plot BXtrenderTrendLine = longTermXtrender;
BXtrenderTrendLine.SetDefaultColor(color.black);
BXtrenderTrendLine.SetLineWeight(3);
BXtrenderTrendLine.AssignValueColor(if longTermXtrender > longTermXtrender[1] then color.lime else color.red);
BXtrenderTrendLine.HideBubble();

plot BXtrenderTrendLineShadow = longTermXtrender;
BXtrenderTrendLineShadow.SetDefaultColor(color.black);
BXtrenderTrendLineShadow.SetLineWeight(5);
BXtrenderTrendLineShadow.HideBubble();

plot BXtrenderTrendHistogram = longTermXtrender;
BXtrenderTrendHistogram.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
BXtrenderTrendHistogram.SetLineWeight(1);
BXtrenderTrendHistogram.AssignValueColor(if longTermXtrender > 0 then (if longTermXtrender > longTermXtrender[1] then color.lime else CreateColor(34, 139, 34)) else if longTermXtrender > longTermXtrender[1] then color.red else CreateColor(139, 0, 0));
BXtrenderTrendHistogram.HideBubble();

plot BXtrenderHistogram = shortTermXtrender;
#BXtrenderHistogram.AssignValueColor(if shortTermXtrender > 0 then (if shortTermXtrender > shortTermXtrender[1] then color.lime else createColor(34, 139, 34)) else if shortTermXtrender > shortTermXtrender[1] then color.red else createColor(139, 0, 0));
BXtrenderHistogram.AssignValueColor(if shortTermXtrender > 0 then Color.DARK_GREEN else Color.DARK_RED);

BXtrenderHistogram.SetPaintingStrategy(PaintingStrategy.SQUARED_HISTOGRAM);
BXtrenderHistogram.HideBubble();

plot cline = 0;
cline.SetDefaultColor(Color.GRAY);
 
The BXTrender was previously converted for TOS. However, I wanted to ask for assistance with converting it to a chart label.

1. Chart label will change color/text depending on whether shape1 or shape2 logic is true. (shape1 = bullish trend, shape2 = bearish trend)

2. Ideally the indicator timeframe can be selected instead of using the TF from the chart.

Thank you!


https://usethinkscript.com/threads/b-xtrender-indicator-for-thinkorswim.10272/
Ty this:
# BXTrender Label for ThinkOrSwim
# Displays a dynamic label indicating Bullish, Bearish, or Neutral trend
# Adapted by: DrDre
# Original Indicator: https://www.tradingview.com/script/YHZimEz8-B-Xtrender-Puppytherapy/

declare upper;

# ----------------------------
# User Inputs
# ----------------------------

input short_l1 = 5;
input short_l2 = 20;
input short_l3 = 15;
input long_l1 = 20;
input long_l2 = 15;

# ----------------------------
# Helper Function: T3 Smoothing
# ----------------------------

script T3 {
input src = close;
input len = 10;
def xe1 = ExpAverage(src, len);
def xe2 = ExpAverage(xe1, len);
def xe3 = ExpAverage(xe2, len);
def xe4 = ExpAverage(xe3, len);
def xe5 = ExpAverage(xe4, len);
def xe6 = ExpAverage(xe5, len);

# Constants for T3 calculation
def b = 0.7;
def c1 = -b * b * b;
def c2 = 3 * b * b + 3 * b * b * b;
def c3 = -6 * b * b - 3 * b - 3 * b * b * b;
def c4 = 1 + 3 * b + 3 * b * b + b * b * b;

# T3 Formula
plot T3Value = c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3;
}

# ----------------------------
# BXTrender Calculations
# ----------------------------

# Short Term Xtrender Calculation
def shortTermXtrender = RSI(
price = ExpAverage(close, short_l1) - ExpAverage(close, short_l2),
length = short_l3
) - 50;

# Long Term Xtrender Calculation
def longTermXtrender = RSI(
price = ExpAverage(close, long_l1),
length = long_l2
) - 50;

# Apply T3 to Short Term Xtrender
def maShortTermXtrender = T3(shortTermXtrender, 5);

# ----------------------------
# Trend Detection
# ----------------------------

# Bullish Condition: maShortTermXtrender is increasing (shape1 logic)
def isBullish = maShortTermXtrender > maShortTermXtrender[1] and maShortTermXtrender[1] < maShortTermXtrender[2];

# Bearish Condition: maShortTermXtrender is decreasing (shape2 logic)
def isBearish = maShortTermXtrender < maShortTermXtrender[1] and maShortTermXtrender[1] > maShortTermXtrender[2];

# ----------------------------
# Add Label
# ----------------------------

AddLabel(
yes, # Always show the label
if isBullish then "BX: Bullish"
else if isBearish then "BX: Bearish"
else "BX: Neutral",
if isBullish then Color.LIME
else if isBearish then Color.RED
else Color.GRAY
);

# ----------------------------
# Optional: Hidden Plot to Satisfy ThinkScript Requirements
# ----------------------------

# ThinkScript requires at least one plot statement in an upper study.
# This plot is hidden and serves no visual purpose.
plot HiddenPlot = Double.NaN;
HiddenPlot.Hide();
 
Thank you! The label works on my end.

Are you also able to assist with basing the indicator on a selected time frame instead of the time frame of the chart?

I really appreciate it.
 
Thank you for doing the hard work of coding this for TOS . If possible can we please get MTF chart labels for YR Q M W D 4hr 1hr? If I am charting on the 1hr I would like to see if the maShortTermXtrender is green/ red on the higher timeframes.
I spent hours trying to hack/ convert the multi 10X labels but I'm too clueless with this code.

Here is what I was able to cobble together from other indicators. The problem I am having is I can only see the chart labels on the 1HR chart. Higher timeframes the labels disappear even if I have the max time selected.

Thank you for any help, here is the code:

#BX Trender MTF Labels for ThinkorSwim
#CREDITS
# BXtrender converted to TOS mbarcala and IgorF
#Link: https://www.tradingview.com/script/YHZimEz8-B-Xtrender-Puppytherapy/
# John Carter's 10x bars, @sierioiza, @tomsk, @horserider, @markos, @diazlaz,
# Label for hull MA, @Santhosh


input short_l1 = 2;
input short_l2 = 20;
input short_l3 = 2;
input long_l1 = 20;
input long_l2 = 2;

def shortTermXtrender = RSI(price = ExpAverage(close, short_l1) - ExpAverage(close, short_l2), length = short_l3) - 50;

script t3 {
input src = close;
input len = 10;
def xe1_1 = ExpAverage(src, len);
def xe2_1 = ExpAverage(xe1_1, len);
def xe3_1 = ExpAverage(xe2_1, len);
def xe4_1 = ExpAverage(xe3_1, len);
def xe5_1 = ExpAverage(xe4_1, len);
def xe6_1 = ExpAverage(xe5_1, len);
def b_1 = 0.7;
def c1_1 = -b_1 * b_1 * b_1;
def c2_1 = 3 * b_1 * b_1 + 3 * b_1 * b_1 * b_1;
def c3_1 = -6 * b_1 * b_1 - 3 * b_1 - 3 * b_1 * b_1 * b_1;
def c4_1 = 1 + 3 * b_1 + b_1 * b_1 * b_1 + 3 * b_1 * b_1;
plot t3 = c1_1 * xe6_1 + c2_1 * xe5_1 + c3_1 * xe4_1 + c4_1 * xe3_1;
}

def maShortTermXtrender = t3( shortTermXtrender, 5);

# CORE
AddLabel(yes, "BX MTF", COLOR.CYAN);

# AGGREGATION 1 - HOUR

def aH1 = aggregationPeriod.HOUR;
def shortTermXtrenderH1= RSI(price = ExpAverage(close(period = aH1), short_l1) - ExpAverage(close(period = aH1), short_l2), length = short_l3) - 50;
def maShortTermXtrenderH1 = t3( shortTermXtrenderH1, 5);
def bullishBXH1 = maShortTermXtrenderH1 > maShortTermXtrenderH1[1];

AddLabel(yes, "1HR", if bullishBXH1 then Color.green else Color.red);

# AGGREGATION 2 - FOUR HOUR

def aH4 = aggregationPeriod.FOUR_HOURS;
def shortTermXtrenderH4= RSI(price = ExpAverage(close(period = aH4), short_l1) - ExpAverage(close(period = aH4), short_l2), length = short_l3) - 50;
def maShortTermXtrenderH4 = t3( shortTermXtrenderH4, 5);
def bullishBXH4 = maShortTermXtrenderH4 > maShortTermXtrenderH4[1];

AddLabel(yes, "4HR", if bullishBXH4 then Color.green else Color.red);


# AGGREGATION 3 - DAY

def aD = aggregationPeriod.DAY;
def shortTermXtrenderD= RSI(price = ExpAverage(close(period = aD), short_l1) - ExpAverage(close(period = aD), short_l2), length = short_l3) - 50;
def maShortTermXtrenderD = t3( shortTermXtrenderD, 5);
def bullishBXD = maShortTermXtrenderD > maShortTermXtrenderD[1];

AddLabel(yes, "D", if bullishBXD then Color.green else Color.red);

# AGGREGATION 4 - WEEK

def aW = aggregationPeriod.WEEK;
def shortTermXtrenderW= RSI(price = ExpAverage(close(period = aW), short_l1) - ExpAverage(close(period = aW), short_l2), length = short_l3) - 50;
def maShortTermXtrenderW = t3( shortTermXtrenderW, 5);
def bullishBXW = maShortTermXtrenderW > maShortTermXtrenderW[1];

AddLabel(yes, "WK", if bullishBXW then Color.green else Color.red);

# AGGREGATION 5 - MONTH

def aMM = aggregationPeriod.MONTH;
def shortTermXtrenderMM= RSI(price = ExpAverage(close(period = aMM), short_l1) - ExpAverage(close(period = aMM), short_l2), length = short_l3) - 50;
def maShortTermXtrenderMM = t3( shortTermXtrenderMM, 5);
def bullishBXMM = maShortTermXtrenderMM > maShortTermXtrenderMM[1];

AddLabel(yes, "MO", if bullishBXMM then Color.green else Color.red);

# AGGREGATION 6 - QUARTER

def aQ = aggregationPeriod.QUARTER;
def shortTermXtrenderQ= RSI(price = ExpAverage(close(period = aQ), short_l1) - ExpAverage(close(period = aQ), short_l2), length = short_l3) - 50;
def maShortTermXtrenderQ = t3( shortTermXtrenderQ, 5);
def bullishBXQ = maShortTermXtrenderQ > maShortTermXtrenderQ[1];

AddLabel(yes, "Q", if bullishBXQ then Color.green else Color.red);

# AGGREGATION 7 - YEAR

def aYR = aggregationPeriod.YEAR;
def shortTermXtrenderYR= RSI(price = ExpAverage(close(period = aYR), short_l1) - ExpAverage(close(period = aYR), short_l2), length = short_l3) - 50;
def maShortTermXtrenderYR = t3( shortTermXtrenderYR, 5);
def bullishBXYR = maShortTermXtrenderYR > maShortTermXtrenderYR[1];

AddLabel(yes, "YR", if bullishBXYR then Color.green else Color.red);
 

Attachments

  • BX MTF chart.jpg
    BX MTF chart.jpg
    122 KB · Views: 132
Last edited:

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

Similar threads

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

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