diff --git a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs index 923e97e..b64159c 100644 --- a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs +++ b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs @@ -305,7 +305,7 @@ namespace BitgetAPI.IndicatorConditionSetup BuyShortStep[market] = 0; BuyLongStep[market] = 0; } - if (!(전저고점.ContainsKey(market + "30m"))) + if (!(전저고점.ContainsKey(market + "5m"))) continue; //if (!(전저고점.ContainsKey(market + "1m") && 전저고점.ContainsKey(market + "5m") && 전저고점.ContainsKey(market + "30m"))) @@ -325,7 +325,7 @@ namespace BitgetAPI.IndicatorConditionSetup //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); @@ -359,124 +359,124 @@ namespace BitgetAPI.IndicatorConditionSetup #region 5분봉 처리 // 시간별로 정렬하기 (임시 리스트) - //var candleDatas_5 = findedMarket.candleDataList[MCandleTimeType.M5]; - //var candleDatas_5_정렬 = candleDatas_5.OrderBy(i => i.Argument).ToList(); + 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); - //var candleData_5 = candleDatas_5.Find(i => i.Argument == candleDatas_5_정렬.Last().Argument); + if (candleData_5 == null) continue; - //if (candleData_5 == null) continue; + ichimokuConditionSetup.calIchimokuData(candleDatas_5_정렬, candleData_5); + movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_5_정렬, candleData_5); - //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); - //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_전봉); - //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); - //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_전전봉); - //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); - //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_전전전봉); + 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); + 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_전전전전봉); + 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(); + ////var macdData_30 = new ImpulseMacdData(); - //var imperseMacd_keys_30 = totalImperseMACDData[market + "30m"].Keys.OrderBy(t => t).ToList(); + ////var imperseMacd_keys_30 = totalImperseMACDData[market + "30m"].Keys.OrderBy(t => t).ToList(); - //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; - //} + ////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; + ////} - //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.impulseMacdDataList == null) candleData_30.impulseMacdDataList = new Dictionary(); + ////if (candleData_30.impulseMacdDataList.ContainsKey(30)) candleData_30.impulseMacdDataList[30] = new ImpulseMacdData(); - //candleData_30.impulseMacdDataList[30] = macdData_30; - //var macdData_5 = new ImpulseMacdData(); + ////candleData_30.impulseMacdDataList[30] = macdData_30; + ////var macdData_5 = new ImpulseMacdData(); - //var imperseMacd_keys_5 = totalImperseMACDData[market + "5m"].Keys.OrderBy(t => t).ToList(); + ////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 (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; + ////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); + //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_전전봉); + //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_전전전봉); + //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_전전전전봉); + //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.상한선 @@ -638,39 +638,39 @@ namespace BitgetAPI.IndicatorConditionSetup */ #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_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 현재봉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_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 현재봉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 현재봉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 저고점_5 = 전저고점[market + "5m"]; + //var 저고점_30 = 전저고점[market + "30m"]; //var returnVal = Calculate전고점(market, "1m", MCandleTimeType.M1, 전봉4, 전전봉4, 전전전봉4, candleData); //if (!returnVal) continue; - //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); + 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]]; @@ -681,15 +681,15 @@ namespace BitgetAPI.IndicatorConditionSetup //var 전전전봉macdData_5 = totalImperseMACDData[market + "5m"][imperseMacd_keys_5[imperseMacd_keys_5.Count - 4]]; //신규 데이터 Setup - tradingViewConditionSetup.SetData(candleDatas_30_TempList.Select(t => t.High).ToList(), - candleDatas_30_TempList.Select(t => t.Low).ToList(), candleDatas_30_TempList.Select(t => t.Close).ToList()); + 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_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 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 description = string.Format("{0} 72,24,4 상승", strInterval); var signalData = signals_SD.Find(i => i.MarketName.Equals(market) && i.Description.Equals(description)); @@ -718,18 +718,18 @@ namespace BitgetAPI.IndicatorConditionSetup if(BuyLongStep[market] == 1 )//&& BuyLongStepStampData[market] < 저고점_30["tempLowVal"]) { - buyFlag = ((저고점_30["Type"] == 0 && - 저고점_30["전전전저가"] > 저고점_30["전전저가"] && 저고점_30["전전저가"] < 저고점_30["전저가"] && candleData_30_전봉.Close < 저고점_30["전고가"] && candleData_30.Close > 저고점_30["전고가"]) - || (저고점_30["Type"] == 1 && - 저고점_30["전저가"] > 저고점_30["전전저가"] && 저고점_30["전저가"] < 전봉4_30 && candleData_30_전봉.Close < 저고점_30["전고가"] && candleData_30.Close > 저고점_30["전고가"] && 전봉4_30 < 현재봉4_30 && 전봉4_30 < 전전봉4_30) - || (저고점_30["Type"] == 0 && - 저고점_30["전전전저가"] > 저고점_30["전전저가"] && 저고점_30["전전저가"] > 저고점_30["전저가"] && candleData_30_전봉.Close < 저고점_30["전고가"] && candleData_30.Close > 저고점_30["전고가"])) - && 전봉4_30 < 현재봉4_30 && candleData_30.Open < candleData_30.Close; + 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 (저고점_30["전고가"] < 저고점_30["전전고가"] || - 저고점_30["전저가"] < 저고점_30["전전저가"] || + if (저고점_5["전고가"] < 저고점_5["전전고가"] || + 저고점_5["전저가"] < 저고점_5["전전저가"] || tradingViewConditionSetup.IsShortSignal()) { BuyLongStep[market] = 0; @@ -761,10 +761,10 @@ namespace BitgetAPI.IndicatorConditionSetup { "MarketName", market }, { "BuyDate", nowTime }, { "Price", price }, - { "Flag", 저고점_30["전고가"] > 저고점_30["전전고가"]}, + { "Flag", 저고점_5["전고가"] > 저고점_5["전전고가"]}, { "MCandleTimeType", (int)interval }, - { "CandleTime", candleData_30.Argument }, - { "Candle", candleData_30 } + { "CandleTime", candleData_5.Argument }, + { "Candle", candleData_5 } }; UpBuyList.Add(market, buyDic); @@ -792,7 +792,7 @@ namespace BitgetAPI.IndicatorConditionSetup { "BuyDate", nowTime }, { "Price", price }, { "MCandleTimeType", (int)interval }, - { "Candle", candleData_30 }, + { "Candle", candleData_5 }, { "Size", size }, { "orderId", orderDic["orderId"] } }; @@ -825,8 +825,8 @@ namespace BitgetAPI.IndicatorConditionSetup var sellFlag = false; - if( 저고점_30["전고가"] < 저고점_30["전전고가"] || - 저고점_30["전저가"] > candleData_30_전봉.Close || + if( 저고점_5["전고가"] < 저고점_5["전전고가"] || + 저고점_5["전저가"] > candleData_5_전봉.Close || tradingViewConditionSetup.IsShortSignal()) { sellFlag = true; @@ -848,7 +848,7 @@ namespace BitgetAPI.IndicatorConditionSetup { "BuyCandle", buyItem["Candle"] }, { "SellDate", nowTime}, { "SellPrice", price }, - { "SellCandle", candleData_30 }, + { "SellCandle", candleData_5 }, { "Rate", resultRate } }; @@ -889,7 +889,7 @@ namespace BitgetAPI.IndicatorConditionSetup { "BuyCandle", buyItem["Candle"] }, { "SellDate", nowTime}, { "SellPrice", price}, - { "SellCandle", candleData_30 }, + { "SellCandle", candleData_5 }, { "Rate", resultRateData } }; ResultList.Add(orderResult); @@ -909,10 +909,10 @@ namespace BitgetAPI.IndicatorConditionSetup } if (영호조건식_하향돌파) { - 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 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 description = string.Format("{0} 72,24,4 하락", strInterval); var signalData = signals_SD.Find(i => i.MarketName.Equals(market) && i.Description.Equals(description)); @@ -933,28 +933,27 @@ namespace BitgetAPI.IndicatorConditionSetup if (tradingViewConditionSetup.IsShortSignal()) { BuyShortStep[market] = 1; - //BuyShortStepStampData[market] = 저고점_30["tempHighVal"]; + BuyShortStepStampData[market] = 저고점_5["tempHighVal"]; } } - if (BuyShortStep[market] == 1)// && BuyShortStepStampData[market] < 저고점_30["tempHighVal"]) + if (BuyShortStep[market] == 1 && BuyShortStepStampData[market] < 저고점_5["tempHighVal"]) { - buyFlag = ((저고점_30["Type"] == 1 && - 저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] > 저고점_30["전고가"] && candleData_30.Close < 저고점_30["전저가"] && candleData_30_전봉.Close > 저고점_30["전저가"]) - || (저고점_30["Type"] == 0 && - 저고점_30["전고가"] < 저고점_30["전전고가"] && 저고점_30["전고가"] > 전봉4_30 && candleData_30_전봉.Close > 저고점_30["전저가"] && candleData_30.Close < 저고점_30["전저가"] && 전봉4_30 > 현재봉4_30 && 전봉4_30 > 전전봉4_30) - || (저고점_30["Type"] == 1 && - 저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] < 저고점_30["전고가"] && candleData_30_전봉.Close > 저고점_30["전저가"] && candleData_30.Close < 저고점_30["전저가"])) - && 전봉4_30 > 현재봉4_30 && candleData_30.Open > candleData_30.Close; - - //초기화 처리 필요 - if (저고점_30["전고가"] > 저고점_30["전전고가"] || - 저고점_30["전저가"] > 저고점_30["전전저가"] || + 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; - } + { + BuyShortStep[market] = 0; + buyFlag = false; + } if (buyFlag) @@ -980,10 +979,10 @@ namespace BitgetAPI.IndicatorConditionSetup { "MarketName", market }, { "BuyDate", nowTime }, { "Price", price }, - { "Flag", 저고점_30["전저가"] < 저고점_30["전전저가"]}, + { "Flag", 저고점_5["전저가"] < 저고점_5["전전저가"]}, { "MCandleTimeType", (int)interval }, - { "CandleTime", candleData_30.Argument }, - { "Candle", candleData_30 } + { "CandleTime", candleData_5.Argument }, + { "Candle", candleData_5 } }; DownBuyList.Add(market, buyDic); @@ -1011,7 +1010,7 @@ namespace BitgetAPI.IndicatorConditionSetup { "BuyDate", nowTime }, { "Price", price }, { "MCandleTimeType", (int)interval }, - { "Candle", candleData_30 }, + { "Candle", candleData_5 }, { "Size", size }, { "orderId", orderDic["orderId"] } }; @@ -1043,8 +1042,8 @@ namespace BitgetAPI.IndicatorConditionSetup } var sellFlag = false; - if (저고점_30["전저가"] > 저고점_30["전전저가"] || - 저고점_30["전고가"] < candleData_30_전봉.Close || + if (저고점_5["전저가"] > 저고점_5["전전저가"] || + 저고점_5["전고가"] < candleData_5_전봉.Close || tradingViewConditionSetup.IsLongSignal()) { @@ -1067,7 +1066,7 @@ namespace BitgetAPI.IndicatorConditionSetup { "BuyCandle", buyItem["Candle"] }, { "SellDate", nowTime}, { "SellPrice", price }, - { "SellCandle", candleData_30 }, + { "SellCandle", candleData_5 }, { "Rate", resultRate } }; @@ -1109,7 +1108,7 @@ namespace BitgetAPI.IndicatorConditionSetup { "BuyCandle", buyItem["Candle"] }, { "SellDate", nowTime}, { "SellPrice", price }, - { "SellCandle", candleData_30 }, + { "SellCandle", candleData_5 }, { "Rate", resultRateData } }; ResultList.Add(orderResult);