public void HandlesEqualMinAndMax() { var reference = DateTime.Now; var stochastics = new Stochastic("sto", 2, 2, 2); for (var i = 0; i < 4; i++) { var bar = new TradeBar(reference.AddSeconds(i), Symbols.SPY, 1, 1, 1, 1, 1); stochastics.Update(bar); Assert.AreEqual(0m, stochastics.Current.Value); } }
public void HandlesEqualMinAndMax() { var reference = new DateTime(2015, 09, 01); var stochastics = new Stochastic("sto", 2, 2, 2); for (int i = 0; i < 4; i++) { var bar = new TradeBar { Time = reference.AddSeconds(i) }; bar.Open = bar.Close = bar.High = bar.Low = bar.Volume = 1; stochastics.Update(bar); Assert.AreEqual(0m, stochastics.Current.Value); } }
protected override decimal ComputeNextValue(TradeBar input) { _stochastic.Update(input); _maximum.Update(input.Time, _stochastic); _mininum.Update(input.Time, _stochastic); if (IsReady) { Smoothed.Update(input); } _prevStochastic = Smoothed; return(Smoothed * 100); }
public void ResetsProperly() { var stochastics = new Stochastic("sto", 12, 3, 5); foreach (var bar in TestHelper.GetTradeBarStream("spy_with_stoch12k3.txt", false)) { stochastics.Update(bar); } Assert.IsTrue(stochastics.IsReady); Assert.IsTrue(stochastics.FastStoch.IsReady); Assert.IsTrue(stochastics.StochK.IsReady); Assert.IsTrue(stochastics.StochD.IsReady); stochastics.Reset(); TestHelper.AssertIndicatorIsInDefaultState(stochastics); TestHelper.AssertIndicatorIsInDefaultState(stochastics.FastStoch); TestHelper.AssertIndicatorIsInDefaultState(stochastics.StochK); TestHelper.AssertIndicatorIsInDefaultState(stochastics.StochD); }