diff --git a/Million Hunter/HunterMainForm.cs b/Million Hunter/HunterMainForm.cs index 3054b72..11588f1 100644 --- a/Million Hunter/HunterMainForm.cs +++ b/Million Hunter/HunterMainForm.cs @@ -291,7 +291,7 @@ namespace Million int.TryParse(tb_BigMoneyVolCnt.Text, out int val); if (cb_BigMoneyVolType.Text == "") cb_BigMoneyVolType.Text = "H1"; - if (cb_BuyBigthanHighType.Text == "") cb_BuyBigthanHighType.Text = "H1"; + if (cb_BuyBigthanHighType.Text == "") cb_BuyBigthanHighType.Text = "H1"; CalculateDatas(_saveResultData, cb_UpperMainIndi.Checked, cb_IncludeClearIndicator.Checked, cb_DownBeforeValueFlag.Checked, rd_Hunter.Checked, ck_BigMoneyVol.Checked, (MCandleTimeType)Enum.Parse(typeof(MCandleTimeType), cb_BigMoneyVolType.Text.ToString()), @@ -488,14 +488,8 @@ namespace Million { var totalCandleTypeList = totalIndicator.Select(t => t.MCandleTimeType).ToList(); var maxCandleType = totalCandleTypeList.Max(); - var smallCandleType = totalCandleTypeList.Min(); - - var list = totalCandleTypeList; - var minMaxCandleType = MCandleTimeType.M1; - - if (!(list == null || list.Count == 0)) - minMaxCandleType = list.Max(); - + var smallCandleType = totalCandleTypeList.Min(); + var buyList = new List(); var subBuyList = new List(); var item = market.CoinFullName; @@ -503,21 +497,29 @@ namespace Million var subIndStringiList = DataManager.GetSubIndicatorStringList(totalIndicator); var resultData = new List(); + var tempFlag = 1; + + var tempFlagList = totalCandleTypeList.Where(t => (int)t < 60).ToList(); + + if (tempFlagList.Count > 0) + { + tempFlag = (int)(tempFlagList.Max()); + } + + var startMiniuteDate = startDate.AddMinutes(-500 * tempFlag); - var startMiniuteDate = startDate.AddMinutes((int)minMaxCandleType * -500); var mCandleTypeList = new List { CommonProperty.MCandleTimeType.M1 - }; - + }; var standardData = DataManager.GetStandardData(totalIndicator, startMiniuteDate, startDate, market, distinctIndicator, true, mCandleTypeList); totalCandleTypeList.AddRange(mCandleTypeList); var indicatorCandleTypeList = totalCandleTypeList; if (maxCandleType >= MCandleTimeType.H1) { - var startHourDate = startDate.AddHours((int)maxCandleType * -500); + var startHourDate = startDate.AddHours(((int)maxCandleType/60) * -500); var hCandleTypeList = new List { CommonProperty.MCandleTimeType.H1 @@ -655,17 +657,10 @@ namespace Million if (recentlyData == null) { mDataList.CandleDataLists_Im.RemoveAt(0); continue; - } - var type = MCandleTimeType.M1; - if(indicatorCandleTypeList.Count != 1) - { - var typeData = indicatorCandleTypeList.OrderBy(t => (int)t).ToList(); - typeData.Remove(type); - type = typeData.Min(); - } + } //before 데이터 가져오는 함수 -> 사는 케이스만 - var beforeData = standardData[type][standardData[type].Count - 2]; + var beforeData = standardData[smallCandleType][standardData[smallCandleType].Count - 2]; //예외처리 diff --git a/Million/Manager/CalculateManager.cs b/Million/Manager/CalculateManager.cs index 0bf7c11..3f543a9 100644 --- a/Million/Manager/CalculateManager.cs +++ b/Million/Manager/CalculateManager.cs @@ -1504,7 +1504,8 @@ namespace Million.Manager Dictionary> parentList, bool recentlyDataFlag = false, string coinFullName = null, CandleData buyData = null) { //최신 Child데이터 계산하기 전에 부모 자식 관계 정리부터 처리 - var parentKeys = parentList.Keys; + var parentKeys = totalIndicator.Select(t => t.MCandleTimeType).Distinct().ToList(); + foreach (var key in parentKeys) { var parentItem = parentList[key]; @@ -1519,7 +1520,6 @@ namespace Million.Manager } } - //최신 child 계산 if (recentlyDataFlag) { diff --git a/Million/Manager/DataManager.cs b/Million/Manager/DataManager.cs index 8fc281c..286ade2 100644 --- a/Million/Manager/DataManager.cs +++ b/Million/Manager/DataManager.cs @@ -307,7 +307,7 @@ namespace Million.Manager } if (currentCandleList == null || currentCandleList.Count == 0) - return null; + return returnData; foreach (var item in currentCandleList)