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; }