public void ComparesWithExternalDataLowerBand() { var kch = new KeltnerChannels(20, 1.5m, MovingAverageType.Simple); TestHelper.TestIndicator(kch, "spy_with_keltner.csv", "Keltner Channels 20 Bottom", (ind, expected) => Assert.AreEqual(expected, (double)((KeltnerChannels)ind).LowerBand.Current.Value, 1e-3)); }
public void ComparesWithExternalDataUpperBand() { var kch = new KeltnerChannels(20, 1.5m, MovingAverageType.Simple); TestHelper.TestIndicator(kch, "spy_with_keltner.csv", "Keltner Channels 20 Top", (ind, expected) => ((double)((KeltnerChannels)ind).UpperBand.Current.Price).Should() .BeApproximately(expected, 1e-3)); }
protected override void Initialize() { MacD = Indicators.MacdHistogram(LngCycle, ShrtCycle, SigPeriod); // Initialize keltner Channels _momentum = Indicators.MomentumOscillator(MarketSeries.Close, Periods); LR_Slope = Indicators.LinearRegressionSlope(MarketSeries.Close, Periods); Klt = Indicators.KeltnerChannels(Klt_Periods, MovingAverageType.Exponential, Klt_ATR_Periods, MovingAverageType.Simple, Klt_stdDev); bb = Indicators.BollingerBands(bb_Source, bb_Periods, bb_stdDev, MovingAverageType.Simple); }
//public IndicatorDataSeries bb_main { get; set; } //[Output("4", Color = Colors.Red, PlotType = PlotType.Line, Thickness = 2)] //public IndicatorDataSeries bb_top { get; set; } //[Output("5", Color = Colors.Red, PlotType = PlotType.Line, Thickness = 2)] //public IndicatorDataSeries bb_bottom { get; set; } //public IndicatorDataSeries bb_bottom; ////////////////////////////////// protected override void Initialize() { MacD_Series = MarketData.GetSeries(MacD_TF); // Initialize keltner Channels LR_Slope = Indicators.LinearRegressionSlope(MarketSeries.Close, Periods); _momentum = Indicators.MomentumOscillator(MarketSeries.Close, Periods); MacD = Indicators.MacdHistogram(MacD_Series.Close, LngCycle, ShrtCycle, SigPeriod); Klt = Indicators.KeltnerChannels(20, MovingAverageType.Exponential, 10, MovingAverageType.Simple, 1.5); bb = Indicators.BollingerBands(bb_Source, 20, 2.0, MovingAverageType.Simple); //form1 = new System.Windows.Forms.Form(); }
protected override void OnStart() { Positions.Closed += OnPositionClosed; Positions.Opened += OnPositionOpened; startingBalance = Account.Balance; streakTrades = 0; startTime = Server.Time; avgTimes = new List <int>(); avgTrades = new List <int>(); keltner = Indicators.KeltnerChannels(maPeriod, MovingAverageType.Weighted, maPeriod, MovingAverageType.Weighted, bandDistance); brokenTop = false; brokenBottom = false; }
////////////////////////////////// protected override void Initialize() { Squeeze = theBullet[Draw_String]; ECO = CreateDataSeries(); CO_Series = CreateDataSeries(); HL_Series = CreateDataSeries(); EMA_CO = Indicators.ExponentialMovingAverage(CO_Series, Interval_1); EMA_CO_S = Indicators.ExponentialMovingAverage(EMA_CO.Result, Interval_2); EMA_HL = Indicators.ExponentialMovingAverage(HL_Series, Interval_1); EMA_HL_S = Indicators.ExponentialMovingAverage(EMA_HL.Result, Interval_2); Klt = Indicators.KeltnerChannels(Klt_Periods, MovingAverageType.Exponential, Klt_ATR_Periods, MovingAverageType.Simple, Klt_stdDev); bb = Indicators.BollingerBands(bb_Source, bb_Periods, bb_stdDev, MovingAverageType.Simple); }
public void ResetsProperly() { var kch = new KeltnerChannels(20, 1.5m, MovingAverageType.Simple); foreach (var data in TestHelper.GetTradeBarStream("spy_with_keltner.csv", false)) { kch.Update(data); } Assert.True(kch.IsReady); Assert.True(kch.UpperBand.IsReady); Assert.True(kch.LowerBand.IsReady); Assert.True(kch.MiddleBand.IsReady); Assert.True(kch.AverageTrueRange.IsReady); kch.Reset(); TestHelper.AssertIndicatorIsInDefaultState(kch); TestHelper.AssertIndicatorIsInDefaultState(kch.UpperBand); TestHelper.AssertIndicatorIsInDefaultState(kch.LowerBand); TestHelper.AssertIndicatorIsInDefaultState(kch.AverageTrueRange); }