protected override void CalcBar()
        {
            double m_avg   = m_AverageFC[0];
            double m_shift = NumAtrs * this.AverageTrueRange(Length);

            m_UpperBand.Value = m_avg + m_shift;   //UB


            if (Bars.CurrentBar > 1 && Price.CrossesOver(m_UpperBand, ExecInfo.MaxBarsBack)) //CROSS(C,HB);
            {
                m_bSetupLE.Value     = true;
                m_CrossingHigh.Value = Bars.High[0];  //HH
            }
            else
            {
                if (m_bSetupLE.Value &&
                    (PublicFunctions.DoubleLess(Price[0], m_avg) ||   //C<MA
                     PublicFunctions.DoubleGreaterEquals(Bars.High[0], m_CrossingHigh.Value + Bars.Point)))
                {
                    m_bSetupLE.Value = false;
                }
            }
            if (m_bSetupLE.Value)
            {
                m_KltChLE.Send(m_CrossingHigh.Value + Bars.Point);
            }
        }