diff --git a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs index 17cfea5..4cad8d4 100644 --- a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs +++ b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs @@ -143,7 +143,8 @@ namespace BitgetAPI.IndicatorConditionSetup var candleData = candleDatas.Find(i => i.Argument == candleDatas_정렬.Last().Argument); - if (candleData == null) continue; + + if (candleData == null) continue; ichimokuConditionSetup.calIchimokuData(candleDatas_정렬, candleData); movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_정렬, candleData); @@ -151,62 +152,68 @@ namespace BitgetAPI.IndicatorConditionSetup candleDatas_정렬.RemoveAt(candleDatas_정렬.Count - 1); var candleData_전봉 = candleDatas.Find(i => i.Argument == candleDatas_정렬.Last().Argument); - ichimokuConditionSetup.calIchimokuData(candleDatas_정렬, candleData_전봉); - movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_정렬, candleData_전봉); + if (candleData_전봉 == null) continue; + ichimokuConditionSetup.calIchimokuData(candleDatas_정렬, candleData_전봉); + movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_정렬, candleData_전봉); if (checked구름떼상향돌파 && candleData_전봉.Open < candleData_전봉.IchimokData.상한선 && candleData.Open > candleData.IchimokData.상한선 && candleData.Low > candleData.IchimokData.상한선 && candleData.Close > candleData.IchimokData.상한선) { - var price = candleData.Close; - var rate = (candleData.Close / candleData.Open) * 100 - 100; - var indicatorPrice = candleData.Open; - var indicatorRate = (candleData.Close / indicatorPrice) * 100 - 100; + + var indicatorPrice = candleData.Open; + var indicatorRate = (candleData.Close / indicatorPrice) * 100 - 100; var description = string.Format("{0} 구름떼 상승", strInterval); var signalData = signals_LU.Find(i => i.MarketName.Equals(market) && i.Description.Equals(description)); - // 없으면 생성 - if (signalData == null) - { - SignalInfoData signalInfoData = new SignalInfoData(); - signalInfoData.SignalStart = nowTime; - signalInfoData.MarketName = market; - signalInfoData.Description = description; - signalInfoData.Rate = rate; - signalInfoData.Price = price; - signalInfoData.IndicatorPrice = indicatorPrice; - signalInfoData.IndicatorRate = indicatorRate; - signalInfoData.MCandleTimeType = interval; + // 없으면 생성 + if (signalData == null) + { + var price = candleData.Close; + var rate = (candleData.Close / candleData.Open) * 100 - 100; + + SignalInfoData signalInfoData = new SignalInfoData(); + signalInfoData.SignalStart = nowTime; + signalInfoData.MarketName = market; + signalInfoData.Description = description; + signalInfoData.Rate = rate; + signalInfoData.Price = price; + signalInfoData.IndicatorPrice = indicatorPrice; + signalInfoData.IndicatorRate = indicatorRate; + signalInfoData.MCandleTimeType = interval; signals_LU.Add(signalInfoData); } - } - else if (checked구름떼상향돌파 && candleData_전봉.Open > candleData_전봉.IchimokData.하한선 && candleData.Open < candleData.IchimokData.하한선 && candleData.High < candleData.IchimokData.하한선 - && candleData.Close < candleData.IchimokData.하한선) - { - var price = candleData.Close; - var rate = (candleData.Close / candleData.Open) * 100 - 100; - var indicatorPrice = candleData.Open; - var indicatorRate = (candleData.Close / indicatorPrice) * 100 - 100; + } + else if (checked구름떼상향돌파 && candleData_전봉.Open > candleData_전봉.IchimokData.하한선 && candleData.Open < candleData.IchimokData.하한선 && candleData.High < candleData.IchimokData.하한선 + && candleData.Close < candleData.IchimokData.하한선) + { + + var indicatorPrice = candleData.Open; + var indicatorRate = (candleData.Close / indicatorPrice) * 100 - 100; var description = string.Format("{0} 구름떼 하락", strInterval); var signalData = signals_SD.Find(i => i.MarketName.Equals(market) && i.Description.Equals(description)); - // 없으면 생성 - if (signalData == null) - { - SignalInfoData signalInfoData = new SignalInfoData(); - signalInfoData.SignalStart = nowTime; - signalInfoData.MarketName = market; - signalInfoData.Description = description; - signalInfoData.Rate = rate; - signalInfoData.Price = price; - signalInfoData.IndicatorPrice = indicatorPrice; - signalInfoData.IndicatorRate = indicatorRate; - signalInfoData.MCandleTimeType = interval; + // 없으면 생성 + if (signalData == null) + { + var price = candleData.Close; + var rate = (candleData.Close / candleData.Open) * 100 - 100; + + + SignalInfoData signalInfoData = new SignalInfoData(); + signalInfoData.SignalStart = nowTime; + signalInfoData.MarketName = market; + signalInfoData.Description = description; + signalInfoData.Rate = rate; + signalInfoData.Price = price; + signalInfoData.IndicatorPrice = indicatorPrice; + signalInfoData.IndicatorRate = indicatorRate; + signalInfoData.MCandleTimeType = interval; signals_SD.Add(signalInfoData); } @@ -287,33 +294,35 @@ namespace BitgetAPI.IndicatorConditionSetup if (영호조건식_상향돌파 && - // 전전봉의 4가 74, 21 보다 높고 - candleData_전전봉.movingAverageDataList[4].Value <= 높은값_74_24_전전봉 && - // 전봉의 4가 74,21 보다 작고나서 - candleData_전봉.movingAverageDataList[4].Value > 높은값_74_24_전봉 && - // 현재 시가도 4가 74,21 보다 작고, 고가도 - candleData.movingAverageDataList[4].Value > 높은값_74_24) + // 전전봉의 4가 74, 21 보다 높고 + candleData_전전봉.movingAverageDataList[4].Value <= 높은값_74_24_전전봉 && + // 전봉의 4가 74,21 보다 작고나서 + candleData_전봉.movingAverageDataList[4].Value > 높은값_74_24_전봉 && + // 현재 시가도 4가 74,21 보다 작고, 고가도 + candleData.movingAverageDataList[4].Value > 높은값_74_24) + { + var price = candleData.Close; + var rate = (candleData.Close / candleData.Open) * 100 - 100; + + + var description = string.Format("{0} 72,24,4 상승", strInterval); ; + var signalData = signals_LU.Find(i => i.MarketName.Equals(market) && i.Description.Equals(description)); + + // 없으면 생성 + if (signalData == null) { - var price = candleData.Close; - var rate = (candleData.Close / candleData.Open) * 100 - 100; var indicatorPrice = candleData.Open; var indicatorRate = (candleData.Close / indicatorPrice) * 100 - 100; - var description = string.Format("{0} 72,24,4 상승", strInterval); ; - var signalData = signals_LU.Find(i => i.MarketName.Equals(market) && i.Description.Equals(description)); - - // 없으면 생성 - if (signalData == null) - { - SignalInfoData signalInfoData = new SignalInfoData(); - signalInfoData.SignalStart = nowTime; - signalInfoData.MarketName = market; - signalInfoData.Description = description; - signalInfoData.Rate = rate; - signalInfoData.Price = price; - signalInfoData.IndicatorPrice = indicatorPrice; - signalInfoData.IndicatorRate = indicatorRate; - signalInfoData.MCandleTimeType = interval; + SignalInfoData signalInfoData = new SignalInfoData(); + signalInfoData.SignalStart = nowTime; + signalInfoData.MarketName = market; + signalInfoData.Description = description; + signalInfoData.Rate = rate; + signalInfoData.Price = price; + signalInfoData.IndicatorPrice = indicatorPrice; + signalInfoData.IndicatorRate = indicatorRate; + signalInfoData.MCandleTimeType = interval; signals_LU.Add(signalInfoData); }