Relative Strength Index Wave ind. free
Description
The Relative Strength Index Wave Indicator, was created by Constance Brown.
This custom indicator is realized as a rainbow with RSI indicators calculated from different input data types; high, low, hlcc4, and four different smooth periods.
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.
Formula / Source Code
using System; using cAlgo.API; using cAlgo.API.Indicators; using cAlgo.API.Internals; namespace cAlgo { [Levels(30,50,70)] [Indicator(AccessRights = AccessRights.None)] public class mRelativeStrengthIndexWave : Indicator { [Parameter("RSI Period (14)", DefaultValue = 14, MinValue = 2)] public int inpPeriodRSI { get; set; } [Parameter("Smooth Period 1 (2)", DefaultValue = 2, MinValue = 2)] public int inpSmoothPeriod1 { get; set; } [Parameter("Smooth Period 2 (5)", DefaultValue = 5, MinValue = 2)] public int inpSmoothPeriod2 { get; set; } [Parameter("Smooth Period 3 (9)", DefaultValue = 9, MinValue = 2)] public int inpSmoothPeriod3 { get; set; } [Parameter("Smooth Period 4 (13)", DefaultValue = 13, MinValue = 2)] public int inpSmoothPeriod4 { get; set; } [Output("RSI IndexWave 1", LineColor = "00bcd4", LineStyle = LineStyle.Solid, Thickness = 1)] public IndicatorDataSeries outRSIiw1 { get; set; } [Output("RSI IndexWave 2", LineColor = "ff9800", LineStyle = LineStyle.Solid, Thickness = 1)] public IndicatorDataSeries outRSIiw2 { get; set; } [Output("RSI IndexWave 3", LineColor = "2962ff", LineStyle = LineStyle.Solid, Thickness = 1)] public IndicatorDataSeries outRSIiw3 { get; set; } [Output("RSI IndexWave 4", LineColor = "787b86", LineStyle = LineStyle.Solid, Thickness = 1)] public IndicatorDataSeries outRSIiw4 { get; set; } private IndicatorDataSeries _pricec, _priceh, _pricel, _raw; private RelativeStrengthIndex _rsip, _rsih, _rsil; private MovingAverage _smooth1, _smooth2, _smooth3, _smooth4; protected override void Initialize() { _pricec = CreateDataSeries(); _priceh = CreateDataSeries(); _pricel = CreateDataSeries(); _rsip = Indicators.RelativeStrengthIndex(_pricec, inpPeriodRSI); _rsih = Indicators.RelativeStrengthIndex(_priceh, inpPeriodRSI); _rsil = Indicators.RelativeStrengthIndex(_pricel, inpPeriodRSI); _raw = CreateDataSeries(); _smooth1 = Indicators.MovingAverage(_raw, inpSmoothPeriod1, MovingAverageType.Weighted); _smooth2 = Indicators.MovingAverage(_raw, inpSmoothPeriod2, MovingAverageType.Weighted); _smooth3 = Indicators.MovingAverage(_raw, inpSmoothPeriod3, MovingAverageType.Weighted); _smooth4 = Indicators.MovingAverage(_raw, inpSmoothPeriod4, MovingAverageType.Weighted); } public override void Calculate(int i) { _pricec[i] = (Bars.HighPrices[i] + Bars.LowPrices[i] + Bars.ClosePrices[i] + Bars.ClosePrices[i]) / 4; _priceh[i] = Bars.HighPrices[i]; _pricel[i] = Bars.LowPrices[i]; _raw[i] = (_rsih.Result[i] + _rsil.Result[i] + (2 * _rsip.Result[i])) / 4; outRSIiw1[i] = _smooth1.Result[i]; outRSIiw2[i] = _smooth2.Result[i]; outRSIiw3[i] = _smooth3.Result[i]; outRSIiw4[i] = _smooth4.Result[i]; } } }
Comments