diff --git a/Million/CommonProperty.cs b/Million/CommonProperty.cs index 2a3681f..ea5c132 100644 --- a/Million/CommonProperty.cs +++ b/Million/CommonProperty.cs @@ -209,9 +209,10 @@ namespace Million // 기준선 설정 (일목) public enum Indicator_IchmokuOverLine { - 선행스팬1 = 1, + 선행스팬1 = 1, 선행스팬2 = 2, - 선행스팬1OR2중고가= 3, + 선행스팬1OR2중고가 = 3, + 선행스팬1OR2중저가 = 4 } // 구매/판매 조건 설정 diff --git a/Million/Data/IchimokData.cs b/Million/Data/IchimokData.cs index afb1ec9..10ead47 100644 --- a/Million/Data/IchimokData.cs +++ b/Million/Data/IchimokData.cs @@ -56,5 +56,17 @@ namespace Million.Data return value > value2 ? value : value2; } + + /// + /// 두 선행스팬 값중에 아래 값을 리턴함 + /// + /// + public double GetDownOverValue() + { + if (value == 0 || value2 == 0) + return 0; + + return value < value2 ? value : value2; + } } } diff --git a/Million/IndicatorConditionSetup/IchimokuConditionSetup.cs b/Million/IndicatorConditionSetup/IchimokuConditionSetup.cs index 5cbf34b..ada9a68 100644 --- a/Million/IndicatorConditionSetup/IchimokuConditionSetup.cs +++ b/Million/IndicatorConditionSetup/IchimokuConditionSetup.cs @@ -166,9 +166,12 @@ namespace Million.IndicatorConditionSetup { targetValue = ichi.GetOverValue(); } + else if (IndicatorIchmokuOverLine == CommonProperty.Indicator_IchmokuOverLine.선행스팬1OR2중저가) + { + targetValue = ichi.GetDownOverValue(); + } - - var stValue = targetCandle.StartValue; + var stValue = targetCandle.StartValue; var enValue = targetCandle.EndValue; var tempValue = stValue; while (tempValue <= enValue) diff --git a/Million/Manager/CalculateManager.cs b/Million/Manager/CalculateManager.cs index 2eeab4e..36bb30b 100644 --- a/Million/Manager/CalculateManager.cs +++ b/Million/Manager/CalculateManager.cs @@ -1178,6 +1178,10 @@ namespace Million.Manager { data = ((IchimokData)candleData.IndicatorDic[key]).GetOverValue(); } + else if (((IchimokuConditionSetup)setUp).IndicatorIchmokuOverLine == CommonProperty.Indicator_IchmokuOverLine.선행스팬1OR2중저가) + { + data = ((IchimokData)candleData.IndicatorDic[key]).GetDownOverValue(); + } } #endregion return data; @@ -1208,6 +1212,10 @@ namespace Million.Manager { overlapData = ((IchimokData)candleData.IndicatorDic[key]).GetOverValue(); } + else if (((IchimokuConditionSetup)setUp).IndicatorIchmokuOverLine == CommonProperty.Indicator_IchmokuOverLine.선행스팬1OR2중저가) + { + overlapData = ((IchimokData)candleData.IndicatorDic[key]).GetDownOverValue(); + } } #endregion return overlapData; diff --git a/Million/Manager/ResultLogicManager.cs b/Million/Manager/ResultLogicManager.cs index 14d32ef..a878dbb 100644 --- a/Million/Manager/ResultLogicManager.cs +++ b/Million/Manager/ResultLogicManager.cs @@ -42,6 +42,10 @@ namespace Million.Manager val = indiData.value; else if (indi.IndicatorIchmokuOverLine == Indicator_IchmokuOverLine.선행스팬2) val = indiData.value2; + else if (indi.IndicatorIchmokuOverLine == Indicator_IchmokuOverLine.선행스팬1OR2중고가) + val = indiData.GetOverValue(); + else if (indi.IndicatorIchmokuOverLine == Indicator_IchmokuOverLine.선행스팬1OR2중저가) + val = indiData.GetDownOverValue(); valDic.Add(key.Key, val); }