using System.Collections.Generic; using TSLab.Script; using TSLab.Script.Handlers; using TSLab.DataSource; using TSLab.Script.Helpers; namespace test { public class MK : IBar2DoubleHandler, IContextUses { [HandlerParameter] public int Period { get; set; } public IList Execute(ISecurity source) { var high = Context.GetData("Highest", new[] { Period.ToString() }, () => Series.Highest(source.HighPrices, Period)); var low = Context.GetData("Lowest", new[] { Period.ToString() }, () => Series.Lowest(source.LowPrices, Period)); var closes = source.ClosePrices; IList list = new List(closes.Count); for (int i = 0; i < closes.Count; i++) { var stochK = 100 * (closes[i] - low[i]) / (high[i] - low[i]); list.Add(stochK); } return list; } public IContext Context { get; set; } } }