diff --git a/Million/CommonProperty.cs b/Million/CommonProperty.cs
index 0eacf25..b05acbe 100644
--- a/Million/CommonProperty.cs
+++ b/Million/CommonProperty.cs
@@ -121,8 +121,7 @@ namespace Million
단순비교 = 0,
돌파비교 = 1,
최초돌파 = 2,
- 크로스 = 3,
- 조건단순비교 = 4
+ 크로스 = 3
}
// 시가/고가/종가/저가
diff --git a/Million/IndicatorConditionSetup/CompareConditionSetup.cs b/Million/IndicatorConditionSetup/CompareConditionSetup.cs
index 41b3ffd..a7e5001 100644
--- a/Million/IndicatorConditionSetup/CompareConditionSetup.cs
+++ b/Million/IndicatorConditionSetup/CompareConditionSetup.cs
@@ -33,7 +33,7 @@ namespace Million.IndicatorConditionSetup
///
public object Clone()
{
- var clone = new BolingerConditionSetup
+ var clone = new CompareConditionSetup
{
CandlePriceTypeFirstOver = CandlePriceTypeFirstOver,
OverStatusEnumListFirstOver = OverStatusEnumListFirstOver,
@@ -49,9 +49,20 @@ namespace Million.IndicatorConditionSetup
OverStatusEnumList = OverStatusEnumList,
MCandleTimeType = MCandleTimeType,
Description = Description,
- IndexString = IndexString
+ IndexString = IndexString,
+ Origin = Origin,
+ Compare = Compare,
+ CompareType = CompareType
};
return clone;
- }
+ }
+
+ public override string GetKeyName(bool IndexStr = false)
+ {
+ var key = "Compare" + Origin + Compare;
+ if (IndexStr)
+ return IndexString + key;
+ return key;
+ }
}
}
diff --git a/Million/IndicatorConditionSetup/IndicatorCoditionSetup.cs b/Million/IndicatorConditionSetup/IndicatorCoditionSetup.cs
index 9bdd9aa..8d7d1be 100644
--- a/Million/IndicatorConditionSetup/IndicatorCoditionSetup.cs
+++ b/Million/IndicatorConditionSetup/IndicatorCoditionSetup.cs
@@ -72,9 +72,6 @@ namespace Million.IndicatorConditionSetup
{
return false;
}
-
-
-
if (obj.GetType() == typeof(BolingerConditionSetup))
{
var thisBol = (BolingerConditionSetup)this;
@@ -103,6 +100,14 @@ namespace Million.IndicatorConditionSetup
thisMov.MACandlePriceType == objMov.MACandlePriceType &&
thisMov.MovingAverageType == objMov.MovingAverageType;
}
+ else if (obj.GetType() == typeof(CompareConditionSetup)) {
+ var objCompare = (CompareConditionSetup)obj;
+ var thisCompare = (CompareConditionSetup)this;
+ return objCompare.Origin == thisCompare.Origin &&
+ objCompare.Compare == thisCompare.Compare &&
+ objCompare.CompareType == thisCompare.CompareType;
+ }
+
return base.Equals(obj);
}
diff --git a/Million/Manager/CalculateManager.cs b/Million/Manager/CalculateManager.cs
index 44e4b9a..3223b45 100644
--- a/Million/Manager/CalculateManager.cs
+++ b/Million/Manager/CalculateManager.cs
@@ -345,6 +345,11 @@ namespace Million.Manager
RateValue(setUp, parentCandleDataList, childrenCandleDataList, buyData);
}
}
+ //조건 단순비교
+ else if (setUp.IndicatorType == IndicatorType.조건단순비교)
+ {
+ CompareSimpleComparison(setUp, totalIndicator, parentCandleDataList, childrenCandleDataList);
+ }
//돌파
else if (setUp.SubIndicatorSetupType == SubIndicatorSetupType.돌파비교)
{
@@ -367,11 +372,7 @@ namespace Million.Manager
for (var i = 0; i < 3; i++)
CrossCondition(setUp, parentCandleDataList, childrenCandleDataList, subIndicator, i);
}
- //조건 단순비교
- else if(setUp.SubIndicatorSetupType == SubIndicatorSetupType.조건단순비교)
- {
- CompareSimpleComparison(setUp, totalIndicator, parentCandleDataList, childrenCandleDataList);
- }
+
}
///
@@ -387,6 +388,8 @@ namespace Million.Manager
var cSetup = (CompareConditionSetup)setUp;
+ var key = GetKeyData(cSetup);
+
var originSetup = totalIndicator.FirstOrDefault(t => t.IndexString == cSetup.Origin);
var originKey = GetKeyData(originSetup);
var originVal = 0.0;
@@ -423,7 +426,7 @@ namespace Million.Manager
{
if (parent.CalculateFlag[cSetup.IndexString]) break;
- if (originValueList.Count < i)
+ if (originValueList.Count < i)
{
originVal = originValueList[originValueList.Count - 1];
}
@@ -447,9 +450,18 @@ namespace Million.Manager
(cSetup.CompareType == CompareType.Origin_DownOrSame_Compare_Up && originVal <= compareVal))
{
parent.CalculateFlag[cSetup.IndexString] = true;
+
+ parent.IndicatorDic[key] = new IndicatorData();
+ parent.IndicatorDic[key].value = parent.EndValue;
+
var childList = GetChildrenDatas(parent, cSetup.MCandleTimeType, childrenCandleDataList);
- foreach (var item in childList) item.CalculateFlag[cSetup.IndexString] = true;
+ foreach (var item in childList)
+ {
+ item.CalculateFlag[cSetup.IndexString] = true;
+ item.IndicatorDic[key] = new IndicatorData();
+ item.IndicatorDic[key].value = item.EndValue;
+ }
}
}
}
diff --git a/Million/Manager/DataManager.cs b/Million/Manager/DataManager.cs
index ee1eaf1..54b7e12 100644
--- a/Million/Manager/DataManager.cs
+++ b/Million/Manager/DataManager.cs
@@ -126,13 +126,13 @@ namespace Million.Manager
{
// 최초와 cross의 조건먼저 계산이 필요함(선처리)
var parentIndicator = totalIndicator.Where(t => t.SubIndicatorSetupType == CommonProperty.SubIndicatorSetupType.최초돌파 ||
- t.SubIndicatorSetupType == CommonProperty.SubIndicatorSetupType.크로스 || t.SubIndicatorSetupType == SubIndicatorSetupType.조건단순비교).ToList();
+ t.SubIndicatorSetupType == CommonProperty.SubIndicatorSetupType.크로스 || t.IndicatorType == IndicatorType.조건단순비교).ToList();
var subIndStringiList = new List();
foreach (var item in parentIndicator)
{
var subRegExpression = "";
- if (item.SubIndicatorSetupType == CommonProperty.SubIndicatorSetupType.조건단순비교)
+ if (item.IndicatorType == CommonProperty.IndicatorType.조건단순비교)
{
subRegExpression = ((CompareConditionSetup)item).Origin + "," + ((CompareConditionSetup)item).Compare;
}
diff --git a/Million/Manager/IndicatorSetupManager.cs b/Million/Manager/IndicatorSetupManager.cs
index d8f0bf8..075219f 100644
--- a/Million/Manager/IndicatorSetupManager.cs
+++ b/Million/Manager/IndicatorSetupManager.cs
@@ -35,10 +35,12 @@ namespace Million.Manager
else if (setup.GetType() == typeof(PriceRateCondtionSetup))
{
indicatorList.Add((PriceRateCondtionSetup)setup);
+ }else if(setup.GetType() == typeof(CompareConditionSetup))
+ {
+ indicatorList.Add((CompareConditionSetup)setup);
}
}
-
return indicatorList;
}
diff --git a/Million/SubForm/IndicatorSetupForm/CommonIndicatorSetupUserForm.cs b/Million/SubForm/IndicatorSetupForm/CommonIndicatorSetupUserForm.cs
index 85c2f77..56d8bdf 100644
--- a/Million/SubForm/IndicatorSetupForm/CommonIndicatorSetupUserForm.cs
+++ b/Million/SubForm/IndicatorSetupForm/CommonIndicatorSetupUserForm.cs
@@ -317,12 +317,7 @@ namespace Million.HunterSubForm.IndicatorSetupForm
case CommonProperty.SubIndicatorSetupType.크로스:
_indicatorSetupData.Description +=
$",크로스[{_indicatorSetupData.CrossType},정규식({_indicatorSetupData.CrossSubRegExpression})]";
- break;
-
- case CommonProperty.SubIndicatorSetupType.조건단순비교:
- _indicatorSetupData.Description +=
- $",조건단순비교";
- break;
+ break;
}
}
@@ -347,7 +342,7 @@ namespace Million.HunterSubForm.IndicatorSetupForm
case CommonProperty.IndicatorType.조건단순비교:
((CompareSetupUserForm)_curruentIndicatorSpecSetupform).SaveIndicatorSetup(_indicatorSetupData);
return ((CompareConditionSetup)_indicatorSetupData).Clone();
- }
+ }
return _indicatorSetupData;
}
}