This commit is contained in:
kyh
2022-06-21 09:44:24 +09:00
17 changed files with 547 additions and 31 deletions

View File

@@ -30,37 +30,390 @@ namespace Million_Hunter.HunterSubForm
private void InitializeComponent()
{
this.panelControl_IndicatorCondition = new DevExpress.XtraEditors.PanelControl();
this.groupBox_ = new System.Windows.Forms.GroupBox();
this.groupBox9 = new System.Windows.Forms.GroupBox();
this.textEdit_SellRegularExpression = new DevExpress.XtraEditors.TextEdit();
this.groupBox8 = new System.Windows.Forms.GroupBox();
this.textEdit_BuyRegularExpression = new DevExpress.XtraEditors.TextEdit();
this.textEdit_SavedDateTime = new DevExpress.XtraEditors.TextEdit();
this.textEdit_EndDateTime = new DevExpress.XtraEditors.TextEdit();
this.textEdit_StartDateTime = new DevExpress.XtraEditors.TextEdit();
this.splitContainer_SetupPanel = new System.Windows.Forms.SplitContainer();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.treeList_BuySetupList = new DevExpress.XtraTreeList.TreeList();
this.treeListColumn_IndexString = new DevExpress.XtraTreeList.Columns.TreeListColumn();
this.treeListColumn_IndicatorType = new DevExpress.XtraTreeList.Columns.TreeListColumn();
this.treeListColumn_Description = new DevExpress.XtraTreeList.Columns.TreeListColumn();
this.groupBox4 = new System.Windows.Forms.GroupBox();
this.treeList_SellSetupList = new DevExpress.XtraTreeList.TreeList();
this.treeListColumn1 = new DevExpress.XtraTreeList.Columns.TreeListColumn();
this.treeListColumn2 = new DevExpress.XtraTreeList.Columns.TreeListColumn();
this.treeListColumn3 = new DevExpress.XtraTreeList.Columns.TreeListColumn();
this.labelControl5 = new DevExpress.XtraEditors.LabelControl();
this.labelControl4 = new DevExpress.XtraEditors.LabelControl();
this.labelControl3 = new DevExpress.XtraEditors.LabelControl();
this.treeList_ResultData = new DevExpress.XtraTreeList.TreeList();
this.treeListColumn4 = new DevExpress.XtraTreeList.Columns.TreeListColumn();
this.treeListColumn5 = new DevExpress.XtraTreeList.Columns.TreeListColumn();
this.treeListColumn6 = new DevExpress.XtraTreeList.Columns.TreeListColumn();
this.treeListColumn7 = new DevExpress.XtraTreeList.Columns.TreeListColumn();
this.treeListColumn8 = new DevExpress.XtraTreeList.Columns.TreeListColumn();
((System.ComponentModel.ISupportInitialize)(this.panelControl_IndicatorCondition)).BeginInit();
this.panelControl_IndicatorCondition.SuspendLayout();
this.groupBox_.SuspendLayout();
this.groupBox9.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.textEdit_SellRegularExpression.Properties)).BeginInit();
this.groupBox8.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.textEdit_BuyRegularExpression.Properties)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.textEdit_SavedDateTime.Properties)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.textEdit_EndDateTime.Properties)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.textEdit_StartDateTime.Properties)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.splitContainer_SetupPanel)).BeginInit();
this.splitContainer_SetupPanel.Panel1.SuspendLayout();
this.splitContainer_SetupPanel.Panel2.SuspendLayout();
this.splitContainer_SetupPanel.SuspendLayout();
this.groupBox3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.treeList_BuySetupList)).BeginInit();
this.groupBox4.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.treeList_SellSetupList)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.treeList_ResultData)).BeginInit();
this.SuspendLayout();
//
// panelControl_IndicatorCondition
//
this.panelControl_IndicatorCondition.Controls.Add(this.groupBox_);
this.panelControl_IndicatorCondition.Dock = System.Windows.Forms.DockStyle.Top;
this.panelControl_IndicatorCondition.Location = new System.Drawing.Point(0, 0);
this.panelControl_IndicatorCondition.Name = "panelControl_IndicatorCondition";
this.panelControl_IndicatorCondition.Size = new System.Drawing.Size(1271, 120);
this.panelControl_IndicatorCondition.Size = new System.Drawing.Size(1275, 231);
this.panelControl_IndicatorCondition.TabIndex = 3;
//
// groupBox_
//
this.groupBox_.Controls.Add(this.groupBox9);
this.groupBox_.Controls.Add(this.groupBox8);
this.groupBox_.Controls.Add(this.textEdit_SavedDateTime);
this.groupBox_.Controls.Add(this.textEdit_EndDateTime);
this.groupBox_.Controls.Add(this.textEdit_StartDateTime);
this.groupBox_.Controls.Add(this.splitContainer_SetupPanel);
this.groupBox_.Controls.Add(this.labelControl5);
this.groupBox_.Controls.Add(this.labelControl4);
this.groupBox_.Controls.Add(this.labelControl3);
this.groupBox_.Dock = System.Windows.Forms.DockStyle.Fill;
this.groupBox_.Location = new System.Drawing.Point(2, 2);
this.groupBox_.Name = "groupBox_";
this.groupBox_.Size = new System.Drawing.Size(1271, 227);
this.groupBox_.TabIndex = 1;
this.groupBox_.TabStop = false;
this.groupBox_.Text = "메뉴";
//
// groupBox9
//
this.groupBox9.Controls.Add(this.textEdit_SellRegularExpression);
this.groupBox9.Location = new System.Drawing.Point(6, 168);
this.groupBox9.Name = "groupBox9";
this.groupBox9.Size = new System.Drawing.Size(661, 45);
this.groupBox9.TabIndex = 8;
this.groupBox9.TabStop = false;
this.groupBox9.Text = "판매 조건 조합";
//
// textEdit_SellRegularExpression
//
this.textEdit_SellRegularExpression.Dock = System.Windows.Forms.DockStyle.Fill;
this.textEdit_SellRegularExpression.Location = new System.Drawing.Point(3, 18);
this.textEdit_SellRegularExpression.Name = "textEdit_SellRegularExpression";
this.textEdit_SellRegularExpression.Size = new System.Drawing.Size(655, 20);
this.textEdit_SellRegularExpression.TabIndex = 0;
//
// groupBox8
//
this.groupBox8.Controls.Add(this.textEdit_BuyRegularExpression);
this.groupBox8.Location = new System.Drawing.Point(673, 169);
this.groupBox8.Name = "groupBox8";
this.groupBox8.Size = new System.Drawing.Size(589, 45);
this.groupBox8.TabIndex = 9;
this.groupBox8.TabStop = false;
this.groupBox8.Text = "구매 조건 조합";
//
// textEdit_BuyRegularExpression
//
this.textEdit_BuyRegularExpression.Dock = System.Windows.Forms.DockStyle.Fill;
this.textEdit_BuyRegularExpression.Location = new System.Drawing.Point(3, 18);
this.textEdit_BuyRegularExpression.Name = "textEdit_BuyRegularExpression";
this.textEdit_BuyRegularExpression.Size = new System.Drawing.Size(583, 20);
this.textEdit_BuyRegularExpression.TabIndex = 0;
//
// textEdit_SavedDateTime
//
this.textEdit_SavedDateTime.Location = new System.Drawing.Point(650, 16);
this.textEdit_SavedDateTime.Name = "textEdit_SavedDateTime";
this.textEdit_SavedDateTime.Properties.EditFormat.FormatString = "u";
this.textEdit_SavedDateTime.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
this.textEdit_SavedDateTime.Properties.Mask.EditMask = "u";
this.textEdit_SavedDateTime.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.DateTime;
this.textEdit_SavedDateTime.Properties.ReadOnly = true;
this.textEdit_SavedDateTime.Size = new System.Drawing.Size(193, 20);
this.textEdit_SavedDateTime.TabIndex = 7;
//
// textEdit_EndDateTime
//
this.textEdit_EndDateTime.Location = new System.Drawing.Point(356, 16);
this.textEdit_EndDateTime.Name = "textEdit_EndDateTime";
this.textEdit_EndDateTime.Properties.EditFormat.FormatString = "u";
this.textEdit_EndDateTime.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
this.textEdit_EndDateTime.Properties.Mask.EditMask = "u";
this.textEdit_EndDateTime.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.DateTime;
this.textEdit_EndDateTime.Properties.ReadOnly = true;
this.textEdit_EndDateTime.Size = new System.Drawing.Size(193, 20);
this.textEdit_EndDateTime.TabIndex = 7;
//
// textEdit_StartDateTime
//
this.textEdit_StartDateTime.Location = new System.Drawing.Point(74, 16);
this.textEdit_StartDateTime.Name = "textEdit_StartDateTime";
this.textEdit_StartDateTime.Properties.EditFormat.FormatString = "u";
this.textEdit_StartDateTime.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
this.textEdit_StartDateTime.Properties.Mask.EditMask = "u";
this.textEdit_StartDateTime.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.DateTime;
this.textEdit_StartDateTime.Properties.ReadOnly = true;
this.textEdit_StartDateTime.Size = new System.Drawing.Size(193, 20);
this.textEdit_StartDateTime.TabIndex = 7;
//
// splitContainer_SetupPanel
//
this.splitContainer_SetupPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.splitContainer_SetupPanel.Location = new System.Drawing.Point(6, 39);
this.splitContainer_SetupPanel.Name = "splitContainer_SetupPanel";
//
// splitContainer_SetupPanel.Panel1
//
this.splitContainer_SetupPanel.Panel1.Controls.Add(this.groupBox3);
//
// splitContainer_SetupPanel.Panel2
//
this.splitContainer_SetupPanel.Panel2.Controls.Add(this.groupBox4);
this.splitContainer_SetupPanel.Size = new System.Drawing.Size(1259, 131);
this.splitContainer_SetupPanel.SplitterDistance = 662;
this.splitContainer_SetupPanel.TabIndex = 2;
//
// groupBox3
//
this.groupBox3.Controls.Add(this.treeList_BuySetupList);
this.groupBox3.Dock = System.Windows.Forms.DockStyle.Fill;
this.groupBox3.Location = new System.Drawing.Point(0, 0);
this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(662, 131);
this.groupBox3.TabIndex = 0;
this.groupBox3.TabStop = false;
this.groupBox3.Text = "구매 조건 조합";
//
// treeList_BuySetupList
//
this.treeList_BuySetupList.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] {
this.treeListColumn_IndexString,
this.treeListColumn_IndicatorType,
this.treeListColumn_Description});
this.treeList_BuySetupList.Cursor = System.Windows.Forms.Cursors.Default;
this.treeList_BuySetupList.Dock = System.Windows.Forms.DockStyle.Fill;
this.treeList_BuySetupList.Location = new System.Drawing.Point(3, 18);
this.treeList_BuySetupList.Name = "treeList_BuySetupList";
this.treeList_BuySetupList.OptionsBehavior.Editable = false;
this.treeList_BuySetupList.OptionsView.ShowIndicator = false;
this.treeList_BuySetupList.OptionsView.ShowRoot = false;
this.treeList_BuySetupList.Size = new System.Drawing.Size(656, 110);
this.treeList_BuySetupList.TabIndex = 1;
//
// treeListColumn_IndexString
//
this.treeListColumn_IndexString.Caption = "번호";
this.treeListColumn_IndexString.FieldName = "IndexString";
this.treeListColumn_IndexString.Name = "treeListColumn_IndexString";
this.treeListColumn_IndexString.Visible = true;
this.treeListColumn_IndexString.VisibleIndex = 0;
this.treeListColumn_IndexString.Width = 45;
//
// treeListColumn_IndicatorType
//
this.treeListColumn_IndicatorType.Caption = "지표";
this.treeListColumn_IndicatorType.FieldName = "IndicatorType";
this.treeListColumn_IndicatorType.Name = "treeListColumn_IndicatorType";
this.treeListColumn_IndicatorType.UnboundType = DevExpress.XtraTreeList.Data.UnboundColumnType.Object;
this.treeListColumn_IndicatorType.Visible = true;
this.treeListColumn_IndicatorType.VisibleIndex = 1;
this.treeListColumn_IndicatorType.Width = 41;
//
// treeListColumn_Description
//
this.treeListColumn_Description.Caption = "내용";
this.treeListColumn_Description.FieldName = "Description";
this.treeListColumn_Description.Name = "treeListColumn_Description";
this.treeListColumn_Description.Visible = true;
this.treeListColumn_Description.VisibleIndex = 2;
this.treeListColumn_Description.Width = 395;
//
// groupBox4
//
this.groupBox4.Controls.Add(this.treeList_SellSetupList);
this.groupBox4.Dock = System.Windows.Forms.DockStyle.Fill;
this.groupBox4.Location = new System.Drawing.Point(0, 0);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Size = new System.Drawing.Size(593, 131);
this.groupBox4.TabIndex = 0;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "판매 조건 조합";
//
// treeList_SellSetupList
//
this.treeList_SellSetupList.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] {
this.treeListColumn1,
this.treeListColumn2,
this.treeListColumn3});
this.treeList_SellSetupList.Cursor = System.Windows.Forms.Cursors.Default;
this.treeList_SellSetupList.Dock = System.Windows.Forms.DockStyle.Fill;
this.treeList_SellSetupList.Location = new System.Drawing.Point(3, 18);
this.treeList_SellSetupList.Name = "treeList_SellSetupList";
this.treeList_SellSetupList.OptionsBehavior.Editable = false;
this.treeList_SellSetupList.OptionsView.ShowIndicator = false;
this.treeList_SellSetupList.OptionsView.ShowRoot = false;
this.treeList_SellSetupList.Size = new System.Drawing.Size(587, 110);
this.treeList_SellSetupList.TabIndex = 2;
//
// treeListColumn1
//
this.treeListColumn1.Caption = "번호";
this.treeListColumn1.FieldName = "IndexString";
this.treeListColumn1.Name = "treeListColumn1";
this.treeListColumn1.Visible = true;
this.treeListColumn1.VisibleIndex = 0;
this.treeListColumn1.Width = 41;
//
// treeListColumn2
//
this.treeListColumn2.Caption = "지표";
this.treeListColumn2.FieldName = "IndicatorType";
this.treeListColumn2.Name = "treeListColumn2";
this.treeListColumn2.UnboundType = DevExpress.XtraTreeList.Data.UnboundColumnType.Object;
this.treeListColumn2.Visible = true;
this.treeListColumn2.VisibleIndex = 1;
this.treeListColumn2.Width = 41;
//
// treeListColumn3
//
this.treeListColumn3.Caption = "내용";
this.treeListColumn3.FieldName = "Description";
this.treeListColumn3.Name = "treeListColumn3";
this.treeListColumn3.Visible = true;
this.treeListColumn3.VisibleIndex = 2;
this.treeListColumn3.Width = 341;
//
// labelControl5
//
this.labelControl5.Location = new System.Drawing.Point(592, 19);
this.labelControl5.Name = "labelControl5";
this.labelControl5.Size = new System.Drawing.Size(52, 14);
this.labelControl5.TabIndex = 1;
this.labelControl5.Text = "저장시간 : ";
//
// labelControl4
//
this.labelControl4.Location = new System.Drawing.Point(298, 19);
this.labelControl4.Name = "labelControl4";
this.labelControl4.Size = new System.Drawing.Size(52, 14);
this.labelControl4.TabIndex = 1;
this.labelControl4.Text = "종료시간 : ";
//
// labelControl3
//
this.labelControl3.Location = new System.Drawing.Point(16, 19);
this.labelControl3.Name = "labelControl3";
this.labelControl3.Size = new System.Drawing.Size(52, 14);
this.labelControl3.TabIndex = 1;
this.labelControl3.Text = "시작시간 : ";
//
// treeList_ResultData
//
this.treeList_ResultData.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] {
this.treeListColumn4,
this.treeListColumn5,
this.treeListColumn6,
this.treeListColumn7,
this.treeListColumn8});
this.treeList_ResultData.Dock = System.Windows.Forms.DockStyle.Fill;
this.treeList_ResultData.Location = new System.Drawing.Point(0, 120);
this.treeList_ResultData.Location = new System.Drawing.Point(0, 231);
this.treeList_ResultData.Name = "treeList_ResultData";
this.treeList_ResultData.Size = new System.Drawing.Size(1271, 681);
this.treeList_ResultData.OptionsView.CheckBoxStyle = DevExpress.XtraTreeList.DefaultNodeCheckBoxStyle.Check;
this.treeList_ResultData.Size = new System.Drawing.Size(1275, 670);
this.treeList_ResultData.TabIndex = 4;
//
// treeListColumn4
//
this.treeListColumn4.Caption = "treeListColumn4";
this.treeListColumn4.FieldName = "Key";
this.treeListColumn4.Name = "treeListColumn4";
this.treeListColumn4.Visible = true;
this.treeListColumn4.VisibleIndex = 0;
//
// treeListColumn5
//
this.treeListColumn5.Caption = "treeListColumn5";
this.treeListColumn5.FieldName = "treeListColumn5";
this.treeListColumn5.Name = "treeListColumn5";
this.treeListColumn5.Visible = true;
this.treeListColumn5.VisibleIndex = 1;
//
// treeListColumn6
//
this.treeListColumn6.Caption = "treeListColumn6";
this.treeListColumn6.FieldName = "treeListColumn6";
this.treeListColumn6.Name = "treeListColumn6";
this.treeListColumn6.Visible = true;
this.treeListColumn6.VisibleIndex = 2;
//
// treeListColumn7
//
this.treeListColumn7.Caption = "treeListColumn7";
this.treeListColumn7.FieldName = "treeListColumn7";
this.treeListColumn7.Name = "treeListColumn7";
this.treeListColumn7.Visible = true;
this.treeListColumn7.VisibleIndex = 3;
//
// treeListColumn8
//
this.treeListColumn8.Caption = "treeListColumn8";
this.treeListColumn8.FieldName = "treeListColumn8";
this.treeListColumn8.Name = "treeListColumn8";
this.treeListColumn8.Visible = true;
this.treeListColumn8.VisibleIndex = 4;
//
// ResultViewerForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1271, 801);
this.ClientSize = new System.Drawing.Size(1275, 901);
this.Controls.Add(this.treeList_ResultData);
this.Controls.Add(this.panelControl_IndicatorCondition);
this.Name = "ResultViewerForm";
this.Text = "결과 뷰";
((System.ComponentModel.ISupportInitialize)(this.panelControl_IndicatorCondition)).EndInit();
this.panelControl_IndicatorCondition.ResumeLayout(false);
this.groupBox_.ResumeLayout(false);
this.groupBox_.PerformLayout();
this.groupBox9.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.textEdit_SellRegularExpression.Properties)).EndInit();
this.groupBox8.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.textEdit_BuyRegularExpression.Properties)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.textEdit_SavedDateTime.Properties)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.textEdit_EndDateTime.Properties)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.textEdit_StartDateTime.Properties)).EndInit();
this.splitContainer_SetupPanel.Panel1.ResumeLayout(false);
this.splitContainer_SetupPanel.Panel2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.splitContainer_SetupPanel)).EndInit();
this.splitContainer_SetupPanel.ResumeLayout(false);
this.groupBox3.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.treeList_BuySetupList)).EndInit();
this.groupBox4.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.treeList_SellSetupList)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.treeList_ResultData)).EndInit();
this.ResumeLayout(false);
@@ -70,5 +423,32 @@ namespace Million_Hunter.HunterSubForm
private DevExpress.XtraEditors.PanelControl panelControl_IndicatorCondition;
private DevExpress.XtraTreeList.TreeList treeList_ResultData;
private System.Windows.Forms.GroupBox groupBox_;
private DevExpress.XtraEditors.TextEdit textEdit_SavedDateTime;
private DevExpress.XtraEditors.TextEdit textEdit_EndDateTime;
private DevExpress.XtraEditors.TextEdit textEdit_StartDateTime;
private System.Windows.Forms.SplitContainer splitContainer_SetupPanel;
private System.Windows.Forms.GroupBox groupBox3;
private DevExpress.XtraTreeList.TreeList treeList_BuySetupList;
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_IndexString;
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_IndicatorType;
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_Description;
private System.Windows.Forms.GroupBox groupBox4;
private DevExpress.XtraTreeList.TreeList treeList_SellSetupList;
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn1;
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn2;
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn3;
private DevExpress.XtraEditors.LabelControl labelControl5;
private DevExpress.XtraEditors.LabelControl labelControl4;
private DevExpress.XtraEditors.LabelControl labelControl3;
private System.Windows.Forms.GroupBox groupBox9;
private DevExpress.XtraEditors.TextEdit textEdit_SellRegularExpression;
private System.Windows.Forms.GroupBox groupBox8;
private DevExpress.XtraEditors.TextEdit textEdit_BuyRegularExpression;
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn4;
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn5;
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn6;
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn7;
private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn8;
}
}

View File

@@ -9,6 +9,8 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Million.SaveData;
using Million.FileDBManagement;
using Million.Data;
namespace Million_Hunter.HunterSubForm
{
@@ -29,6 +31,89 @@ namespace Million_Hunter.HunterSubForm
private void InitForm()
{
// 1. 결과 데이터 TreeList에 표기
// 시간 데이터 추가
//_savedResultData.SearchResultList.ToLookup()
textEdit_StartDateTime.Text = _savedResultData.StartDateTime.Date.ToString();
textEdit_EndDateTime.Text = _savedResultData.EndDateTime.Date.ToString();
textEdit_SavedDateTime.Text = _savedResultData.SavedDateTime.Date.ToString();
textEdit_BuyRegularExpression.Text = _savedResultData.BuyRegularExpression;
textEdit_SellRegularExpression.Text = _savedResultData.SellRegularExpression;
// Buy/Sell 리스트에 데이터 추가
treeList_BuySetupList.DataSource = _savedResultData.BuySetupList;
treeList_SellSetupList.DataSource = _savedResultData.SellSetupList;
treeList_BuySetupList.RefreshDataSource();
treeList_SellSetupList.RefreshDataSource();
// 데이터 가공하기
Dictionary<string, object> wrapperList = new Dictionary<string, object>();
// CodeFullName으로 리스트 분리하기
var list = _savedResultData.SearchResultList.ToLookup(item => item.BuyList.ConGoodsData.CodeFullName);
var oderbyList = list.OrderBy(item => item.Key);
// Parent Node
foreach(var groupItem in oderbyList)
{
var firstChildNode = groupItem.First();
var parentNode = treeList_ResultData.Nodes.Add(groupItem.Key, firstChildNode);
// Child Node
foreach (var item in groupItem)
{
parentNode.Nodes.Add(item.BuyList.ConGoodsData.CodeFullName);
}
}
//FileManager.SaveToBinaryFile(treeList_ResultData.Nodes, null, _savedResultData.SavedResultAnalysisDataPath);
//var loadedData = FileManager.LoadFormBinaryFile(_savedResultData.SavedResultAnalysisDataPath);
}
[Serializable]
public class AnalysisData
{
// 결과에 포함 및 제외 조건
bool inclusion { get; set; } = true;
// 거래소
string ExchangePlace { get; set; }
// 종목 코드
string CodeFullName { get; set; }
// 종목 이름
string KorName { get; set; }
// 기간 내 총 구매 횟수
int BuyCountForTime { get; set; }
// 기간 내 구매 회수 변경 설정
int SetBuyCountForTime { get; set; }
// 구매 시간
DateTime StartDate { get; set; }
// 구매 가격
double BuyValue { get; set; }
// 판매 시간
DateTime EndDate { get; set; }
// 판매 가격
double SellValue { get; set; }
// 기타 기입 내용
string Description { get; set; }
// 승률
double EarningRate { get; set; }
// 수익률
double WinCount { get; set; }
// 원본 데이터 참조
SearchResult OriginalSearchResult { get; set; }
}
}
}
}

View File

@@ -49,8 +49,18 @@ namespace Million_Hunter.HunterSubForm
}
// 결과 데이터 정보 가져오기
foreach (var filePath in Directory.GetFiles(CommonProperty.SaveProgramDirecotryPath).ToList().FindAll(item => item.Contains(CommonProperty.InfoExtend)))
savedResultDatas.Add(FileManager.LoadResultDataInfoFromFile(filePath));
foreach (var filePath in Directory.GetFiles(CommonProperty.SaveProgramDirecotryPath).ToList()
.FindAll(item => item.Contains(CommonProperty.InfoExtend)))
{
var savedResult = FileManager.LoadResultDataInfoFromFile(filePath);
savedResult.SavedInfoDataPath = filePath;
savedResult.SavedResultDataPath =
filePath.Replace(CommonProperty.InfoExtend, CommonProperty.DataExtend);
savedResult.SavedResultAnalysisDataPath =
filePath.Replace(CommonProperty.InfoExtend, CommonProperty.AnalysisExtend);
savedResultDatas.Add(savedResult);
}
// 트리 리스트에 추가
treeList_SavedResultData.DataSource = savedResultDatas;
@@ -105,14 +115,22 @@ namespace Million_Hunter.HunterSubForm
var selectedResultData = (SavedResultData)treeList.GetDataRecordByNode(hitInfo.Node);
// Main 폼의 SaveResultData 초기화
//Main 폼의 SaveResultData 초기화
_mainForm._saveResultData = null;
// Main 폼의 SaveResultData 초기화 (클론 복사 해야할 수 있음)
//Main 폼의 SaveResultData 초기화 (클론 복사 해야할 수 있음)
_mainForm._saveResultData = selectedResultData.Clone();
_mainForm._saveResultData.SearchResultList =
FileManager.LoadResultDataFromFile(selectedResultData.SavedResultDataPath);
_mainForm._saveResultData.SavedInfoDataPath = selectedResultData.SavedResultDataPath;
_mainForm._saveResultData.SavedResultDataPath = selectedResultData.SavedResultDataPath;
_mainForm._saveResultData.SavedResultAnalysisDataPath = selectedResultData.SavedResultAnalysisDataPath;
this.DialogResult = DialogResult.OK;
this.Close();
}
}
}
}

View File

@@ -210,7 +210,7 @@ namespace Million_Hunter
this.panelControl_IndicatorSetup.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panelControl_IndicatorSetup.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
this.panelControl_IndicatorSetup.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Flat;
this.panelControl_IndicatorSetup.Location = new System.Drawing.Point(19, 83);
this.panelControl_IndicatorSetup.Name = "panelControl_IndicatorSetup";
this.panelControl_IndicatorSetup.Size = new System.Drawing.Size(885, 263);

View File

@@ -15,6 +15,7 @@ using Million.Manager;
using Million.SaveData;
using Microsoft.CodeAnalysis.CSharp.Scripting;
using System.Threading.Tasks;
using DevExpress.Data.Helpers;
namespace Million_Hunter
{
@@ -385,7 +386,7 @@ namespace Million_Hunter
return;
}
var resultViewerForm = new ResultViewerForm(_saveResultData) { StartPosition = FormStartPosition.CenterScreen };
var resultViewerForm = new ResultViewerForm(_saveResultData) { StartPosition = FormStartPosition.CenterScreen};
resultViewerForm.Visible = true;
}
@@ -428,7 +429,8 @@ namespace Million_Hunter
_saveResultData.StartDateTime = dateEdit_StartDateTime.DateTime;
_saveResultData.EndDateTime = dateEdit_EndDateTime.DateTime;
_saveResultData.SavedDateTime = DateTime.Now;
_saveResultData.SearchResultList = new List<SearchResult>();
if(_saveResultData == null)
_saveResultData.SearchResultList = new List<SearchResult>();
_saveResultData.BuyRegularExpression = textEdit_BuyRegularExpression.Text;
_saveResultData.SellRegularExpression = textEdit_SellRegularExpression.Text;

View File

@@ -179,6 +179,7 @@
<EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\licenses.licx" />
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>

View File

@@ -296,6 +296,8 @@ namespace Million
public static string InfoExtend = ".info";
// Save 결과 리스트 파일 확장자
public static string DataExtend = ".data";
// Save 결과 분석 데이터
public static string AnalysisExtend = ".analysis";
#endregion
}

View File

@@ -6,6 +6,7 @@ using System.Threading.Tasks;
namespace Million.Data
{
[Serializable]
public class BollingerData : IndicatorData
{
public MovingAverageData movingAverage;

View File

@@ -4,6 +4,7 @@ using static Million.CommonProperty;
namespace Million.Data
{
[Serializable]
public class CandleData
{
// 시간
@@ -23,13 +24,10 @@ namespace Million.Data
public int CandleTimeType { get; set; }
public Dictionary<string, IndicatorData> IndicatorDic { get; set; } = new Dictionary<string, IndicatorData>();
public Dictionary<string, bool> SellLogicFlag { get; set; } = new Dictionary<string, bool>();
public Dictionary<string, bool> CalculateFlag { get; set; } = new Dictionary<string, bool>();
public CandleType CandleType { get; set; } = CandleType.None;
/// <summary>

View File

@@ -1,7 +1,9 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
namespace Million.Data
{
[Serializable]
public class CandleDataList
{
// 코인 종목

View File

@@ -6,6 +6,7 @@ using System.Threading.Tasks;
namespace Million.Data
{
[Serializable]
public class IchimokData : IndicatorData
{
/// <summary>

View File

@@ -9,43 +9,44 @@ namespace Million.Data
/// <summary>
/// 결과값 저장 클레스 원형
/// </summary>
[Serializable]
public class IndicatorData
{
/// <summary>
/// 종가값 위,아래 비교 - 시가 돌파여부 검색
/// </summary>
public CommonProperty.Indicator_over indicator_over = CommonProperty.Indicator_over.없음;
public CommonProperty.Indicator_over indicator_over { get; set; } = CommonProperty.Indicator_over.없음;
/// <summary>
/// 종가로 계산할때 해당 봉 고가 값
/// </summary>
public double highValue = 0;
public double highValue { get; set; } = 0;
/// <summary>
/// 종가로 계산할때 해당 봉 고가 값
/// </summary>
public double lowValue = 0;
public double lowValue { get; set; } = 0;
/// <summary>
/// 종가로 계산할때 해당 봉 시가 값
/// </summary>
public double startValue = 0;
public double startValue { get; set; } = 0;
/// <summary>
/// 값
/// </summary>
public double value = 0;
public double value { get; set; } = 0;
/// <summary>
/// 돌파지점과 종가가 같아지는 값
/// 0이면 값 없음
/// </summary>
public double overlapValue = 0;
public double overlapValue { get; set; } = 0;
/// <summary>
/// 상,하 돌파 여부
/// </summary>
public CommonProperty.OverStatus overStatus = CommonProperty.OverStatus.None;
public CommonProperty.OverStatus overStatus { get; set; } = CommonProperty.OverStatus.None;
/// <summary>
/// 데이터 존재 여부 반환

View File

@@ -1,5 +1,8 @@
namespace Million.Data
using System;
namespace Million.Data
{
[Serializable]
public class MarketData
{
// 거래소

View File

@@ -6,6 +6,7 @@ using System.Threading.Tasks;
namespace Million.Data
{
[Serializable]
public class MovingAverageData
{
public int period;

View File

@@ -32,9 +32,9 @@ namespace Million.Data
public List<double> BuyEarningRate { get; set; } = new List<double>();
public List<double> BuyValueList { get; set; } = new List<double>();
public double SellValue;
public double SellValue { get; set; }
public double TotalEarningRate;
public double TotalEarningRate { get; set; }
public int WinCount { get; set; } = 0;
public int LoseCount { get; set; } = 0;

View File

@@ -6,6 +6,7 @@ using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;
using DevExpress.Xpo;
using DevExpress.XtraTreeList.Nodes;
using DocumentFormat.OpenXml.Drawing;
using Million.Data;
using Million.SaveData;
@@ -75,11 +76,12 @@ namespace Million.FileDBManagement
try
{
// saveResultData 저장하기
SaveToBinaryFile(savedResultData.SearchResultList, guid.ToString() + CommonProperty.DataExtend);
// Info Data 저장하기
SaveToBinaryFile(savedResultData, guid.ToString() + CommonProperty.InfoExtend);
// saveResultData 저장하기
SaveToBinaryFile(savedResultData.SearchResultList, guid.ToString() + CommonProperty.DataExtend);
return true;
}
catch (Exception) { return false; }
@@ -100,8 +102,15 @@ namespace Million.FileDBManagement
}
// 결과 분석 데이터 불러오기
public static TreeListNodes LoadResultAnalysisDataFromFile(string fileFullPath)
{
var savedResultData = (TreeListNodes)LoadFormBinaryFile(fileFullPath);
return savedResultData;
}
// 클래스 Binary 파일로 저장
public static bool SaveToBinaryFile(object saveData, string fileName)
public static bool SaveToBinaryFile(object saveData, string fileName, string fileFullName = null)
{
var baBinaryFormatter = new BinaryFormatter();
Stream stream = null;
@@ -111,6 +120,8 @@ namespace Million.FileDBManagement
var directoryInfo = new DirectoryInfo(CommonProperty.SaveProgramDirecotryPath);
var fileFullPath = string.Format(@"{0}\{1}", directoryInfo.FullName, fileName);
if (fileFullName != null)
fileFullPath = fileFullName;
// 폴더 없으면 파일 생성
if (!directoryInfo.Exists)
@@ -122,7 +133,7 @@ namespace Million.FileDBManagement
return true;
}
catch (Exception)
catch (Exception e)
{
return false;
}

View File

@@ -30,6 +30,16 @@ namespace Million.SaveData
// 정규식 (Sell)
public string SellRegularExpression { get; set; }
[field: NonSerialized]
// 실제 데이터 경로 (Data Info)
public string SavedInfoDataPath { get; set; }
// 실제 데이터 경로 (결과 Data)
[field: NonSerialized]
public string SavedResultDataPath { get; set; }
// 실제 데이터 경로 (결과 분석 데이터)
[field: NonSerialized]
public string SavedResultAnalysisDataPath { get; set; }
[field: NonSerialized]
// 결과 데이터
public List<SearchResult> SearchResultList { get; set; }