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
DescriptionSubmited byDateCategoryPreviewDownloadsCommentsRating
Final Version. This indicator displays the current and the previous D/W/M values as a TargetTree. Released: 07/12/2016 Latest update: 07/12/2016 Notifications: You can display the D/W/M values individually. Donate a winning trade with this indicator PayPal.Me:          paypal.me/MarioVerheye PayPal email:       mario.verheye@epost.ch Example:
by MaVe
07 Dec 2016
Downloads
226
Comments
0
Rating
0
Download
cTKit aka cTrader Kit is a set of indicators developed by professional C# developers who also trade. We developed these as we learned about trading Forex and developed our own "style".  We think you might find them useful too.  Some of these indicators were published on cTDN initially but we have had a lot of problems uploading newer ones, so we decided to publish them as a kit at http://ctkit.uk where you can download them. However, although we are keen on open source code, creating and contributing to a number of projects we actually prefer in this case not to share our code.  Sorry for those that are upset about this, but a lot of work has gone into some of the newer indicators and whilst we are happy to give you access to the indicators for free we feel we earned the right to keep the code to ourselves. The following indicators are currently available with more to be added soon: Currency Strength Indicator Currency Strength Heat Map SR Zones * SR At Price * Raghee Wave and GRaB Candles * * Previously published on cTDN 
07 Dec 2016
Downloads
294
Comments
0
Rating
0
Download
It shows the three bar reversal candlestick pattern, The pattern signals have high accuracy and R:R.  Download : https://www.algodeveloper.com/15-three-bar-reversal-pattern
07 Dec 2016
Downloads
657
Comments
0
Rating
0
Download
This indicator helps you to identify key breakout trading opportunities, It scans x amount of previous closed bars and check them if they were on a flat line type style and the latest closed bar broke them all or not also It has Bollinger bands indicator filter for getting only those breakout opportunities that came alongside with Bollinger bands squeeze setup. By default the amount of range size parameter is zero and it means that indicator not using this functionality but I recommend you to adjust that parameter value based on instrument you trade and it's time frame.   Download Demo / Buy: http://algodeveloper.com/3-breakout-candle​   Alert: With BBands Filter:   Without BBands Filter: With Range Pips specified: Without Range Pips: With Longer TF trend filer enabled:
07 Dec 2016
Downloads
2129
Comments
3
Rating
0
Download
This indicator is a great tool for short term day traders those who trade Time frames below M15, It shows some useful information about that symbol on it's chart. Symbol Info display ATR value in pips(You can use the multiplier to multiply ATR value), daily High / Low lines, real time spread, ADR or average daily range, Current day range, amount of space in pips that particular pair can go up / down on that day based on ADR and the longer time frame trend direction by using a moving average. You can adjust the color of Up / Down space by setting your Risk / Reward if you are using ATR value as your trades stop loss.  Download : https://www.algodeveloper.com/7-symbol-info
07 Dec 2016
Downloads
584
Comments
2
Rating
0
Download
This indicator catches the reversals by using Bollinger bands and rejection candle, Whenever price touches one of the bands and form a rejection candle it shows a buy or sell signal.   Download Demo / Buy: http://algodeveloper.com/4-reversal-magic  
07 Dec 2016
Downloads
777
Comments
0
Rating
0
Download
Code desined to help Trader easy to treder with EMA - STO - RSI - DMI index in 1 code. Red Point for STO Index, Yellow Point for EMA Index, Purple Point for RSI Index, DMI Point for DMI Index. Include Open Week Price line and Open Month Price Line. 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 WeeklyTradingSignal : Indicator { //EMASignal [Parameter("LongEMA", DefaultValue = 100)] public int LongEMA { get; set; } [Parameter("ShortEMA", DefaultValue = 5)] public int ShortEMA { get; set; } //ADXSignal [Parameter("ADXPeriod", DefaultValue = 10)] public int ADXPeriod { get; set; } //RSISignal [Parameter("RSIPeriod", DefaultValue = 14)] public int RSIPeriod { get; set; } //STOSignal [Parameter("STOKValue", DefaultValue = 9)] public int STOKValue { get; set; } [Parameter("STODValue", DefaultValue = 3)] public int STODValue { get; set; } [Parameter("STOSlow", DefaultValue = 2)] public int STOSlow { get; set; } [Output("ADX Point", Color = Colors.White, PlotType = PlotType.Points, Thickness = 5)] public IndicatorDataSeries ADXPoint { get; set; } [Output("EMA point", Color = Colors.Yellow, PlotType = PlotType.Points, Thickness = 5)] public IndicatorDataSeries EMAPoint { get; set; } [Output("RSI Down Point", Color = Colors.Purple, PlotType = PlotType.Points, Thickness = 5)] public IndicatorDataSeries RSIPoint { get; set; } [Output("STO Point", Color = Colors.Red, PlotType = PlotType.Points, Thickness = 5)] public IndicatorDataSeries STOPoint { get; set; } private ExponentialMovingAverage EMAs, EMAl; private RelativeStrengthIndex rsi; private MarketSeries DailySource, WeeklySource, MonthlySource; private DirectionalMovementSystem ADX; private ExponentialMovingAverage ema10; private ExponentialMovingAverage ema20; private ExponentialMovingAverage ema50; private ExponentialMovingAverage ema200; private StochasticOscillator STO; protected override void Initialize() { DailySource = MarketData.GetSeries(TimeFrame.Daily); WeeklySource = MarketData.GetSeries(TimeFrame.Weekly); MonthlySource = MarketData.GetSeries(TimeFrame.Monthly); ADX = Indicators.DirectionalMovementSystem(ADXPeriod); rsi = Indicators.RelativeStrengthIndex(MarketSeries.Close, RSIPeriod); EMAs = Indicators.ExponentialMovingAverage(MarketSeries.Close, ShortEMA); EMAl = Indicators.ExponentialMovingAverage(MarketSeries.Close, LongEMA); ema10 = Indicators.ExponentialMovingAverage(DailySource.Close, 10); ema20 = Indicators.ExponentialMovingAverage(DailySource.Close, 20); ema50 = Indicators.ExponentialMovingAverage(DailySource.Close, 50); ema200 = Indicators.ExponentialMovingAverage(DailySource.Close, 200); STO = Indicators.StochasticOscillator(STOKValue, STOSlow, STODValue, MovingAverageType.Exponential); } public int CandleTick() { int results = -1; double OpenClose = MarketSeries.Close.Last(0) - MarketSeries.Open.Last(0); double HighLow = MarketSeries.High.Last(0) - MarketSeries.High.Last(0); double Open = MarketSeries.Open.Last(0); double Close = MarketSeries.Close.Last(0); double Median = MarketSeries.Median.Last(0); if ((OpenClose < HighLow / 3 && Open > Median && Close > Median) || (OpenClose > 0.7 * HighLow)) results = 0; else if ((OpenClose < HighLow / 3 && Open < Median && Close < Median) || (OpenClose > 0.7 * HighLow)) results = 1; return results; } public override void Calculate(int index) { //LongTrendSignal var StaticLongPos = StaticPosition.BottomLeft; string name = "Xu hướng dài hạn"; string LongResults; string DayOfWeek = DailySource.OpenTime.Last(0).DayOfWeek.ToString(); if (ema10.Result.Last(1) > ema20.Result.Last(1) && ema20.Result.Last(1) > ema50.Result.Last(1) && ema50.Result.Last(1) > ema200.Result.Last(1)) LongResults = "Long: Up"; else if (ema10.Result.Last(1) < ema20.Result.Last(1) && ema20.Result.Last(1) < ema50.Result.Last(1) && ema50.Result.Last(1) < ema200.Result.Last(1)) LongResults = "Long: Down"; else LongResults = "Long: Unknow"; //if (LongResults == "Long: Up" && ema10.Result.IsRising() && ema10.Result.Last(0) < MarketSeries.Low.Last(0)) //LongPoint[index] = MarketSeries.Low[index] - (Symbol.PipSize * 25); //else if (LongResults == "Long: Down" && ema10.Result.IsFalling() && ema10.Result.Last(0) > MarketSeries.High.Last(0)) //LongPoint[index] = MarketSeries.High[index] + (Symbol.PipSize * 25); //End //EMASignal string TF = TimeFrame.ToString(); int CandleSignal = CandleTick(); double EMA0 = EMAs.Result.Last(0) - EMAl.Result.Last(0); double EMA1 = EMAs.Result.Last(1) - EMAl.Result.Last(1); double EMA2 = EMAs.Result.Last(2) - EMAl.Result.Last(2); double EMA3 = EMAs.Result.Last(3) - EMAl.Result.Last(3); double EMA4 = EMAs.Result.Last(4) - EMAl.Result.Last(4); double EMA5 = EMAs.Result.Last(5) - EMAl.Result.Last(5); double EMA6 = EMAs.Result.Last(6) - EMAl.Result.Last(6); double EMA7 = EMAs.Result.Last(7) - EMAl.Result.Last(7); double AvgEMA0 = (EMA0 + EMA1 + EMA2) / 3; double AvgEMA1 = (EMA1 + EMA2 + EMA3) / 3; double AvgEMA2 = (EMA2 + EMA3 + EMA4) / 3; double AvgEMA3 = (EMA5 + EMA3 + EMA4) / 3; double DelEMA0 = EMA0 - AvgEMA0; double DelEMA1 = EMA1 - AvgEMA1; double DelEMA2 = EMA2 - AvgEMA2; double DelEMA3 = EMA3 - AvgEMA3; double EmaMin5 = EMAs.Result.Minimum(10); double EmaMax5 = EMAs.Result.Maximum(10); //Trường hợp cắt trên và dưới //if (EMA0 > AvgEMA0 && EMA1 < AvgEMA1 && EMA2 < AvgEMA2) //EMAPoint[index] = MarketSeries.Low[index] - (Symbol.PipSize * 10); //else if (EMA0 < AvgEMA0 && EMA1 > AvgEMA1 && EMA2 > AvgEMA2) //EMAPoint[index] = MarketSeries.High[index] + (Symbol.PipSize * 10); // Trường hợp tạo đỉnh và đáy if (EMA0 > AvgEMA0 && EMA1 < AvgEMA1 && EMA0 > EMA1 && EMA1 <= EMA2 && EMA2 <= EMA3) //&& EMA3 <= EMA4) // && CandleSignal == 0) EMAPoint[index] = MarketSeries.Low[index] - (Symbol.PipSize * 10); else if (EMA0 < AvgEMA0 && EMA1 > AvgEMA1 && EMA0 < EMA1 && EMA1 >= EMA2 && EMA2 >= EMA3) // && EMA3 >= EMA4) //&& CandleSignal == 1) EMAPoint[index] = MarketSeries.High[index] + (Symbol.PipSize * 10); //End //RSISignal double RSIvalue0 = rsi.Result.Last(0); double RSIvalue1 = rsi.Result.Last(1); double RSIvalue2 = rsi.Result.Last(2); double RSIvalue3 = rsi.Result.Last(3); double RSIMin120 = rsi.Result.Minimum(120); double RSIMax120 = rsi.Result.Maximum(120); string RsiResults; if ((rsi.Result.HasCrossedAbove(30, 0) && RSIvalue1 < 30 && RSIvalue2 < 30 && RSIvalue3 < 30)) //(RSIMin120 >= RSIvalue1 && RSIvalue0 >= RSIvalue1 && RSIvalue1 < RSIvalue2 && RSIvalue2 < RSIvalue3) || RSIPoint[index] = MarketSeries.Low[index] - (Symbol.PipSize * 20); else if ((rsi.Result.HasCrossedBelow(70, 0) && RSIvalue1 > 70 && RSIvalue2 > 70 && RSIvalue3 > 70)) //(RSIMax120 <= RSIvalue1 && RSIvalue0 <= RSIvalue1 && RSIvalue1 > RSIvalue2 && RSIvalue2 > RSIvalue3) || RSIPoint[index] = MarketSeries.High[index] + (Symbol.PipSize * 20); if (29 <= rsi.Result.Last(0) && rsi.Result.Last(0) < 30 && RSIvalue1 < 30 && RSIvalue2 < 30 && RSIvalue3 < 30) RsiResults = "RSI: Sell Signal Nearly Appear"; else if (70 < rsi.Result.Last(0) && rsi.Result.Last(0) <= 71 && RSIvalue1 > 70 && RSIvalue2 > 70 && RSIvalue3 > 70) RsiResults = "RSI: Buy Signal Nearly Appear"; else RsiResults = ""; //End //ADXSignal double DIMinus1 = ADX.DIMinus.Last(1); double DIMinus2 = ADX.DIMinus.Last(2); double DIMinus3 = ADX.DIMinus.Last(3); double DIPlus1 = ADX.DIPlus.Last(1); double DIPlus2 = ADX.DIPlus.Last(2); double DIPlus3 = ADX.DIPlus.Last(3); string AdxResults; if (ADX.DIPlus.HasCrossedAbove(ADX.DIMinus, 0) && DIPlus1 < DIMinus1 && DIPlus2 < DIMinus2 && DIPlus3 < DIMinus3) ADXPoint[index] = MarketSeries.Low[index] - (Symbol.PipSize * 30); else if (ADX.DIPlus.HasCrossedBelow(ADX.DIMinus, 0) && DIPlus1 > DIMinus1 && DIPlus2 > DIMinus2 && DIPlus3 > DIMinus3) ADXPoint[index] = MarketSeries.High[index] + (Symbol.PipSize * 30); if (Math.Abs(ADX.DIPlus.Last(0) - ADX.DIMinus.Last(0)) <= 1 && ADX.DIPlus.Last(0) > ADX.DIMinus.Last(0) && DIPlus1 < DIMinus1 && DIPlus2 < DIMinus2 && DIPlus3 < DIMinus3) AdxResults = "ADX: Sell Signal Nearly Appear"; else if (Math.Abs(ADX.DIPlus.Last(0) - ADX.DIMinus.Last(0)) <= 1 && ADX.DIPlus.Last(0) < ADX.DIMinus.Last(0) && DIPlus1 > DIMinus1 && DIPlus2 > DIMinus2 && DIPlus3 > DIMinus3) AdxResults = "ADX: Buy Signal Nearly Appear"; else AdxResults = ""; //End //StoSignal double KValue0 = STO.PercentK.Last(0); double KValue1 = STO.PercentK.Last(1); double KValue2 = STO.PercentK.Last(2); double KValue3 = STO.PercentK.Last(3); double KValue4 = STO.PercentK.Last(4); double KValue5 = STO.PercentK.Last(5); double KValue6 = STO.PercentK.Last(6); double DValue0 = STO.PercentD.Last(0); double DValue1 = STO.PercentD.Last(1); double DValue2 = STO.PercentD.Last(2); double DValue3 = STO.PercentD.Last(3); //Trường hợp giao nhau //if (STO.PercentK.HasCrossedAbove(STO.PercentD, 0) && KValue1 < DValue1 && KValue2 < DValue2 && KValue3 < DValue3) //STOPoint[index] = MarketSeries.Low[index] - (Symbol.PipSize * 40); //else if (STO.PercentK.HasCrossedBelow(STO.PercentD, 0) && KValue1 > DValue1 && KValue2 > DValue2 && KValue3 > DValue3) //STOPoint[index] = MarketSeries.High[index] + (Symbol.PipSize * 40); //Trường hợp đỉnh đáy if (KValue0 > DValue0 && KValue0 > KValue1 && KValue1 < KValue2 && KValue2 < KValue3 && KValue3 < KValue4) //&& KValue4 < KValue5 && KValue5 < KValue6) STOPoint[index] = MarketSeries.Low[index] - (Symbol.PipSize * 40); else if (KValue0 < DValue0 && KValue0 < KValue1 && KValue1 > KValue2 && KValue2 > KValue3 && KValue3 > KValue4) //&& KValue4 > KValue5 && KValue5 > KValue6) STOPoint[index] = MarketSeries.High[index] + (Symbol.PipSize * 40); //End //OpenWeek for (int i = 0; i < 120; i++) { DateTime startOfMonth = MonthlySource.OpenTime.Last(i).Date.AddDays(0); DateTime endOfMonth = startOfMonth.AddMonths(1); DateTime StartOfWeek = WeeklySource.OpenTime.Last(i).Date.AddDays(0); DateTime endOfWeek = StartOfWeek.AddDays(7); DateTime StartOfDay = DailySource.OpenTime.Last(i).Date.AddDays(0); DateTime endOfDay = StartOfDay.AddHours(24); var MonthlyOpen = MonthlySource.Open.Last(i); var WeeklyOpen = WeeklySource.Open.Last(i); var DailyOpen = DailySource.Open.Last(i); ChartObjects.DrawLine("OpenWeek" + i, StartOfWeek, WeeklyOpen, endOfWeek, WeeklyOpen, Colors.Aqua, 1); ChartObjects.DrawLine("OpenMonth" + i, startOfMonth, MonthlyOpen, endOfMonth, MonthlyOpen, Colors.SlateGray, 2); } //End ChartObjects.DrawText(name, LongResults + "\n" + RsiResults + "\n" + AdxResults, StaticLongPos, Colors.Red); } } }  
29 Nov 2016
Downloads
302
Comments
0
Rating
5
Download
using System; using cAlgo.API; namespace cAlgo.Indicators { [Indicator(IsOverlay = true, AccessRights = AccessRights.None)] public class PivotPointsIntraDay : Indicator { private double _close; private double _higher; private double _lower; #region Output [Output("Pivot", LineStyle = LineStyle.Lines)] public IndicatorDataSeries Pivot { get; set; } [Output("R1", LineStyle = LineStyle.Lines, Color = Colors.Blue)] public IndicatorDataSeries R1 { get; set; } [Output("R2", LineStyle = LineStyle.Lines, Color = Colors.Blue)] public IndicatorDataSeries R2 { get; set; } [Output("R3", LineStyle = LineStyle.Lines, Color = Colors.Blue)] public IndicatorDataSeries R3 { get; set; } [Output("S1", LineStyle = LineStyle.Lines, Color = Colors.Red)] public IndicatorDataSeries S1 { get; set; } [Output("S2", LineStyle = LineStyle.Lines, Color = Colors.Red)] public IndicatorDataSeries S2 { get; set; } [Output("S3", PlotType = PlotType.Line, LineStyle = LineStyle.Lines, Color = Colors.Red)] public IndicatorDataSeries S3 { get; set; } #endregion #region Input Parameters [Parameter("Number of Pivots", DefaultValue = 3, MinValue = 1, MaxValue = 3)] public int NoPiv { get; set; } [Parameter("DrawingWidth", DefaultValue = 50, MaxValue = 100)] public int DrawingWidth { get; set; } #endregion public override void Calculate(int index) { DateTime currentOpenTime = MarketSeries.OpenTime[index]; DateTime previousOpenTime = MarketSeries.OpenTime[index - 1]; DateTime today = DateTime.Now; DateTime yesterday = DateTime.Now.AddDays(-1); // Initialize High & Low if (currentOpenTime.Day == yesterday.Day && previousOpenTime.Day != yesterday.Day) { _higher = MarketSeries.High[index]; _lower = MarketSeries.Low[index]; } // Calculate High & Low of previous day if ((currentOpenTime.Day == yesterday.Day && today.DayOfWeek != DayOfWeek.Monday) || (today.DayOfWeek == DayOfWeek.Monday && currentOpenTime.DayOfYear == today.AddDays(-3).Day)) { if (MarketSeries.High[index] > _higher) { _higher = MarketSeries.High[index]; } if (MarketSeries.Low[index] < _lower) { _lower = MarketSeries.Low[index]; } } // Set Close of previous day - Close of Last Bar of prevous Day if (previousOpenTime.Day == yesterday.Day && currentOpenTime.Day == today.Day) { _close = MarketSeries.Close[index - 1]; } // Only show output in todays timeframe if (currentOpenTime.Date != today.Date) return; // Calculate output Pivot[index] = (_higher + _lower + _close)/3; R1[index] = 2*Pivot[index] - _lower; S1[index] = 2*Pivot[index] - _higher; // Display additional pivots according to input if (NoPiv >= 2) { R2[index] = Pivot[index] + (_higher - _lower); S2[index] = Pivot[index] - (_higher - _lower); } if (NoPiv >= 3) { R3[index] = _higher + 2*(Pivot[index] - _lower); S3[index] = _lower - 2*(_higher - Pivot[index]); } } } }  
12 Nov 2016
Downloads
691
Comments
0
Rating
0
Download
Description: Plots custom period separator.   Updates: 21/06/2016 - Version 1.0 Released.   Screenshot:   Notes: Works on tick charts as well.   Make a Donation: If you like my work and effort then please consider to make a kind donation thru PayPal or any Credit Card via this link.
by tmc.
02 Nov 2016
Downloads
513
Comments
5
Rating
0
Download
Hi, This indicator displays the Position info on the Chart over the Position Line.  Kind of visual.  (Courtesy : Charles Layton) Thank you. ///S.Khan    
14 Oct 2016
Downloads
254
Comments
0
Rating
0
Download
Hi, a simple indicator that displays Pair Info on top of the Chart.  Kinda Helpful information for Traders. Information Displayed are : 1. Pips Current and Closed  2. Unrealized and Closed Net P/L 3. Pip Cost  4. Net Vol and Total Count 5. Buy and Sell Volume 6. Buy and Sell Count 7. Profit Factor   Thank you S.Khan  
14 Oct 2016
Downloads
232
Comments
2
Rating
0
Download
Hi, This Indicator basically displays : 1. Displays the PIPS (hourly, daily, weekly, monthly) and 2. Draw Lines through +/- ATR values on the CHART.   Have divided the ATR Value by x (x=1,2,3,4).   And converted it to Pips.  Added these Pips value to "OPEN PRICES" and drawn the lines on Chart. How to USE IT : 1.  Good for Trade :  If the Price has crossed  +D-1/2 ATR  or  -D-1/2 ATR, then it means that this PAIR is good for trading (either Buy or Sell. depending on your other triggers). 2.  Trigger :  After it has crossed Daily ATR lines, then wait for the prices to cross the "Hourly +ve or -ve" ATR line to start trading.  (Direction based on other trigger indicators).   3. Trending :  If Both Weekly ATR lines (+ve or -ve) are above Both the Monthly ATR Lines or vice versa. The Pair is trending. 4. Ranging :   if Daily lines are within Weekly ATR Lines,  and Weekly ATR Line are between the Monthly ATR lines. The Pair is ranging. 5. Short-Term Reversal :  if Price have broken all +ve (-ve)  Daily, Weekly, Monthly ATR lines in single session. *if it was early in ranging setup. 6. OPEN PRICES  :  if Daily Open Price is above Weekly Open Price, and Weekly Open Price is above Monthly Open Price  or vice versa ), then usually this Pair is also in trending mode but ranging setup (#4) will confirm or reject it. Disclaimer : This is not a Holy grail. Please use this for short-term inter-day trading.  And keep Take Profit as per 15-min ATR value in Pips. And keep Stop Loss outside 1-Hr ATR Line.  Leave your comments and feedback, so a cBOT can also be developed. Hope it helps other too who want to know how many Pips a Pair has moved from its opening price.   Please rate it and leave a comment. Thank you. ///S.Khan (*Still Learning to TRADE )  
14 Oct 2016
Downloads
846
Comments
0
Rating
5
Download