diff --git a/Million/Data/CandleData.cs b/Million/Data/CandleData.cs index 26e3a56..ac542a4 100644 --- a/Million/Data/CandleData.cs +++ b/Million/Data/CandleData.cs @@ -37,6 +37,8 @@ namespace Million.Data public Dictionary SellLogicFlag { get; set; } = new Dictionary(); public Dictionary CalculateFlag { get; set; } = new Dictionary(); + public Dictionary ParentCandleData = new Dictionary(); + public CandleType CandleType { get; set; } = CandleType.None; diff --git a/Million/Manager/CalculateManager.cs b/Million/Manager/CalculateManager.cs index d28a06c..1316ab4 100644 --- a/Million/Manager/CalculateManager.cs +++ b/Million/Manager/CalculateManager.cs @@ -329,6 +329,9 @@ namespace Million.Manager foreach (var item in parentCandleDataList) item.CalculateFlag[setUp.IndexString] = false; + //부모의 Indicator 데이터를 Child에 집어 넣음 + + if (setUp.IndicatorType == IndicatorType.가격비율) { var temp = (PriceRateCondtionSetup)setUp; @@ -1296,6 +1299,23 @@ namespace Million.Manager DateTime startDate, DateTime endDate, List resultCandleDataList, List subIndicator, Dictionary> parentList, bool upperMainIndicatorFlag, bool recentlyDataFlag = false, string coinFullName = null) { + //최신 Child데이터 계산하기 전에 부모 자식 관계 정리부터 처리 + var parentKeys = parentList.Keys; + foreach(var key in parentKeys) + { + var parentItem = parentList[key]; + foreach (var item in parentItem) + { + var childList = GetChildrenDatas(item, key, resultCandleDataList); + + foreach (var child in childList) + { + child.ParentCandleData[key] = item; + } + } + } + + //최신 child 계산 if (recentlyDataFlag) {