public void SetLHPScanNormalInfo( LHPPrimaryScanInfo.ScanNormalInfo lhpScanNormalInfo )
 {
     m_ScanControlSub2B.SetLHPScanNormalInfo( lhpScanNormalInfo );
     m_ScanControlSub2B.SetLHPScanTrendInfo( lhpScanNormalInfo.ScanTrendInfo );
     m_ScanControlSub2BUp.SetLHPScanUpTrendInfo( lhpScanNormalInfo.ScanTrendInfo.UpTrendInfo );
     m_ScanControlSub2A.SetLHPScanDownTrendInfo( lhpScanNormalInfo.ScanTrendInfo.DownTrendInfo );
 }
        public void SetLHPScanNormalInfo( LHPPrimaryScanInfo.ScanNormalInfo lhpScanNormalInfo )
        {
            //this.CheckBoxAllowSR.Checked = lhpScanNormalInfo.AllowScanSR;

            //if ( lhpScanNormalInfo.ScanDateType == LHPPrimaryScanInfo.NormalScanDateType.ScanNow )
            //{
            //    this.RadioButtonNow.Checked = true;
            //}
            //else if ( lhpScanNormalInfo.ScanDateType == LHPPrimaryScanInfo.NormalScanDateType.ScanSelect )
            //{
            //    this.RadioButtonSelect.Checked = true;
            //}

            //this.DateTimePickerSelect.Value = lhpScanNormalInfo.ScanDate;
        }
 public void SetLHPPrimaryScanInfo( LHPPrimaryScanInfo lhpScanInfo )
 {
     m_ScanControlSub.SetLHPScanBaseInfo( lhpScanInfo.m_ScanBaseInfo );
 }
        public LHPPrimaryScanInfo GetLHPPrimaryScanInfo()
        {
            LHPPrimaryScanInfo lhpScanInfo = new LHPPrimaryScanInfo();
            lhpScanInfo.m_ScanBaseInfo = m_ScanControlSub.GetLHPScanBaseInfo();

            return lhpScanInfo;
        }
        public void SetLHPScanUpTrendInfo( LHPPrimaryScanInfo.ScanUpTrendInfo lhpScanUpTrendInfo )
        {
            this.CheckBoxAllowDCUR.Checked = lhpScanUpTrendInfo.AllowScanUpTrend;
            this.NumericUpDownUpDay.Value = lhpScanUpTrendInfo.ScanContinueUpDate;
            this.CheckBoxHighPirce.Checked = lhpScanUpTrendInfo.ScanUpTrendNeedHigh;



            this.CheckBoxAllowDCLP.Checked = lhpScanUpTrendInfo.AllowCheckDCLP;

            if ( lhpScanUpTrendInfo.CheckDCLP == LHPPrimaryScanInfo.NormalTrendCheckDCLP.ScanAnyOne )
            {
                this.RadioButtonDCLPAnyOne.Checked = true;
            }
            else if ( lhpScanUpTrendInfo.CheckDCLP == LHPPrimaryScanInfo.NormalTrendCheckDCLP.ScanSelect )
            {
                this.RadioButtonDCLPOr.Checked = true;
            }

            if ( lhpScanUpTrendInfo.NeedDCLP313 == true )
            {
                this.ListBoxDCLPSelect.Items.Remove( "DCLP-313" );
                this.ListBoxDCLP.Items.Add( "DCLP-313" );
            }

            if ( lhpScanUpTrendInfo.NeedDCLP214 == true )
            {
                this.ListBoxDCLPSelect.Items.Remove( "DCLP-214" );
                this.ListBoxDCLP.Items.Add( "DCLP-214" );
            }

            if ( lhpScanUpTrendInfo.NeedDCLP115 == true )
            {
                this.ListBoxDCLPSelect.Items.Remove( "DCLP-115" );
                this.ListBoxDCLP.Items.Add( "DCLP-115" );
            }

            if ( lhpScanUpTrendInfo.NeedDCLP412 == true )
            {
                this.ListBoxDCLPSelect.Items.Remove( "DCLP-412" );
                this.ListBoxDCLP.Items.Add( "DCLP-412" );
            }

            if ( lhpScanUpTrendInfo.NeedDCLP511 == true )
            {
                this.ListBoxDCLPSelect.Items.Remove( "DCLP-511" );
                this.ListBoxDCLP.Items.Add( "DCLP-511" );
            }
            
            

            this.CheckBoxAllowDCHP.Checked = lhpScanUpTrendInfo.AllowCheckDCHP;

            if ( lhpScanUpTrendInfo.CheckDCHP == LHPPrimaryScanInfo.NormalTrendCheckDCHP.ScanAnyOne )
            {
                this.RadioButtonDCHPAnyOne.Checked = true;
            }
            else if ( lhpScanUpTrendInfo.CheckDCHP == LHPPrimaryScanInfo.NormalTrendCheckDCHP.ScanSelect )
            {
                this.RadioButtonDCHPOr.Checked = true;
            }

            if ( lhpScanUpTrendInfo.ExcludeDCHP313 == true )
            {
                this.ListBoxDCHPSelect.Items.Remove( "DCHP-313" );
                this.ListBoxDCHP.Items.Add( "DCHP-313" );
            }

            if ( lhpScanUpTrendInfo.ExcludeDCHP214 == true )
            {
                this.ListBoxDCHPSelect.Items.Remove( "DCHP-214" );
                this.ListBoxDCHP.Items.Add( "DCHP-214" );
            }

            if ( lhpScanUpTrendInfo.ExcludeDCHP115 == true )
            {
                this.ListBoxDCHPSelect.Items.Remove( "DCHP-115" );
                this.ListBoxDCHP.Items.Add( "DCHP-115" );
            }

            if ( lhpScanUpTrendInfo.ExcludeDCHP412 == true )
            {
                this.ListBoxDCHPSelect.Items.Remove( "DCHP-412" );
                this.ListBoxDCHP.Items.Add( "DCHP-412" );
            }

            if ( lhpScanUpTrendInfo.ExcludeDCHP511 == true )
            {
                this.ListBoxDCHPSelect.Items.Remove( "DCHP-511" );
                this.ListBoxDCHP.Items.Add( "DCHP-511" );
            }
        }
        public void SetLHPScanBaseInfo( LHPPrimaryScanInfo.ScanBaseInfo lhpScanBaseInfo )
        {
            //this.CheckBoxAllowPSR.Checked = lhpScanBaseInfo.AllowPSR;

            //if ( lhpScanBaseInfo.ScanType == LHPPrimaryScanInfo.BaseScanType.ScanNew )
            //{
            //    this.RadioButtonScanNew.Checked = true;
            //}
            //else if ( lhpScanBaseInfo.ScanType == LHPPrimaryScanInfo.BaseScanType.ScanAll )
            //{
            //    this.RadioButtonScanAll.Checked = true;
            //}

            //this.NumericUpDownScanSpace.Value = lhpScanBaseInfo.ScanSpace;

            //this.CheckBoxDCHP.Checked = lhpScanBaseInfo.AllowScanDCHP;
            //this.CheckBoxDCHP313.Checked = lhpScanBaseInfo.AllowDCHP313;
            //this.CheckBoxDCHP214.Checked = lhpScanBaseInfo.AllowDCHP214;
            //this.CheckBoxDCHP115.Checked = lhpScanBaseInfo.AllowDCHP115;
            //this.CheckBoxDCHP412.Checked = lhpScanBaseInfo.AllowDCHP412;
            //this.CheckBoxDCHP511.Checked = lhpScanBaseInfo.AllowDCHP511;

            //this.CheckBoxDCLP.Checked = lhpScanBaseInfo.AllowScanDCLP;
            //this.CheckBoxDCLP313.Checked = lhpScanBaseInfo.AllowDCLP313;
            //this.CheckBoxDCLP214.Checked = lhpScanBaseInfo.AllowDCLP214;
            //this.CheckBoxDCLP115.Checked = lhpScanBaseInfo.AllowDCLP115;
            //this.CheckBoxDCLP412.Checked = lhpScanBaseInfo.AllowDCLP412;
            //this.CheckBoxDCLP511.Checked = lhpScanBaseInfo.AllowDCLP511;

            //this.CheckBoxGapUp.Checked = lhpScanBaseInfo.AllowScanGapUp;
            //this.CheckBoxGULK.Checked = lhpScanBaseInfo.AllowGULK;
            //this.CheckBoxGUHK.Checked = lhpScanBaseInfo.AllowGUHK;
            //this.MaskedTextBoxGapUp.Text = lhpScanBaseInfo.GapUpPercentum.ToString( "000.0" );

            //this.CheckBoxGapDown.Checked = lhpScanBaseInfo.AllowScanGapDown;
            //this.CheckBoxGDLK.Checked = lhpScanBaseInfo.AllowGDLK;
            //this.CheckBoxGDHK.Checked = lhpScanBaseInfo.AllowGDHK;
            //this.MaskedTextBoxGapDown.Text = lhpScanBaseInfo.GapDownPercentum.ToString( "000.0" );

            this.ScanControlSub1_Load( this, EventArgs.Empty );
        }
        public void SetLHPScanDownTrendInfo( LHPPrimaryScanInfo.ScanDownTrendInfo lhpScanDownTrendInfo )
        {
            //this.CheckBoxAllowDCDS.Checked = lhpScanDownTrendInfo.AllowScanDownTrend;
            //this.NumericUpDownDownDay.Value = lhpScanDownTrendInfo.ScanContinueDownDate;
            //this.CheckBoxLowPirce.Checked = lhpScanDownTrendInfo.ScanDownTrendNeedLow;

            //this.CheckBoxAllowDCHP.Checked = lhpScanDownTrendInfo.AllowCheckDCHP;

            //if ( lhpScanDownTrendInfo.CheckDCHP == LHPPrimaryScanInfo.NormalTrendCheckDCHP.ScanAnyOne )
            //{
            //    this.RadioButtonDCHPAnyOne.Checked = true;
            //}
            //else if ( lhpScanDownTrendInfo.CheckDCHP == LHPPrimaryScanInfo.NormalTrendCheckDCHP.ScanSelect )
            //{
            //    this.RadioButtonDCHPOr.Checked = true;
            //}

            //if ( lhpScanDownTrendInfo.NeedDCHP313 == true )
            //{
            //    this.ListBoxDCHPSelect.Items.Remove( "DCHP-313" );
            //    this.ListBoxDCHP.Items.Add( "DCHP-313" );
            //}

            //if ( lhpScanDownTrendInfo.NeedDCHP214 == true )
            //{
            //    this.ListBoxDCHPSelect.Items.Remove( "DCHP-214" );
            //    this.ListBoxDCHP.Items.Add( "DCHP-214" );
            //}

            //if ( lhpScanDownTrendInfo.NeedDCHP115 == true )
            //{
            //    this.ListBoxDCHPSelect.Items.Remove( "DCHP-115" );
            //    this.ListBoxDCHP.Items.Add( "DCHP-115" );
            //}

            //if ( lhpScanDownTrendInfo.NeedDCHP412 == true )
            //{
            //    this.ListBoxDCHPSelect.Items.Remove( "DCHP-412" );
            //    this.ListBoxDCHP.Items.Add( "DCHP-412" );
            //}

            //if ( lhpScanDownTrendInfo.NeedDCHP511 == true )
            //{
            //    this.ListBoxDCHPSelect.Items.Remove( "DCHP-511" );
            //    this.ListBoxDCHP.Items.Add( "DCHP-511" );
            //}


            //this.CheckBoxAllowDCLP.Checked = lhpScanDownTrendInfo.AllowCheckDCLP;

            //if ( lhpScanDownTrendInfo.CheckDCLP == LHPPrimaryScanInfo.NormalTrendCheckDCLP.ScanAnyOne )
            //{
            //    this.RadioButtonDCLPAnyOne.Checked = true;
            //}
            //else if ( lhpScanDownTrendInfo.CheckDCLP == LHPPrimaryScanInfo.NormalTrendCheckDCLP.ScanSelect )
            //{
            //    this.RadioButtonDCLPOr.Checked = true;
            //}

            //if ( lhpScanDownTrendInfo.ExcludeDCLP313 == true )
            //{
            //    this.ListBoxDCLPSelect.Items.Remove( "DCLP-313" );
            //    this.ListBoxDCLP.Items.Add( "DCLP-313" );
            //}

            //if ( lhpScanDownTrendInfo.ExcludeDCLP214 == true )
            //{
            //    this.ListBoxDCLPSelect.Items.Remove( "DCLP-214" );
            //    this.ListBoxDCLP.Items.Add( "DCLP-214" );
            //}

            //if ( lhpScanDownTrendInfo.ExcludeDCLP115 == true )
            //{
            //    this.ListBoxDCLPSelect.Items.Remove( "DCLP-115" );
            //    this.ListBoxDCLP.Items.Add( "DCLP-115" );
            //}

            //if ( lhpScanDownTrendInfo.ExcludeDCLP412 == true )
            //{
            //    this.ListBoxDCLPSelect.Items.Remove( "DCLP-412" );
            //    this.ListBoxDCLP.Items.Add( "DCLP-412" );
            //}

            //if ( lhpScanDownTrendInfo.ExcludeDCLP511 == true )
            //{
            //    this.ListBoxDCLPSelect.Items.Remove( "DCLP-511" );
            //    this.ListBoxDCLP.Items.Add( "DCLP-511" );
            //}
        }
 public void SetLHPScanTrendInfo( LHPPrimaryScanInfo.ScanTrendInfo lhpScanTrendInfo )
 {
     //this.NumericUpDownKLineNumber.Value = lhpScanTrendInfo.ScanTrendSpace;
 }
        public static void SaveLHPPrimaryScanInfo( string strConfigFile, LHPPrimaryScanInfo lhpScanInfo )
        {
            if ( lhpScanInfo == null )
                return;

            if ( File.Exists( strConfigFile ) == true )
            {
                File.SetAttributes( strConfigFile, FileAttributes.Archive );
                File.Delete( strConfigFile );
            }

            XElement elementRoot = new XElement( "Demo.Stock", new XAttribute( "Ver", "0.0.1.0" ) );
            {
                XElement elementLHPScanInfo = new XElement( "LHPScanInfo" );
                {
                    XElement elementScanBaseInfo = new XElement( "ScanBaseInfo", new XAttribute( "AllowPSR", lhpScanInfo.m_ScanBaseInfo.AllowPSR.ToString() ) );
                    {
                        elementScanBaseInfo.Add( new XAttribute( "ScanType", ( (int)lhpScanInfo.m_ScanBaseInfo.ScanType ).ToString() ) );
                        elementScanBaseInfo.Add( new XAttribute( "ScanSpace", lhpScanInfo.m_ScanBaseInfo.ScanSpace.ToString() ) );

                        elementScanBaseInfo.Add( new XAttribute( "AllowScanDCHP", lhpScanInfo.m_ScanBaseInfo.AllowScanDCHP.ToString() ) );
                        elementScanBaseInfo.Add( new XAttribute( "AllowDCHP313", lhpScanInfo.m_ScanBaseInfo.AllowDCHP313.ToString() ) );
                        elementScanBaseInfo.Add( new XAttribute( "AllowDCHP214", lhpScanInfo.m_ScanBaseInfo.AllowDCHP214.ToString() ) );
                        elementScanBaseInfo.Add( new XAttribute( "AllowDCHP115", lhpScanInfo.m_ScanBaseInfo.AllowDCHP115.ToString() ) );
                        elementScanBaseInfo.Add( new XAttribute( "AllowDCHP412", lhpScanInfo.m_ScanBaseInfo.AllowDCHP412.ToString() ) );
                        elementScanBaseInfo.Add( new XAttribute( "AllowDCHP511", lhpScanInfo.m_ScanBaseInfo.AllowDCHP511.ToString() ) );

                        elementScanBaseInfo.Add( new XAttribute( "AllowScanDCLP", lhpScanInfo.m_ScanBaseInfo.AllowScanDCLP.ToString() ) );
                        elementScanBaseInfo.Add( new XAttribute( "AllowDCLP313", lhpScanInfo.m_ScanBaseInfo.AllowDCLP313.ToString() ) );
                        elementScanBaseInfo.Add( new XAttribute( "AllowDCLP214", lhpScanInfo.m_ScanBaseInfo.AllowDCLP214.ToString() ) );
                        elementScanBaseInfo.Add( new XAttribute( "AllowDCLP115", lhpScanInfo.m_ScanBaseInfo.AllowDCLP115.ToString() ) );
                        elementScanBaseInfo.Add( new XAttribute( "AllowDCLP412", lhpScanInfo.m_ScanBaseInfo.AllowDCLP412.ToString() ) );
                        elementScanBaseInfo.Add( new XAttribute( "AllowDCLP511", lhpScanInfo.m_ScanBaseInfo.AllowDCLP511.ToString() ) );

                        elementScanBaseInfo.Add( new XAttribute( "AllowScanGapUp", lhpScanInfo.m_ScanBaseInfo.AllowScanGapUp.ToString() ) );
                        elementScanBaseInfo.Add( new XAttribute( "AllowGULK", lhpScanInfo.m_ScanBaseInfo.AllowGULK.ToString() ) );
                        elementScanBaseInfo.Add( new XAttribute( "AllowGUHK", lhpScanInfo.m_ScanBaseInfo.AllowGUHK.ToString() ) );
                        elementScanBaseInfo.Add( new XAttribute( "GapUpPercentum", lhpScanInfo.m_ScanBaseInfo.GapUpPercentum.ToString() ) );

                        elementScanBaseInfo.Add( new XAttribute( "AllowScanGapDown", lhpScanInfo.m_ScanBaseInfo.AllowScanGapDown.ToString() ) );
                        elementScanBaseInfo.Add( new XAttribute( "AllowGDLK", lhpScanInfo.m_ScanBaseInfo.AllowGDLK.ToString() ) );
                        elementScanBaseInfo.Add( new XAttribute( "AllowGDHK", lhpScanInfo.m_ScanBaseInfo.AllowGDHK.ToString() ) );
                        elementScanBaseInfo.Add( new XAttribute( "GapDownPercentum", lhpScanInfo.m_ScanBaseInfo.GapDownPercentum.ToString() ) );
                    }
                    elementLHPScanInfo.Add( elementScanBaseInfo );

                    //XElement elementScanNormalInfo = new XElement( "ScanNormalInfo", new XAttribute( "AllowScanSR", lhpScanInfo.m_ScanNormalInfo.AllowScanSR.ToString() ) );
                    //{
                    //    elementScanNormalInfo.Add( new XAttribute( "ScanDateType", ( (int)lhpScanInfo.m_ScanNormalInfo.ScanDateType ).ToString() ) );
                    //    elementScanNormalInfo.Add( new XAttribute( "ScanDate", lhpScanInfo.m_ScanNormalInfo.ScanDate.ToString() ) );

                    //    XElement elementScanTrendInfo = new XElement( "ScanTrendInfo", new XAttribute( "ScanTrendSpace", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.ScanTrendSpace.ToString() ) );
                    //    {
                    //        XElement elementScanUpTrendInfo = new XElement( "ScanUpTrendInfo", new XAttribute( "AllowScanUpTrend", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.AllowScanUpTrend.ToString() ) );
                    //        {
                    //            elementScanUpTrendInfo.Add( new XAttribute( "ScanContinueUpDate", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.ScanContinueUpDate.ToString() ) );
                    //            elementScanUpTrendInfo.Add( new XAttribute( "ScanUpTrendNeedHigh", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.ScanUpTrendNeedHigh.ToString() ) );
                    //            elementScanUpTrendInfo.Add( new XAttribute( "AllowCheckDCLP", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.AllowCheckDCLP.ToString() ) );
                    //            elementScanUpTrendInfo.Add( new XAttribute( "CheckDCLP", ( (int)lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.CheckDCLP ).ToString() ) );
                    //            elementScanUpTrendInfo.Add( new XAttribute( "NeedDCLP313", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.NeedDCLP313.ToString() ) );
                    //            elementScanUpTrendInfo.Add( new XAttribute( "NeedDCLP214", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.NeedDCLP214.ToString() ) );
                    //            elementScanUpTrendInfo.Add( new XAttribute( "NeedDCLP115", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.NeedDCLP115.ToString() ) );
                    //            elementScanUpTrendInfo.Add( new XAttribute( "NeedDCLP412", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.NeedDCLP412.ToString() ) );
                    //            elementScanUpTrendInfo.Add( new XAttribute( "NeedDCLP511", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.NeedDCLP511.ToString() ) );
                    //            elementScanUpTrendInfo.Add( new XAttribute( "AllowCheckDCHP", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.AllowCheckDCHP.ToString() ) );
                    //            elementScanUpTrendInfo.Add( new XAttribute( "CheckDCHP", ( (int)lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.CheckDCHP ).ToString() ) );
                    //            elementScanUpTrendInfo.Add( new XAttribute( "ExcludeDCHP313", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.ExcludeDCHP313.ToString() ) );
                    //            elementScanUpTrendInfo.Add( new XAttribute( "ExcludeDCHP214", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.ExcludeDCHP214.ToString() ) );
                    //            elementScanUpTrendInfo.Add( new XAttribute( "ExcludeDCHP115", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.ExcludeDCHP115.ToString() ) );
                    //            elementScanUpTrendInfo.Add( new XAttribute( "ExcludeDCHP412", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.ExcludeDCHP412.ToString() ) );
                    //            elementScanUpTrendInfo.Add( new XAttribute( "ExcludeDCHP511", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.ExcludeDCHP511.ToString() ) );
                    //        }
                    //        elementScanTrendInfo.Add( elementScanUpTrendInfo );

                    //        XElement elementScanDownTrendInfo = new XElement( "ScanDownTrendInfo", new XAttribute( "AllowScanDownTrend", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.AllowScanDownTrend.ToString() ) );
                    //        {
                    //            elementScanDownTrendInfo.Add( new XAttribute( "ScanContinueDownDate", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.ScanContinueDownDate.ToString() ) );
                    //            elementScanDownTrendInfo.Add( new XAttribute( "ScanDownTrendNeedLow", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.ScanDownTrendNeedLow.ToString() ) );
                    //            elementScanDownTrendInfo.Add( new XAttribute( "AllowCheckDCHP", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.AllowCheckDCHP.ToString() ) );
                    //            elementScanDownTrendInfo.Add( new XAttribute( "CheckDCHP", ( (int)lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.CheckDCHP ).ToString() ) );
                    //            elementScanDownTrendInfo.Add( new XAttribute( "NeedDCHP313", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.NeedDCHP313.ToString() ) );
                    //            elementScanDownTrendInfo.Add( new XAttribute( "NeedDCHP214", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.NeedDCHP214.ToString() ) );
                    //            elementScanDownTrendInfo.Add( new XAttribute( "NeedDCHP115", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.NeedDCHP115.ToString() ) );
                    //            elementScanDownTrendInfo.Add( new XAttribute( "NeedDCHP412", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.NeedDCHP412.ToString() ) );
                    //            elementScanDownTrendInfo.Add( new XAttribute( "NeedDCHP511", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.NeedDCHP511.ToString() ) );
                    //            elementScanDownTrendInfo.Add( new XAttribute( "AllowCheckDCLP", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.AllowCheckDCLP.ToString() ) );
                    //            elementScanDownTrendInfo.Add( new XAttribute( "CheckDCLP", ( (int)lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.CheckDCLP ).ToString() ) );
                    //            elementScanDownTrendInfo.Add( new XAttribute( "ExcludeDCLP313", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.ExcludeDCLP313.ToString() ) );
                    //            elementScanDownTrendInfo.Add( new XAttribute( "ExcludeDCLP214", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.ExcludeDCLP214.ToString() ) );
                    //            elementScanDownTrendInfo.Add( new XAttribute( "ExcludeDCLP115", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.ExcludeDCLP115.ToString() ) );
                    //            elementScanDownTrendInfo.Add( new XAttribute( "ExcludeDCLP412", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.ExcludeDCLP412.ToString() ) );
                    //            elementScanDownTrendInfo.Add( new XAttribute( "ExcludeDCLP511", lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.ExcludeDCLP511.ToString() ) );
                    //        }
                    //        elementScanTrendInfo.Add( elementScanDownTrendInfo );

                    //    }
                    //    elementScanNormalInfo.Add( elementScanTrendInfo );

                    //}
                    //elementLHPScanInfo.Add( elementScanNormalInfo );

                }
                elementRoot.Add( elementLHPScanInfo );

            }

            XDocument documentConfig = new XDocument( new XDeclaration( "1.0", "utf - 8", "yes" ), elementRoot );
            documentConfig.Save( strConfigFile );
        }
        public static LHPPrimaryScanInfo LoadLHPPrimaryScanInfo( string strConfigFile )
        {
            if ( File.Exists( strConfigFile ) == false )
            {
                if ( strConfigFile == GlobalSetting.LHPScanInfoFilePath )
                    SaveLHPScanInfo( GlobalSetting.LHPScanInfoFilePath, new LHPScanInfo() );
                else
                    return null;
            }

            XDocument documentConfig = XDocument.Load( strConfigFile );
            if ( documentConfig == null )
                return null;

            XElement elementRoot = documentConfig.Element( (XName)"Demo.Stock" );
            if ( elementRoot == null )
                return null;

            XAttribute attributeVer = elementRoot.Attribute( (XName)"Ver" );
            if ( attributeVer == null )
                return null;

            //////////////////////////////////////////////////////////////////////////
            // <Settings>
            XElement elementLHPScanInfo = elementRoot.Element( (XName)"LHPScanInfo" );
            if ( elementLHPScanInfo == null )
                return null;

            LHPPrimaryScanInfo lhpScanInfo = new LHPPrimaryScanInfo();

            XElement elementScanBaseInfo = elementLHPScanInfo.Element( (XName)"ScanBaseInfo" );
            if ( elementScanBaseInfo == null )
                return null;
            else
            {
                XAttribute attributeAllowPSR = elementScanBaseInfo.Attribute( (XName)"AllowPSR" );
                if ( attributeAllowPSR == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowPSR = bool.Parse( attributeAllowPSR.Value );

                XAttribute attributeScanType = elementScanBaseInfo.Attribute( (XName)"ScanType" );
                if ( attributeScanType == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.ScanType = (LHPPrimaryScanInfo.BaseScanType)( int.Parse( attributeScanType.Value ) );

                XAttribute attributeScanSpace = elementScanBaseInfo.Attribute( (XName)"ScanSpace" );
                if ( attributeScanSpace == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.ScanSpace = int.Parse( attributeScanSpace.Value );

                XAttribute attributeAllowScanDCHP = elementScanBaseInfo.Attribute( (XName)"AllowScanDCHP" );
                if ( attributeAllowScanDCHP == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowScanDCHP = bool.Parse( attributeAllowScanDCHP.Value );

                XAttribute attributeAllowDCHP313 = elementScanBaseInfo.Attribute( (XName)"AllowDCHP313" );
                if ( attributeAllowDCHP313 == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowDCHP313 = bool.Parse( attributeAllowDCHP313.Value );

                XAttribute attributeAllowDCHP214 = elementScanBaseInfo.Attribute( (XName)"AllowDCHP214" );
                if ( attributeAllowDCHP214 == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowDCHP214 = bool.Parse( attributeAllowDCHP214.Value );

                XAttribute attributeAllowDCHP115 = elementScanBaseInfo.Attribute( (XName)"AllowDCHP115" );
                if ( attributeAllowDCHP115 == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowDCHP115 = bool.Parse( attributeAllowDCHP115.Value );

                XAttribute attributeAllowDCHP412 = elementScanBaseInfo.Attribute( (XName)"AllowDCHP412" );
                if ( attributeAllowDCHP412 == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowDCHP412 = bool.Parse( attributeAllowDCHP412.Value );

                XAttribute attributeAllowDCHP511 = elementScanBaseInfo.Attribute( (XName)"AllowDCHP511" );
                if ( attributeAllowDCHP511 == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowDCHP511 = bool.Parse( attributeAllowDCHP511.Value );

                XAttribute attributeAllowScanDCLP = elementScanBaseInfo.Attribute( (XName)"AllowScanDCLP" );
                if ( attributeAllowScanDCLP == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowScanDCLP = bool.Parse( attributeAllowScanDCLP.Value );

                XAttribute attributeAllowDCLP313 = elementScanBaseInfo.Attribute( (XName)"AllowDCLP313" );
                if ( attributeAllowDCLP313 == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowDCLP313 = bool.Parse( attributeAllowDCLP313.Value );

                XAttribute attributeAllowDCLP214 = elementScanBaseInfo.Attribute( (XName)"AllowDCLP214" );
                if ( attributeAllowDCLP214 == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowDCLP214 = bool.Parse( attributeAllowDCLP214.Value );

                XAttribute attributeAllowDCLP115 = elementScanBaseInfo.Attribute( (XName)"AllowDCLP115" );
                if ( attributeAllowDCLP115 == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowDCLP115 = bool.Parse( attributeAllowDCLP115.Value );

                XAttribute attributeAllowDCLP412 = elementScanBaseInfo.Attribute( (XName)"AllowDCLP412" );
                if ( attributeAllowDCLP412 == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowDCLP412 = bool.Parse( attributeAllowDCLP412.Value );

                XAttribute attributeAllowDCLP511 = elementScanBaseInfo.Attribute( (XName)"AllowDCLP511" );
                if ( attributeAllowDCLP511 == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowDCLP511 = bool.Parse( attributeAllowDCLP511.Value );

                XAttribute attributeAllowScanGapUp = elementScanBaseInfo.Attribute( (XName)"AllowScanGapUp" );
                if ( attributeAllowScanGapUp == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowScanGapUp = bool.Parse( attributeAllowScanGapUp.Value );

                XAttribute attributeAllowGULK = elementScanBaseInfo.Attribute( (XName)"AllowGULK" );
                if ( attributeAllowGULK == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowGULK = bool.Parse( attributeAllowGULK.Value );

                XAttribute attributeAllowGUHK = elementScanBaseInfo.Attribute( (XName)"AllowGUHK" );
                if ( attributeAllowGUHK == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowGULK = bool.Parse( attributeAllowGUHK.Value );

                XAttribute attributeGapUpPercentum = elementScanBaseInfo.Attribute( (XName)"GapUpPercentum" );
                if ( attributeGapUpPercentum == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.GapUpPercentum = float.Parse( attributeGapUpPercentum.Value );

                XAttribute attributeAllowScanGapDown = elementScanBaseInfo.Attribute( (XName)"AllowScanGapDown" );
                if ( attributeAllowScanGapDown == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowScanGapDown = bool.Parse( attributeAllowScanGapDown.Value );

                XAttribute attributeAllowGDLK = elementScanBaseInfo.Attribute( (XName)"AllowGDLK" );
                if ( attributeAllowGDLK == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowGDLK = bool.Parse( attributeAllowGDLK.Value );

                XAttribute attributeAllowGDHK = elementScanBaseInfo.Attribute( (XName)"AllowGDHK" );
                if ( attributeAllowGDHK == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.AllowGDHK = bool.Parse( attributeAllowGDHK.Value );

                XAttribute attributeGapDownPercentum = elementScanBaseInfo.Attribute( (XName)"GapDownPercentum" );
                if ( attributeGapDownPercentum == null )
                    return null;
                else
                    lhpScanInfo.m_ScanBaseInfo.GapDownPercentum = float.Parse( attributeGapDownPercentum.Value );
            }

            //XElement elementScanNormalInfo = elementLHPScanInfo.Element( (XName)"ScanNormalInfo" );
            //if ( elementScanNormalInfo == null )
            //    return null;
            //else
            //{
            //    XAttribute attributeAllowScanSR = elementScanNormalInfo.Attribute( (XName)"AllowScanSR" );
            //    if ( attributeAllowScanSR == null )
            //        return null;
            //    else
            //        lhpScanInfo.m_ScanNormalInfo.AllowScanSR = bool.Parse( attributeAllowScanSR.Value );

            //    XAttribute attributeScanDateType = elementScanNormalInfo.Attribute( (XName)"ScanDateType" );
            //    if ( attributeScanDateType == null )
            //        return null;
            //    else
            //        lhpScanInfo.m_ScanNormalInfo.ScanDateType = (LHPPrimaryScanInfo.NormalScanDateType)( int.Parse( attributeScanDateType.Value ) );

            //    XAttribute attributeScanDate = elementScanNormalInfo.Attribute( (XName)"ScanDate" );
            //    if ( attributeScanDate == null )
            //        return null;
            //    else
            //        lhpScanInfo.m_ScanNormalInfo.ScanDate = DateTime.Parse( attributeScanDate.Value );

            //    XElement elementScanTrendInfo = elementScanNormalInfo.Element( (XName)"ScanTrendInfo" );
            //    if ( elementScanTrendInfo == null )
            //        return null;
            //    else
            //    {
            //        XAttribute attributeScanTrendSpace = elementScanTrendInfo.Attribute( (XName)"ScanTrendSpace" );
            //        if ( attributeScanTrendSpace == null )
            //            return null;
            //        else
            //            lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.ScanTrendSpace = int.Parse( attributeScanTrendSpace.Value );

            //        XElement elementScanUpTrendInfo = elementScanTrendInfo.Element( (XName)"ScanUpTrendInfo" );
            //        if ( elementScanUpTrendInfo == null )
            //            return null;
            //        else
            //        {
            //            XAttribute attributeScanContinueUpDate = elementScanUpTrendInfo.Attribute( (XName)"ScanContinueUpDate" );
            //            if ( attributeScanContinueUpDate == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.ScanContinueUpDate = int.Parse( attributeScanContinueUpDate.Value );

            //            XAttribute attributeScanUpTrendNeedHigh = elementScanUpTrendInfo.Attribute( (XName)"ScanUpTrendNeedHigh" );
            //            if ( attributeScanUpTrendNeedHigh == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.ScanUpTrendNeedHigh = bool.Parse( attributeScanUpTrendNeedHigh.Value );

            //            XAttribute attributeAllowCheckDCLP = elementScanUpTrendInfo.Attribute( (XName)"AllowCheckDCLP" );
            //            if ( attributeAllowCheckDCLP == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.AllowCheckDCLP = bool.Parse( attributeAllowCheckDCLP.Value );

            //            XAttribute attributeCheckDCLP = elementScanUpTrendInfo.Attribute( (XName)"CheckDCLP" );
            //            if ( attributeCheckDCLP == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.CheckDCLP = (LHPPrimaryScanInfo.NormalTrendCheckDCLP)int.Parse( attributeCheckDCLP.Value );

            //            XAttribute attributeNeedDCLP313 = elementScanUpTrendInfo.Attribute( (XName)"NeedDCLP313" );
            //            if ( attributeNeedDCLP313 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.NeedDCLP313 = bool.Parse( attributeNeedDCLP313.Value );

            //            XAttribute attributeNeedDCLP214 = elementScanUpTrendInfo.Attribute( (XName)"NeedDCLP214" );
            //            if ( attributeNeedDCLP214 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.NeedDCLP214 = bool.Parse( attributeNeedDCLP214.Value );

            //            XAttribute attributeNeedDCLP115 = elementScanUpTrendInfo.Attribute( (XName)"NeedDCLP115" );
            //            if ( attributeNeedDCLP115 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.NeedDCLP115 = bool.Parse( attributeNeedDCLP115.Value );

            //            XAttribute attributeNeedDCLP412 = elementScanUpTrendInfo.Attribute( (XName)"NeedDCLP412" );
            //            if ( attributeNeedDCLP412 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.NeedDCLP412 = bool.Parse( attributeNeedDCLP412.Value );

            //            XAttribute attributeNeedDCLP511 = elementScanUpTrendInfo.Attribute( (XName)"NeedDCLP511" );
            //            if ( attributeNeedDCLP511 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.NeedDCLP511 = bool.Parse( attributeNeedDCLP511.Value );

            //            XAttribute attributeAllowCheckDCHP = elementScanUpTrendInfo.Attribute( (XName)"AllowCheckDCHP" );
            //            if ( attributeAllowCheckDCHP == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.AllowCheckDCHP = bool.Parse( attributeAllowCheckDCHP.Value );

            //            XAttribute attributeCheckDCHP = elementScanUpTrendInfo.Attribute( (XName)"CheckDCHP" );
            //            if ( attributeCheckDCHP == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.CheckDCHP = (LHPPrimaryScanInfo.NormalTrendCheckDCHP)int.Parse( attributeCheckDCHP.Value );

            //            XAttribute attributeExcludeDCHP313 = elementScanUpTrendInfo.Attribute( (XName)"ExcludeDCHP313" );
            //            if ( attributeExcludeDCHP313 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.ExcludeDCHP313 = bool.Parse( attributeExcludeDCHP313.Value );

            //            XAttribute attributeExcludeDCHP214 = elementScanUpTrendInfo.Attribute( (XName)"ExcludeDCHP214" );
            //            if ( attributeExcludeDCHP214 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.ExcludeDCHP214 = bool.Parse( attributeExcludeDCHP214.Value );

            //            XAttribute attributeExcludeDCHP115 = elementScanUpTrendInfo.Attribute( (XName)"ExcludeDCHP115" );
            //            if ( attributeExcludeDCHP115 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.ExcludeDCHP115 = bool.Parse( attributeExcludeDCHP115.Value );

            //            XAttribute attributeExcludeDCHP412 = elementScanUpTrendInfo.Attribute( (XName)"ExcludeDCHP412" );
            //            if ( attributeExcludeDCHP412 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.ExcludeDCHP412 = bool.Parse( attributeExcludeDCHP412.Value );

            //            XAttribute attributeExcludeDCHP511 = elementScanUpTrendInfo.Attribute( (XName)"ExcludeDCHP511" );
            //            if ( attributeExcludeDCHP511 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.UpTrendInfo.ExcludeDCHP511 = bool.Parse( attributeExcludeDCHP511.Value );
            //        }

            //        XElement elementScanDownTrendInfo = elementScanTrendInfo.Element( (XName)"ScanDownTrendInfo" );
            //        if ( elementScanDownTrendInfo == null )
            //            return null;
            //        else
            //        {
            //            XAttribute attributeScanContinueDownDate = elementScanDownTrendInfo.Attribute( (XName)"ScanContinueDownDate" );
            //            if ( attributeScanContinueDownDate == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.ScanContinueDownDate = int.Parse( attributeScanContinueDownDate.Value );

            //            XAttribute attributeScanDownTrendNeedLow = elementScanDownTrendInfo.Attribute( (XName)"ScanDownTrendNeedLow" );
            //            if ( attributeScanDownTrendNeedLow == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.ScanContinueDownDate = int.Parse( attributeScanContinueDownDate.Value );

            //            XAttribute attributeAllowCheckDCHP = elementScanDownTrendInfo.Attribute( (XName)"AllowCheckDCHP" );
            //            if ( attributeAllowCheckDCHP == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.AllowCheckDCHP = bool.Parse( attributeAllowCheckDCHP.Value );

            //            XAttribute attributeCheckDCHP = elementScanDownTrendInfo.Attribute( (XName)"CheckDCHP" );
            //            if ( attributeCheckDCHP == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.CheckDCHP = (LHPPrimaryScanInfo.NormalTrendCheckDCHP)int.Parse( attributeCheckDCHP.Value );

            //            XAttribute attributeNeedDCHP313 = elementScanDownTrendInfo.Attribute( (XName)"NeedDCHP313" );
            //            if ( attributeNeedDCHP313 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.NeedDCHP313 = bool.Parse( attributeNeedDCHP313.Value );

            //            XAttribute attributeNeedDCHP214 = elementScanDownTrendInfo.Attribute( (XName)"NeedDCHP214" );
            //            if ( attributeNeedDCHP214 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.NeedDCHP214 = bool.Parse( attributeNeedDCHP214.Value );

            //            XAttribute attributeNeedDCHP115 = elementScanDownTrendInfo.Attribute( (XName)"NeedDCHP115" );
            //            if ( attributeNeedDCHP115 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.NeedDCHP115 = bool.Parse( attributeNeedDCHP115.Value );

            //            XAttribute attributeNeedDCHP412 = elementScanDownTrendInfo.Attribute( (XName)"NeedDCHP412" );
            //            if ( attributeNeedDCHP412 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.NeedDCHP412 = bool.Parse( attributeNeedDCHP412.Value );

            //            XAttribute attributeNeedDCHP511 = elementScanDownTrendInfo.Attribute( (XName)"NeedDCHP511" );
            //            if ( attributeNeedDCHP511 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.NeedDCHP511 = bool.Parse( attributeNeedDCHP511.Value );

            //            XAttribute attributeAllowCheckDCLP = elementScanDownTrendInfo.Attribute( (XName)"AllowCheckDCLP" );
            //            if ( attributeAllowCheckDCLP == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.AllowCheckDCLP = bool.Parse( attributeAllowCheckDCLP.Value );

            //            XAttribute attributeCheckDCLP = elementScanDownTrendInfo.Attribute( (XName)"CheckDCLP" );
            //            if ( attributeCheckDCLP == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.CheckDCLP = (LHPPrimaryScanInfo.NormalTrendCheckDCLP)int.Parse( attributeCheckDCLP.Value );


            //            XAttribute attributeExcludeDCLP313 = elementScanDownTrendInfo.Attribute( (XName)"ExcludeDCLP313" );
            //            if ( attributeExcludeDCLP313 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.ExcludeDCLP313 = bool.Parse( attributeExcludeDCLP313.Value );

            //            XAttribute attributeExcludeDCLP214 = elementScanDownTrendInfo.Attribute( (XName)"ExcludeDCLP214" );
            //            if ( attributeExcludeDCLP214 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.ExcludeDCLP214 = bool.Parse( attributeExcludeDCLP214.Value );

            //            XAttribute attributeExcludeDCLP115 = elementScanDownTrendInfo.Attribute( (XName)"ExcludeDCLP115" );
            //            if ( attributeExcludeDCLP115 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.ExcludeDCLP115 = bool.Parse( attributeExcludeDCLP115.Value );

            //            XAttribute attributeExcludeDCLP412 = elementScanDownTrendInfo.Attribute( (XName)"ExcludeDCLP412" );
            //            if ( attributeExcludeDCLP412 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.ExcludeDCLP412 = bool.Parse( attributeExcludeDCLP412.Value );

            //            XAttribute attributeExcludeDCLP511 = elementScanDownTrendInfo.Attribute( (XName)"ExcludeDCLP511" );
            //            if ( attributeExcludeDCLP511 == null )
            //                return null;
            //            else
            //                lhpScanInfo.m_ScanNormalInfo.ScanTrendInfo.DownTrendInfo.ExcludeDCLP511 = bool.Parse( attributeExcludeDCLP511.Value );
            //        }
            //    }
            //}

            return lhpScanInfo;
        }
        public static SRReport ScanSRStaticData( StockFileInfo stockFileInfo, LHPPrimaryScanInfo lhpScanInfo )
        {
            MSFL.MSFLPriceRecord[] msflPriceRecordArray = new MSFL.MSFLPriceRecord[0];

            if ( GlobalSetting.TryLoadMsflPriceInfo( stockFileInfo.StockName, stockFileInfo.StockSymbol, stockFileInfo.StockFilePath, out msflPriceRecordArray ) == false )
                return null;

            if (msflPriceRecordArray.Length <= 0)
                return null;

            // 开始获取静态数据
            SRStaticData srStaticData = new SRStaticData();

            // 获取最新的股票数据
            SRStaticData.StockData stockData = new SRStaticData.StockData();
            stockData.StockDate = MSFL.FormatDate( msflPriceRecordArray[msflPriceRecordArray.Length - 1].lDate );
            stockData.StockOpen = MSFL.FormatPrice( msflPriceRecordArray[msflPriceRecordArray.Length - 1].fOpen );
            stockData.StockClose = MSFL.FormatPrice( msflPriceRecordArray[msflPriceRecordArray.Length - 1].fClose );
            stockData.StockHigh = MSFL.FormatPrice( msflPriceRecordArray[msflPriceRecordArray.Length - 1].fHigh );
            stockData.StockLow = MSFL.FormatPrice( msflPriceRecordArray[msflPriceRecordArray.Length - 1].fLow );
            stockData.StockVolume = MSFL.FormatVolume( msflPriceRecordArray[msflPriceRecordArray.Length - 1].fVolume );

            // 初始化静态数据
            srStaticData.StockName = stockFileInfo.StockName;
            srStaticData.StockSymbol = stockFileInfo.StockSymbol;
            srStaticData.LastStock = stockData;

            //Debug.WriteLine( "*********************************************************************************" );
            //Debug.WriteLine( "Stock Name = " + srStaticData.StockName );
            //Debug.WriteLine( "Stock Symbol = " + srStaticData.StockSymbol );
            //Debug.WriteLine( string.Empty );
            //Debug.WriteLine( "---------------------------------------------------------------------------------");
            //Debug.WriteLine( "LastStock = " );
            //Debug.WriteLine( "           Stock Date = " + srStaticData.LastStock.StockDate.ToShortDateString() );
            //Debug.WriteLine( "           Stock Open =  " + srStaticData.LastStock.StockOpen.ToString() );
            //Debug.WriteLine( "           Stock Close =  " + srStaticData.LastStock.StockClose.ToString() );
            //Debug.WriteLine( "           Stock High =  " + srStaticData.LastStock.StockHigh.ToString() );
            //Debug.WriteLine( "           Stock Low =  " + srStaticData.LastStock.StockLow.ToString() );
            //Debug.WriteLine( "           Stock Volume =  " + srStaticData.LastStock.StockVolume.ToString() );
            //Debug.WriteLine( "---------------------------------------------------------------------------------" );
            //Debug.WriteLine( string.Empty );

            int iScanSpace = lhpScanInfo.m_ScanBaseInfo.ScanSpace > 0 ? lhpScanInfo.m_ScanBaseInfo.ScanSpace : int.MaxValue;

            List<SRStaticData.SRStaticInfo> listStaticInfo = new List<SRStaticData.SRStaticInfo>();
            for ( int iIndex = msflPriceRecordArray.Length - 2, iIndexQQQ = 0; iIndex >= 0 && iIndexQQQ < iScanSpace; iIndex--, iIndexQQQ++ )
            {
                MSFL.MSFLPriceRecord msflPriceRecord = msflPriceRecordArray[iIndex];

                DateTime stockDate = MSFL.FormatDate( msflPriceRecord.lDate );
                float fHigh = MSFL.FormatPrice( msflPriceRecord.fHigh );
                float fLow = MSFL.FormatPrice( msflPriceRecord.fLow );
                float fOpen = MSFL.FormatPrice( msflPriceRecord.fOpen );
                float fClose = MSFL.FormatPrice( msflPriceRecord.fClose );
                float fVolume = MSFL.FormatPrice( msflPriceRecord.fVolume );

                SRStaticData.SRStaticInfo staticInfo = new SRStaticData.SRStaticInfo();

                if ( lhpScanInfo.m_ScanBaseInfo.AllowScanGapUp == true && 
                    lhpScanInfo.m_ScanBaseInfo.AllowGULK == true && 
                    GlobalSetting.IsGULK( iIndex, msflPriceRecordArray ) == true )
                {
                    float fHKLow = MSFL.FormatPrice( msflPriceRecordArray[iIndex + 1].fLow );

                    if ( ( ( fHKLow - fHigh ) / fHigh * 100 ) >= lhpScanInfo.m_ScanBaseInfo.GapUpPercentum )
                    {
                        staticInfo.SRPointType |= SRStaticData.SRPointType.GULK;

                        float fEntity = fOpen > fClose ? fOpen : fClose;

                        staticInfo.GapPercentum = ( fLow - fHigh ) / fEntity;
                        staticInfo.StockAverageHigh = MSFL.FormatPrice( fEntity + ( fHigh - fEntity ) / 2 );

                        int iLeftCount = 0;
                        for ( int iIndexLeft = iIndex - 1; iIndexLeft >= 0; iIndexLeft-- )
                        {
                            MSFL.MSFLPriceRecord msflPriceRecordLeft = msflPriceRecordArray[iIndexLeft];

                            float fLeftHigh = MSFL.FormatPrice( msflPriceRecordLeft.fHigh );

                            if ( fLeftHigh < fHigh )
                                iLeftCount++;
                            else
                                break;
                        }

                        int iRightCount = 0;
                        for ( int iIndexRight = iIndex + 1; iIndexRight < msflPriceRecordArray.Length; iIndexRight++ )
                        {
                            MSFL.MSFLPriceRecord msflPriceRecordRight = msflPriceRecordArray[iIndexRight];

                            float fRightHigh = MSFL.FormatPrice( msflPriceRecordRight.fHigh );

                            if ( fRightHigh < fHigh )
                                iRightCount++;
                            else
                                break;
                        }

                        staticInfo.LeftKLineNumber = iLeftCount;
                        staticInfo.RightLineNumber = iRightCount;

                        if ( fHigh > srStaticData.MaxDCHP )
                            srStaticData.MaxDCHP = fHigh;
                    }
                }

                if ( lhpScanInfo.m_ScanBaseInfo.AllowScanGapUp == true &&
                    lhpScanInfo.m_ScanBaseInfo.AllowGUHK == true &&
                    GlobalSetting.IsGUHK( iIndex, msflPriceRecordArray ) == true )
                {
                    float fLKHigh = MSFL.FormatPrice( msflPriceRecordArray[iIndex - 1].fHigh );

                    if ( ( ( fLow - fLKHigh ) / fLKHigh * 100 ) >= lhpScanInfo.m_ScanBaseInfo.GapUpPercentum )
                    {
                        staticInfo.SRPointType |= SRStaticData.SRPointType.GUHK;

                        float fAverageGapVolume = 0;
                        for ( int i2 = iIndex, k = 0; i2 >= 0 && k < 20; i2--, k++ )
                        {
                            float gapVolume = MSFL.FormatVolume( msflPriceRecordArray[i2].fVolume );

                            fAverageGapVolume += gapVolume;
                        }

                        fAverageGapVolume = fAverageGapVolume / 20;
                        staticInfo.GapVolumePercentum = MSFL.FormatVolume( ( ( fVolume - fAverageGapVolume ) / fAverageGapVolume ) * 100 );

                        float fLKOpen = MSFL.FormatPrice( msflPriceRecordArray[iIndex - 1].fOpen );
                        float fLKClose = MSFL.FormatPrice( msflPriceRecordArray[iIndex - 1].fClose );
                        float fLKEntity = fLKOpen > fLKClose ? fLKOpen : fLKClose;

                        float fEntity = fOpen < fClose ? fOpen : fClose;

                        staticInfo.GapPercentum = ( fLow - fLKHigh ) / fLKEntity;
                        staticInfo.GapPriceSpace = MSFL.FormatPrice( ( ( fLow - fLKHigh ) / fLKHigh * 100 ) );
                        staticInfo.StockAverageLow = MSFL.FormatPrice( fLow + ( fEntity - fLow ) / 2 );

                        int iLeftCount = 0;
                        for ( int iIndexLeft = iIndex - 1; iIndexLeft >= 0; iIndexLeft-- )
                        {
                            MSFL.MSFLPriceRecord msflPriceRecordLeft = msflPriceRecordArray[iIndexLeft];

                            float fLeftLow = MSFL.FormatPrice( msflPriceRecordLeft.fLow );

                            if ( fLeftLow > fLow )
                                iLeftCount++;
                            else
                                break;
                        }

                        int iRightCount = 0;
                        for ( int iIndexRight = iIndex + 1; iIndexRight < msflPriceRecordArray.Length; iIndexRight++ )
                        {
                            MSFL.MSFLPriceRecord msflPriceRecordRight = msflPriceRecordArray[iIndexRight];

                            float fRightLow = MSFL.FormatPrice( msflPriceRecordRight.fLow );

                            if ( fRightLow > fLow )
                                iRightCount++;
                            else
                                break;
                        }

                        staticInfo.LeftKLineNumber = iLeftCount;
                        staticInfo.RightLineNumber = iRightCount;

                        if ( fLow < srStaticData.MinDCLP )
                            srStaticData.MinDCLP = fLow;
                    }
                }


                if ( lhpScanInfo.m_ScanBaseInfo.AllowScanGapDown == true &&
                    lhpScanInfo.m_ScanBaseInfo.AllowGDLK == true &&
                    GlobalSetting.IsGDLK( iIndex, msflPriceRecordArray ) == true )
                {
                    float fHKLow = MSFL.FormatPrice( msflPriceRecordArray[iIndex - 1].fLow );

                    if ( ( ( fHKLow - fHigh ) / fHigh * 100 ) >= lhpScanInfo.m_ScanBaseInfo.GapDownPercentum )
                    {
                        staticInfo.SRPointType |= SRStaticData.SRPointType.GDLK;

                        float fAverageGapVolume = 0;
                        for ( int i2 = iIndex, k = 0; i2 >= 0 && k < 20; i2--, k++ )
                        {
                            float gapVolume = MSFL.FormatVolume( msflPriceRecordArray[i2].fVolume );

                            fAverageGapVolume += gapVolume;
                        }

                        fAverageGapVolume = fAverageGapVolume / 20;
                        staticInfo.GapVolumePercentum = MSFL.FormatVolume( ( ( fVolume - fAverageGapVolume ) / fAverageGapVolume ) * 100 );

                        float fHKOpen = MSFL.FormatPrice( msflPriceRecordArray[iIndex - 1].fOpen );
                        float fHKClose = MSFL.FormatPrice( msflPriceRecordArray[iIndex - 1].fClose );
                        float fHKEntity = fHKOpen < fHKClose ? fHKOpen : fHKClose;

                        float fEntity = fOpen > fClose ? fOpen : fClose;

                        staticInfo.GapPercentum = ( fHKLow - fHigh ) / fHKEntity;
                        staticInfo.GapPriceSpace = MSFL.FormatPrice( ( ( fHKLow - fHigh ) / fHigh * 100 ) );
                        staticInfo.StockAverageHigh = MSFL.FormatPrice( fEntity + ( fHigh - fEntity ) / 2 );

                        int iLeftCount = 0;
                        for ( int iIndexLeft = iIndex - 1; iIndexLeft >= 0; iIndexLeft-- )
                        {
                            MSFL.MSFLPriceRecord msflPriceRecordLeft = msflPriceRecordArray[iIndexLeft];

                            float fLeftHigh = MSFL.FormatPrice( msflPriceRecordLeft.fHigh );

                            if ( fLeftHigh < fHigh )
                                iLeftCount++;
                            else
                                break;
                        }

                        int iRightCount = 0;
                        for ( int iIndexRight = iIndex + 1; iIndexRight < msflPriceRecordArray.Length; iIndexRight++ )
                        {
                            MSFL.MSFLPriceRecord msflPriceRecordRight = msflPriceRecordArray[iIndexRight];

                            float fRightHigh = MSFL.FormatPrice( msflPriceRecordRight.fHigh );

                            if ( fRightHigh < fHigh )
                                iRightCount++;
                            else
                                break;
                        }

                        staticInfo.LeftKLineNumber = iLeftCount;
                        staticInfo.RightLineNumber = iRightCount;

                        if ( fHigh > srStaticData.MaxDCHP )
                            srStaticData.MaxDCHP = fHigh;
                    }
                }

                if ( lhpScanInfo.m_ScanBaseInfo.AllowScanGapDown == true &&
                    lhpScanInfo.m_ScanBaseInfo.AllowGDHK == true && 
                    GlobalSetting.IsGDHK( iIndex, msflPriceRecordArray ) == true )
                {
                    float fLKHigh = MSFL.FormatPrice( msflPriceRecordArray[iIndex + 1].fHigh );

                    if ( ( ( fLow - fLKHigh ) / fLKHigh * 100 ) >= lhpScanInfo.m_ScanBaseInfo.GapDownPercentum )
                    {
                        staticInfo.SRPointType |= SRStaticData.SRPointType.GDHK;

                        float fEntity = fOpen < fClose ? fOpen : fClose;

                        staticInfo.GapPercentum = ( fLow - fLKHigh ) / fEntity;
                        staticInfo.StockAverageLow = MSFL.FormatPrice( fLow + ( fEntity - fLow ) / 2 );

                        int iLeftCount = 0;
                        for ( int iIndexLeft = iIndex - 1; iIndexLeft >= 0; iIndexLeft-- )
                        {
                            MSFL.MSFLPriceRecord msflPriceRecordLeft = msflPriceRecordArray[iIndexLeft];

                            float fLeftLow = MSFL.FormatPrice( msflPriceRecordLeft.fLow );

                            if ( fLeftLow > fLow )
                                iLeftCount++;
                            else
                                break;
                        }

                        int iRightCount = 0;
                        for ( int iIndexRight = iIndex + 1; iIndexRight < msflPriceRecordArray.Length; iIndexRight++ )
                        {
                            MSFL.MSFLPriceRecord msflPriceRecordRight = msflPriceRecordArray[iIndexRight];

                            float fRightLow = MSFL.FormatPrice( msflPriceRecordRight.fLow );

                            if ( fRightLow > fLow )
                                iRightCount++;
                            else
                                break;
                        }

                        staticInfo.LeftKLineNumber = iLeftCount;
                        staticInfo.RightLineNumber = iRightCount;

                        if ( fLow < srStaticData.MinDCLP )
                            srStaticData.MinDCLP = fLow;
                    }
                }

                if ( lhpScanInfo.m_ScanBaseInfo.AllowScanDCLP == true &&
                    lhpScanInfo.m_ScanBaseInfo.AllowDCLP313 == true && 
                    GlobalSetting.IsDCLP_313( iIndex, msflPriceRecordArray ) == true )
                {
                    staticInfo.SRPointType = SRStaticData.SRPointType.DCLP;
                    staticInfo.DCPointType = SRStaticData.DCPointType.DC_313;

                    float fEntity = fOpen < fClose ? fOpen : fClose;

                    staticInfo.StockAverageLow = MSFL.FormatPrice( fLow + ( fEntity - fLow ) / 2 );

                    int iLeftCount = 0;
                    for ( int iIndexLeft = iIndex - 1; iIndexLeft >= 0; iIndexLeft-- )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordLeft = msflPriceRecordArray[iIndexLeft];

                        float fLeftLow = MSFL.FormatPrice( msflPriceRecordLeft.fLow );

                        if ( fLeftLow > fLow )
                            iLeftCount++;
                        else
                            break;
                    }

                    int iRightCount = 0;
                    for ( int iIndexRight = iIndex + 1; iIndexRight < msflPriceRecordArray.Length; iIndexRight++ )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordRight = msflPriceRecordArray[iIndexRight];

                        float fRightLow = MSFL.FormatPrice( msflPriceRecordRight.fLow );

                        if ( fRightLow > fLow )
                            iRightCount++;
                        else
                            break;
                    }

                    staticInfo.LeftKLineNumber = iLeftCount;
                    staticInfo.RightLineNumber = iRightCount;

                    if ( fLow < srStaticData.MinDCLP )
                        srStaticData.MinDCLP = fLow;
                }
                else if ( lhpScanInfo.m_ScanBaseInfo.AllowScanDCLP == true &&
                    lhpScanInfo.m_ScanBaseInfo.AllowDCLP214 == true && 
                    GlobalSetting.IsDCLP_214( iIndex, msflPriceRecordArray ) == true )
                {
                    staticInfo.SRPointType |= SRStaticData.SRPointType.DCLP;
                    staticInfo.DCPointType = SRStaticData.DCPointType.DC_214;

                    float fEntity = fOpen < fClose ? fOpen : fClose;

                    staticInfo.StockAverageLow = MSFL.FormatPrice( fLow + ( fEntity - fLow ) / 2 );

                    int iLeftCount = 0;
                    for ( int iIndexLeft = iIndex - 1; iIndexLeft >= 0; iIndexLeft-- )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordLeft = msflPriceRecordArray[iIndexLeft];

                        float fLeftLow = MSFL.FormatPrice( msflPriceRecordLeft.fLow );

                        if ( fLeftLow > fLow )
                            iLeftCount++;
                        else
                            break;
                    }

                    int iRightCount = 0;
                    for ( int iIndexRight = iIndex + 1; iIndexRight < msflPriceRecordArray.Length; iIndexRight++ )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordRight = msflPriceRecordArray[iIndexRight];

                        float fRightLow = MSFL.FormatPrice( msflPriceRecordRight.fLow );

                        if ( fRightLow > fLow )
                            iRightCount++;
                        else
                            break;
                    }

                    staticInfo.LeftKLineNumber = iLeftCount;
                    staticInfo.RightLineNumber = iRightCount;

                    if ( fLow < srStaticData.MinDCLP )
                        srStaticData.MinDCLP = fLow;
                }
                else if ( lhpScanInfo.m_ScanBaseInfo.AllowScanDCLP == true &&
                    lhpScanInfo.m_ScanBaseInfo.AllowDCLP115 == true && 
                    GlobalSetting.IsDCLP_115( iIndex, msflPriceRecordArray ) == true )
                {
                    staticInfo.SRPointType |= SRStaticData.SRPointType.DCLP;
                    staticInfo.DCPointType = SRStaticData.DCPointType.DC_115;

                    float fEntity = fOpen < fClose ? fOpen : fClose;

                    staticInfo.StockAverageLow = MSFL.FormatPrice( fLow + ( fEntity - fLow ) / 2 );

                    int iLeftCount = 0;
                    for ( int iIndexLeft = iIndex - 1; iIndexLeft >= 0; iIndexLeft-- )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordLeft = msflPriceRecordArray[iIndexLeft];

                        float fLeftLow = MSFL.FormatPrice( msflPriceRecordLeft.fLow );

                        if ( fLeftLow > fLow )
                            iLeftCount++;
                        else
                            break;
                    }

                    int iRightCount = 0;
                    for ( int iIndexRight = iIndex + 1; iIndexRight < msflPriceRecordArray.Length; iIndexRight++ )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordRight = msflPriceRecordArray[iIndexRight];

                        float fRightLow = MSFL.FormatPrice( msflPriceRecordRight.fLow );

                        if ( fRightLow > fLow )
                            iRightCount++;
                        else
                            break;
                    }

                    staticInfo.LeftKLineNumber = iLeftCount;
                    staticInfo.RightLineNumber = iRightCount;

                    if ( fLow < srStaticData.MinDCLP )
                        srStaticData.MinDCLP = fLow;
                }
                else if ( lhpScanInfo.m_ScanBaseInfo.AllowScanDCLP == true &&
                    lhpScanInfo.m_ScanBaseInfo.AllowDCLP412 == true && 
                    GlobalSetting.IsDCLP_412( iIndex, msflPriceRecordArray ) == true )
                {
                    staticInfo.SRPointType |= SRStaticData.SRPointType.DCLP;
                    staticInfo.DCPointType = SRStaticData.DCPointType.DC_412;

                    float fEntity = fOpen < fClose ? fOpen : fClose;

                    staticInfo.StockAverageLow = MSFL.FormatPrice( fLow + ( fEntity - fLow ) / 2 );

                    int iLeftCount = 0;
                    for ( int iIndexLeft = iIndex - 1; iIndexLeft >= 0; iIndexLeft-- )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordLeft = msflPriceRecordArray[iIndexLeft];

                        float fLeftLow = MSFL.FormatPrice( msflPriceRecordLeft.fLow );

                        if ( fLeftLow > fLow )
                            iLeftCount++;
                        else
                            break;
                    }

                    int iRightCount = 0;
                    for ( int iIndexRight = iIndex + 1; iIndexRight < msflPriceRecordArray.Length; iIndexRight++ )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordRight = msflPriceRecordArray[iIndexRight];

                        float fRightLow = MSFL.FormatPrice( msflPriceRecordRight.fLow );

                        if ( fRightLow > fLow )
                            iRightCount++;
                        else
                            break;
                    }

                    staticInfo.LeftKLineNumber = iLeftCount;
                    staticInfo.RightLineNumber = iRightCount;

                    if ( fLow < srStaticData.MinDCLP )
                        srStaticData.MinDCLP = fLow;
                }
                else if ( lhpScanInfo.m_ScanBaseInfo.AllowScanDCLP == true &&
                    lhpScanInfo.m_ScanBaseInfo.AllowDCLP511 == true && 
                    GlobalSetting.IsDCLP_511( iIndex, msflPriceRecordArray ) == true )
                {
                    staticInfo.SRPointType |= SRStaticData.SRPointType.DCLP;
                    staticInfo.DCPointType = SRStaticData.DCPointType.DC_511;

                    float fEntity = fOpen < fClose ? fOpen : fClose;

                    staticInfo.StockAverageLow = MSFL.FormatPrice( fLow + ( fEntity - fLow ) / 2 );

                    int iLeftCount = 0;
                    for ( int iIndexLeft = iIndex - 1; iIndexLeft >= 0; iIndexLeft-- )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordLeft = msflPriceRecordArray[iIndexLeft];

                        float fLeftLow = MSFL.FormatPrice( msflPriceRecordLeft.fLow );

                        if ( fLeftLow > fLow )
                            iLeftCount++;
                        else
                            break;
                    }

                    int iRightCount = 0;
                    for ( int iIndexRight = iIndex + 1; iIndexRight < msflPriceRecordArray.Length; iIndexRight++ )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordRight = msflPriceRecordArray[iIndexRight];

                        float fRightLow = MSFL.FormatPrice( msflPriceRecordRight.fLow );

                        if ( fRightLow > fLow )
                            iRightCount++;
                        else
                            break;
                    }

                    staticInfo.LeftKLineNumber = iLeftCount;
                    staticInfo.RightLineNumber = iRightCount;

                    if ( fLow < srStaticData.MinDCLP )
                        srStaticData.MinDCLP = fLow;
                }

                if ( lhpScanInfo.m_ScanBaseInfo.AllowScanDCHP == true &&
                    lhpScanInfo.m_ScanBaseInfo.AllowDCHP313 == true && 
                    GlobalSetting.IsDCHP_313( iIndex, msflPriceRecordArray ) == true )
                {
                    staticInfo.SRPointType |= SRStaticData.SRPointType.DCHP;
                    staticInfo.DCPointType = SRStaticData.DCPointType.DC_313;

                    float fEntity = fOpen > fClose ? fOpen : fClose;

                    staticInfo.StockAverageHigh = MSFL.FormatPrice( fEntity + ( fHigh - fEntity ) / 2 );

                    int iLeftCount = 0;
                    for ( int iIndexLeft = iIndex - 1; iIndexLeft >= 0; iIndexLeft-- )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordLeft = msflPriceRecordArray[iIndexLeft];

                        float fLeftHigh = MSFL.FormatPrice( msflPriceRecordLeft.fHigh );

                        if ( fLeftHigh < fHigh )
                            iLeftCount++;
                        else
                            break;
                    }

                    int iRightCount = 0;
                    for ( int iIndexRight = iIndex + 1; iIndexRight < msflPriceRecordArray.Length; iIndexRight++ )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordRight = msflPriceRecordArray[iIndexRight];

                        float fRightHigh = MSFL.FormatPrice( msflPriceRecordRight.fHigh );

                        if ( fRightHigh < fHigh )
                            iRightCount++;
                        else
                            break;
                    }

                    staticInfo.LeftKLineNumber = iLeftCount;
                    staticInfo.RightLineNumber = iRightCount;

                    if ( fHigh > srStaticData.MaxDCHP )
                        srStaticData.MaxDCHP = fHigh;
                }
                else if ( lhpScanInfo.m_ScanBaseInfo.AllowScanDCHP == true &&
                    lhpScanInfo.m_ScanBaseInfo.AllowDCHP214 == true && 
                    GlobalSetting.IsDCHP_214( iIndex, msflPriceRecordArray ) == true )
                {
                    staticInfo.SRPointType |= SRStaticData.SRPointType.DCHP;
                    staticInfo.DCPointType = SRStaticData.DCPointType.DC_214;

                    float fEntity = fOpen > fClose ? fOpen : fClose;

                    staticInfo.StockAverageHigh = MSFL.FormatPrice( fEntity + ( fHigh - fEntity ) / 2 );

                    int iLeftCount = 0;
                    for ( int iIndexLeft = iIndex - 1; iIndexLeft >= 0; iIndexLeft-- )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordLeft = msflPriceRecordArray[iIndexLeft];

                        float fLeftHigh = MSFL.FormatPrice( msflPriceRecordLeft.fHigh );

                        if ( fLeftHigh < fHigh )
                            iLeftCount++;
                        else
                            break;
                    }

                    int iRightCount = 0;
                    for ( int iIndexRight = iIndex + 1; iIndexRight < msflPriceRecordArray.Length; iIndexRight++ )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordRight = msflPriceRecordArray[iIndexRight];

                        float fRightHigh = MSFL.FormatPrice( msflPriceRecordRight.fHigh );

                        if ( fRightHigh < fHigh )
                            iRightCount++;
                        else
                            break;
                    }

                    staticInfo.LeftKLineNumber = iLeftCount;
                    staticInfo.RightLineNumber = iRightCount;

                    if ( fHigh > srStaticData.MaxDCHP )
                        srStaticData.MaxDCHP = fHigh;
                }
                else if ( lhpScanInfo.m_ScanBaseInfo.AllowScanDCHP == true &&
                    lhpScanInfo.m_ScanBaseInfo.AllowDCHP115 == true && 
                    GlobalSetting.IsDCHP_115( iIndex, msflPriceRecordArray ) == true )
                {
                    staticInfo.SRPointType |= SRStaticData.SRPointType.DCHP;
                    staticInfo.DCPointType = SRStaticData.DCPointType.DC_115;

                    float fEntity = fOpen > fClose ? fOpen : fClose;

                    staticInfo.StockAverageHigh = MSFL.FormatPrice( fEntity + ( fHigh - fEntity ) / 2 );

                    int iLeftCount = 0;
                    for ( int iIndexLeft = iIndex - 1; iIndexLeft >= 0; iIndexLeft-- )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordLeft = msflPriceRecordArray[iIndexLeft];

                        float fLeftHigh = MSFL.FormatPrice( msflPriceRecordLeft.fHigh );

                        if ( fLeftHigh < fHigh )
                            iLeftCount++;
                        else
                            break;
                    }

                    int iRightCount = 0;
                    for ( int iIndexRight = iIndex + 1; iIndexRight < msflPriceRecordArray.Length; iIndexRight++ )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordRight = msflPriceRecordArray[iIndexRight];

                        float fRightHigh = MSFL.FormatPrice( msflPriceRecordRight.fHigh );

                        if ( fRightHigh < fHigh )
                            iRightCount++;
                        else
                            break;
                    }

                    staticInfo.LeftKLineNumber = iLeftCount;
                    staticInfo.RightLineNumber = iRightCount;

                    if ( fHigh > srStaticData.MaxDCHP )
                        srStaticData.MaxDCHP = fHigh;
                }
                else if ( lhpScanInfo.m_ScanBaseInfo.AllowScanDCHP == true &&
                    lhpScanInfo.m_ScanBaseInfo.AllowDCHP412 == true && 
                    GlobalSetting.IsDCHP_412( iIndex, msflPriceRecordArray ) == true )
                {
                    staticInfo.SRPointType |= SRStaticData.SRPointType.DCHP;
                    staticInfo.DCPointType = SRStaticData.DCPointType.DC_412;

                    float fEntity = fOpen > fClose ? fOpen : fClose;

                    staticInfo.StockAverageHigh = MSFL.FormatPrice( fEntity + ( fHigh - fEntity ) / 2 );

                    int iLeftCount = 0;
                    for ( int iIndexLeft = iIndex - 1; iIndexLeft >= 0; iIndexLeft-- )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordLeft = msflPriceRecordArray[iIndexLeft];

                        float fLeftHigh = MSFL.FormatPrice( msflPriceRecordLeft.fHigh );

                        if ( fLeftHigh < fHigh )
                            iLeftCount++;
                        else
                            break;
                    }

                    int iRightCount = 0;
                    for ( int iIndexRight = iIndex + 1; iIndexRight < msflPriceRecordArray.Length; iIndexRight++ )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordRight = msflPriceRecordArray[iIndexRight];

                        float fRightHigh = MSFL.FormatPrice( msflPriceRecordRight.fHigh );

                        if ( fRightHigh < fHigh )
                            iRightCount++;
                        else
                            break;
                    }

                    staticInfo.LeftKLineNumber = iLeftCount;
                    staticInfo.RightLineNumber = iRightCount;

                    if ( fHigh > srStaticData.MaxDCHP )
                        srStaticData.MaxDCHP = fHigh;
                }
                else if ( lhpScanInfo.m_ScanBaseInfo.AllowScanDCHP == true &&
                    lhpScanInfo.m_ScanBaseInfo.AllowDCHP511 == true && 
                    GlobalSetting.IsDCHP_511( iIndex, msflPriceRecordArray ) == true )
                {
                    staticInfo.SRPointType |= SRStaticData.SRPointType.DCHP;
                    staticInfo.DCPointType = SRStaticData.DCPointType.DC_511;

                    float fEntity = fOpen > fClose ? fOpen : fClose;

                    staticInfo.StockAverageHigh = MSFL.FormatPrice( fEntity + ( fHigh - fEntity ) / 2 );

                    int iLeftCount = 0;
                    for ( int iIndexLeft = iIndex - 1; iIndexLeft >= 0; iIndexLeft-- )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordLeft = msflPriceRecordArray[iIndexLeft];

                        float fLeftHigh = MSFL.FormatPrice( msflPriceRecordLeft.fHigh );

                        if ( fLeftHigh < fHigh )
                            iLeftCount++;
                        else
                            break;
                    }

                    int iRightCount = 0;
                    for ( int iIndexRight = iIndex + 1; iIndexRight < msflPriceRecordArray.Length; iIndexRight++ )
                    {
                        MSFL.MSFLPriceRecord msflPriceRecordRight = msflPriceRecordArray[iIndexRight];

                        float fRightHigh = MSFL.FormatPrice( msflPriceRecordRight.fHigh );

                        if ( fRightHigh < fHigh )
                            iRightCount++;
                        else
                            break;
                    }

                    staticInfo.LeftKLineNumber = iLeftCount;
                    staticInfo.RightLineNumber = iRightCount;

                    if ( fHigh > srStaticData.MaxDCHP )
                        srStaticData.MaxDCHP = fHigh;
                }

                if ( staticInfo.SRPointType == SRStaticData.SRPointType.None )
                    continue;

                SRStaticData.StockData stockDataX = new SRStaticData.StockData();
                stockDataX.StockDate = MSFL.FormatDate( msflPriceRecord.lDate );
                stockDataX.StockOpen = MSFL.FormatPrice( msflPriceRecord.fOpen );
                stockDataX.StockHigh = MSFL.FormatPrice( msflPriceRecord.fHigh );
                stockDataX.StockLow = MSFL.FormatPrice( msflPriceRecord.fLow );
                stockDataX.StockClose = MSFL.FormatPrice( msflPriceRecord.fClose );
                stockDataX.StockVolume = MSFL.FormatVolume( msflPriceRecord.fVolume );

                staticInfo.StockData = stockDataX;

                listStaticInfo.Add( staticInfo );
            }
            srStaticData.srStaticInfoArray = listStaticInfo.ToArray();

            List<SRStaticData.SRTrendInfo> listTrendInfo = new List<SRStaticData.SRTrendInfo>();
            for ( int iIndex = 0; iIndex < ( srStaticData.srStaticInfoArray.Length - 1 ); iIndex++ )
            {
                SRStaticData.SRStaticInfo srStaticInfoA = srStaticData.srStaticInfoArray[iIndex];

                for ( int iIndex2 = iIndex + 1; iIndex2 < srStaticData.srStaticInfoArray.Length; iIndex2++ )
                {
                    SRStaticData.SRStaticInfo srStaticInfoB = srStaticData.srStaticInfoArray[iIndex2];

                    if ( srStaticInfoA.StockData.StockDate <= srStaticInfoB.StockData.StockDate )
                        continue;

                    if ( ( (srStaticInfoA.SRPointType & SRStaticData.SRPointType.DCHP) == SRStaticData.SRPointType.DCHP ||
                        ( srStaticInfoA.SRPointType & SRStaticData.SRPointType.GULK ) == SRStaticData.SRPointType.GULK ||
                        ( srStaticInfoA.SRPointType & SRStaticData.SRPointType.GDLK ) == SRStaticData.SRPointType.GDLK )

                        &&

                        ( ( srStaticInfoB.SRPointType & SRStaticData.SRPointType.DCHP ) == SRStaticData.SRPointType.DCHP ||
                        ( srStaticInfoB.SRPointType & SRStaticData.SRPointType.GULK ) == SRStaticData.SRPointType.GULK ||
                        ( srStaticInfoB.SRPointType & SRStaticData.SRPointType.GDLK ) == SRStaticData.SRPointType.GDLK ) )
                    {
                        if ( srStaticInfoA.StockData.StockHigh < srStaticInfoB.StockData.StockHigh )
                        {
                            SRStaticData.SRTrendInfo srTrendInfo = new SRStaticData.SRTrendInfo();
                            srTrendInfo.SRStaticInfoA = srStaticInfoA;
                            srTrendInfo.SRStaticInfoB = srStaticInfoB;
                            srTrendInfo.TrendInfo = SRStaticData.TrendType.Down;
                            srTrendInfo.GUID = Guid.NewGuid().ToString(); // 

                            listTrendInfo.Add( srTrendInfo );
                        }
                    }
                    else if ( ( ( srStaticInfoA.SRPointType & SRStaticData.SRPointType.DCLP ) == SRStaticData.SRPointType.DCLP ||
                        ( srStaticInfoA.SRPointType & SRStaticData.SRPointType.GUHK ) == SRStaticData.SRPointType.GUHK ||
                        ( srStaticInfoA.SRPointType & SRStaticData.SRPointType.GDHK ) == SRStaticData.SRPointType.GDHK )
                        
                        &&
                        ( ( srStaticInfoB.SRPointType & SRStaticData.SRPointType.DCLP ) == SRStaticData.SRPointType.DCLP ||
                        ( srStaticInfoB.SRPointType & SRStaticData.SRPointType.GUHK ) == SRStaticData.SRPointType.GUHK ||
                        ( srStaticInfoB.SRPointType & SRStaticData.SRPointType.GDHK ) == SRStaticData.SRPointType.GDHK ) )
                    {
                        if ( srStaticInfoA.StockData.StockLow > srStaticInfoB.StockData.StockLow )
                        {
                            SRStaticData.SRTrendInfo srTrendInfo = new SRStaticData.SRTrendInfo();
                            srTrendInfo.SRStaticInfoA = srStaticInfoA;
                            srTrendInfo.SRStaticInfoB = srStaticInfoB;
                            srTrendInfo.TrendInfo = SRStaticData.TrendType.Up;
                            srTrendInfo.GUID = Guid.NewGuid().ToString(); // 

                            listTrendInfo.Add( srTrendInfo );
                        }
                    }
                    else
                        break;
                }
            }
            srStaticData.srTrendInfoArray = listTrendInfo.ToArray();

            SetStaticRelativelyNumber( srStaticData );
            SetTrendRelativelyNumber( srStaticData );

            // 开始计算动态值
            SRDynamicData srDynamicData = new SRDynamicData();

            // 初始化动态值
            srDynamicData.StockName = stockFileInfo.StockName;
            srDynamicData.StockSymbol = stockFileInfo.StockSymbol;

            for ( int i = ( msflPriceRecordArray.Length - 1 ); i >= 0; i-- )
            {
                MSFL.MSFLPriceRecord msflPriceRecord = msflPriceRecordArray[i];

                DateTime stockDate = MSFL.FormatDate( msflPriceRecord.lDate );

                if ( lhpScanInfo.m_ScanNormalInfo.ScanDate >= stockDate )
                {
                    SRDynamicData.StockData stockDataCurrent = new SRDynamicData.StockData();
                    stockDataCurrent.StockDate = stockDate;
                    stockDataCurrent.StockOpen = MSFL.FormatPrice( msflPriceRecord.fOpen );
                    stockDataCurrent.StockHigh = MSFL.FormatPrice( msflPriceRecord.fHigh );
                    stockDataCurrent.StockLow = MSFL.FormatPrice( msflPriceRecord.fLow );
                    stockDataCurrent.StockClose = MSFL.FormatPrice( msflPriceRecord.fClose );
                    stockDataCurrent.StockVolume = MSFL.FormatVolume( msflPriceRecord.fVolume );

                    // 初始化动态值当前的股票
                    srDynamicData.CurrentStock = stockDataCurrent;

                    srDynamicData.StockCPF = MSFL.FormatPrice( stockDataCurrent.StockHigh - stockDataCurrent.StockLow );
                    srDynamicData.StockCRPF = MSFL.FormatPrice( srDynamicData.StockCPF / stockDataCurrent.StockClose );

                    if ( i > 1 )
                    {
                        float fPerClose = MSFL.FormatPrice( msflPriceRecordArray[i - 1].fClose );

                        if ( fPerClose < stockDataCurrent.StockClose )
                        {
                            srDynamicData.PriceFloat = MSFL.FormatPrice( ( stockDataCurrent.StockClose - fPerClose ) / stockDataCurrent.StockClose );
                        }
                        else if ( fPerClose > stockDataCurrent.StockClose )
                        {
                            srDynamicData.PriceFloat = MSFL.FormatPrice( -( ( fPerClose - stockDataCurrent.StockClose ) / stockDataCurrent.StockClose ) );
                        }
                        else
                            srDynamicData.PriceFloat = 0F;
                    }

                    float fAverageAPF = 0;
                    float fAverageARPF = 0;
                    for ( int i2 = i, k = 0; i2 >= 0 && k < 20; i2--, k++ )
                    {
                        float fHigh = MSFL.FormatPrice( msflPriceRecordArray[i2].fHigh );
                        float fLow = MSFL.FormatPrice( msflPriceRecordArray[i2].fLow );
                        float fClose = MSFL.FormatPrice( msflPriceRecordArray[i2].fClose );

                        fAverageAPF += ( fHigh + fLow );
                        fAverageARPF += fAverageAPF / fClose;
                    }

                    srDynamicData.StockAPF = MSFL.FormatPrice( fAverageAPF / 20 );
                    srDynamicData.StockARPF = MSFL.FormatPrice( fAverageARPF / 20 );

                    List<SRDynamicData.TrendData> listTrendData = new List<SRDynamicData.TrendData>();
                    for ( int iIndex = 0; iIndex < ( srStaticData.srTrendInfoArray.Length - 1 ); iIndex++ )
                    {
                        SRStaticData.SRTrendInfo srSRTrendInfo = srStaticData.srTrendInfoArray[iIndex];

                        SRDynamicData.TrendData trendData = new SRDynamicData.TrendData();
                        trendData.GUID = srSRTrendInfo.GUID;
                        trendData.SRTrendInfo = srSRTrendInfo;
                        trendData.CSR = 0;

                        if ( srSRTrendInfo.SRStaticInfoA.StockData.StockDate >= stockDataCurrent.StockDate || srSRTrendInfo.SRStaticInfoB.StockData.StockDate >= stockDataCurrent.StockDate )
                            break;

                        int iNumMin = 0;
                        int iNumMax = 0;

                        int iNum = 1;
                        for ( int i6 = i; i6 >= 0; i6-- )
                        {
                            MSFL.MSFLPriceRecord msflPriceRecordX = msflPriceRecordArray[i6];

                            DateTime stockDateX = MSFL.FormatDate( msflPriceRecordX.lDate );

                            if ( stockDateX == srSRTrendInfo.SRStaticInfoA.StockData.StockDate )
                                iNumMin = iNum;

                            if ( stockDateX == srSRTrendInfo.SRStaticInfoB.StockData.StockDate )
                                iNumMax = iNum;

                            iNum++;
                        }
                        
                        if (srSRTrendInfo.TrendInfo == SRStaticData.TrendType.Down )
                        {
                            float G = ( srSRTrendInfo.SRStaticInfoA.StockData.StockHigh - srSRTrendInfo.SRStaticInfoB.StockData.StockHigh ) / ( iNumMax - iNumMin );
                            float DTLP = srSRTrendInfo.SRStaticInfoA.StockData.StockHigh - G * ( iNumMax - 1 );
                            trendData.CSR = MSFL.FormatPrice( DTLP );
                        }
                        else if (srSRTrendInfo.TrendInfo == SRStaticData.TrendType.Up)
                        {
                            float G = ( srSRTrendInfo.SRStaticInfoA.StockData.StockLow - srSRTrendInfo.SRStaticInfoB.StockData.StockLow ) / ( iNumMax - iNumMin );
                            float DTLP = srSRTrendInfo.SRStaticInfoA.StockData.StockLow - G * ( iNumMax - 1 );
                            trendData.CSR = MSFL.FormatPrice( DTLP );
                        }
                        else
                            break;

                        listTrendData.Add( trendData );
                    }
                    srDynamicData.srTrendDataArray = listTrendData.ToArray();

                    break;
                }
            }

            float fSRCK_R = float.MaxValue;
            float fSRCK_S = float.MinValue;
            for ( int iA = 0; iA < srStaticData.srStaticInfoArray.Length; iA++ )
            {
                SRStaticData.SRStaticInfo SRStaticInfo = srStaticData.srStaticInfoArray[iA];

                if ( ( SRStaticInfo.SRPointType & SRStaticData.SRPointType.DCHP ) == SRStaticData.SRPointType.DCHP )
                {
                    if ( SRStaticInfo.StockAverageHigh > srDynamicData.CurrentStock.StockClose )
                    {
                        if ( SRStaticInfo.StockAverageHigh < fSRCK_R )
                            fSRCK_R = SRStaticInfo.StockAverageHigh;
                    }
                    else if ( SRStaticInfo.StockAverageHigh < srDynamicData.CurrentStock.StockClose )
                    {
                        if ( SRStaticInfo.StockAverageHigh > fSRCK_S )
                            fSRCK_S = SRStaticInfo.StockAverageHigh;
                    }
                }

                if ( ( SRStaticInfo.SRPointType & SRStaticData.SRPointType.DCLP ) == SRStaticData.SRPointType.DCLP )
                {
                    if ( SRStaticInfo.StockAverageLow > srDynamicData.CurrentStock.StockClose )
                    {
                        if ( SRStaticInfo.StockAverageLow < fSRCK_R )
                            fSRCK_R = SRStaticInfo.StockAverageLow;
                    }
                    else if ( SRStaticInfo.StockAverageLow < srDynamicData.CurrentStock.StockClose )
                    {
                        if ( SRStaticInfo.StockAverageLow > fSRCK_S )
                            fSRCK_S = SRStaticInfo.StockAverageLow;
                    }
                }

                if ( ( SRStaticInfo.SRPointType & SRStaticData.SRPointType.GDHK ) == SRStaticData.SRPointType.GDHK )
                {
                    if ( SRStaticInfo.StockAverageLow > srDynamicData.CurrentStock.StockClose )
                    {
                        if ( SRStaticInfo.StockAverageLow < fSRCK_R )
                            fSRCK_R = SRStaticInfo.StockAverageLow;
                    }
                    else if ( SRStaticInfo.StockAverageLow < srDynamicData.CurrentStock.StockClose )
                    {
                        if ( SRStaticInfo.StockAverageLow > fSRCK_S )
                            fSRCK_S = SRStaticInfo.StockAverageLow;
                    }
                }

                if ( ( SRStaticInfo.SRPointType & SRStaticData.SRPointType.GDLK ) == SRStaticData.SRPointType.GDLK )
                {
                    if ( SRStaticInfo.StockAverageHigh > srDynamicData.CurrentStock.StockClose )
                    {
                        if ( SRStaticInfo.StockAverageHigh < fSRCK_R )
                            fSRCK_R = SRStaticInfo.StockAverageHigh;
                    }
                    else if ( SRStaticInfo.StockAverageHigh < srDynamicData.CurrentStock.StockClose )
                    {
                        if ( SRStaticInfo.StockAverageHigh > fSRCK_S )
                            fSRCK_S = SRStaticInfo.StockAverageHigh;
                    }
                }

                if ( ( SRStaticInfo.SRPointType & SRStaticData.SRPointType.GUHK ) == SRStaticData.SRPointType.GUHK )
                {
                    if ( SRStaticInfo.StockAverageLow > srDynamicData.CurrentStock.StockClose )
                    {
                        if ( SRStaticInfo.StockAverageLow < fSRCK_R )
                            fSRCK_R = SRStaticInfo.StockAverageLow;
                    }
                    else if ( SRStaticInfo.StockAverageLow < srDynamicData.CurrentStock.StockClose )
                    {
                        if ( SRStaticInfo.StockAverageLow > fSRCK_S )
                            fSRCK_S = SRStaticInfo.StockAverageLow;
                    }
                }

                if ( ( SRStaticInfo.SRPointType & SRStaticData.SRPointType.GULK ) == SRStaticData.SRPointType.GULK )
                {
                    if ( SRStaticInfo.StockAverageHigh > srDynamicData.CurrentStock.StockClose )
                    {
                        if ( SRStaticInfo.StockAverageHigh < fSRCK_R )
                            fSRCK_R = SRStaticInfo.StockAverageHigh;
                    }
                    else if ( SRStaticInfo.StockAverageHigh < srDynamicData.CurrentStock.StockClose )
                    {
                        if ( SRStaticInfo.StockAverageHigh > fSRCK_S )
                            fSRCK_S = SRStaticInfo.StockAverageHigh;
                    }
                }
            }

            if ( fSRCK_R != float.MaxValue )
            {
                MessageBox.Show( fSRCK_R.ToString() );
                srDynamicData.StaticSRCK_R = MSFL.FormatPrice( ( ( fSRCK_R - srDynamicData.CurrentStock.StockClose ) / srDynamicData.CurrentStock.StockClose ) * 100 );
                srDynamicData.StaticSRCK_RV = MSFL.FormatPrice( fSRCK_R );
            }
            if ( fSRCK_S != float.MinValue )
            {
                srDynamicData.StaticSRCK_S = MSFL.FormatPrice( ( ( srDynamicData.CurrentStock.StockClose - fSRCK_S ) / srDynamicData.CurrentStock.StockClose ) * 100 );
                srDynamicData.StaticSRCK_SV = MSFL.FormatPrice( fSRCK_S );
            }

            fSRCK_R = float.MaxValue;
            fSRCK_S = float.MinValue;
            for ( int i2 = 0; i2 < srDynamicData.srTrendDataArray.Length; i2++ )
            {
                SRDynamicData.TrendData trendData = srDynamicData.srTrendDataArray[i2];

                if ( trendData.CSR > srDynamicData.CurrentStock.StockClose )
                {
                    if ( trendData.CSR < fSRCK_R )
                        fSRCK_R = trendData.CSR;
                }
                else if ( trendData.CSR < srDynamicData.CurrentStock.StockClose )
                {
                    if ( trendData.CSR > fSRCK_S )
                        fSRCK_S = trendData.CSR;
                }
            }

            if ( fSRCK_R != float.MaxValue )
            {
                srDynamicData.DynamicSRCK_R = MSFL.FormatPrice( ( ( fSRCK_R - srDynamicData.CurrentStock.StockClose ) / srDynamicData.CurrentStock.StockClose ) * 100 );
                srDynamicData.DynamicSRCK_RV = MSFL.FormatPrice( fSRCK_R );
            }

            if ( fSRCK_S != float.MinValue )
            {
                srDynamicData.DynamicSRCK_S = MSFL.FormatPrice( ( ( srDynamicData.CurrentStock.StockClose - fSRCK_S ) / srDynamicData.CurrentStock.StockClose ) * 100 );
                srDynamicData.DynamicSRCK_SV = MSFL.FormatPrice( fSRCK_S );
            }

            SRReport srReport = new SRReport();
            srReport.SRStaticData = srStaticData;
            srReport.SRDynamicData = srDynamicData;

            return srReport;
        }