wow thank you for putting in all this work, i seen you actually took the time to code the cypher script, you should do this more often. cant wait to see the finish product.barbaros i will when is finished and completed, i still working on it.
This indicator repaints when plotted on top of price
It changes when I scroll the chart back and forth, prices that were below ,become above the indicator and vice versayeah i notice that the other version made at the end might repaint because the mean is constantly changing. is that what you mean @henry1224
yeah possibly some versions of it might because i seen we are using the average but i dont believe this one does https://tos.mx/4ZOTEp6, check it out you might know better than me but i have been scrolling and i havent had that issue, im not sure.It changes when I scroll the chart back and forth, prices that were below ,become above the indicator and vice versa
# WT_LB Short Name TV
# Modidied into an MTF version by BenTen at UseThinkScript.com
declare lower;
input aggregationPeriod = AggregationPeriod.DAY;
def close = close (period = aggregationPeriod);
def high = high(period = aggregationPeriod);
def low = low(period = aggregationPeriod);
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 = (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 = 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();
# WT_LB Short Name TV
#deviation_blue_wave
#MTF
declare lower;
input aggregationPeriod = AggregationPeriod.DAY;
def close = close (period = aggregationPeriod);
def high = high(period = aggregationPeriod);
def low = low(period = aggregationPeriod);
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 = (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 = tci;
def wt2 = SimpleMovingAvg(wt1, 3);
#def zero = 0;
def wt1_1 = wt1;
#wt1_1.SetDefaultColor(Color.GREEN);
def wt2_1 = wt2;
#wt2_1.SetDefaultColor(Color.RED);
#wt2_1.SetStyle(Curve.POINTS);
#plot wt3 = (wt1 - wt2);
#wt3.SetDefaultColor(Color.YELLOW);
#wt3.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
#addcloud(wt3, 0, color.yellow);
#........................................
plot mean = inertiaAll((wt1+wt2)/2);
mean.setDefaultColor(color.cyan);
def dev1 = (stdevAll(wt1)+stdevAll(wt2))/2;
plot up = wt1_1+ dev1*2;
plot down = wt1_1- dev1*2;
plot avg2 =(up-down/up+down)-mean;
avg2.setDefaultColor(createcolor(250,10,10));
avg2.setDefaultColor(COLOR.PINK);
plot avg3 = 1.0* (up+down/up+down)-dev1;
avg3.setDefaultColor(color.white);
up.SetDefaultColor(Color.GREEN);
up.SetLineWeight(2);
down.SetDefaultColor(Color.RED);
down.SetLineWeight(2);
AddCloud(0, tci[0], createcolor(20,170,240), createcolor(20,170,240));
AddCloud(0, tci[0], createcolor(20,170,240), createcolor(20,170,240));
AddCloud(0, tci[0], createcolor(20,170,240), createcolor(20,170,240));
AddCloud(0, tci[0], createcolor(20,170,240), createcolor(20,170,240));
AddCloud(WT1, WT2, Color.white, Color.RED);
AddCloud(WT1, WT2, Color.white, Color.RED);
AddCloud(wt1, 0, CreateColor(40, 82, 248), CreateColor(30, 82, 248));
AddCloud(wt1, 0, CreateColor(40, 82, 248), CreateColor(30, 82, 248));
def W1 = if wt1 < wt2 then wt2 else wt1;
def W2 = if wt1 > wt2 then wt2 else wt2;
AddCloud(W1, W2, Color.WHITE, Color.WHITE);
AddCloud(W1, W2, Color.WHITE, Color.WHITE);
AddCloud(W1, W2, Color.WHITE, Color.WHITE);
AddCloud(W1, W2, Color.WHITE, Color.WHITE);
#END
#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 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);
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();
#Name: DonchianChannel
#Programmed By: Chris Ball ([email protected]) on 10/23/08
#Posted At: http://chartingwithchris.blogspot.com
#Description: This is a channel system that is used frequently for trend trading. Google the term "turtle trader" for more information.
#Modified 2020-06-10 by rad14733 to utilize AddCloud()
input length_donchian = 34;
plot upperBand = Highest(wt1_1[1], length_donchian);
plot lowerBand = Lowest(wt1_1[1], length_donchian);
plot middleBand = (upperBand + lowerBand) / 2;
upperBand.SetDefaultColor(Color.DARK_GRAY);
lowerBand.SetDefaultColor(Color.DARK_GRAY);
middleBand.SetDefaultColor(Color.Orange);
AddCloud(upperBand, lowerBand, Color.DARK_GRAY, Color.WHITE);
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