OPEN-SOURCE SCRIPT

Indicator Functions with Factor and HeikinAshi

Mis à jour
Hello all,
This indicator returns below selected indicators values with entered parameters.
Also you can add factorization, functions candles, function HeikinAshi and more to the plot.


VERSION:
Version 1: returns series only source and Length with already defined default values
Version 2: returns series with source, Length, p1 and p2 parameters according to the indicator definition (ex: )

PARAMETERS p1 p2
for defining multi arguments (See indicators list) indicator input value usable with verison=V2 selected.. ex: for alma( src , len ,offset=0.85,sigma=6), set source=source, len=length, p1=0.85 an p2=6

FACTOR:
Add double triple, Quadruple factors to selected indicator (like converting EMA to 2-DEMA, 3-TEMA, 4-QEMA...)
1-Original
2-Double
3-Triple
4-Quadruple

LOG
Log: Use log, log10 on function entries

PLOTTING:
PType: Plotting type of the function on the screen ['Original', 'Stochastic', 'PercentRank','Org. Range (-1,1)']
Original :use original values
Org. Range (-1,1): usable for indicators between range -1 and 1
Stochastic: Convert indicator values by using stochastic calculation between -1 & 1. (use AT/% length to better view)
PercentRank: Convert indicator values by using Percent Rank calculation between -1 & 1. (use AT/% length to better view)
ST/%: length for plotting Type for stochastic and Percent Rank options
Smooth: Use SWMA for smoothing the function

DISPLAY TYPES
Plot Candles: Display the selected indicator as candle by implementing [open, high, low, close] values
Plot Ind: Display result of indicator with selected source
HeikinAshi: Display Selected indicator candles with Heikin Ashi calculation


INDICATOR LIST:
hide = 'DONT DISPLAY', //Dont display & calculate the indicator. (For my framework usage)
alma = 'alma( src , len ,offset=0.85,sigma=6)', // Arnaud Legoux Moving Average
ama = 'ama( src , len ,fast=14,slow=100)', //Adjusted Moving Average
acdst = 'accdist()', // Accumulation/distribution index.
cma = 'cma( src , len )', //Corrective Moving average
dema = 'dema( src , len )', // Double EMA (Same as EMA with 2 factor)
ema = 'ema( src , len )', // Exponential Moving Average
gmma = 'gmma( src , len )', //Geometric Mean Moving Average
hghst = 'highest( src , len )', //Highest value for a given number of bars back.
hl2ma = 'hl2ma( src , len )', //higest lowest moving average
hma = 'hma( src , len )', // Hull Moving Average .
lgAdt = 'lagAdapt( src , len ,perclen=5,fperc=50)', //Ehler's Adaptive Laguerre filter
lgAdV = 'lagAdaptV( src , len ,perclen=5,fperc=50)', //Ehler's Adaptive Laguerre filter variation
lguer = 'laguerre( src , len )', //Ehler's Laguerre filter
lsrcp = 'lesrcp( src , len )', //lowest exponential esrcpanding moving line
lexp = 'lexp( src , len )', //lowest exponential expanding moving line
linrg = 'linreg( src , len ,loffset=1)', // Linear regression
lowst = 'lowest( src , len )', //Lovest value for a given number of bars back.
pcnl = 'percntl( src , len )', //percentile nearest rank. Calculates percentile using method of Nearest Rank.
pcnli = 'percntli( src , len )', //percentile linear interpolation. Calculates percentile using method of linear interpolation between the two nearest ranks.
rema = 'rema( src , len )', //Range EMA (REMA)
rma = 'rma( src , len )', //Moving average used in RSI . It is the exponentially weighted moving average with alpha = 1 / length.
sma = 'sma( src , len )', // Smoothed Moving Average
smma = 'smma( src , len )', // Smoothed Moving Average
supr2 = 'super2( src , len )', //Ehler's super smoother, 2 pole
supr3 = 'super3( src , len )', //Ehler's super smoother, 3 pole
strnd = 'supertrend( src , len ,period=3)', //Supertrend indicator
swma = 'swma( src , len )', //Sine-Weighted Moving Average
tema = 'tema( src , len )', // Triple EMA (Same as EMA with 3 factor)
tma = 'tma( src , len )', //Triangular Moving Average
vida = 'vida( src , len )', // Variable Index Dynamic Average
vwma = 'vwma( src , len )', // Volume Weigted Moving Average
wma = 'wma( src , len )', //Weigted Moving Average
angle = 'angle( src , len )', //angle of the series (Use its Input as another indicator output)
atr = 'atr( src , len )', // average true range . RMA of true range.
bbr = 'bbr( src , len ,mult=1)', // bollinger %%
bbw = 'bbw( src , len ,mult=2)', // Bollinger Bands Width . The Bollinger Band Width is the difference between the upper and the lower Bollinger Bands divided by the middle band.
cci = 'cci( src , len )', // commodity channel index
cctbb = 'cctbbo( src , len )', // CCT Bollinger Band Oscilator
chng = 'change( src , len )', //Difference between current value and previous, source - source.
cmo = 'cmo( src , len )', // Chande Momentum Oscillator . Calculates the difference between the sum of recent gains and the sum of recent losses and then divides the result by the sum of all price movement over the same period.
cog = 'cog( src , len )', //The cog (center of gravity ) is an indicator based on statistics and the Fibonacci golden ratio.
cpcrv = 'copcurve( src , len )', // Coppock Curve. was originally developed by Edwin "Sedge" Coppock (Barron's Magazine, October 1962).
corrl = 'correl( src , len )', // Correlation coefficient . Describes the degree to which two series tend to deviate from their ta. sma values.
count = 'count( src , len )', //green avg - red avg
dev = 'dev( src , len )', //ta.dev() Measure of difference between the series and it's ta. sma
fall = 'falling( src , len )', //ta.falling() Test if the `source` series is now falling for `length` bars long. (Use its Input as another indicator output)
kcr = 'kcr( src , len ,mult=2)', // Keltner Channels Range
kcw = 'kcw( src , len ,mult=2)', //ta.kcw(). Keltner Channels Width. The Keltner Channels Width is the difference between the upper and the lower Keltner Channels divided by the middle channel.
macd = 'macd( src , len )', // macd
mfi = 'mfi( src , len )', // Money Flow Index
nvi = 'nvi()', // Negative Volume Index
obv = 'obv()', // On Balance Volume
pvi = 'pvi()', // Positive Volume Index
pvt = 'pvt()', // Price Volume Trend
rise = 'rising( src , len )', //ta.rising() Test if the `source` series is now rising for `length` bars long. (Use its Input as another indicator output)
roc = 'roc( src , len )', // Rate of Change
rsi = 'rsi( src , len )', // Relative strength Index
smosc = 'smi_osc( src , len ,fast=5, slow=34)', //smi Oscillator
smsig = 'smi_sig( src , len ,fast=5, slow=34)', //smi Signal
stdev = 'stdev( src , len )', //Standart deviation
trix = 'trix( src , len )' , //the rate of change of a triple exponentially smoothed moving average .
tsi = 'tsi( src , len )', //True Strength Index
vari = 'variance( src , len )', //ta.variance(). Variance is the expectation of the squared deviation of a series from its mean (ta. sma ), and it informally measures how far a set of numbers are spread out from their mean.
wilpc = 'willprc( src , len )', // Williams %R
wad = 'wad()', // Williams Accumulation/Distribution .
wvad = 'wvad()' //Williams Variable Accumulation/Distribution

I will update the indicator list when I will update the library
Thanks to tradingview, RodrigoKazuma for their open source indicators
Notes de version
  • Increased number of visible indicators on the chart to two. Now it is you can define two different indicator on the same chart in the same time
  • Corrected Some minor errors (color, candle visibility..)
Notes de version
//Indicator Version 1.02
//ADD: 23 new indicators added. Most of them are TR builtin indicators (see description in TV builtin Indicators). Newly added indicators are listed below
//ADD: pvth = 'pivothigh(src,BarsLeft,BarsRight=2)' //Previous pivot high. src=src, BarsLeft=len, BarsRight=p1=2
//ADD: pvtl = 'pivotlow(src,BarsLeft,BarsRight=2)' //Previous pivot low. src=src, BarsLeft=len, BarsRight=p1=2
//ADD: rangs = 'ranges(src,upper=len, lower=-5)', //ranges of the source. return -1 source<lower, return 1 source>upper otherwise return 0
//ADD: aroon = 'aroon(len,dir=0)', //aroon indicator. Aroon's major function is to identify new trends as they happen.p1 = dir: 0=mid (default), 1=upper, 2=lower
//ADD: adx = 'adx(dilen=len, adxlen=14)' //adx. The Average Directional Index (ADX) is a used to determine the strength of a trend. len=>dilen, p1=adxlen (default=14), p2=adxtype 0:ADX, 1:+DI, 2:-DI (def:0)
//ADD: awsom = 'awesome(fast=len=5,slow=34,type=0)' //Awesome Oscilator (AO) is an indicator used to measure market momentum. defaults : fast=len= 5, p1=slow=34, p2=type: 0=Awesome, 1=difference
//ADD: cmf = 'cmf(len=20)' //Chaikin Money Flow Indicator used to measure Money Flow Volume over a set period of time. Default use is len=20
//ADD: eom = 'eom(len=14,div=10000)', //Ease of Movement.It is designed to measure the relationship between price and volume.p1 = div: 10000= (default)
//ADD: efi = 'efi(len)' //Elder's Force Index (EFI) measures the power behind a price movement using price and volume.
//ADD: fit = 'fn_fisher(len)' //Fisher Transform is a technical indicator that converts price to Gaussian normal distribution and signals when prices move significantly by referencing recent price data
//ADD: hvo = 'fn_histvol(len)', //Historical volatility is a statistical measure used to analyze the general dispersion of security or market index returns for a specified period of time.
//ADD: dpo = 'dpo(len)', //Detrended Price Oscilator is used to remove trend from price.
//ADD: kli = 'klinger(type=len)', //Klinger oscillator aims to identify money flow’s long-term trend. type=len: 0:Oscilator 1:signal
//ADD: msi = 'msi(len=10)', //Mass Index (def=10) is used to examine the differences between high and low stock prices over a specific period of time
//ADD: mgi = 'mcginley(src, len)' //McGinley Dynamic adjusts for market speed shifts, which sets it apart from other moving averages, in addition to providing clear moving average lines
//ADD: sar = 'sar(start=len, inc=0.02, max=0.02)' //Parabolic SAR (parabolic stop and reverse) is a method to find potential reversals in the market price direction of traded goods.start=len, inc=p1, max=p2. ex: sar(0.02, 0.02, 0.02)
//ADD: rvi = 'rvi(src,len)', //The Relative Volatility Index (RVI) is calculated much like the RSI, although it uses high and low price standard deviation instead of the RSI’s method of absolute change in price.
//ADD: ulos = 'ultimateOsc(len)' //Ultimate Oscillator indicator (UO) indicator is a technical analysis tool used to measure momentum across three varying timeframes
//ADD: vstop = 'volstop(src,len,atrfactor=2)' //Volatility Stop is a technical indicator that is used by traders to help place effective stop-losses. atrfactor=p1
//ADD: vwap = 'vwap(src_)', //Volume Weighted Average Price (VWAP) is used to measure the average price weighted by volume
//ADD: cti = 'cti(src,len)', //Ehler s Correlation Trend Indicator by @midtownsk8rguy.
//ADD: stc = 'stc(src,len,fast=23,slow=50)', //Schaff Trend Cycle (STC) detects up and down trends long before the MACD. Code imported from LazyBear's (thanks) Schaff Trend Cycle script.
//ADD: org = 'Original Value', //Return input source value as output
//UPD: Indicator factor inputs displays with factor descriptions
//UPD: Indicator Parameter inputs displays with parameter descriptions
//UPD: Indicator source inputs displays indicators descriptions
//UPD: volume added on IND2 source input
//UPD: IND1 is added IND2's source list (IND1, open, close...). Now it is possible to use IND1 as source and modify it with any indicator in IND2. ex: IND1=ema(close,14) and IND2=dema(IND1,50) means IND2=dema(ema(close,14), 50)
//UPD: indicators descriptions updated
//UPD: contants and inputs (ind_src) updated with new indicators
Notes de version
Bug on mcginley(src,len) corrected
Exponential Moving Average (EMA)factorheiken

Script open-source

Dans le plus pur esprit TradingView, l'auteur de ce script l'a publié en open-source, afin que les traders puissent le comprendre et le vérifier. Bravo à l'auteur! Vous pouvez l'utiliser gratuitement, mais la réutilisation de ce code dans une publication est régie par nos Règles. Vous pouvez le mettre en favori pour l'utiliser sur un graphique.

Vous voulez utiliser ce script sur un graphique ?

Clause de non-responsabilité