public override void Init(string pParameters)
        {
            this.InitializeParameters(pParameters, "CCI:14;TCCI:6;MINUTES:5;");

            CCIPeriods  = (int)PParser.GetDouble("CCI", 0);
            TCCIPeriods = (int)PParser.GetDouble("TCCI", 0);
            Minutes     = (int)PParser.GetDouble("MINUTES", 0);

            CCI      = new iCCI(CCIPeriods);
            TCCI     = new iCCI(TCCIPeriods);
            CCISlope = new iDerivatives();

            CCIH  = new CQueue(CCIPeriods * 3);
            TCCIH = new CQueue(CCIPeriods * 3);

            // OPTIMIZATION PARAMETER CHECK
            // if parameters are erroneous (TurboCCI length > CCI)
            // do not register candle listeners
            // SystemTester will then not send us any ticks
            // and go to the next iteration
            // need 6 cci bars to determine trend

            if ((TCCIPeriods < CCIPeriods) || (CCIPeriods < 6))
            {
                cbx = new cCandleBuilder(Minutes, 10);
                Framework.TickServer.RegisterTickListener("cbx", "*", cbx);
                cbx.RegisterCandleListener("cbx", this);
                Framework.TickServer.RegisterTickListener("System", "*", this);

                Framework.WriteGraphLine("InTrade,Margin,C,CCI,CCIDelta,CCISpeed,TCCI,TypeOfTrade,Direction,BelowFifty,ZLR");
            }
        }
        // constructor, called only once, setup multiple tick variables
        public oIndicatorDump(int pPeriods)
        {
            iPeriods = pPeriods;

            ATR         = new iATR(pPeriods);
            BB          = new iBollingerBands(iPeriods, -1);
            CCI         = new iCCI(iPeriods);
            Derivatives = new iDerivatives();
            EMA         = new iEMA(iPeriods);
            FMA         = new iFMA(iPeriods);
            HMA         = new iHMA(iPeriods);
            MACD        = new iMACD(12, 26, 9);
            Momemtum    = new iMomemtum(iPeriods);
            RSI         = new iRSI(iPeriods);
            Renko       = new iRenko(iPeriods);
            SMA         = new iSMA(iPeriods);
            STARCBands  = new iSTARCBands(iPeriods, 2);
            STDDEV      = new iSTDDEV(iPeriods);
            Slope       = new iSlope();
            StochRSI    = new iStochRSI(iPeriods);
            Stochastics = new iStochastics(3, 2, 1);
            Stub        = new iStub(iPeriods);
            Trend       = new iTrend(iPeriods);
            TrueRange   = new iTrueRange();
            WMA         = new iWMA(iPeriods);
        }
        // initialization routine, called once before ticks are sent
        // if multiple tick sources are used, will get called several times
        // during the lifetime of the object, once per tick source change
        public override void Init(string pParameters)
        {
            this.InitializeParameters(pParameters, "PERIODS:17;MINUTES:10;");

            // get periods to use for the indicator(s)
            Periods     = (int)PParser.GetDouble("PERIODS", 0);
            Derivatives = new iDerivatives();
            HMA         = new iHMA(Periods);
            HMAD1       = new CQueue(Periods);
            FMA         = new iFMA(Periods);
            Deriv1      = new CQueue(Periods);
            Deriv2      = new CQueue(Periods);
            BBands      = new iBollingerBands(Periods, -1);
            StochRSI    = new iStochRSI(Periods);
            CCI         = new iCCI(Periods);

            // instantiate candlebuilder with desired timeframe
            Minutes = (int)PParser.GetDouble("MINUTES", 0);
            //			cbx = new cCandleBuilder(Minutes,PeriodsLong+PeriodsShort+1);
            cbx = new cCandleBuilder(Minutes, Periods);

            // register candlebuilder as a tick listener, name unimportant
            Framework.TickServer.RegisterTickListener("cbx", "*", cbx);
            // register this object as a candle listener
            // the candle name is important since we might receive
            // several candles with same period.
            cbx.RegisterCandleListener("cbx", this);
            // multiple candlebuilders can be setup by using previous 4 lines.

            // register this object as a tick listener, name unimportant
            // this is an optional step to receive ticks in between candles
            Framework.TickServer.RegisterTickListener("System", "*", this);

            // start header line of numerical output file
            Framework.WriteGraphLine("InTrade,Margin,C,TP,FMA,HMA,Deriv1,Deriv2,SMA,BBand1,BBand2,%b,Bandwidth,StochRSI,CCI");
        }