Hello, is it possible to convert this formula into a format that works on tradingview?no middle line! I left ur mean line intact. still D, 30m, etc... don't work!
https://tos.mx/jr2L2d4 Newest version, works better
thank you
Hello, is it possible to convert this formula into a format that works on tradingview?no middle line! I left ur mean line intact. still D, 30m, etc... don't work!
https://tos.mx/jr2L2d4 Newest version, works better
#WT_LB Short Name TV ****MTF**** WaveTrend Upper Chart Arrows Only
input Channel_Length = 10; #10
input Average_Length = 21; #10
input over_bought_1 = 60;
input over_bought_2 = 53;
input over_sold_1 = -60;
input over_sold_2 = -53;
input AGG = aggregationPeriod.HOUR ;
def hlc3 = hlc3(period = AGG);
def ap = hlc3;
def esa = ExpAverage(ap, Channel_Length);
def d = ExpAverage(AbsValue(ap - esa), Channel_Length);
def ci = (ap - esa) / (0.015 * d);
def tci = ExpAverage(ci, Average_Length);
def wt1 = tci;
def wt2 = SimpleMovingAvg(wt1, 4);
def signal1 = wt1 crosses above wt2 and wt1 < over_sold_2;
plot Signal = if signal1 then low else Double.NaN;
Signal.SetDefaultColor(Color.blue);
Signal.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
Signal.SetLineWeight(3);
Signal.HideTitle();
def signal2 = wt1 crosses below wt2 and wt1 > over_bought_2;
plot Signal2_ = if signal2 then high else Double.NaN;
Signal2_.SetDefaultColor(Color.magenta);
Signal2_.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
Signal2_.SetLineWeight(3);
Signal2_.HideTitle();
#Convered to TOS by @SuryaKiranC
#Requested by Mr.T
#https://usethinkscript.com/threads/volatility-ratio-indicator-for-thinkorswim-help.9092/
declare lower;
input n1 = 10;
input n2 = 21;
input price = HLC3;
input OB1 = 60;
input OB2 = 53;
input OS1 = -60;
input OS2 = -53;
def esa = ExpAverage(price, n1);
def d = ExpAverage(AbsValue(price - esa),n1);
def ci = (price - esa) / (0.015 * d);
def tci = ExpAverage(ci,n2);
def wt1 = tci;
def wt2 = simpleMovingAvg(wt1, 4);
plot Zero = 0;
plot OverSold1 = OS1;
OverSold1.SetDefaultColor(Color.GREEN);
plot OverSold2 = OS2;
OverSold2.SetDefaultColor(Color.GREEN);
OverSold2.SetStyle(Curve.SHORT_DASH);
plot OverBought1 = OB1;
OverBought1.SetDefaultColor(Color.RED);
plot OverBought2 = OB2;
OverBought2.SetDefaultColor(Color.RED);
OverBought2.SetStyle(Curve.SHORT_DASH);
plot w1 = wt1;
w1.SetDefaultColor(Color.GREEN);
plot w2 = wt2;
w2.SetDefaultColor(Color.RED);
plot diff = wt1 - wt2;
diff.SetDefaultColor(Color.CYAN);
#End
I moved your thread here as there are dozens of wave trend script variations within. Start w/ page 1 and plug&playHad to set up a new version of TOS and lost old templates. Can't find the Wavetrendbentenwalarms indicator. Anyone have an old copy they can post code for me? Thank you in advance.
like this perhaps:On this study, once the signal candle has closed it plots the vertical signal line behind (to the left) the candle. Is it possible to have this shift to once the signal candle closes to post that signal to the right of the candle where the white line is?
addverticalLine( if wt1[1] crosses above WT2[1] then high else double.nan, "B U Y", color.green, curve.firm);
addverticalLine( if wt1[1] crosses below WT2[1] then low else double.nan, "S E L L", color.RED, curve.firm);
hello can someone help me take the mtf portion out of this indicator
# WT_LB Short Name TV
# Modified by BenTen at UseThinkScript.com
declare upper;
input Channel_Length = 10; #10
input Average_Length = 21; #10
input show_bubbles = yes;
input show_sec_bbls = no;
input show_alerts = yes;
def ap = (High + Low + Close) / 3;
def esa = ExpAverage(ap, Channel_Length);
def d = ExpAverage(AbsValue(ap - esa), Channel_Length);
def ci = (ap - esa) / (0.015 * d);
def tci = ExpAverage(ci, Average_Length);
def wt1 =esa;# tci;
def wt2 = SimpleMovingAvg(wt1, 4);
#def zero = 0;
plot w=esa;
plot w1=SimpleMovingAvg(w, 4);
plot wt1_1 = wt1;
wt1_1.SetDefaultColor(Color.GREEN);
plot wt2_1 = wt2;
wt2_1.SetDefaultColor(Color.RED);
wt2_1.SetStyle(Curve.POINTS);
addCloud(wt1_1, wt2_1, Color.LIGHT_GREEN, color.red);
assignpricecolor( if wt1_1<wt2_1 then color.red else if wt1_1 > wt2_1 then color.blue else color.gray);
Is it possible to auto draw a trendline that connects two points on a lower study? I have the following code which plots the line as DOTS. I wish to connect the latest Higher Low and the latest Lower High (red and green dots) of the indicator. Thanks in advance.
https://usethinkscript.com/threads/wavetrend-oscillator-for-thinkorswim-lazybear.233/
#WaveTrend Oscillator script for ThinkorSwim. Came from Came LazyBear over at TradingView version that was ported from TS/MT
# also known as "The Perfect Leading Indicator."
#ported by BenTen 6/18/19
#WT_LB Short Name TV
declare lower;
input Channel_Length = 10;
input Average_Length = 21;
input over_bought_1 = 60;
input over_bought_2 = 53;
input over_sold_1 = -60;
input over_sold_2 = -53;
input numBars = 5;
input TrendResistanceStart = 0;
input TrendResistanceEnd = 0;
input TrendSupportStart = 0;
input TrendSupportEnd = 0;
def ap = hlc3;
def esa = ExpAverage(ap, Channel_Length);
def d = ExpAverage(AbsValue(ap - esa), Channel_Length);
def ci = (ap - esa) / (0.015 * d);
def tci = ExpAverage(ci, Average_Length);
def wt1 = tci;
def wt2 = SimpleMovingAvg(wt1, 4);
def green = if wt1 > wt1[1] AND wt1[1] <= wt1[2] then 1 ELSE 0;
def red = if wt1 < wt1[1] AND wt1[1] >= wt1[2] then 1 ELSE 0;
plot wt1_1 = wt1;
wt1_1.SetStyle(Curve.POINTS);
wt1_1.AssignValueColor(if green then (CreateColor(55, 251, 55)) else if red then (CreateColor(255, 0, 0)) else (color.gray));
wt1_1.SetLineWeight(5);
def UserSetResistance = TrendResistanceStart > 0 and TrendResistanceEnd > 0;
def UserSetSupport = TrendSupportStart > 0 and TrendSupportEnd > 0;
def currentHigh = high;
def currentLow = low;
def currentBar = BarNumber();
def PH;
def PL;
# +---------------------+
# | PIVOT HIGH |
# +---------------------+
def isHigherThanNextBars = fold i = 1 to numBars + 1 with p = 1
while p do currentHigh > GetValue(high, -i);
PH = if wt1 < wt1[1] AND wt1[1] >= wt1[2] then currentHigh else Double.NaN;
# +---------------------+
# | PIVOT LOW |
# +---------------------+
def isLowerThanNextBars = fold j = 1 to numBars + 1 with q = 1
while q do currentLow < GetValue(low, -j);
PL = if wt1 > wt1[1] AND wt1[1] <= wt1[2] then currentLow else Double.NaN;
# +---------------------+
# | ESTABLISH THE DOTS |
# +---------------------+
rec PHBar = if UserSetResistance then TrendResistanceEnd else if !IsNaN(PH) then currentBar else PHBar[1];
rec PLBar = if UserSetSupport then TrendSupportEnd else if !IsNaN(PL) then currentBar else PLBar[1];
rec PHL = if !IsNaN(PH) then PH else PHL[1];
rec priorPHBar = if UserSetResistance then TrendResistanceStart else if PHL != PHL[1] then PHBar[1] else priorPHBar[1];
rec PLL = if !IsNaN(PL) then PL else PLL[1];
rec priorPLBar = if UserSetSupport then TrendSupportStart else if PLL != PLL[1] then PLBar[1] else priorPLBar[1];
def isFinalTwoHighPivots = currentBar >= HighestAll(priorPHBar);
def isFinalTwoLowPivots = currentBar >= HighestAll(priorPLBar);
def ResistanceFinishOffset = if isFinalTwoHighPivots then currentBar - PHBar else 0;
def ResistanceStartOffset = if isFinalTwoHighPivots then currentBar - priorPHBar else 0;
def ResistanceSlope = (GetValue(PH, ResistanceFinishOffset) - GetValue(PH, ResistanceStartOffset)) / (PHBar - priorPHBar);
def SupportFinishOffset = if isFinalTwoLowPivots then currentBar - PLBar else 0;
def SupportStartOffset = if isFinalTwoLowPivots then currentBar - priorPLBar else 0;
def SupportSlope = (GetValue(PL, SupportFinishOffset) - GetValue(PL, SupportStartOffset)) / (PLBar - priorPLBar);
rec ResistanceExtend = if currentBar == HighestAll(PHBar) then 1 else ResistanceExtend[1];
rec SupportExtend = if currentBar == HighestAll(PLBar) then 1 else SupportExtend[1];
def pivotHigh = if
ph>0 then PH else Double.NaN;
def pivotLow = if
pl>0 then PL else Double.NaN;
def pivotdot = if !IsNaN(pivotHigh) then pivotHigh else if !IsNaN(pivotLow) then pivotLow else Double.NaN;
# +---------------------+
# | CONNECT THE DOTS |
# +---------------------+
script Line {
input v = 0; #value
input s = 0; #start
input e = 0; #end
input xl = 0; #extend left
input xr = Double.POSITIVE_INFINITY; #extend right
def bn = BarNumber();
def lastBar = HighestAll(if IsNaN(close) then 0 else bn);
def x1 = Min(s, e);
def x2 = Max(s, e);
def y1 = GetValue(v, bn - x1);
def y2 = GetValue(v, bn - x2);
def m = (y2 - y1) / (x2 - x1);
def x = bn - x1;
def b = y1;
plot return = if bn < (x1 - xl) or bn > (x2 + xr) then Double.NaN else m * x + b;
}
def bn = BarNumber();
def prevPH = if !IsNaN(PH[1]) then high else prevPH[1];
def prevBh = if !IsNaN(PH[1]) then bn[1] else prevBh[1];
def prevPL = if !IsNaN(PL[1]) then low else prevPL[1];
def prevBl = if !IsNaN(PL[1]) then bn[1] else prevBl[1];
def rEnd = HighestAll(if !IsNaN(PH) and high < prevPH then bn else 0);
def rStart = HighestAll(if bn == rEnd then prevBh else 0);
def sEnd = HighestAll(if !IsNaN(PL) and low > prevPL then bn else 0);
def sStart = HighestAll(if bn == sEnd then prevBl else 0);
plot resistance = line(high, rStart, rEnd);
resistance.SetDefaultColor(CreateColor( 255, 126, 156));
resistance.SetLineWeight(3);
plot support = line(low, sStart, sEnd);
support.SetDefaultColor(CreateColor( 51, 255, 51));
support.SetLineWeight(3);
Ruby:#WaveTrend Oscillator script for ThinkorSwim. Came from Came LazyBear over at TradingView version that was ported from TS/MT # also known as "The Perfect Leading Indicator." #ported by BenTen 6/18/19 #WT_LB Short Name TV declare lower; input Channel_Length = 10; input Average_Length = 21; input over_bought_1 = 60; input over_bought_2 = 53; input over_sold_1 = -60; input over_sold_2 = -53; input numBars = 5; input TrendResistanceStart = 0; input TrendResistanceEnd = 0; input TrendSupportStart = 0; input TrendSupportEnd = 0; def ap = hlc3; def esa = ExpAverage(ap, Channel_Length); def d = ExpAverage(AbsValue(ap - esa), Channel_Length); def ci = (ap - esa) / (0.015 * d); def tci = ExpAverage(ci, Average_Length); def wt1 = tci; def wt2 = SimpleMovingAvg(wt1, 4); def green = if wt1 > wt1[1] and wt1[1] <= wt1[2] then 1 else 0; def red = if wt1 < wt1[1] and wt1[1] >= wt1[2] then 1 else 0; plot wt1_1 = wt1; wt1_1.SetStyle(Curve.POINTS); wt1_1.AssignValueColor(if green then (CreateColor(55, 251, 55)) else if red then (CreateColor(255, 0, 0)) else (Color.GRAY)); wt1_1.SetLineWeight(2); def UserSetResistance = TrendResistanceStart > 0 and TrendResistanceEnd > 0; def UserSetSupport = TrendSupportStart > 0 and TrendSupportEnd > 0; def currentHigh = high; def currentLow = low; def currentBar = BarNumber(); def PH; def PL; # +---------------------+ # | PIVOT HIGH | # +---------------------+ def isHigherThanNextBars = fold i = 1 to numBars + 1 with p = 1 while p do currentHigh > GetValue(high, -i); PH = if wt1 < wt1[1] and wt1[1] >= wt1[2] then currentHigh else Double.NaN; # +---------------------+ # | PIVOT LOW | # +---------------------+ def isLowerThanNextBars = fold j = 1 to numBars + 1 with q = 1 while q do currentLow < GetValue(low, -j); PL = if wt1 > wt1[1] and wt1[1] <= wt1[2] then currentLow else Double.NaN; # +---------------------+ # | ESTABLISH THE DOTS | # +---------------------+ rec PHBar = if UserSetResistance then TrendResistanceEnd else if !IsNaN(PH) then currentBar else PHBar[1]; rec PLBar = if UserSetSupport then TrendSupportEnd else if !IsNaN(PL) then currentBar else PLBar[1]; rec PHL = if !IsNaN(PH) then PH else PHL[1]; rec priorPHBar = if UserSetResistance then TrendResistanceStart else if PHL != PHL[1] then PHBar[1] else priorPHBar[1]; rec PLL = if !IsNaN(PL) then PL else PLL[1]; rec priorPLBar = if UserSetSupport then TrendSupportStart else if PLL != PLL[1] then PLBar[1] else priorPLBar[1]; def isFinalTwoHighPivots = currentBar >= HighestAll(priorPHBar); def isFinalTwoLowPivots = currentBar >= HighestAll(priorPLBar); def ResistanceFinishOffset = if isFinalTwoHighPivots then currentBar - PHBar else 0; def ResistanceStartOffset = if isFinalTwoHighPivots then currentBar - priorPHBar else 0; def ResistanceSlope = (GetValue(PH, ResistanceFinishOffset) - GetValue(PH, ResistanceStartOffset)) / (PHBar - priorPHBar); def SupportFinishOffset = if isFinalTwoLowPivots then currentBar - PLBar else 0; def SupportStartOffset = if isFinalTwoLowPivots then currentBar - priorPLBar else 0; def SupportSlope = (GetValue(PL, SupportFinishOffset) - GetValue(PL, SupportStartOffset)) / (PLBar - priorPLBar); rec ResistanceExtend = if currentBar == HighestAll(PHBar) then 1 else ResistanceExtend[1]; rec SupportExtend = if currentBar == HighestAll(PLBar) then 1 else SupportExtend[1]; def pivotHigh = if PH > 0 then PH else Double.NaN; def pivotLow = if PL > 0 then PL else Double.NaN; # +---------------------+ # | CONNECT THE DOTS | # +---------------------+ script Line { input v = 0; #value input s = 0; #start input e = 0; #end input xl = 0; #extend left input xr = Double.POSITIVE_INFINITY; #extend right def bn = BarNumber(); def lastBar = HighestAll(if IsNaN(close) then 0 else bn); def x1 = Min(s, e); def x2 = Max(s, e); def y1 = GetValue(v, bn - x1); def y2 = GetValue(v, bn - x2); def m = (y2 - y1) / (x2 - x1); def x = bn - x1; def b = y1; plot return = if bn < (x1 - xl) or bn > (x2 + xr) then Double.NaN else m * x + b; } def bn = BarNumber(); def prevPH = if !IsNaN(PH[1]) then high else prevPH[1]; def prevBh = if !IsNaN(PH[1]) then bn[1] else prevBh[1]; def prevPL = if !IsNaN(PL[1]) then low else prevPL[1]; def prevBl = if !IsNaN(PL[1]) then bn[1] else prevBl[1]; def rEnd = HighestAll(if !IsNaN(PH) and high < prevPH then bn else 0); def rStart = HighestAll(if bn == rEnd then prevBh else 0); def sEnd = HighestAll(if !IsNaN(PL) and low > prevPL then bn else 0); def sStart = HighestAll(if bn == sEnd then prevBl else 0); plot resistance = line(high, rStart, rEnd); resistance.SetDefaultColor(CreateColor( 255, 126, 156)); resistance.SetLineWeight(3); plot support = line(low, sStart, sEnd); support.SetDefaultColor(CreateColor( 51, 255, 51)); support.SetLineWeight(3); ################################################# def g = if green != green[1] then wt1 else g[1]; def gg = if g != g[1] then BarNumber() else Double.NaN; def r = if red != red[1] then wt1 else r[1]; def rr = if r != r[1] then BarNumber() else Double.NaN; def pivotbar = if BarNumber() == HighestAll(gg - 1) then wt1 else if BarNumber() == HighestAll(rr - 1) then wt1 else Double.NaN; plot xdot = pivotbar; xdot.EnableApproximation(); xdot.setdefaultColor(color.white); xdot.setlineWeight(5); ##################################################
## Wave Oscillator inspired by LazyBear and Zeiierman on TradingView
## Ported over by Chemmy for usethinkscript.com
declare lower;
input Channel_Length = 21; #10
input Average_Length = 35; #10
input over_bought_1 = 60;
input over_bought_2 = 53;
input over_sold_1 = -60;
input over_sold_2 = -53;
input show_bubbles = yes;
input show_sec_bbls = no;
input show_alerts = yes;
input show_lines = no;
input term = 60;
input calcavgtype = averagetype.EXPONENTIAL;
input band_avgtype = averagetype.WILDERS;
input showdiv = Yes;
input show_impulse = Yes;
def ap = hlc3;
def esa = MovingAverage(calcavgtype, ap, Channel_Length);
def d = MovingAverage(calcavgtype, AbsValue(ap - esa), Channel_Length);
def ci = (ap - esa) / (0.015 * d);
def tci = MovingAverage(calcavgtype, ci, Average_Length);
def wt1 = tci;
def wt2 = MovingAverage(band_avgtype, wt1, 4);
#def zero = 0;
plot zero = 0;
zero.SetDefaultColor( Color.GRAY );
#plot obLevel1 = over_bought_1;
#obLevel1.SetDefaultColor(Color.RED);
#plot osLevel1 = over_sold_1;
#osLevel1.SetDefaultColor(Color.GREEN);
#plot obLevel2 = over_bought_2;
#obLevel2.SetDefaultColor(Color.RED);
#obLevel2.SetStyle(Curve.SHORT_DASH);
#plot osLevel2 = over_sold_2;
#osLevel2.SetDefaultColor(Color.GREEN);
#osLevel2.SetStyle(Curve.SHORT_DASH);
plot wt1_1 = wt1;
wt1_1.SetDefaultColor(Color.GREEN);
wt1_1.SetHiding(!show_lines);
plot wt2_1 = wt2;
wt2_1.SetDefaultColor(Color.RED);
wt2_1.SetStyle(Curve.POINTS);
wt2_1.SetHiding(!show_lines);
plot wt3 = (wt1 - wt2);
wt3.AssignValueColor(if wt3>0 and wt3>wt3[1] then color.Green else if wt3>0 and wt3 <= wt3[1] then color.dark_green
else if wt3<0 and wt3<wt3[1] then color.Red else if wt3<0 and wt3>=wt3[1] then color.dark_red else color.Gray);
wt3.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
def dyna1 = highest(wt3, term);
def dyna2 = lowest(wt3, term);
plot dynaup = dyna1;
plot dynadn = dyna2;
def signal1 = wt1 crosses above wt2 and wt1 < over_sold_2;
plot Signal = if signal1 then (signal1 * dyna2) else Double.NaN;
Signal.SetDefaultColor(Color.GREEN);
Signal.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
Signal.SetLineWeight(3);
Signal.HideTitle();
def signal2 = wt1 crosses below wt2 and wt1 > over_bought_2;
plot Signal2_ = if signal2 then (signal2 * dyna1) else Double.NaN;
Signal2_.SetDefaultColor(Color.RED);
Signal2_.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
Signal2_.SetLineWeight(3);
Signal2_.HideTitle();
def impdown = wt1 crosses below dynadn;
plot impulsedn = if impdown then wt3 else double.NaN;
impulsedn.SetPaintingStrategy(PaintingStrategy.Points);
impulsedn.SetDefaultColor(color.Red);
impulsedn.setlineweight(3);
impulsedn.SetHiding(!show_impulse);
def impup = wt1 crosses below dynadn;
plot impulseup = if impup then wt3 else double.NaN;
impulseup.SetPaintingStrategy(PaintingStrategy.Points);
impulseup.SetDefaultColor(color.Green);
impulseup.setlineweight(3);
impulseup.SetHiding(!show_impulse);
## Divergence Sections
##### DIVERGANCE
def bar = BarNumber();
def n = channel_Length;
def CurrH = if wt1 > dynaup
then fold i = 1 to Floor(n / 2)
with p = 1
while p
do wt1 > GetValue(wt1, -i)
else 0;
def CurrPivotH = if (bar > n and
wt1 == Highest(wt1, Floor(n / 2)) and CurrH) then wt3 else double.NaN;
def CurrL = if wt1 < dynadn
then fold j = 1 to Floor(n / 2)
with q = 1
while q
do wt1 < GetValue(wt1, -j)
else 0;
def CurrPivotL = if (bar > n and
wt1 == Lowest(wt1, Floor(n / 2)) and CurrL) then wt3 else double.NaN;
def CurrPHBar = if !IsNaN(CurrPivotH) then bar else CurrPHBar[1];
def CurrPLBar = if !IsNaN(CurrPivotL) then bar else CurrPLBar[1];
def PHpoint = if !IsNaN(CurrPivotH) then CurrPivotH else PHpoint[1];
def PLpoint = if !IsNaN(CurrPivotL) then CurrPivotL else PLpoint[1];
def priorPHBar = if PHpoint != PHpoint[1] then CurrPHBar[1] else priorPHBar[1];
def priorPLBar = if PLpoint != PLpoint[1] then CurrPLBar[1] else priorPLBar[1];
def HighPivots = bar >= HighestAll(priorPHBar);
def LowPivots = bar >= HighestAll(priorPLBar);
def pivotHigh = if HighPivots then CurrPivotH else double.Nan;
def pivotLow = if LowPivots then CurrPivotL else double.Nan;
plot PlotHline = pivotHigh;
PlotHline.EnableApproximation();
PlotHline.SetDefaultColor(Color.RED);
PlotHline.SetStyle(Curve.SHORT_DASH);
PlotHline.SetHiding(!ShowDiv);
plot PlotLline = pivotLow;
PlotLline.EnableApproximation();
PlotLline.SetDefaultColor(Color.LIME);
PlotLline.SetStyle(Curve.SHORT_DASH);
PlotLline.SetHiding(!ShowDiv);
plot PivotDot = if !IsNaN(pivotHigh) then pivotHigh else
if !IsNaN(pivotLow) then pivotLow else double.NaN;
PivotDot.SetDefaultColor(Color.YELLOW);
PivotDot.SetPaintingStrategy(PaintingStrategy.POINTS);
PivotDot.SetLineWeight(3);
PivotDot.SetHiding(!ShowDiv);
https://usethinkscript.com/threads/...or-thinkorswim-lazybear.233/page-2#post-14661Hi All,
I am adding wavetrend as a lower study and plotting conditionally, somebody can help with adding the alerts when it's plotting? Appreciated!!
Just wanting wt1_1 to show red when below 0 and green when over 0. Thank you in advance!
input Channel_Length = 10; #10
input Average_Length = 21; #10
input over_bought_1 = 60;
input over_bought_2 = 53;
input over_sold_1 = -60;
input over_sold_2 = -53;
def ap = hlc3;
def esa = ExpAverage(ap, Channel_Length);
def d = ExpAverage(AbsValue(ap - esa), Channel_Length);
def ci = (ap - esa) / (0.015 * d);
plot tci = ExpAverage(ci, Average_Length);
AssignBackgroundColor(
if tci>0 then color.green else color.red);
Join useThinkScript to post your question to a community of 21,000+ developers and traders.
Thread starter | Similar threads | Forum | Replies | Date |
---|---|---|---|---|
![]() |
L3 Banker Fund Flow Trend Oscillator for ThinkOrSwim | Indicators | 37 | |
C | Bull Bear Power VOID Oscillator For ThinkOrSwim | Indicators | 21 | |
M | SuperTrend Oscillator [LUX] For ThinkOrSwim | Indicators | 7 | |
![]() |
Klinger Volume Oscillator for ThinkorSwim | Indicators | 5 | |
F | Savage Oscillator for ThinkorSwim | Indicators | 143 |
Start a new thread and receive assistance from our community.
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.
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.