Velocity Devation

Ghost

Member
Platform
  1. Thinkorswim
Exponteial rate of change of price and devation bands put together. Helps identify possible exhaustion of price and possible reversal.

Code:
#Velocity Devation
 #Ghost

declare lower;
input length = 89;
input factor = 6.18;

def price = close;
def avg1 = expaverage(price, length);
def height = avg1 - avg1[1];

plot “Angle, deg” = Atan(height/length) * 180 / Double.Pi;
“Angle, deg”.AssignValueColor (if “Angle, deg” >=0 then color.ORANGE else color.BLUE);

def shift = factor * expaverage( TrueRange(“Angle, deg”,“Angle, deg”,“Angle, deg”), length);
def average = expaverage(“Angle, deg”, length);

plot Avg = average;
Avg.SetDefaultColor(GetColor(1));

plot Upper_Band = average + 1.214 * shift;
Upper_Band.SetDefaultColor(color.green);
plot Upper_Band2 = average + 1.386 * shift;
Upper_Band2.SetDefaultColor(color.green);

plot lower_band = average+ -1.214 * shift;
lower_band.SetDefaultColor(color.green);
plot lower_band2 = average + -1.386 * shift;
lower_band2.SetDefaultColor(color.green);

upper_Band2.Setlineweight(1);
upper_Band.Setlineweight(1);

AddCloud( upper_Band2, upper_Band, Color.green );
AddCloud( lower_band, lower_band2, color.green );

 

thetradeengine

New member
Seems interesting. Here it is in PineScript for TradingView:
Code:
//@version=5
indicator("Velocity Deviation", overlay=false)

price = input(close, "Source")
length = input(89, "Length")
factor = input(6.18, "Factor")

avg1 = ta.ema(price, length)
height = avg1 - avg1[1]

deg = math.atan(height/length) * 180 / math.pi
plot(deg, "Angle/Degree", color=deg >= 0 ? color.orange : color.blue)

shift = factor * ta.ema(math.abs(ta.change(deg)), length)
average = ta.ema(deg, length)

plot(average, "Average", color=color.yellow)

upperBand = average + 1.214 * shift
upperBand2 = average + 1.386 * shift

lowerBand = average - 1.214 * shift
lowerBand2 = average - 1.386 * shift

up1 = plot(upperBand, "Upper Band", color=color.green)
up2 = plot(upperBand2, "Upper Band 2", color=color.green)

dn1 = plot(lowerBand, "Lower Band", color=color.green)
dn2 = plot(lowerBand2, "Lowerband Band 2", color=color.green)

fill(up1, up2, color=color.new(color.green, 80))
fill(dn1, dn2, color=color.new(color.green, 80))
 

retire020

New member
Nice. I ran it in tandem with a TripleExhaustion indicator on usethinkscript and the extremes seem to match fairly close.
The length and factor do you have any references to why these work?
 

Ghost

Member
Seems interesting. Here it is in PineScript for TradingView:
Code:
//@version=5
indicator("Velocity Deviation", overlay=false)

price = input(close, "Source")
length = input(89, "Length")
factor = input(6.18, "Factor")

avg1 = ta.ema(price, length)
height = avg1 - avg1[1]

deg = math.atan(height/length) * 180 / math.pi
plot(deg, "Angle/Degree", color=deg >= 0 ? color.orange : color.blue)

shift = factor * ta.ema(math.abs(ta.change(deg)), length)
average = ta.ema(deg, length)

plot(average, "Average", color=color.yellow)

upperBand = average + 1.214 * shift
upperBand2 = average + 1.386 * shift

lowerBand = average - 1.214 * shift
lowerBand2 = average - 1.386 * shift

up1 = plot(upperBand, "Upper Band", color=color.green)
up2 = plot(upperBand2, "Upper Band 2", color=color.green)

dn1 = plot(lowerBand, "Lower Band", color=color.green)
dn2 = plot(lowerBand2, "Lowerband Band 2", color=color.green)

fill(up1, up2, color=color.new(color.green, 80))
fill(dn1, dn2, color=color.new(color.green, 80))
Much appreciated.
 

Ghost

Member
Nice. I ran it in tandem with a TripleExhaustion indicator on usethinkscript and the extremes seem to match fairly close.
The length and factor do you have any references to why these work?
Just playing around with fib numbers. Usally thats how I tweak my settings.
 
Top