protected override void OnStartUp() { onBasicBars = primType == RWT_HA.PrimaryOHLC.BARS; var b1 = RWT_HA.OHLCFactory.createPrimary(primType, Open, High, Low, Close, Input); var b2 = RWT_HA.OHLCFactory.createSecondary(b1, smoothType, smoothArg); bars = new RWT_HA.Heiken_Ashi(b2); lastFilt = 0.5 * (bars.High + bars.Low); lastProxy = lastFilt; filter = RWT_MA.MAFactory.create(filterType, filterArg); filter.init(lastFilt); linreg = new RWT_MA.LINREGSLOPE((double)lookback); linreg.init(lastFilt); dirUp = true; actualTolerance = tolerance; if (onBasicBars) { actualTolerance *= TickSize; } }
public static MovingAverage create(MAType type, double len) { MovingAverage ans = null; switch (type) { case MAType.SMA: ans = new RWT_MA.SMA(len); break; case MAType.HULL: ans = new RWT_MA.Hull(len); break; case MAType.GAUSSIAN: ans = new RWT_MA.GAUSSIAN((int)Math.Floor((len - (int)len) * 10), Math.Floor(len)); break; case MAType.HULLEMA: ans = new RWT_MA.HullEMA(len); break; case MAType.KAMA210: ans = new RWT_MA.Kama210(len); break; case MAType.EMA: ans = new RWT_MA.EMA(len); break; case MAType.WMA: ans = new RWT_MA.WMA(len); break; case MAType.DEXPMA: ans = new RWT_MA.DEXPMA(len); break; case MAType.MEDIANFILT: ans = new RWT_MA.MEDIANFILT(len); break; case MAType.DELAY: ans = new RWT_MA.DELAY(len); break; case MAType.TEMA: ans = new RWT_MA.TEMA(len); break; case MAType.SUPER2POLE: ans = new RWT_MA.Super2(len); break; case MAType.SUPER3POLE: ans = new RWT_MA.Super3(len); break; case MAType.LINREGSLOPE: ans = new RWT_MA.LINREGSLOPE(len); break; } return(ans); }