Indicators

Notification Publishing copyrighted material is strictly prohibited. If you believe there is copyrighted material in this section you may use the Copyright Infringement Notification form to submit a claim.
How to install
Pivot Points High Low
  5
  0
  253
free  17 Oct 2022
Note: This indicator works only on our Preferred Broker The Pivot Points High Low indicator draws and extends lines between the last two pivot points. High pivot points are connected with green lines while low pivot points are connected with red lines  Buy: when the bar breaks above the green pivot points trendline.  Sell: when the bar breaks below the red pivot points trendline.  W: www.aieden.tech E: info(at)aieden.tech  
by mfejza
free  11 Oct 2022
Ehlers Super Smooth Indicator
free  10 Oct 2022
Note: This indicator works only on our Preferred Broker Ehlers Super Passband Filter is a pass-band oscillator that seeks to pass-band out both high and low frequencies from market data to eliminate wiggles from the resultant signal thus significantly reducing lag. This pass-band indicator achieves this by using 2 different EMA's of varying periods. (40 and 60). Trigger points for the pass-band oscillator are added with a RMS cyclic envelope over the Signal line. Output of the pass-band waveform is calculated by summing its square over the last 50 bars and taking the square root of the averaged sum to create trigger levels. Buy: When pass-band crosses above its +RMS line.  Sell: When pass-band crosses below the -RMS line. W: www.aieden.tech E: info(at)aieden.tech  
by Gwave
paid  11 Oct 2022
E7 Harmonic Structures are customised for:    Over 20 different Structures,    Point C Structures,    Point D Structures,    Automatic Fib retracements,    Potential Completion Zones (PCZ),    Potential Reversal Zones (PRZ),    Alerts and much much more. This is a custom indicator from E7 Academy Ideally to be used with the E7 system. This custom indicator was developed using the E7Qnet deep neural network learning system. The pictures below are examples of charts with both "Point C" and "Point D" structures with automatic Fib retracements on and off respectively. Download the Indicator Watch a live stream here       
by mfejza
free  02 Oct 2022
Renko Line Break determines the direction of the trend. On the rollback of the trend place a stop order based on the Pips range. In case the trend is long (green color) and price below the RenkoBottomLine then, try to find long.open position. In case the trend is short (red color) and price above the RenkoTopLine, then try to find short.open position.  
ZIGNALE OSCILLATOR
  4
  0
  249
free  23 Sep 2022
@version=4 Di Mihkel00 Questo script è progettato per il metodo NNFX, quindi è consigliato solo per i grafici giornalieri. Ho provato a implementare alcune regole VP NNFX Questo script ha un SSL / Baseline (è possibile scegliere tra SSL o MA), un SSL secondario per le negoziazioni di continiuation e un terzo SSL per le negoziazioni di uscita. Avvisi aggiunti per le voci baseline, le continuazioni SSL2, le uscite. Baseline ha un'impostazione Keltner Channel per le candele grigie "in zona" Aggiunti diamanti "Candle Size > 1 ATR" dal mio vecchio script con i criteri di essere all'interno dell'intervallo ATR di base. Crediti Strategia causecelebre https://www.tradingview.com/u/causecelebre/ Canale SSL ErwinBeckers https://www.tradingview.com/u/ErwinBeckers/ Medie mobili jiehonglim https://www.tradingview.com/u/jiehonglim/ Le medie mobili generano https://www.tradingview.com/u/everget/ Sceneggiatura di "Molte medie mobili" Fractured https://www.tradingview.com/u/Fractured/ study("SSL Hybrid", overlay=true) show_Baseline = input(title="Show Baseline", type=input.bool, defval=true) show_SSL1 = input(title="Mostra SSL1", type=input.bool, defval=false) show_atr = input(title="Mostra bande ATR", type=input.bool, defval=true) Atr atrlen = input(14, "Periodo ATR") mult = input(1, "ATR Multi", step=0.1) smoothing = input(title="ATR Smoothing", defval="WMA", options=["RMA", "SMA", "EMA", "WMA"])   ma_function(source, atrlen) = > se levigante == "RMA" rma(fonte, atrlen) altro se levigante == "SMA" sma(fonte, atrlen) altro se levigante == "EMA" ema(fonte, atrlen) altro wma(fonte, atrlen) atr_slen = ma_function(tr(true), atrlen) ATR Up/Low Bands upper_band = atr_slen * mult + chiudi lower_band = chiudi - atr_slen * mult   BASELINE / SSL1 / SSL2 / VALORI DI MEDIA MOBILE IN USCITA maType = input(title="SSL1 / Baseline Type", type=input.string, defval="HMA", options=["SMA","EMA","DEMA","TEMA","LSMA","WMA","MF","VAMA","TMA","HMA", "JMA", "Kijun v2", "EDSMA","McGinley"]) len = input(title="SSL1 / Baseline Length", defval=60)   SSL2Type = input(title="SSL2 / Continuation Type", type=input.string, defval="JMA", options=["SMA","EMA","DEMA","TEMA","WMA","MF","VAMA","TMA","HMA", "JMA","McGinley"]) len2 = input(title="SSL 2 Length", defval=5) // SSL3Type = input(title="EXIT Type", type=input.string, defval="HMA", options=["DEMA","TEMA","LSMA","VAMA","TMA","HMA","JMA", "Kijun v2", "McGinley", "MF"]) len3 = input(title="LUNGHEZZA USCITA", defval=15) src = input(title="Source", type=input.source, defval=close)   // tema(src, len) = >     ema1 = ema(src, len)     ema2 = ema(ema1, len)     ema3 = ema(ema2, len)     (3 * ema1) - (3 * ema2) + ema3 kidiv = input(defval=1,maxval=4,  title="Kijun MOD Divider")   jurik_phase = input(title="* Jurik (JMA) Only - Phase", type=input.integer, defval=3) jurik_power = input(title="* Jurik (JMA) Only - Power", type=input.integer, defval=1) volatility_lookback = input(10, title="* Volatility Adjusted (VAMA) Only - Volatility lookback length") Mf beta = input(0.8,minval=0;maxval=1;step=0.1, title="Filtro modulare, solo filtro generale - Beta") feedback = input(false, title="Solo filtro modulare - Feedback") z = input(0.5;title="Modular Filter Only - Feedback Weighting",step=0.1, minval=0, maxval=1) EDSMA · ssfLength = input(title="EDSMA - Super Smoother Filter Length", type=input.integer, minval=1, defval=20) ssfPoles = input(title="EDSMA - Super Smoother Filter Poles", type=input.integer, defval=2, options=[2, 3])   //----   EDSMA · get2PoleSSF(src, lunghezza) = >     PI = 2 * asin(1) arg = sqrt(2) * PI / lunghezza     a1 = exp(-arg)     b1 = 2 * a1 * cos(arg)     c2 = b1     c3 = -pow(a1, 2)     c1 = 1 - c2 - c3     ssf = 0,0     ssf := c1 * src + c2 * nz(ssf[1]) + c3 * nz(ssf[2])   get3PoleSSF(src, lunghezza) = >     PI = 2 * asin(1)   arg = PI / lunghezza     a1 = exp(-arg)     b1 = 2 * a1 * cos(1.738 * arg)     c1 = pow(a1, 2)       coef2 = b1 + c1     coef3 = -(c1 + b1 * c1)     coef4 = pow(c1, 2)     coef1 = 1 - coef2 - coef3 - coef4   ssf = 0,0     ssf := coef1 * src + coef2 * nz(ssf[1]) + coef3 * nz(ssf[2]) + coef4 * nz(ssf[3])   ma(type, src, len) = > risultato float = 0 se tipo=="TMA" risultato := sma(sma(src, ceil(len / 2)), floor(len / 2) + 1)     if type=="MF"         ts=0.,b=0.,c=0.,os=0.         //---- alfa = 2/(len+1)         a = feedback ? z*src + (1-z)*nz(ts[1],src) : src         //---- b := a > alpha*a+(1-alpha)*nz(b[1],a) ? a : alfa*a+(1-alfa)*nz(b[1],a) c := a < alpha*a+(1-alpha)*nz(c[1],a) ? a : alfa*a+(1-alfa)*nz(c[1],a)         os := a == b ? 1 : a == c ? 0 : os[1]         //---- superiore = beta*b+(1-beta)*c inferiore = beta*c+(1-beta)*b         ts := os*upper+(1-os)*lower risultato := ts     if type=="LSMA" risultato := linreg(src, len, 0) if type=="SMA" // Semplice risultato := sma(src, len) if type=="EMA" // Esponenziale risultato := ema(src, len) if type=="DEMA" // Doppio esponenziale         e = ema(src, len) risultato := 2 * e - ema(e, len) if type=="TEMA" // Triplo esponenziale         e = ema(src, len) risultato := 3 * (e - ema(e, len)) + ema(ema(e, len), len) if type=="WMA" // Ponderato risultato := wma(src, len)     if type=="VAMA" // Volatility Adjusted Copyright © dal 2019 ad oggi, Joris Duyck (JD) mid=ema(src;len)         dev=src-mid vol_up=più alto(dev;volatility_lookback) vol_down=più basso(dev;volatility_lookback) risultato := medio+media(vol_up,vol_down) if type=="HMA" // Scafo risultato := wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len)))     if type=="JMA" // Jurik Copyright © 2018 Alex Orekhov (everget) Copyright © 2017 Jurik Ricerca e consulenza.         phaseRatio = jurik_phase < -100 ? 0.5 : jurik_phase > 100 ? 2.5 : jurik_phase / 100 + 1.5 beta = 0,45 * (len - 1) / (0,45 * (len - 1) + 2)         alpha = pow(beta, jurik_power) jma = 0,0 e0 = 0,0 e0 := (1 - alfa) * src + alfa * nz(e0[1]) e1 = 0,0         e1 := (src - e0) * (1 - beta) + beta * nz(e1[1]) e2 = 0,0         e2 := (e0 + phaseRatio * e1 - nz(jma[1])) * pow(1 - alpha, 2) + pow(alpha, 2) * nz(e2[1])         jma := e2 + nz(jma[1]) risultato := jma se tipo=="Kijun v2"         kijun = avg(lowest(len), highest(len))//, (open + close)/2)         conversionLine = avg(lowest(len/kidiv), highest(len/kidiv))         delta = (kijun + conversionLine)/2 risultato :=delta     if type=="McGinley" mg = 0,0         mg := na(mg[1]) ? ema(src, len) : mg[1] + (src - mg[1]) / (len * pow(src/mg[1], 4)) risultato :=mg se tipo=="EDSMA"     zero = src - nz(src[2]) avgZeros = (zeri + zeri[1]) / 2         Filtro Ehlers Super Smoother         ssf = ssfPoles == 2              ? get2PoleSSF(avgZeros, ssfLength)              : get3PoleSSF(avgZeros, ssfLength)         Filtro di riscalata in termini di deviazioni standard         stdev = stdev(ssf, len)         scaledFilter = stdev != 0              ? ssf / stdev              : 0         alfa = 5 * abs (scaledFilter) / len         edsma = 0,0 edsma := alfa * src + (1 - alfa) * nz(edsma[1]) risultato := edsma risultato     SSL 1 e SSL2 emaHigh = ma(maType, high, len) emaLow = ma(maType, low, len)   maHigh = ma(SSL2Type, high, len2) maLow = ma(SSL2Type, low, len2)   USCITA ExitHigh = ma(SSL3Type, high, len3) ExitLow = ma(SSL3Type, low, len3)   Canale di base Keltner BBMC = ma(maType, close, len) useTrueRange = input(true) multy = input(0.2, step=0.05, title="Base Channel Multiplier") Keltma = ma(maType, src, len) range = useTrueRange ? tr : alto - basso rangema = ema(range, len) upperk = Keltma + rangema * multy lowerk = Keltma - rangema * multy   Candela di violazione della linea di base open_pos = aperto*1 close_pos = chiudi*1 differenza = abs(close_pos-open_pos) atr_violation = differenza > atr_slen InRange = bbMC upper_band > e BBMC lower_band < candlesize_violation = atr_violation e InRange plotshape(candlesize_violation, color=color.white, size=size.tiny,style=shape.diamond, location=location.top, transp=0,title="Candle Size > 1xATR")   VALORI SSL1 Hlv = int(na) Hlv := close > emaHigh ? 1 : chiudi < emaLow ? -1 : Hlv[1] sslDown = Hlv < 0 ? emaHigh : emaLow   VALORI SSL2 Hlv2 = int(na) Hlv2 := close > maHigh ? 1 : chiudi < maLow ? -1 : Hlv2[1] sslDown2 = Hlv2 < 0 ? maHigh : maLow   VALORI DI USCITA Hlv3 = int(na) Hlv3 := vicino > ExitHigh ? 1 : chiudi < ExitLow ? -1 : Hlv3[1] sslExit = Hlv3 < 0 ? ExitHigh : ExitLow base_cross_Long = crossover(close, sslExit) base_cross_Short = crossover(sslExit, close) codiff = base_cross_Long ? 1 : base_cross_Short ? -1 : na   //COLORS show_color_bar = input(title="Color Bars", type=input.bool, defval=true) color_bar = close > upperk ? #00c3ff : close < lowerk ? #ff0062 : color.gray color_ssl1 = close > sslDown ? #00c3ff : close < sslDown ? #ff0062 : na   //PLOTS plotarrow(codiff, colorup=#00c3ff, colordown=#ff0062,title="Exit Arrows", transp=20, maxheight=20, offset=0) p1 = trama(show_Baseline ? BBMC : na, color=color_bar, linewidth=4,transp=0, title='MA Baseline') DownPlot = plot( show_SSL1 ? sslDown : na, title="SSL1", linewidth=3, color=color_ssl1, transp=10) barcolor(show_color_bar ? color_bar : na) up_channel = plot(show_Baseline ? upperk : na, color=color_bar, title="Baseline Upper Channel") low_channel = plot(show_Baseline ? lowerk : na, color=color_bar, title="Basiline Lower Channel") fill(up_channel, low_channel, color=color_bar, transp=90)   Continiuation SSL2 da ATR atr_crit = input(0.9, step=0.1, title="Criteri ATR di continuazione") upper_half = atr_slen * atr_crit + chiudi lower_half = chiudi - atr_slen * atr_crit buy_inatr =  lower_half < sslDown2 sell_inatr = upper_half > sslDown2 sell_cont = chiudi < BBMC e chiudi < sslDown2 buy_cont = chiudi > BBMC e chiudi > sslDown2 sell_atr = sell_inatr e sell_cont buy_atr = buy_inatr e buy_cont atr_fill = buy_atr ? color.green : sell_atr ? color.purple : color.white LongPlot = plot(sslDown2, title="SSL2", linewidth=2, color=atr_fill, style=plot.style_circles, transp=0) u = plot(show_atr ? upper_band : na, "+ATR", color=color.white, transp=80) l = plot(show_atr ? lower_band : na, "-ATR", color=color.white, transp=80)   AVVISI alertcondition(crossover(close, sslDown), title='SSL Cross Alert', message='SSL1 has crossed.') alertcondition(crossover(close, sslDown2), title='SSL2 Cross Alert', message='SSL2 has crossed.') alertcondition(sell_atr, title='Vendi continuazione', message='Vendi continuazione.') alertcondition(buy_atr, title='Buy Continuation', message='Buy Continuation.') alertcondition(crossover(close, sslExit), title='Exit Sell', message='Exit Sell Alert.') alertcondition(crossover(sslExit, close), title='Exit Buy', message='Exit Buy Alert.') alertcondition(crossover(close, upperk ), title='Baseline Buy Entry', message='Base Buy Alert.') alertcondition(crossover(lowerk, close ), title='Baseline Sell Entry', message='Base Sell Alert.')
zignale indicator
  2
  0
  253
free  23 Sep 2022
//@version=4 //By Glaz, Modified // study("QQE MOD") RSI_Period = input(6, title='RSI Length') SF = input(5, title='RSI Smoothing') QQE = input(3, title='Fast QQE Factor') ThreshHold = input(3, title="Thresh-hold") //   src = input(close, title="RSI Source") //   // Wilders_Period = RSI_Period * 2 - 1   Rsi = rsi(src, RSI_Period) RsiMa = ema(Rsi, SF) AtrRsi = abs(RsiMa[1] - RsiMa) MaAtrRsi = ema(AtrRsi, Wilders_Period) dar = ema(MaAtrRsi, Wilders_Period) * QQE   longband = 0.0 shortband = 0.0 trend = 0   DeltaFastAtrRsi = dar RSIndex = RsiMa newshortband = RSIndex + DeltaFastAtrRsi newlongband = RSIndex - DeltaFastAtrRsi longband := RSIndex[1] > longband[1] and RSIndex > longband[1] ?    max(longband[1], newlongband) : newlongband shortband := RSIndex[1] < shortband[1] and RSIndex < shortband[1] ?    min(shortband[1], newshortband) : newshortband cross_1 = cross(longband[1], RSIndex) trend := cross(RSIndex, shortband[1]) ? 1 : cross_1 ? -1 : nz(trend[1], 1) FastAtrRsiTL = trend == 1 ? longband : shortband ////////////////////   length = input(50, minval=1, title="Bollinger Length") mult = input(0.35, minval=0.001, maxval=5, step=0.1, title="BB Multiplier") basis = sma(FastAtrRsiTL - 50, length) dev = mult * stdev(FastAtrRsiTL - 50, length) upper = basis + dev lower = basis - dev color_bar = RsiMa - 50 > upper ? #00c3ff : RsiMa - 50 < lower ? #ff0062 : color.gray   // // Zero cross QQEzlong = 0 QQEzlong := nz(QQEzlong[1]) QQEzshort = 0 QQEzshort := nz(QQEzshort[1]) QQEzlong := RSIndex >= 50 ? QQEzlong + 1 : 0 QQEzshort := RSIndex < 50 ? QQEzshort + 1 : 0 //     Zero = hline(0, color=color.white, linestyle=hline.style_dotted, linewidth=1)   ////////////////////////////////////////////////////////////////   RSI_Period2 = input(6, title='RSI Length') SF2 = input(5, title='RSI Smoothing') QQE2 = input(1.61, title='Fast QQE2 Factor') ThreshHold2 = input(3, title="Thresh-hold")   src2 = input(close, title="RSI Source") //   // Wilders_Period2 = RSI_Period2 * 2 - 1   Rsi2 = rsi(src2, RSI_Period2) RsiMa2 = ema(Rsi2, SF2) AtrRsi2 = abs(RsiMa2[1] - RsiMa2) MaAtrRsi2 = ema(AtrRsi2, Wilders_Period2) dar2 = ema(MaAtrRsi2, Wilders_Period2) * QQE2 longband2 = 0.0 shortband2 = 0.0 trend2 = 0   DeltaFastAtrRsi2 = dar2 RSIndex2 = RsiMa2 newshortband2 = RSIndex2 + DeltaFastAtrRsi2 newlongband2 = RSIndex2 - DeltaFastAtrRsi2 longband2 := RSIndex2[1] > longband2[1] and RSIndex2 > longband2[1] ?    max(longband2[1], newlongband2) : newlongband2 shortband2 := RSIndex2[1] < shortband2[1] and RSIndex2 < shortband2[1] ?    min(shortband2[1], newshortband2) : newshortband2 cross_2 = cross(longband2[1], RSIndex2) trend2 := cross(RSIndex2, shortband2[1]) ? 1 : cross_2 ? -1 : nz(trend2[1], 1) FastAtrRsi2TL = trend2 == 1 ? longband2 : shortband2   // // Zero cross QQE2zlong = 0 QQE2zlong := nz(QQE2zlong[1]) QQE2zshort = 0 QQE2zshort := nz(QQE2zshort[1]) QQE2zlong := RSIndex2 >= 50 ? QQE2zlong + 1 : 0 QQE2zshort := RSIndex2 < 50 ? QQE2zshort + 1 : 0 //     hcolor2 = RsiMa2 - 50 > ThreshHold2 ? color.silver :    RsiMa2 - 50 < 0 - ThreshHold2 ? color.silver : na plot(FastAtrRsi2TL - 50, title='QQE Line', color=color.white, transp=0, linewidth=2) plot(RsiMa2 - 50, color=hcolor2, transp=50, title='Histo2', style=plot.style_columns)   Greenbar1 = RsiMa2 - 50 > ThreshHold2 Greenbar2 = RsiMa - 50 > superiore   Redbar1 = RsiMa2 - 50 < 0 - ThreshHold2 Redbar2 = RsiMa - 50 < inferiore trama(Greenbar1 e Greenbar2 == 1 ? RsiMa2 - 50 : na, title="QQE Up", style=plot.style_columns, color=#00c3ff, transp=0) trama(Redbar1 e Redbar2 == 1 ? RsiMa2 - 50 : na, title="QQE Down", style=plot.style_columns, color=#ff0062, transp=0)  
hhhhpp
  2
  0
  203
free  23 Sep 2022
using cAlgo.API; using cAlgo.API.Indicators;   namespace cAlgo.Indicators {     [Levels(0)]     [Indicator(AccessRights = AccessRights.None)]     public class ElliotOscillator : Indicator     {         private SimpleMovingAverage _fastSma;         private SimpleMovingAverage _slowSma;         private SimpleMovingAverage _sma100;         private SimpleMovingAverage _sma200;         private SimpleMovingAverage _sma20;           private double _d;         private bool _upTrend;         private bool _neutral;         private IndicatorDataSeries _elliot;             [Parameter]         public DataSeries Source { get; set; }           [Parameter("FastPeriod", DefaultValue = 5)]         public int FastPeriod { get; set; }                   [Parameter("SlowPeriod", DefaultValue = 34)]         public int SlowPeriod { get; set; }           [Output("UpTrend", Color = Colors.Green, PlotType = PlotType.Histogram, Thickness = 2)]         public IndicatorDataSeries UpTrend { get; set; }         [Output("DownTrend", Color = Colors.Red, PlotType = PlotType.Histogram, Thickness = 2)]         public IndicatorDataSeries DownTrend { get; set; }         [Output("Neutral", Color = Colors.Gray, PlotType = PlotType.Histogram, Thickness = 2)]         public IndicatorDataSeries Neutral { get; set; }                   [Output("Line", Color = Colors.Red)]         public IndicatorDataSeries Line { get; set; }           protected override void Initialize()         {             _fastSma = Indicators.SimpleMovingAverage(Source, FastPeriod);             _slowSma = Indicators.SimpleMovingAverage(Source, SlowPeriod);             _sma100 = Indicators.SimpleMovingAverage(Source, 100);             _sma200 = Indicators.SimpleMovingAverage(Source, 200);             _sma20 = Indicators.SimpleMovingAverage(Source, 20);             _elliot = CreateDataSeries();           }         public override void Calculate(int index)         {             if (index < 3)                 return;               _elliot[index] = _fastSma.Result[index] - _slowSma.Result[index];             Line[index] = _fastSma.Result[index - 3] - _slowSma.Result[index - 3];               if (_sma100.Result.LastValue > _sma200.Result.LastValue                 && _sma20.Result.LastValue >_sma100.Result.LastValue)             {                 UpTrend[index] = _elliot[index];                 DownTrend[index] = double.NaN;                 Neutral[index] = double.NaN;             }             else if (_sma100.Result.LastValue < _sma200.Result.LastValue                 && _sma20.Result.LastValue < _sma100.Result.LastValue)             {                 DownTrend[index] = _elliot[index];                 UpTrend[index] = double.NaN;                 Neutral[index] = double.NaN;             }             else             {                 Neutral[index] = _elliot[index];                 UpTrend[index] = double.NaN;                 DownTrend[index] = double.NaN;             }         }     } }
hhhhpp
  1
  0
  140
free  23 Sep 2022
using cAlgo.API; using cAlgo.API.Indicators;   namespace cAlgo.Indicators {     [Levels(0)]     [Indicator(AccessRights = AccessRights.None)]     public class ElliotOscillator : Indicator     {         private SimpleMovingAverage _fastSma;         private SimpleMovingAverage _slowSma;         private SimpleMovingAverage _sma100;         private SimpleMovingAverage _sma200;         private SimpleMovingAverage _sma20;           private double _d;         private bool _upTrend;         private bool _neutral;         private IndicatorDataSeries _elliot;             [Parameter]         public DataSeries Source { get; set; }           [Parameter("FastPeriod", DefaultValue = 5)]         public int FastPeriod { get; set; }                   [Parameter("SlowPeriod", DefaultValue = 34)]         public int SlowPeriod { get; set; }           [Output("UpTrend", Color = Colors.Green, PlotType = PlotType.Histogram, Thickness = 2)]         public IndicatorDataSeries UpTrend { get; set; }         [Output("DownTrend", Color = Colors.Red, PlotType = PlotType.Histogram, Thickness = 2)]         public IndicatorDataSeries DownTrend { get; set; }         [Output("Neutral", Color = Colors.Gray, PlotType = PlotType.Histogram, Thickness = 2)]         public IndicatorDataSeries Neutral { get; set; }                   [Output("Line", Color = Colors.Red)]         public IndicatorDataSeries Line { get; set; }           protected override void Initialize()         {             _fastSma = Indicators.SimpleMovingAverage(Source, FastPeriod);             _slowSma = Indicators.SimpleMovingAverage(Source, SlowPeriod);             _sma100 = Indicators.SimpleMovingAverage(Source, 100);             _sma200 = Indicators.SimpleMovingAverage(Source, 200);             _sma20 = Indicators.SimpleMovingAverage(Source, 20);             _elliot = CreateDataSeries();           }         public override void Calculate(int index)         {             if (index < 3)                 return;               _elliot[index] = _fastSma.Result[index] - _slowSma.Result[index];             Line[index] = _fastSma.Result[index - 3] - _slowSma.Result[index - 3];               if (_sma100.Result.LastValue > _sma200.Result.LastValue                 && _sma20.Result.LastValue >_sma100.Result.LastValue)             {                 UpTrend[index] = _elliot[index];                 DownTrend[index] = double.NaN;                 Neutral[index] = double.NaN;             }             else if (_sma100.Result.LastValue < _sma200.Result.LastValue                 && _sma20.Result.LastValue < _sma100.Result.LastValue)             {                 DownTrend[index] = _elliot[index];                 UpTrend[index] = double.NaN;                 Neutral[index] = double.NaN;             }             else             {                 Neutral[index] = _elliot[index];                 UpTrend[index] = double.NaN;                 DownTrend[index] = double.NaN;             }         }     } }
by mfejza
free  13 Sep 2022
John Tirone Levels are a set of the appropriate support and resistance levels based on a trading range for a certain period of time. Usually they are used only to improve visual perception of the market price moves. In this case, the Midpoint method is used for the calculation of all three Tirone Levels. Market minimum and maximum for a certain period of time are calculated at first.
DynamicRS indicator
  4
  0
  268
by mfejza
free  13 Sep 2022
This indicator showing price average and price intrinsic level without smoothing methods.
free  12 Sep 2022
Adds a watermark to the chart background displaying symol name and description and timeframe with options( color, font, alignment, opacity, show description)