Algorithms

Warning! Executing cBots downloaded from this section may result in loss of funds. Use them at your own risk.
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
Captain's Super MA
  0
  5
  27
free  28 Sep 2022
Display Period-Fixed MA across All TimeFrames; Display MA up,down,flat in different colours; Display green/red background as RSI up or down 50.0; Highlight Bar when the price is crossing MA (refresh every 5 mins); Customised bar colour for FX pairs, Oil, Gold and some stocks; Fix X-Axis with user-defined bar numbers, daily autofreshing; AutoSet Y-Axis viewable range according to chart timeframe; 22 Days Ave.High-Low (200% TF.Hour~Tick90, 100% Tick80 or lower); Reset Y-Axis when chart zooming or scrolling (user define); Alt + H Draw a HorizentalLine, ESC to remove;  Alt + 8 switch timeframe to 80Tick; Alt + 0 TF to 1Hour; Ctrl + MouseMove popup indicators value at a verticalline bar; Alt + MouseClick turn on/off X-Axis fixing, free-scrolling; Framework .NET 6.0 ready, Source code is compatible with .NET 4.0;  Note: The attachment .algo is compiled by .NET6.0, to run with the old version (4.1.17), please copy the source code and compile it at the cTrader version to fit your environment.  Recommend to work with Day Separator and Session Lighter a chart assistant work as an indicator; Here is a Youtube Link to a professional trader on how to use this kind of indicator in her daily trading. Get more captain's indicator links at Telegram Group: cTrader FOREX Club   Fixed viewable range and auto refresh bar positions are always in sight. Alt + 8 to switch TF to Tick80, viewable range change to 100% 22 days Average High/Low price range.(Vertical lines are 5 minutes-Grey, Hourly-Coloured, by Day Separator and Session Lighter ) Ctrl + MouseMove to check indicator details in a popup message box;
ZIGNALE OSCILLATOR
  4
  0
  79
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
  1
  0
  59
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
  52
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
  32
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;             }         }     } }
zignale indicator
  1
  0
  60
free  22 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.         //----         alpha = 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 : alpha*a+(1-alpha)*nz(b[1],a)         c := a < alpha*a+(1-alpha)*nz(c[1],a) ? a : alpha*a+(1-alpha)*nz(c[1],a)         os := a == b ? 1 : a == c ? 0 : os[1]         //----         upper = beta*b+(1-beta)*c         lower = beta*c+(1-beta)*b         ts := os*upper+(1-os)*lower         result := ts     if type=="LSMA"         result := linreg(src, len, 0)     if type=="SMA" // Simple         result := sma(src, len)     if type=="EMA" // Exponential         result := ema(src, len)     if type=="DEMA" // Double Exponential         e = ema(src, len)         result := 2 * e - ema(e, len)     if type=="TEMA" // Triple Exponential         e = ema(src, len)         result := 3 * (e - ema(e, len)) + ema(ema(e, len), len)     if type=="WMA" // Weighted         result := wma(src, len)     if type=="VAMA" // Volatility Adjusted         /// Copyright © 2019 to present, Joris Duyck (JD)         mid=ema(src,len)         dev=src-mid         vol_up=highest(dev,volatility_lookback)         vol_down=lowest(dev,volatility_lookback)         result := mid+avg(vol_up,vol_down)     if type=="HMA" // Hull         result := wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len)))     if type=="JMA" // Jurik         /// Copyright © 2018 Alex Orekhov (everget)         /// Copyright © 2017 Jurik Research and Consulting.         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 - alpha) * src + alpha * 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])         result := jma     if type=="Kijun v2"         kijun = avg(lowest(len), highest(len))//, (open + close)/2)         conversionLine = avg(lowest(len/kidiv), highest(len/kidiv))         delta = (kijun + conversionLine)/2         result :=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))         result :=mg     if type=="EDSMA"             zeros = src - nz(src[2])         avgZeros = (zeros + zeros[1]) / 2                 // Ehlers Super Smoother Filter         ssf = ssfPoles == 2              ? get2PoleSSF(avgZeros, ssfLength)              : get3PoleSSF(avgZeros, ssfLength)                 // Rescale filter in terms of Standard Deviations         stdev = stdev(ssf, len)         scaledFilter = stdev != 0              ? ssf / stdev              : 0                 alpha = 5 * abs(scaledFilter) / len                 edsma = 0.0         edsma := alpha * src + (1 - alpha) * nz(edsma[1])         result :=  edsma     result     ///SSL 1 and SSL2 emaHigh = ma(maType, high, len) emaLow = ma(maType, low, len)   maHigh = ma(SSL2Type, high, len2) maLow = ma(SSL2Type, low, len2)   ///EXIT ExitHigh = ma(SSL3Type, high, len3) ExitLow = ma(SSL3Type, low, len3)   ///Keltner Baseline Channel 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 : high - low rangema = ema(range, len) upperk =Keltma + rangema * multy lowerk = Keltma - rangema * multy   //Baseline Violation Candle open_pos =  open*1 close_pos = close*1 difference = abs(close_pos-open_pos) atr_violation = difference > atr_slen InRange = upper_band > BBMC and lower_band < BBMC candlesize_violation = atr_violation and InRange plotshape(candlesize_violation, color=color.white, size=size.tiny,style=shape.diamond, location=location.top, transp=0,title="Candle Size > 1xATR")   //SSL1 VALUES Hlv = int(na) Hlv := close > emaHigh ? 1 : close < emaLow ? -1 : Hlv[1] sslDown = Hlv < 0 ? emaHigh : emaLow   //SSL2 VALUES Hlv2 = int(na) Hlv2 := close > maHigh ? 1 : close < maLow ? -1 : Hlv2[1] sslDown2 = Hlv2 < 0 ? maHigh : maLow   //EXIT VALUES Hlv3 = int(na) Hlv3 := close > ExitHigh ? 1 : close < 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 = plot(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)   ////SSL2 Continiuation from ATR atr_crit = input(0.9, step=0.1, title="Continuation ATR Criteria") upper_half = atr_slen * atr_crit + close lower_half = close - atr_slen * atr_crit buy_inatr =  lower_half < sslDown2 sell_inatr = upper_half > sslDown2 sell_cont = close < BBMC and close < sslDown2 buy_cont = close > BBMC and close > sslDown2 sell_atr = sell_inatr and 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
  42
free  22 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.         //----         alpha = 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 : alpha*a+(1-alpha)*nz(b[1],a)         c := a < alpha*a+(1-alpha)*nz(c[1],a) ? a : alpha*a+(1-alpha)*nz(c[1],a)         os := a == b ? 1 : a == c ? 0 : os[1]         //----         upper = beta*b+(1-beta)*c         lower = beta*c+(1-beta)*b         ts := os*upper+(1-os)*lower         result := ts     if type=="LSMA"         result := linreg(src, len, 0)     if type=="SMA" // Simple         result := sma(src, len)     if type=="EMA" // Exponential         result := ema(src, len)     if type=="DEMA" // Double Exponential         e = ema(src, len)         result := 2 * e - ema(e, len)     if type=="TEMA" // Triple Exponential         e = ema(src, len)         result := 3 * (e - ema(e, len)) + ema(ema(e, len), len)     if type=="WMA" // Weighted         result := wma(src, len)     if type=="VAMA" // Volatility Adjusted         /// Copyright © 2019 to present, Joris Duyck (JD)         mid=ema(src,len)         dev=src-mid         vol_up=highest(dev,volatility_lookback)         vol_down=lowest(dev,volatility_lookback)         result := mid+avg(vol_up,vol_down)     if type=="HMA" // Hull         result := wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len)))     if type=="JMA" // Jurik         /// Copyright © 2018 Alex Orekhov (everget)         /// Copyright © 2017 Jurik Research and Consulting.         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 - alpha) * src + alpha * 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])         result := jma     if type=="Kijun v2"         kijun = avg(lowest(len), highest(len))//, (open + close)/2)         conversionLine = avg(lowest(len/kidiv), highest(len/kidiv))         delta = (kijun + conversionLine)/2         result :=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))         result :=mg     if type=="EDSMA"             zeros = src - nz(src[2])         avgZeros = (zeros + zeros[1]) / 2                 // Ehlers Super Smoother Filter         ssf = ssfPoles == 2              ? get2PoleSSF(avgZeros, ssfLength)              : get3PoleSSF(avgZeros, ssfLength)                 // Rescale filter in terms of Standard Deviations         stdev = stdev(ssf, len)         scaledFilter = stdev != 0              ? ssf / stdev              : 0                 alpha = 5 * abs(scaledFilter) / len                 edsma = 0.0         edsma := alpha * src + (1 - alpha) * nz(edsma[1])         result :=  edsma     result     ///SSL 1 and SSL2 emaHigh = ma(maType, high, len) emaLow = ma(maType, low, len)   maHigh = ma(SSL2Type, high, len2) maLow = ma(SSL2Type, low, len2)   ///EXIT ExitHigh = ma(SSL3Type, high, len3) ExitLow = ma(SSL3Type, low, len3)   ///Keltner Baseline Channel 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 : high - low rangema = ema(range, len) upperk =Keltma + rangema * multy lowerk = Keltma - rangema * multy   //Baseline Violation Candle open_pos =  open*1 close_pos = close*1 difference = abs(close_pos-open_pos) atr_violation = difference > atr_slen InRange = upper_band > BBMC and lower_band < BBMC candlesize_violation = atr_violation and InRange plotshape(candlesize_violation, color=color.white, size=size.tiny,style=shape.diamond, location=location.top, transp=0,title="Candle Size > 1xATR")   //SSL1 VALUES Hlv = int(na) Hlv := close > emaHigh ? 1 : close < emaLow ? -1 : Hlv[1] sslDown = Hlv < 0 ? emaHigh : emaLow   //SSL2 VALUES Hlv2 = int(na) Hlv2 := close > maHigh ? 1 : close < maLow ? -1 : Hlv2[1] sslDown2 = Hlv2 < 0 ? maHigh : maLow   //EXIT VALUES Hlv3 = int(na) Hlv3 := close > ExitHigh ? 1 : close < 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 = plot(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)   ////SSL2 Continiuation from ATR atr_crit = input(0.9, step=0.1, title="Continuation ATR Criteria") upper_half = atr_slen * atr_crit + close lower_half = close - atr_slen * atr_crit buy_inatr =  lower_half < sslDown2 sell_inatr = upper_half > sslDown2 sell_cont = close < BBMC and close < sslDown2 buy_cont = close > BBMC and close > sslDown2 sell_atr = sell_inatr and 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.')
Breakout Trend Bot
  2
  5
  139
free  21 Sep 2022
By ForexCove. The Breakout Trend Bot trades in the direction of trend. Pending orders are placed x-pips above or below previous highest high or lowest low, and if market shows strength in the predicted direction, the trade is taken. You can configure desired trend strength with built in ADX filter, and even let TP and SL targets be defined by ATR.  To download a sample config file, visit this link HERE
MACD Market Timer
  2
  0
  108
free  18 Sep 2022
 Robot with MACD signal trend. M30 -H4 GBPUSD. if the market changes the primary trend to high, change the code indicated. I'm working to adjust this function. https://paypal.com/donate/?hosted_button_id=7Z3P95CZYT5CA    
by mfejza
free  18 Sep 2022
The RationalSL indicator showing the size of StopLoss based on average periods of true range of the price, for both long and short trades. The indicator is adopted based in different pair decimals and time frames.
RVI Force indicator
  2
  0
  141
by mfejza
free  15 Sep 2022
This indicator is a custom indicator as a product of detrending the original RVI (Relative Vigor Index) indicator, also deriving the bands from the half detrending size. The propose of indicator is to identify the market sentiment.  Bullish sentiment when black line is above the bands; Bearish sentiment when black line is below the bands. In case of black line make V shape that mean price action will create HL (higher low) or LH (Lower high). The HL is created when black line is above the red line, the LH is created when black line is below the red line.
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.