using System; using System.Collections.Generic; using TSLab.Script; using TSLab.Script.Handlers; using TSLab.DataSource; using TSLab.Script.Helpers; namespace spr { public class spread : ISecurityInputs, ISecurityReturns, ITwoSourcesHandler, IStreamHandler { public ISecurity Execute(ISecurity source1, ISecurity source2) { var bars = new List(source1.Bars.Count); for (int i = 0; i < source1.Bars.Count; i++) { var bar = source1.Bars[i]; var o1 = source2.OpenPrices[i]; var h1 = source2.HighPrices[i]; var l1 = source2.LowPrices[i]; var c1 = source2.ClosePrices[i]; var newBar = new Bar(bar.Color, bar.Date,bar.Open-o1, bar.High-h1, bar.Low-l1, bar.Close-c1, bar.Volume){ Ask = bar.Ask, Bid = bar.Bid, AskQty = bar.AskQty, BidQty = bar.BidQty }; bars.Add(newBar); } return source1.CloneAndReplaceBars(bars); } } }