diff --git a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs index b64159c..b12d444 100644 --- a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs +++ b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs @@ -305,391 +305,59 @@ namespace BitgetAPI.IndicatorConditionSetup BuyShortStep[market] = 0; BuyLongStep[market] = 0; } - if (!(전저고점.ContainsKey(market + "5m"))) + if (!(전저고점.ContainsKey(market + "30m"))) continue; - //if (!(전저고점.ContainsKey(market + "1m") && 전저고점.ContainsKey(market + "5m") && 전저고점.ContainsKey(market + "30m"))) - // continue; - - #region 1분봉 처리 - // 시간별로 정렬하기 (임시 리스트) - //var candleDatas = findedMarket.candleDataList[MCandleTimeType.M1]; - //var candleDatas_정렬 = candleDatas.OrderBy(i => i.Argument).ToList(); - - - //var calMacdCandleDatas_정렬 = candleDatas.OrderBy(i => i.Argument).ToList(); - - //var candleData = candleDatas.Find(i => i.Argument == candleDatas_정렬.Last().Argument); - - //if (candleData == null) continue; - - //ichimokuConditionSetup.calIchimokuData(candleDatas_정렬, candleData); - //movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_정렬, candleData); - - - //candleDatas_정렬.RemoveAt(candleDatas_정렬.Count - 1); - //var candleData_전봉 = candleDatas.Find(i => i.Argument == candleDatas_정렬.Last().Argument); - - //if (candleData_전봉 == null) continue; - //ichimokuConditionSetup.calIchimokuData(candleDatas_정렬, candleData_전봉); - //movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_정렬, candleData_전봉); - - //candleDatas_정렬.RemoveAt(candleDatas_정렬.Count - 1); - //var candleData_전전봉 = candleDatas.Find(i => i.Argument == candleDatas_정렬.Last().Argument); - - //if (candleData_전전봉 == null) continue; - //ichimokuConditionSetup.calIchimokuData(candleDatas_정렬, candleData_전전봉); - //movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_정렬, candleData_전전봉); - - //candleDatas_정렬.RemoveAt(candleDatas_정렬.Count - 1); - //var candleData_전전전봉 = candleDatas.Find(i => i.Argument == candleDatas_정렬.Last().Argument); - - //if (candleData_전전전봉 == null) continue; - //ichimokuConditionSetup.calIchimokuData(candleDatas_정렬, candleData_전전전봉); - //movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_정렬, candleData_전전전봉); - - - //candleDatas_정렬.RemoveAt(candleDatas_정렬.Count - 1); - //var candleData_전전전전봉 = candleDatas.Find(i => i.Argument == candleDatas_정렬.Last().Argument); - - //if (candleData_전전전전봉 == null) continue; - //ichimokuConditionSetup.calIchimokuData(candleDatas_정렬, candleData_전전전전봉); - //movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_정렬, candleData_전전전전봉); - #endregion - - #region 5분봉 처리 - // 시간별로 정렬하기 (임시 리스트) - var candleDatas_5 = findedMarket.candleDataList[MCandleTimeType.M5]; - var candleDatas_5_정렬 = candleDatas_5.OrderBy(i => i.Argument).ToList(); - var candleDatas_5_TempList = candleDatas_5.OrderBy(i => i.Argument).ToList(); - var candleData_5 = candleDatas_5.Find(i => i.Argument == candleDatas_5_정렬.Last().Argument); - - if (candleData_5 == null) continue; - - ichimokuConditionSetup.calIchimokuData(candleDatas_5_정렬, candleData_5); - movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_5_정렬, candleData_5); - - candleDatas_5_정렬.RemoveAt(candleDatas_5_정렬.Count - 1); - var candleData_5_전봉 = candleDatas_5.Find(i => i.Argument == candleDatas_5_정렬.Last().Argument); - - if (candleData_5_전봉 == null) continue; - ichimokuConditionSetup.calIchimokuData(candleDatas_5_정렬, candleData_5_전봉); - movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_5_정렬, candleData_5_전봉); - - candleDatas_5_정렬.RemoveAt(candleDatas_5_정렬.Count - 1); - var candleData_5_전전봉 = candleDatas_5.Find(i => i.Argument == candleDatas_5_정렬.Last().Argument); - - if (candleData_5_전전봉 == null) continue; - ichimokuConditionSetup.calIchimokuData(candleDatas_5_정렬, candleData_5_전전봉); - movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_5_정렬, candleData_5_전전봉); - - candleDatas_5_정렬.RemoveAt(candleDatas_5_정렬.Count - 1); - var candleData_5_전전전봉 = candleDatas_5.Find(i => i.Argument == candleDatas_5_정렬.Last().Argument); - - if (candleData_5_전전전봉 == null) continue; - ichimokuConditionSetup.calIchimokuData(candleDatas_5_정렬, candleData_5_전전전봉); - movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_5_정렬, candleData_5_전전전봉); - - - candleDatas_5_정렬.RemoveAt(candleDatas_5_정렬.Count - 1); - var candleData_5_전전전전봉 = candleDatas_5.Find(i => i.Argument == candleDatas_5_정렬.Last().Argument); - - if (candleData_5_전전전전봉 == null) continue; - ichimokuConditionSetup.calIchimokuData(candleDatas_5_정렬, candleData_5_전전전전봉); - movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_5_정렬, candleData_5_전전전전봉); - #endregion - #region 30분봉 처리 - // 시간별로 정렬하기 (임시 리스트) - //var candleDatas_30 = findedMarket.candleDataList[MCandleTimeType.M30]; - //var candleDatas_30_정렬 = candleDatas_30.OrderBy(i => i.Argument).ToList(); - //var candleDatas_30_TempList = candleDatas_30.OrderBy(i => i.Argument).ToList(); - //var candleData_30 = candleDatas_30.Find(i => i.Argument == candleDatas_30_정렬.Last().Argument); + + var candleDatas_30 = findedMarket.candleDataList[MCandleTimeType.M30]; + var candleDatas_30_정렬 = candleDatas_30.OrderBy(i => i.Argument).ToList(); + var candleDatas_30_TempList = candleDatas_30.OrderBy(i => i.Argument).ToList(); + var candleData_30 = candleDatas_30.Find(i => i.Argument == candleDatas_30_정렬.Last().Argument); - //if (candleData_30 == null) continue; + if (candleData_30 == null) continue; - //ichimokuConditionSetup.calIchimokuData(candleDatas_30_정렬, candleData_30); - //movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_30_정렬, candleData_30); + ichimokuConditionSetup.calIchimokuData(candleDatas_30_정렬, candleData_30); + movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_30_정렬, candleData_30); - ////var macdData_30 = new ImpulseMacdData(); + candleDatas_30_정렬.RemoveAt(candleDatas_30_정렬.Count - 1); + var candleData_30_전봉 = candleDatas_30.Find(i => i.Argument == candleDatas_30_정렬.Last().Argument); - ////var imperseMacd_keys_30 = totalImperseMACDData[market + "30m"].Keys.OrderBy(t => t).ToList(); + if (candleData_30_전봉 == null) continue; + ichimokuConditionSetup.calIchimokuData(candleDatas_30_정렬, candleData_30_전봉); + movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_30_정렬, candleData_30_전봉); - ////if (imperseMacd_keys_30.LastOrDefault() < candleData_30.Argument) - ////{ - //// macdData_30 = impulseMacdConditionSetup.AddDataPoint(candleData_30.High, candleData_30.Low, candleData_30.Close, true); - //// totalImperseMACDData[market + "30m"].Add(candleData_30.Argument, macdData_30); - ////} - ////else - ////{ - //// macdData_30 = impulseMacdConditionSetup.AddDataPoint(candleData_30.High, candleData_30.Low, candleData_30.Close, false); - //// totalImperseMACDData[market + "30m"][candleData_30.Argument] = macdData_30; - ////} + candleDatas_30_정렬.RemoveAt(candleDatas_30_정렬.Count - 1); + var candleData_30_전전봉 = candleDatas_30.Find(i => i.Argument == candleDatas_30_정렬.Last().Argument); - ////if (candleData_30.impulseMacdDataList == null) candleData_30.impulseMacdDataList = new Dictionary(); - ////if (candleData_30.impulseMacdDataList.ContainsKey(30)) candleData_30.impulseMacdDataList[30] = new ImpulseMacdData(); + if (candleData_30_전전봉 == null) continue; + ichimokuConditionSetup.calIchimokuData(candleDatas_30_정렬, candleData_30_전전봉); + movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_30_정렬, candleData_30_전전봉); - ////candleData_30.impulseMacdDataList[30] = macdData_30; - ////var macdData_5 = new ImpulseMacdData(); + candleDatas_30_정렬.RemoveAt(candleDatas_30_정렬.Count - 1); + var candleData_30_전전전봉 = candleDatas_30.Find(i => i.Argument == candleDatas_30_정렬.Last().Argument); - ////var imperseMacd_keys_5 = totalImperseMACDData[market + "5m"].Keys.OrderBy(t => t).ToList(); - - ////if (imperseMacd_keys_5.LastOrDefault() < candleData_5.Argument) - ////{ - //// macdData_5 = impulseMacdConditionSetup.AddDataPoint(candleData_5.High, candleData_5.Low, candleData_5.Close, true); - //// totalImperseMACDData[market + "5m"].Add(candleData_5.Argument, macdData_5); - ////} - ////else - ////{ - //// macdData_5 = impulseMacdConditionSetup.AddDataPoint(candleData_5.High, candleData_5.Low, candleData_5.Close, false); - //// totalImperseMACDData[market + "5m"][candleData_5.Argument] = macdData_5; - ////} - - ////if (candleData_5.impulseMacdDataList == null) candleData_5.impulseMacdDataList = new Dictionary(); - ////if (candleData_5.impulseMacdDataList.ContainsKey(5)) candleData_5.impulseMacdDataList[5] = new ImpulseMacdData(); - ////candleData_30.impulseMacdDataList[5] = macdData_5; - - //candleDatas_30_정렬.RemoveAt(candleDatas_30_정렬.Count - 1); - //var candleData_30_전봉 = candleDatas_30.Find(i => i.Argument == candleDatas_30_정렬.Last().Argument); - - //if (candleData_30_전봉 == null) continue; - //ichimokuConditionSetup.calIchimokuData(candleDatas_30_정렬, candleData_30_전봉); - //movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_30_정렬, candleData_30_전봉); - - //candleDatas_30_정렬.RemoveAt(candleDatas_30_정렬.Count - 1); - //var candleData_30_전전봉 = candleDatas_30.Find(i => i.Argument == candleDatas_30_정렬.Last().Argument); - - //if (candleData_30_전전봉 == null) continue; - //ichimokuConditionSetup.calIchimokuData(candleDatas_30_정렬, candleData_30_전전봉); - //movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_30_정렬, candleData_30_전전봉); - - //candleDatas_30_정렬.RemoveAt(candleDatas_30_정렬.Count - 1); - //var candleData_30_전전전봉 = candleDatas_30.Find(i => i.Argument == candleDatas_30_정렬.Last().Argument); - - //if (candleData_30_전전전봉 == null) continue; - //ichimokuConditionSetup.calIchimokuData(candleDatas_30_정렬, candleData_30_전전전봉); - //movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_30_정렬, candleData_30_전전전봉); + if (candleData_30_전전전봉 == null) continue; + ichimokuConditionSetup.calIchimokuData(candleDatas_30_정렬, candleData_30_전전전봉); + movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_30_정렬, candleData_30_전전전봉); - //candleDatas_30_정렬.RemoveAt(candleDatas_30_정렬.Count - 1); - //var candleData_30_전전전전봉 = candleDatas_30.Find(i => i.Argument == candleDatas_30_정렬.Last().Argument); + candleDatas_30_정렬.RemoveAt(candleDatas_30_정렬.Count - 1); + var candleData_30_전전전전봉 = candleDatas_30.Find(i => i.Argument == candleDatas_30_정렬.Last().Argument); - //if (candleData_30_전전전전봉 == null) continue; - //ichimokuConditionSetup.calIchimokuData(candleDatas_30_정렬, candleData_30_전전전전봉); - //movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_30_정렬, candleData_30_전전전전봉); - #endregion - - //if (checked구름떼상향돌파 && candleData_전봉.Open < candleData_전봉.IchimokData.상한선 && candleData.Open > candleData.IchimokData.상한선 && candleData.Low > 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_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; - - // 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 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) - // { - // 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); - // } - //} + if (candleData_30_전전전전봉 == null) continue; + ichimokuConditionSetup.calIchimokuData(candleDatas_30_정렬, candleData_30_전전전전봉); + movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_30_정렬, candleData_30_전전전전봉); + #endregion if (영호조건식_상향돌파 || 영호조건식_하향돌파) { - - #region Main 봉 계산 - /* - var 전전전봉3 = candleData_전전전봉.movingAverageDataList[3].Value; - var 전전전봉4 = candleData_전전전봉.movingAverageDataList[4].Value; - var 전전전봉8 = candleData_전전전봉.movingAverageDataList[8].Value; - var 전전전봉12 = candleData_전전전봉.movingAverageDataList[12].Value; - var 전전전봉24 = candleData_전전전봉.movingAverageDataList[24].Value; - var 전전전봉36 = candleData_전전전봉.movingAverageDataList[36].Value; - var 전전전봉72 = candleData_전전전봉.movingAverageDataList[72].Value; - var 전전전봉40 = candleData_전전전봉.movingAverageDataList[40].Value; - - var 전전전전봉4 = candleData_전전전전봉.movingAverageDataList[4].Value; - - var 전전봉3 = candleData_전전봉.movingAverageDataList[3].Value; - var 전전봉4 = candleData_전전봉.movingAverageDataList[4].Value; - var 전전봉8 = candleData_전전봉.movingAverageDataList[8].Value; - var 전전봉12 = candleData_전전봉.movingAverageDataList[12].Value; - var 전전봉24 = candleData_전전봉.movingAverageDataList[24].Value; - var 전전봉36 = candleData_전전봉.movingAverageDataList[36].Value; - var 전전봉72 = candleData_전전봉.movingAverageDataList[72].Value; - - var 전전봉144 = candleData_전전봉.movingAverageDataList[144].Value; - var 전전봉20 = candleData_전전봉.movingAverageDataList[20].Value; - var 전전봉40 = candleData_전전봉.movingAverageDataList[40].Value; - var 전전봉120 = candleData_전전봉.movingAverageDataList[120].Value; - var 전전봉160 = candleData_전전봉.movingAverageDataList[160].Value; - //var 전전봉240 = candleData_전전봉.movingAverageDataList[240].Value; - var 전전봉80 = candleData_전전봉.movingAverageDataList[80].Value; - //var 전전봉480 = candleData_전전봉.movingAverageDataList[480].Value; - - var 전봉3 = candleData_전봉.movingAverageDataList[3].Value; - var 전봉4 = candleData_전봉.movingAverageDataList[4].Value; - var 전봉8 = candleData_전봉.movingAverageDataList[8].Value; - var 전봉12 = candleData_전봉.movingAverageDataList[12].Value; - var 전봉24 = candleData_전봉.movingAverageDataList[24].Value; - var 전봉36 = candleData_전봉.movingAverageDataList[36].Value; - var 전봉48 = candleData_전봉.movingAverageDataList[48].Value; - var 전봉72 = candleData_전봉.movingAverageDataList[72].Value; - var 전봉120 = candleData_전봉.movingAverageDataList[120].Value; - var 전봉144 = candleData_전봉.movingAverageDataList[144].Value; - - var 전봉20 = candleData_전봉.movingAverageDataList[20].Value; - var 전봉40 = candleData_전봉.movingAverageDataList[40].Value; - var 전봉80 = candleData_전봉.movingAverageDataList[80].Value; - var 전봉160 = candleData_전봉.movingAverageDataList[160].Value; - //var 전봉240 = candleData_전봉.movingAverageDataList[240].Value; - //var 전봉480 = candleData_전봉.movingAverageDataList[480].Value; - - var 현재봉3 = candleData.movingAverageDataList[3].Value; - var 현재봉4 = candleData.movingAverageDataList[4].Value; - var 현재봉8 = candleData.movingAverageDataList[8].Value; - var 현재봉12 = candleData.movingAverageDataList[12].Value; - var 현재봉24 = candleData.movingAverageDataList[24].Value; - var 현재봉36 = candleData.movingAverageDataList[36].Value; - var 현재봉20 = candleData.movingAverageDataList[20].Value; - var 현재봉40 = candleData.movingAverageDataList[40].Value; - var 현재봉48 = candleData.movingAverageDataList[48].Value; - var 현재봉72 = candleData.movingAverageDataList[72].Value; - var 현재봉120 = candleData.movingAverageDataList[120].Value; - var 현재봉144 = candleData.movingAverageDataList[144].Value; - //var 현재봉240 = candleData.movingAverageDataList[240].Value; - var 현재봉160 = candleData.movingAverageDataList[160].Value; - var 현재봉80 = candleData.movingAverageDataList[80].Value; - - var 전봉Bol4_Down = candleData_전봉.movingAverageDataList[4].BolangerValue_Down; - var 전봉Bol12_Down = candleData_전봉.movingAverageDataList[12].BolangerValue_Down; - var 전봉Bol24_Down = candleData_전봉.movingAverageDataList[24].BolangerValue_Down; - var 전봉Bol72_Down = candleData_전봉.movingAverageDataList[72].BolangerValue_Down; - - var 전전봉Bol4_Down = candleData_전전봉.movingAverageDataList[4].BolangerValue_Down; - var 전전봉Bol12_Down = candleData_전전봉.movingAverageDataList[12].BolangerValue_Down; - var 전전봉Bol24_Down = candleData_전전봉.movingAverageDataList[24].BolangerValue_Down; - var 전전봉Bol72_Down = candleData_전전봉.movingAverageDataList[72].BolangerValue_Down; - - var Bol4_Down = candleData.movingAverageDataList[4].BolangerValue_Down; - var Bol12_Down = candleData.movingAverageDataList[12].BolangerValue_Down; - var Bol24_Down = candleData.movingAverageDataList[24].BolangerValue_Down; - var Bol72_Down = candleData.movingAverageDataList[72].BolangerValue_Down; - - var 전봉Bol4_Up = candleData_전봉.movingAverageDataList[4].BolangerValue_Up; - var 전봉Bol12_Up = candleData_전봉.movingAverageDataList[12].BolangerValue_Up; - var 전봉Bol24_Up = candleData_전봉.movingAverageDataList[24].BolangerValue_Up; - var 전봉Bol72_Up = candleData_전봉.movingAverageDataList[72].BolangerValue_Up; - - var 전전봉Bol4_Up = candleData_전전봉.movingAverageDataList[4].BolangerValue_Up; - var 전전봉Bol12_Up = candleData_전전봉.movingAverageDataList[12].BolangerValue_Up; - var 전전봉Bol24_Up = candleData_전전봉.movingAverageDataList[24].BolangerValue_Up; - var 전전봉Bol72_Up = candleData_전전봉.movingAverageDataList[72].BolangerValue_Up; - - var Bol4_Up = candleData.movingAverageDataList[4].BolangerValue_Up; - var Bol12_Up = candleData.movingAverageDataList[12].BolangerValue_Up; - var Bol24_Up = candleData.movingAverageDataList[24].BolangerValue_Up; - var Bol72_Up = candleData.movingAverageDataList[72].BolangerValue_Up; - */ - #endregion - - var 현재봉3_5 = candleData_5.movingAverageDataList[3].Value; - var 전봉3_5 = candleData_5_전봉.movingAverageDataList[3].Value; - var 전전봉3_5 = candleData_5_전전봉.movingAverageDataList[3].Value; - var 전전전봉3_5 = candleData_5_전전전봉.movingAverageDataList[3].Value; - - //var 현재봉3_30 = candleData_30.movingAverageDataList[3].Value; - //var 전봉3_30 = candleData_30_전봉.movingAverageDataList[3].Value; - //var 전전봉3_30 = candleData_30_전전봉.movingAverageDataList[3].Value; - //var 전전전봉3_30 = candleData_30_전전전봉.movingAverageDataList[3].Value; - - var 현재봉4_5 = candleData_5.movingAverageDataList[4].Value; - var 전봉4_5 = candleData_5_전봉.movingAverageDataList[4].Value; - var 전전봉4_5 = candleData_5_전전봉.movingAverageDataList[4].Value; - var 전전전봉4_5 = candleData_5_전전전봉.movingAverageDataList[4].Value; - - //var 현재봉4_30 = candleData_30.movingAverageDataList[4].Value; - //var 전봉4_30 = candleData_30_전봉.movingAverageDataList[4].Value; - //var 전전봉4_30 = candleData_30_전전봉.movingAverageDataList[4].Value; - //var 전전전봉4_30 = candleData_30_전전전봉.movingAverageDataList[4].Value; - - //var 현재봉72_30 = candleData_30.movingAverageDataList[72].Value; - var 현재봉72_5 = candleData_5.movingAverageDataList[72].Value; - - //var 저고점_1 = 전저고점[market + "1m"]; - var 저고점_5 = 전저고점[market + "5m"]; - //var 저고점_30 = 전저고점[market + "30m"]; - - //var returnVal = Calculate전고점(market, "1m", MCandleTimeType.M1, 전봉4, 전전봉4, 전전전봉4, candleData); - //if (!returnVal) continue; - var returnVal = Calculate전고점(market, "5m", MCandleTimeType.M5, 전봉4_5, 전전봉4_5, 전전전봉4_5, candleData_5); - if (!returnVal) continue; - //var returnVal = Calculate전고점(market, "30m", MCandleTimeType.M30, 전봉4_30, 전전봉4_30, 전전전봉4_30, candleData_30); - //if (!returnVal) continue; - - //var 전봉macdData_30 = totalImperseMACDData[market + "30m"][imperseMacd_keys_30[imperseMacd_keys_30.Count - 2]]; - //var 전전봉macdData_30 = totalImperseMACDData[market + "30m"][imperseMacd_keys_30[imperseMacd_keys_30.Count - 3]]; - //var 전전전봉macdData_30 = totalImperseMACDData[market + "30m"][imperseMacd_keys_30[imperseMacd_keys_30.Count - 4]]; - - //var 전봉macdData_5 = totalImperseMACDData[market + "5m"][imperseMacd_keys_5[imperseMacd_keys_5.Count - 2]]; - //var 전전봉macdData_5 = totalImperseMACDData[market + "5m"][imperseMacd_keys_5[imperseMacd_keys_5.Count - 3]]; - //var 전전전봉macdData_5 = totalImperseMACDData[market + "5m"][imperseMacd_keys_5[imperseMacd_keys_5.Count - 4]]; - - //신규 데이터 Setup - tradingViewConditionSetup.SetData(candleDatas_5_TempList.Select(t => t.High).ToList(), - candleDatas_5_TempList.Select(t => t.Low).ToList(), candleDatas_5_TempList.Select(t => t.Close).ToList()); - if (영호조건식_상향돌파) { - var price = candleData_5.Close; - var rate = (candleData_5.Close / candleData_5.Open) * 100 - 100; - var indicatorPrice = candleData_5.Open; - var indicatorRate = (candleData_5.Close / indicatorPrice) * 100 - 100; + var price = candleData_30.Close; + var rate = (candleData_30.Close / candleData_30.Open) * 100 - 100; + var indicatorPrice = candleData_30.Open; + var indicatorRate = (candleData_30.Close / indicatorPrice) * 100 - 100; var description = string.Format("{0} 72,24,4 상승", strInterval); var signalData = signals_SD.Find(i => i.MarketName.Equals(market) && i.Description.Equals(description)); @@ -704,38 +372,7 @@ namespace BitgetAPI.IndicatorConditionSetup var buyFlag = false; - if (!BuyLongStep.ContainsKey(market)) - BuyLongStep[market] = 0; - - if (BuyLongStep[market] == 0) - { - if (tradingViewConditionSetup.IsLongSignal()) - { - BuyLongStep[market] = 1; - //BuyLongStepStampData[market] = 저고점_30["tempLowVal"]; - } - } - - if(BuyLongStep[market] == 1 )//&& BuyLongStepStampData[market] < 저고점_30["tempLowVal"]) - { - buyFlag = ((저고점_5["Type"] == 0 && - 저고점_5["전전전저가"] > 저고점_5["전전저가"] && 저고점_5["전전저가"] < 저고점_5["전저가"] && candleData_5_전봉.Close < 저고점_5["전고가"] && candleData_5.Close > 저고점_5["전고가"]) - || (저고점_5["Type"] == 1 && - 저고점_5["전저가"] > 저고점_5["전전저가"] && 저고점_5["전저가"] < 전봉4_5 && candleData_5_전봉.Close < 저고점_5["전고가"] && candleData_5.Close > 저고점_5["전고가"] && 전봉4_5 < 현재봉4_5 && 전봉4_5 < 전전봉4_5) - || (저고점_5["Type"] == 0 && - 저고점_5["전전전저가"] > 저고점_5["전전저가"] && 저고점_5["전전저가"] > 저고점_5["전저가"] && candleData_5_전봉.Close < 저고점_5["전고가"] && candleData_5.Close > 저고점_5["전고가"])) - && 전봉4_5 < 현재봉4_5 && candleData_5.Open < candleData_5.Close; - - - //초기화 처리 필요 - if (저고점_5["전고가"] < 저고점_5["전전고가"] || - 저고점_5["전저가"] < 저고점_5["전전저가"] || - tradingViewConditionSetup.IsShortSignal()) - { - BuyLongStep[market] = 0; - buyFlag = false; - } - } + if (buyFlag) { @@ -760,11 +397,10 @@ namespace BitgetAPI.IndicatorConditionSetup { { "MarketName", market }, { "BuyDate", nowTime }, - { "Price", price }, - { "Flag", 저고점_5["전고가"] > 저고점_5["전전고가"]}, + { "Price", price }, { "MCandleTimeType", (int)interval }, - { "CandleTime", candleData_5.Argument }, - { "Candle", candleData_5 } + { "CandleTime", candleData_30.Argument }, + { "Candle", candleData_30 } }; UpBuyList.Add(market, buyDic); @@ -792,7 +428,7 @@ namespace BitgetAPI.IndicatorConditionSetup { "BuyDate", nowTime }, { "Price", price }, { "MCandleTimeType", (int)interval }, - { "Candle", candleData_5 }, + { "Candle", candleData_30 }, { "Size", size }, { "orderId", orderDic["orderId"] } }; @@ -825,13 +461,6 @@ namespace BitgetAPI.IndicatorConditionSetup var sellFlag = false; - if( 저고점_5["전고가"] < 저고점_5["전전고가"] || - 저고점_5["전저가"] > candleData_5_전봉.Close || - tradingViewConditionSetup.IsShortSignal()) - { - sellFlag = true; - } - if (sellFlag) { @@ -848,7 +477,7 @@ namespace BitgetAPI.IndicatorConditionSetup { "BuyCandle", buyItem["Candle"] }, { "SellDate", nowTime}, { "SellPrice", price }, - { "SellCandle", candleData_5 }, + { "SellCandle", candleData_30 }, { "Rate", resultRate } }; @@ -889,7 +518,7 @@ namespace BitgetAPI.IndicatorConditionSetup { "BuyCandle", buyItem["Candle"] }, { "SellDate", nowTime}, { "SellPrice", price}, - { "SellCandle", candleData_5 }, + { "SellCandle", candleData_30 }, { "Rate", resultRateData } }; ResultList.Add(orderResult); @@ -909,10 +538,10 @@ namespace BitgetAPI.IndicatorConditionSetup } if (영호조건식_하향돌파) { - var price = candleData_5.Close; - var rate = (candleData_5.Close / candleData_5.Open) * 100 - 100; - var indicatorPrice = candleData_5.Open; - var indicatorRate = (candleData_5.Close / indicatorPrice) * 100 - 100; + var price = candleData_30.Close; + var rate = (candleData_30.Close / candleData_30.Open) * 100 - 100; + var indicatorPrice = candleData_30.Open; + var indicatorRate = (candleData_30.Close / indicatorPrice) * 100 - 100; var description = string.Format("{0} 72,24,4 하락", strInterval); var signalData = signals_SD.Find(i => i.MarketName.Equals(market) && i.Description.Equals(description)); @@ -925,36 +554,6 @@ namespace BitgetAPI.IndicatorConditionSetup var buyFlag = false; - if (!BuyShortStep.ContainsKey(market)) - BuyShortStep[market] = 0; - - if (BuyShortStep[market] == 0) - { - if (tradingViewConditionSetup.IsShortSignal()) - { - BuyShortStep[market] = 1; - BuyShortStepStampData[market] = 저고점_5["tempHighVal"]; - } - } - - if (BuyShortStep[market] == 1 && BuyShortStepStampData[market] < 저고점_5["tempHighVal"]) - { - buyFlag = ((저고점_5["Type"] == 1 && - 저고점_5["전전전고가"] < 저고점_5["전전고가"] && 저고점_5["전전고가"] > 저고점_5["전고가"] && candleData_5.Close < 저고점_5["전저가"] && candleData_5_전봉.Close > 저고점_5["전저가"]) - || (저고점_5["Type"] == 0 && - 저고점_5["전고가"] < 저고점_5["전전고가"] && 저고점_5["전고가"] > 전봉4_5 && candleData_5_전봉.Close > 저고점_5["전저가"] && candleData_5.Close < 저고점_5["전저가"] && 전봉4_5 > 현재봉4_5 && 전봉4_5 > 전전봉4_5) - || (저고점_5["Type"] == 1 && - 저고점_5["전전전고가"] < 저고점_5["전전고가"] && 저고점_5["전전고가"] < 저고점_5["전고가"] && candleData_5_전봉.Close > 저고점_5["전저가"] && candleData_5.Close < 저고점_5["전저가"])) - && 전봉4_5 > 현재봉4_5 && candleData_5.Open > candleData_5.Close; - } - else if (저고점_5["전고가"] > 저고점_5["전전고가"] || - 저고점_5["전저가"] > 저고점_5["전전저가"] || - tradingViewConditionSetup.IsLongSignal()) - { - BuyShortStep[market] = 0; - buyFlag = false; - - } if (buyFlag) { @@ -978,11 +577,10 @@ namespace BitgetAPI.IndicatorConditionSetup { { "MarketName", market }, { "BuyDate", nowTime }, - { "Price", price }, - { "Flag", 저고점_5["전저가"] < 저고점_5["전전저가"]}, + { "Price", price }, { "MCandleTimeType", (int)interval }, - { "CandleTime", candleData_5.Argument }, - { "Candle", candleData_5 } + { "CandleTime", candleData_30.Argument }, + { "Candle", candleData_30 } }; DownBuyList.Add(market, buyDic); @@ -1010,7 +608,7 @@ namespace BitgetAPI.IndicatorConditionSetup { "BuyDate", nowTime }, { "Price", price }, { "MCandleTimeType", (int)interval }, - { "Candle", candleData_5 }, + { "Candle", candleData_30 }, { "Size", size }, { "orderId", orderDic["orderId"] } }; @@ -1042,14 +640,7 @@ namespace BitgetAPI.IndicatorConditionSetup } var sellFlag = false; - if (저고점_5["전저가"] > 저고점_5["전전저가"] || - 저고점_5["전고가"] < candleData_5_전봉.Close || - tradingViewConditionSetup.IsLongSignal()) - - { - sellFlag = true; - } - + if (sellFlag) { BuyShortStep[market] = 0; @@ -1066,7 +657,7 @@ namespace BitgetAPI.IndicatorConditionSetup { "BuyCandle", buyItem["Candle"] }, { "SellDate", nowTime}, { "SellPrice", price }, - { "SellCandle", candleData_5 }, + { "SellCandle", candleData_30 }, { "Rate", resultRate } }; @@ -1108,7 +699,7 @@ namespace BitgetAPI.IndicatorConditionSetup { "BuyCandle", buyItem["Candle"] }, { "SellDate", nowTime}, { "SellPrice", price }, - { "SellCandle", candleData_5 }, + { "SellCandle", candleData_30 }, { "Rate", resultRateData } }; ResultList.Add(orderResult);