WaveTrend Oscillator with Signals Indicator for ThinkorSwim

BenTen

BenTen

Administrative
Staff
VIP
Warehouse
This is another WaveTrend indicator similar to the one I posted here. In fact, they both came from the TradingView version that was ported from the famous TS/MT version which was known as "The Perfect Leading Indicator".

According to the Forex indicator:

It features a sophisticated algorithm which enables it to detect true reversals in a extremely accurate manner. The beauty of this indicator is that is does not generate signals during choppy sideways markets.
A Buy signal is generated based on the oscillator crosses above the signal while below the Oversold band. You'll see a Sell signal when the oscillator is above the overbought band and crosses down on the signal line.

I'm also happy to say that the WaveTrend signals does not repaint.





thinkScript Code

Rich (BB code):
#WT_LB Short Name TV
declare lower;
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 show_bubbles = yes;
input show_sec_bbls = no;
input show_alerts = yes;
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 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);
plot wt2_1 = wt2;
wt2_1.SetDefaultColor(Color.RED);
wt2_1.SetStyle(Curve.POINTS);
plot wt3 = (wt1 - wt2);
wt3.SetDefaultColor(Color.BLUE);
wt3.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
def signal1 = wt1 crosses above wt2 and wt1 < over_sold_2;
plot Signal = if signal1  then (signal1 * over_sold_2) 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 * over_bought_2) else Double.NaN;
Signal2_.SetDefaultColor(Color.RED);
Signal2_.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
Signal2_.SetLineWeight(3);
Signal2_.HideTitle();

Shareable Link

Credits:
 
Last edited:
G

GeneHo

New member
VIP
Any idea how to convert the code for watchlist?

 
Last edited:
C

cherif

New member
@BenTen hi. would this indicator be useful on daily charts? i am thinking of using it with a slowRSI to indicate overbought and oversold and therefore reversals. what do you think?

 
Last edited:
BenTen

BenTen

Administrative
Staff
VIP
Warehouse
@cherif That would be interesting to check and backtest. I have not been able to go through this indicator for long so I definitely don't have any personal experience with it yet.

 
Last edited:
mc01439

mc01439

Active member
VIP
Warehouse
Would anyone be willing to make this plot the arrows on the chart? Thanks
@Shrum - here you go. http://tos.mx/ugd2NGs

Code:
#Start of code
#WT_LB Short Name TV for Price Pane

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 show_sec_bbls = no;
input show_alerts = yes;
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 zero = 0;

def obLevel1 = over_bought_1;

def osLevel1 = over_sold_1;

def obLevel2 = over_bought_2;

def osLevel2 = over_sold_2;

def wt1_1 = wt1;

def wt2_1 = wt2;

def wt3 = (wt1 - wt2);

def signal1 = wt1 crosses above wt2 and wt1 < over_sold_2;
plot Signal = if signal1 then (signal1 * over_sold_2) else Double.NaN;

def signal2 = wt1 crosses below wt2 and wt1 > over_bought_2;
plot Signal2_ = if signal2 then (signal2 * over_bought_2) else Double.NaN;

Signal.SetDefaultColor(Color.GREEN);
Signal.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
Signal2_.SetDefaultColor(Color.RED);
Signal2_.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);

#End of code
 
Last edited by a moderator:
H

horserider

Active member
Warehouse
Redundant to TMO. Same calculations. Just use TMO and it already has the MTF. Why waste time on a second study or is it the arrows that are attractive?
 

Top