using System; using System.Collections.Generic; using TSLab.Script; using TSLab.Script.Handlers; using TSLab.DataSource; using TSLab.Script.Helpers; namespace TSI { public class TSI : IBar2DoubleHandler, IContextUses { [HandlerParameter(true, "6", Min = "2", Max = "20", Step = "1")] public int IntervalSize { get; set; } [HandlerParameter(true, "10", Min = "2", Max = "20", Step = "2")] public int IntervalCount { get; set; } public IList Execute(ISecurity source) { var nHigh = Context.GetData("VKH", new[] { IntervalSize.ToString() }, () => Series.Highest(source.HighPrices, IntervalSize)); var C = source.ClosePrices; IList VKH = new List(C.Count); for (int bar=0; bar= 0) { vSum = vSum + nHigh[b]; vCount = vCount + 1; } } if (vCount > 0) vAvg = vSum / vCount; VKH.Add(vAvg); } return VKH; } public IContext Context { get; set; } } }