OverStatus 순서 변경

This commit is contained in:
DESKTOP-1A3P75F\lee
2022-04-14 14:55:21 +09:00
parent 1270ba4aef
commit f804efba8d
2 changed files with 91 additions and 12 deletions

View File

@@ -164,9 +164,9 @@ namespace Million_Prototype
{
realTimeMsg.StartGetRealTimeTicker(null);
}
Thread.Sleep(500);
}
}
}
}
}
@@ -176,14 +176,93 @@ namespace Million_Prototype
DbServiceFunctions.GetMarketTable_FromDB("Upbit");
var tableList = CommonProperty.selectedMarketOfPlaceList;
var selectTable = tableList.FirstOrDefault(t => t.CodeFullName == "KRW-BTC");
if (selectTable != null)
foreach (var marketData in tableList)
{
var startDate = new DateTime(2000, 1, 1);
var candleData = DbServiceFunctions.GetCandleData(selectTable, startDate,DateTime.Now, MCandleTimeType.M1);
var temp = new List<CandleDataList>();
temp.Add(candleData);
var returndata = ValidationCheckManager.ValidateCandleDataList(temp, MCandleTimeType.M1);
var buyCandleList = new List<CandleDataList>();
if (marketData != null)
{
var startDate = new DateTime(2000, 1, 1);
var candleData = DbServiceFunctions.GetCandleData(marketData, startDate, DateTime.Now, MCandleTimeType.H1);
var candleDataM1 = DbServiceFunctions.GetCandleData(marketData, startDate, DateTime.Now, MCandleTimeType.M1);
var temp = new List<CandleDataList>();
temp.Add(candleData);
//var returndata = ValidationCheckManager.ValidateCandleDataList(temp, MCandleTimeType.M1);
var splitData = ValidationCheckManager.SplitValidationCandleDataList(candleData.CandleDataLists_Im, MCandleTimeType.H1);
var buyData = new CandleDataList();
buyData.ConGoodsData = marketData;
buyData.CandleDataLists_Im = new List<CandleData>();
foreach (var split in splitData)
{
Bollinger_Bands.AddMovingAndBollingerBands(split, 40, 1);
Ichimoku_cloud.excute(split);
var overData = split.FindAll(x => (int)x.IndicatorDic["Bol401"].overStatus > -2 && x.IndicatorDic["Bol401"].overStatus != OverStatus.None
&& ((IchimokData)x.IndicatorDic["Ich"]).value < x.StartValue && ((IchimokData)x.IndicatorDic["Ich"]).value2 < x.StartValue);
foreach (var item in overData)
{
var hData = item.DateTime.AddHours(1);
var sDate = item.DateTime.AddMinutes(-80);
var mCandleList = candleDataM1.CandleDataLists_Im.Where(t => t.DateTime >= sDate && t.DateTime < hData).ToList();
if (mCandleList == null)
continue;
Ichimoku_cloud.excute(mCandleList);
mCandleList = mCandleList.Where(t => t.DateTime >= item.DateTime && t.DateTime < hData).ToList();
var overIchCandleList = new List<CandleData>();
//1분동 선행1,2 값보다 시가가 위인 캔들 구하기
foreach (var mCandle in mCandleList)
{
if(!mCandle.IndicatorDic.ContainsKey("Ich"))
{
mCandle.ToString();
}
else
{
var ichi = (IchimokData)mCandle.IndicatorDic["Ich"];
if(ichi.value < mCandle.StartValue && ichi.value2 < mCandle.StartValue)
{
overIchCandleList.Add(mCandle);
}
}
}
//var overIchCandleList = mCandleList.Where(t => t.IndicatorDic != null && t.IndicatorDic.ContainsKey("Ich") && ((IchimokData)t.IndicatorDic["Ich"]).value < t.StartValue && ((IchimokData)t.IndicatorDic["Ich"]).value2 < t.StartValue).ToList();
// if (overIchCandleList == null)
// continue;
var overlap = item.IndicatorDic["Bol401"].overlapValue;
for (var i = 0; i < overIchCandleList.Count; i++)
{
var m = overIchCandleList[i];
bool openChecker = m.StartValue > overlap;
bool highChecker = m.HighValue > overlap;
bool lowChecker = m.LowValue > overlap;
var flag = Indicator_over.None;
if (i != 0)
{
flag = overIchCandleList[i - 1].EndValue > overlap ? Indicator_over.Over : Indicator_over.Under;
}
var checker = IndicatorData.OverChecker(openChecker, highChecker, lowChecker, m.EndValue > overlap ? Indicator_over.Over : Indicator_over.Under, flag);
if (checker != OverStatus.None && (int)checker > -2)
{
buyData.CandleDataLists_Im.Add(m);
}
}
buyData.ToString();
}
}
buyCandleList.Add(buyData);
}
}
}
}

View File

@@ -173,15 +173,15 @@ namespace Million.Data
public enum OverStatus
{
Under=-4,//하양돌파
UnderCancle,//하양돌파 후 올라감
OverUnder,//시가 상향돌파 후 하양돌파
UnderOverCancle,//시가하양돌파후 상향돌파 취소
UnderCancle,//하양돌파 후 올라감
None = 0,
OverCancle,//상향돌파후 내려옴
OverUnderCancle, //시가상향돌파 후 하양돌파취소
UnderOver,//시가 하양돌파후 상향돌파
OverCancle,//상향돌파후 내려옴
Over,//Over 상향돌파
//돌파 over, overcancle, UnderOver, OverUnderCancle, UnderOverCancle, OverUnder
}