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
Dynamic Range CCI
  3
  0
  262
by mfejza
free  08 Sep 2022
This CCI (Commodity Index Channel) custom indicator show/correct the CCI indicator levels -100 and +100, based on standard deviation on indicator value
Time Zones Clock
  10
  0
  259
free  16 Nov 2022
This is a Simple tool that Shows the Time Zones from main Market's Cities Like New York, London, Frankfurt, Tokyo, Sydney, Hong Kong and New Zealand and as well as your Local Time Zone in Real Time. This tool is great to monitor in real time the different hours, and follow the exact time that different Markets participants enter in their markets to play. Consider for instance that you're in Europe and trading the Dax and you monitor the New York time zone, and you prepare yourself for a much higher volatility to enter the markets cause New York players are entering the game at somewhere between 8:00 am New York Time.   Grupo de Telegram Para Brasileiros, Portugueses e todos aqueles que falam portugues: http://t.me/ComunidadeCtrader Grupo CTrader en Español para Latinos:  http://t.me/ComunidadCtrader    
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.
by mfejza
free  08 Sep 2022
Insync Index, by Norm North, is a consensus indicator. It uses RSI, MACD, MFI, DPO, ROC, Stoch, CCI and %B to calculate a composite signal. Basically, this index shows that when a majority of underlying indicators is in sync, a turning point is near. There are couple of ways to use this indicator. - Buy when crossing up 5, sell when crossing down 95. - Market is typically bullish when index is above 50, bearish when below 50. This can be a great confirmation signal for price action + trend lines . Also, since this is typical oscillator, look for divergences between price and index. Levels 75/25 are early warning levels. Note that, index > 75 (and less than 95) should be considered very bullish and index below 25 (but above 5) as very bearish . Levels 95/5 are equivalent to traditional OB/OS levels. The various values of the underlying components can be tuned via options page. I have also provided an option to color bars based on the index value. More info: The Insync Index by Norm North, TASC Jan 1995
by mfejza
free  11 Oct 2022
Ehlers Super Passband Filter Indicator
by mfejza
free  27 Oct 2022
This is a hybrid version of Stochastic Oscillator
by mfejza
free  08 Sep 2022
Relative Momentum Index indicator script. This indicator was originally developed by Roger Altman (Stocks & Commodities V. 11:2 (57-60)). Use this indicator as trade zones; for long when indicator value is above level 70; for short when indicator value is below level 30  
by mfejza
free  08 Sep 2022
Ichimoku Kinko Hyo indicator smoothed by FIR.  FIR indicator (ctrader.com/algos/indicators/show/3081)
by mfejza
free  11 Oct 2022
Ehlers Super Smooth Indicator
SupportResistance
  4
  0
  221
by cxc_g
free  23 Nov 2022
//+------------------------------------------------------------------+ //|                                                SupportResistance | //|                                       Copyright © 2016, UCHE OBI | //|                                               Developer:UCHE OBI | //|                                                 Skype:  OBI.UCHE | //|                                      email:ucheceleste@Gmail.com | //+------------------------------------------------------------------+ using System; using cAlgo.API; using cAlgo.API.Internals; using cAlgo.API.Indicators; using cAlgo.Indicators;   namespace cAlgo {     [Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]     public class SupportResistance : Indicator     {         [Parameter(DefaultValue = 10)]         public int range { get; set; }           [Parameter(DefaultValue = 3)]         public int confirmations { get; set; }           [Output("Res", Color = Colors.Black, LineStyle = LineStyle.DotsVeryRare)]         public IndicatorDataSeries resistance { get; set; }         [Output("Sup", Color = Colors.Black, LineStyle = LineStyle.DotsVeryRare)]         public IndicatorDataSeries support { get; set; }           public double res;         public double sup;           private MarketSeries Series;             protected override void Initialize()         {             // Initialize and create nested indicators             Series = MarketSeries;         }           public override void Calculate(int index)         {             // Calculate value at specified index             // Result[index] = ...               var upline = (Series.Close.Maximum(range) + Series.High.Maximum(range)) / 2;             var dnline = (Series.Close.Minimum(range) + Series.Low.Minimum(range)) / 2;             resistance[index] = double.NaN;             support[index] = double.NaN;             if (resbarsconfirmed(upline, index) >= confirmations)             {                 res = upline;                 ChartObjects.DrawLine("resline" + upline.ToString(), Series.OpenTime[index], upline, Series.OpenTime[index - range], upline, Colors.DarkRed, 2, LineStyle.Solid);             }               if (supbarsconfirmed(dnline, index) >= confirmations)             {                 sup = dnline;                 ChartObjects.DrawLine("supline" + dnline.ToString(), Series.OpenTime[index], dnline, Series.OpenTime[index - range], dnline, Colors.DarkBlue, 2, LineStyle.Solid);             }           }         private int resbarsconfirmed(double line, int index)         {             int touches = 0;             for (int i = index; i > index - range; i--)             {                 if (Series.Low[i] < line && Series.High[i] >= line && Series.Close[i] < line)                     touches += 1;                 if (Series.Close[i] > line)                     touches = 0;             }             return touches;         }         private int supbarsconfirmed(double line, int index)         {             int touches = 0;             for (int i = index; i > index - range; i--)             {                 if (Series.High[i] > line && Series.Low[i] <= line && Series.Close[i] > line)                     touches += 1;                 if (Series.Close[i] < line)                     touches = 0;             }             return touches;         }     } }
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  
hhhhpp
  2
  0
  216
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;             }         }     } }