/// <summary> /// Initializes a new instance of the <see cref="T:QuantModel.Indicators.Boll"/> class. /// </summary> /// <param name="source">Source.</param> /// <param name="cycle">Cycle.</param> /// <param name="deviation">Deviation.</param> public Boll(IIndicator <double> source, int cycle, double deviation) { Source = source; Cycle = cycle; Deviation = deviation; Middle = Source.SMA(Cycle); Std = source.StdDev(cycle, Middle); Upper = BinaryOperation.Create(Middle, Std, (i, j) => i + j * Deviation); Lower = BinaryOperation.Create(Middle, Std, (i, j) => i - j * Deviation); }
public MACD(IIndicator <double> source, int shortCycle, int longCycle, int difCycle) { Source = source; ShortCycle = shortCycle; LongCycle = longCycle; DifCycle = difCycle; var fast = Source.EMA(ShortCycle); var slow = Source.EMA(LongCycle); Dif = BinaryOperation.Create(fast, slow, (a, b) => a - b); Dea = Dif.EMA(difCycle); Macd = BinaryOperation.Create(Dif, Dea, (a, b) => 2 * (a - b)); Dif.Update += Merge; Dea.Update += Merge; Macd.Update += Merge; }