public static MACDEx_Signal Series(Bars bars, DataSeries ds, int period1, int period2) { string description = string.Concat(new object[] { "MACDEx Signal(", bars.Symbol, ",", ds.Description, ",", period1, ",", period2, ")" }); //string description = string.Concat(new object[] { "MACDEx Signal(", bars.ToString(), ",", ds.Description, ",", period1, ",", period2, ")" }); if (bars.Cache.ContainsKey(description)) { return (MACDEx_Signal)bars.Cache[description]; } MACDEx_Signal _MACDEx_Signal = new MACDEx_Signal(bars, ds, period1, period2, description); bars.Cache[description] = _MACDEx_Signal; return _MACDEx_Signal; }
public MACDEx_Histogram(Bars bars, DataSeries ds, int period1, int period2, string description) : base(bars, description) { this.bars = bars; this.ds = ds; this.period1 = period1; this.period2 = period2; base.FirstValidValue = Math.Max(period1, period2) * 3; MACDEx macdex = new MACDEx(bars, ds, period1, period2, description); MACDEx_Signal sigLine = new MACDEx_Signal(bars, ds, period1, period2, description); DataSeries macdHist = macdex - sigLine; for (int bar = FirstValidValue; bar < bars.Count; bar++) { base[bar] = macdHist[bar]; } }