I just the colorsThat did it thanks for that.
For anyone else wanting to use this Tradingview indicator here is the code I am using. The source code can be found here https://www.tradingview.com/script/YHZimEz8-B-Xtrender-Puppytherapy/
I have found that not all of my custom coded color translate so on the longXtrenderHist I have to darken the "Negative and Down" and the "Positive and Up" colors by clicking their color block then clicking "More...". Next select the "HSV" tab at the top and enter "60" for the Transparency level of both.
Code:#// This source code is subject to the terms of the Mozilla Public License 2.0 at #https://mozilla.org/MPL/2.0/ #// ©Puppytherapy #//@version=4 #study(title="B-Xtrender") # Converted by mrhitts - 012/2022 declare lower; input short_l1 = 5; input short_l2 = 20; input short_l3 = 15; input long_l1 = 20; input long_l2 = 15; def R = RSI(14,CLOSE); def averageType = AverageType.WILDERS; def shortSetup = MovAvgExponential(close, short_l1) - MovAvgExponential(close, short_l2); def shortNetChgAvg = MovingAverage(averageType, shortSetup - shortSetup[1], short_l3); def shortTotChgAvg = MovingAverage(averageType, AbsValue(shortSetup - shortSetup[1]), short_l3); def shortChgRatio = if shortTotChgAvg != 0 then shortNetChgAvg / shortTotChgAvg else 0; plot shortXtrenderHist = (50 * (shortChgRatio + 1)) - 50; shortXtrenderHist.SetPaintingStrategy(PaintingStrategy.HISTOGRAM); shortXtrenderHist.SetLineWeight(5); shortXtrenderHist.DefineColor("Positive and Up", CreateColor(0, 255, 102)); #Lime shortXtrenderHist.DefineColor("Positive and Down", CreateColor(102, 153, 0)); #Dark Lime shortXtrenderHist.DefineColor("Negative and Down", CreateColor(255, 220, 210)); #Light Red shortXtrenderHist.DefineColor("Negative and Up", CreateColor(204, 0, 51)); #Dark Light Red shortXtrenderHist.AssignValueColor(if shortXtrenderHist >= 0 then if shortXtrenderHist > shortXtrenderHist[1] then shortXtrenderHist.color("Positive and Up") else shortXtrenderHist.color("Positive and Down") else if shortXtrenderHist < shortXtrenderHist[1] then shortXtrenderHist.color("Negative and Down") else shortXtrenderHist.color("Negative and Up")); def longSetup = MovAvgExponential(close, long_l1); def longNetChgAvg = MovingAverage(averageType, longSetup - longSetup[1], long_l2); def longTotChgAvg = MovingAverage(averageType, AbsValue(longSetup - longSetup[1]), long_l2); def longChgRatio = if longTotChgAvg != 0 then longNetChgAvg / longTotChgAvg else 0; plot longXtrenderHist = (50 * (longChgRatio + 1)) - 50; longXtrenderHist.SetPaintingStrategy(PaintingStrategy.HISTOGRAM); longXtrenderHist.SetLineWeight(1); longXtrenderHist.DefineColor("Positive and Up", CreateColor(0, 191, 0)); #Dark Green longXtrenderHist.DefineColor("Positive and Down", CreateColor(0, 100, 0)); #Extremely Dark Green longXtrenderHist.DefineColor("Negative and Down", CreateColor(255, 53, 0)); #Dark Red longXtrenderHist.DefineColor("Negative and Up", CreateColor(128, 0, 0)); #Extemely Dark Red longXtrenderHist.AssignValueColor(if longXtrenderHist >= 0 then if longXtrenderHist > longXtrenderHist[1] then longXtrenderHist.color("Positive and Up") else longXtrenderHist.color("Positive and Down") else if longXtrenderHist < longXtrenderHist[1] then longXtrenderHist.color("Negative and Down") else longXtrenderHist.color("Negative and Up")); plot longXtrender = (50 * (longChgRatio + 1)) - 50; longXtrender.SetPaintingStrategy(PaintingStrategy.LINE); longXtrender.SetLineWeight(3); longXtrender.DefineColor("Positive", Color.GREEN); longXtrender.DefineColor("Negative", Color.RED); longXtrender.AssignValueColor(if longXtrender > longXtrender[1] then longXtrender.color("Positive") else longXtrender.color("Negative")); script t3 { input src = close; input len = 10; def xe1_1 = MovAvgExponential(src, len); def xe2_1 = MovAvgExponential(xe1_1, len); def xe3_1 = MovAvgExponential(xe2_1, len); def xe4_1 = MovAvgExponential(xe3_1, len); def xe5_1 = MovAvgExponential(xe4_1, len); def xe6_1 = MovAvgExponential(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; def nT3Average_1 = c1_1 * xe6_1 + c2_1 * xe5_1 + c3_1 * xe4_1 + c4_1 * xe3_1; plot z = nT3Average_1; } plot maShortXtrender = t3( shortXtrenderHist , 5) ; maShortXtrender.SetPaintingStrategy(PaintingStrategy.LINE); maShortXtrender.SetLineWeight(3); maShortXtrender.DefineColor("Positive", Color.GREEN); maShortXtrender.DefineColor("Negative", Color.RED); maShortXtrender.AssignValueColor(if maShortXtrender > maShortXtrender[1] then maShortXtrender.color("Positive") else maShortXtrender.color("Negative")); input Signals = yes; def Buy = maShortXtrender > maShortXtrender[1] and maShortXtrender[1] < maShortXtrender[2]; plot BuySignal = if Signals == yes and Buy is true then maShortXtrender else double.nan; BuySignal.SetPaintingStrategy(PaintingStrategy.LINE_VS_POINTS); BuySignal.SetLineWeight(5); BuySignal.AssignValueColor(Color.GREEN); def Sell = maShortXtrender < maShortXtrender[1] and maShortXtrender[1] > maShortXtrender[2]; plot SellSignal = if Signals == yes and Sell is true then maShortXtrender else double.nan; SellSignal.SetPaintingStrategy(PaintingStrategy.LINE_VS_POINTS); SellSignal.SetLineWeight(5); SellSignal.AssignValueColor(Color.RED);
CSS:
#// This source code is subject to the terms of the Mozilla Public License 2.0 at #https://mozilla.org/MPL/2.0/
#// ©Puppytherapy
#//@version=4
#study(title="B-Xtrender")
# Converted by mrhitts - 012/2022
declare lower;
input Signals = yes;
input short_l1 = 5;
input short_l2 = 20;
input short_l3 = 15;
input long_l1 = 20;
input long_l2 = 15;
def na = Double.NaN;
#---
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;
def nT3Average_1 = c1_1 * xe6_1 + c2_1 * xe5_1 + c3_1 * xe4_1 + c4_1 * xe3_1;
plot z = nT3Average_1;
}
def rsiShort = ExpAverage(close, short_l1) - ExpAverage(close, short_l2);
def rsiLong = ExpAverage(close, long_l1);
def shortTermXtrender = rsi(Price=rsiShort,Length=short_l3 ) - 50;
def longTermXtrender = rsi(Price=rsiLong,Length= long_l2 ) - 50;
def shortXtrenderCol = if shortTermXtrender > 0 then if shortTermXtrender > shortTermXtrender[1] then 2 else 1 else
if shortTermXtrender > shortTermXtrender[1] then -2 else -1;
def maShortTermXtrender = t3(shortTermXtrender , 5 );
def colShortTermXtrender = if maShortTermXtrender > maShortTermXtrender[1] then 1 else 0;
plot bXtrenderColor = maShortTermXtrender;
bXtrenderColor.SetLineWeight(3);
bXtrenderColor.AssignValueColor(if colShortTermXtrender then Color.GREEN else Color.RED);
plot bXtrenderShadow = maShortTermXtrender;
bXtrenderShadow.SetLineWeight(5);
bXtrenderShadow.SetDefaultColor(Color.BLACK);
def longXtrenderCol = if longTermXtrender> 0 then if longTermXtrender > longTermXtrender[1] then 2 else 1 else
if longTermXtrender > longTermXtrender[1] then -2 else -1;
def macollongXtrenderCol = if longTermXtrender > longTermXtrender[1] then 1 else 0;
plot XtrenderTrendLine = longTermXtrender;
XtrenderTrendLine.SetLineWeight(2);
XtrenderTrendLine.AssignValueColor(if macollongXtrenderCol then Color.DARK_GREEN else Color.DARK_RED);
plot XtrenderTrendShadow = longTermXtrender;
XtrenderTrendShadow.SetLineWeight(4);
XtrenderTrendShadow.SetDefaultColor(Color.BLACK);
def Buy = if maShortTermXtrender > maShortTermXtrender[1] and maShortTermXtrender[1] < maShortTermXtrender[2] then maShortTermXtrender else na;
def Sell = if maShortTermXtrender < maShortTermXtrender[1] and maShortTermXtrender[1] > maShortTermXtrender[2] then maShortTermXtrender else na;
plot BuySignal = if Signals then Buy else na;
BuySignal.SetPaintingStrategy(PaintingStrategy.POINTS);
BuySignal.SetLineWeight(5);
BuySignal.AssignValueColor(Color.GREEN);
plot SellSignal = if Signals then Sell else na;
SellSignal.SetPaintingStrategy(PaintingStrategy.POINTS);
SellSignal.SetLineWeight(5);
SellSignal.AssignValueColor(Color.RED);
plot longXtrenderHist = longTermXtrender;
longXtrenderHist.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
longXtrenderHist.AssignValueColor(if longXtrenderCol == 2 then Color.DARK_GREEN else
if longXtrenderCol == 1 then Color.LIGHT_GREEN else
if longXtrenderCol == -2 then Color.RED else Color.DARK_RED);
plot shortXtrenderHist = shortTermXtrender;
shortXtrenderHist.SetPaintingStrategy(PaintingStrategy.SQUARED_HISTOGRAM);
shortXtrenderHist.AssignValueColor(if shortXtrenderCol ==2 then Color.DARK_GREEN else
if shortXtrenderCol ==1 then Color.LIGHT_GREEN else
if shortXtrenderCol ==-2 then Color.RED else Color.DARK_RED);
#--- END CODE