Example #1
0
 /// <summary>
 /// Returns an observable sequence of changes in value, except for the first value, which is null.
 /// </summary>
 public static IObservable <double?> Change(this IObservable <double> source)
 {
     return(ThrowIf.ThrowIfNull(source)
            .DistinctUntilChanged()
            .PairWithPrevious()
            .Select(m => m.Length == 2 && m[0] > 0 && m[1] > 0 ? m[0] - m[1] : (double?)null));
 }
Example #2
0
 public static IObservable <TickOhlc> TickOpenHighLowClose(this IObservable <ITick> source, TimeSpan barSize)
 => ThrowIf.ThrowIfNull(source)
 .OfType <TickPrice>()
 .Where(x => x.TickType == TickType.LastPrice)
 .Select(x => x.Price)
 .Window(barSize)
 .Select(w => w.Aggregate(new TickOhlc(), TickOhlc.Calc))
 .SelectMany(x => x);