RedK VADER
Forums › ProRealTime foro Español › Soporte ProBuilder › RedK VADER
- This topic has 0 replies, 1 voice, and was last updated 2 years ago by dominiospremium.
-
-
03/01/2022 at 9:09 PM #189161
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RedKTrader//@version=5
indicator(‘RedK Volume-Accelerated Directional Energy Ratio’, ‘RedK VADER v2.0’, precision=0, timeframe=”, timeframe_gaps=false)// ***********************************************************************************************************
f_RelVol(_value, _length) =>
min_value = ta.lowest(_value, _length)
max_value = ta.highest(_value, _length)
ta.stoch(_value, max_value, min_value, _length) / 100
// ***********************************************************************************************************// ===========================================================================================================
// Inputs
// ===========================================================================================================price = close
length = input.int(10, minval=1)
DER_avg = input.int(5, ‘Average’, minval=1, inline=’DER’, group=’Directional Energy Ratio’)
smooth = input.int(3, ‘Smoothing’, minval=1, inline=’DER’, group=’Directional Energy Ratio’)v_calc = input.string(‘Relative’, ‘Calculation’, options=[‘Relative’, ‘Full’, ‘None’], group=’Volume Parameters’)
vlookbk = input.int(20, ‘Lookback (for Relative)’, minval=1, group=’Volume Parameters’)// ===========================================================================================================
// Calculations
// ===========================================================================================================// Volume Calculation Option — will revert to no volume acceleration for instruments with no volume data
vola =
v_calc == ‘None’ or na(volume) ? 1 :
v_calc == ‘Relative’ ? f_RelVol(volume, vlookbk) :
volumeR = (ta.highest(2) – ta.lowest(2)) / 2 // R is the 2-bar average bar range – this method accomodates bar gaps
sr = ta.change(price) / R // calc ratio of change to R
rsr = math.max(math.min(sr, 1), -1) // ensure ratio is restricted to +1/-1 in case of big moves
c = fixnan(rsr * vola) // add volume accel — fixnan adresses cases where no price change between barsc_plus = math.max(c, 0) // calc directional vol-accel energy
c_minus = -math.min(c, 0)// plot(c_plus)
// plot(c_minus)dem = ta.wma(c_plus, length) / ta.wma(vola, length) //average directional energy ratio
sup = ta.wma(c_minus, length) / ta.wma(vola, length)// plot(vola, ‘Vol Accel’)
adp = 100 * ta.wma(dem, DER_avg)
asp = 100 * ta.wma(sup, DER_avg)anp = adp – asp
anp_s = ta.wma(anp, smooth)// ===========================================================================================================
// Colors & plots
// ===========================================================================================================
c_adp = color.new(color.aqua, 50)
c_asp = color.new(color.orange, 50)
c_fd = color.new(color.green, 80)
c_fs = color.new(color.red, 80)
c_zero = color.new(#ffee00, 70)
c_up = color.new(#33ff00, 0)
c_dn = color.new(#ff1111, 0)
up = anp_s >= 0hline(0, ‘Zero Line’, c_zero, hline.style_solid)
s = plot(asp, ‘Supply Energy’, c_asp, 2, style=plot.style_circles, join=true)
d = plot(adp, ‘Demand Energy’, c_adp, 2, style=plot.style_cross, join=true)
fill(d, s, adp > asp ? c_fd : c_fs)plot(anp, ‘VADER’, color.new(color.gray, 30))
plot(anp_s, ‘Signal’, up ? c_up : c_dn, 3)// ===========================================================================================================
// v2.0 adding alerts
// ===========================================================================================================Alert_up = ta.crossover(anp_s,0)
Alert_dn = ta.crossunder(anp_s,0)
Alert_swing = ta.cross(anp_s,0)// “*” in alert title for the alerts to show in the right order up/down/swing
alertcondition(Alert_up, “* VADER Up”, “VADER Up – Buying Energy Detected!”)
alertcondition(Alert_dn, “** VADER Down”, “VADER Down – Selling Energy Detected!”)
alertcondition(Alert_swing, “*** VADER Swing”, “VADER Swing – Possible Reversal”) -
AuthorPosts