119 lines
3.9 KiB
C#
119 lines
3.9 KiB
C#
using DevExpress.XtraEditors;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using Million.SaveData;
|
|
using Million.FileDBManagement;
|
|
using Million.Data;
|
|
|
|
namespace Million_Hunter.HunterSubForm
|
|
{
|
|
public partial class ResultViewerForm : DevExpress.XtraEditors.XtraForm
|
|
{
|
|
// 저장 또는 불러온 Result Data
|
|
public SavedResultData _savedResultData;
|
|
|
|
public ResultViewerForm(SavedResultData savedResultData)
|
|
{
|
|
InitializeComponent();
|
|
|
|
_savedResultData = savedResultData;
|
|
|
|
InitForm();
|
|
}
|
|
|
|
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; }
|
|
}
|
|
}
|
|
} |