From a9b551cfeef4e5931076ab4ef43586b313816b7b Mon Sep 17 00:00:00 2001 From: kyh <1329522@naver.com> Date: Thu, 20 Feb 2025 11:33:19 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A0=84=EC=A0=80=EA=B0=80=20=EC=A0=84?= =?UTF-8?q?=EA=B3=A0=EA=B0=80=20=EA=B3=84=EC=82=B0=20=EB=B0=A9=EC=8B=9D?= =?UTF-8?q?=EC=97=90=20=EC=B4=88=EB=8B=A8=EC=9C=84=EB=A5=BC=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80(=EC=B4=88=EB=8B=A8=EC=9C=84=EB=96=84=EB=AC=B8?= =?UTF-8?q?=EC=97=90=201=EA=B0=9C=20=EC=A7=9C=EB=A6=AC=EA=B0=80=20?= =?UTF-8?q?=EC=9E=A1=ED=9E=88=EB=8A=94=20=EC=88=9C=EA=B0=84=EC=9D=B4=20?= =?UTF-8?q?=EC=9E=88=EC=9D=8C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IndicatorProcess.cs | 75 ++++++++++--------- 1 file changed, 38 insertions(+), 37 deletions(-) diff --git a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs index faa7096..8d44498 100644 --- a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs +++ b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs @@ -582,11 +582,21 @@ namespace BitgetAPI.IndicatorConditionSetup var 전전봉3_5 = candleData_5_전전봉.movingAverageDataList[3].Value; var 전전전봉3_5 = candleData_5_전전전봉.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 현재봉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_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 oneList = new List() { 현재봉24, 현재봉48, @@ -605,11 +615,11 @@ namespace BitgetAPI.IndicatorConditionSetup var 저고점_5 = 전저고점[market + "5m"]; var 저고점_30 = 전저고점[market + "30m"]; - var returnVal = Calculate전고점(market, "1m", MCandleTimeType.M1, 전봉3, 전전봉3, 전전전봉3, candleData); + var returnVal = Calculate전고점(market, "1m", MCandleTimeType.M1, 전봉4, 전전봉4, 전전전봉4, candleData); if (!returnVal) continue; - returnVal = Calculate전고점(market, "5m", MCandleTimeType.M5, 전봉3_5, 전전봉3_5, 전전전봉3_5, candleData_5); + returnVal = Calculate전고점(market, "5m", MCandleTimeType.M5, 전봉4_5, 전전봉4_5, 전전전봉4_5, candleData_5); if (!returnVal) continue; - returnVal = Calculate전고점(market, "30m", MCandleTimeType.M30, 전봉3_30, 전전봉3_30, 전전전봉3_30, candleData_30); + returnVal = Calculate전고점(market, "30m", MCandleTimeType.M30, 전봉4_30, 전전봉4_30, 전전전봉4_30, candleData_30); if (!returnVal) continue; @@ -636,16 +646,15 @@ namespace BitgetAPI.IndicatorConditionSetup // 30분봉 var flag_30 = - //(저고점_30["전전전저가"] > 저고점_30["전전저가"] - // && (저고점_30["전전저가"] < 전봉3 && 저고점_30["전전저가"] < 전전봉3 && 저고점_30["전전저가"] < 현재봉3 && 전전봉3 > 전봉3 && 전봉3 < 현재봉3) - //&& 현재봉3_30 > 저고점_30["전고가"]) || - (저고점_30["전전전저가"] > 저고점_30["전전저가"] && 저고점_30["전전저가"] < 저고점_30["전저가"] && 전봉3_30 < 저고점_30["전고가"] && 현재봉3_30 > 저고점_30["전고가"]); - //|| (저고점_30["전전전고가"] > 저고점_30["전전고가"] && 저고점_30["전전고가"] > 저고점_30["전고가"] && 현재봉3_30 > 저고점_30["전고가"]); + (저고점_30["전전전저가"] > 저고점_30["전전저가"] && 저고점_30["전전저가"] > 저고점_30["전저가"] && 전봉4_30 < 저고점_30["전고가"] && 현재봉4_30 > 저고점_30["전고가"] && + 저고점_30["전전전고가"] > 저고점_30["전전고가"] && 저고점_30["전전고가"] > 저고점_30["전고가"]) + || (저고점_30["전전전저가"] > 저고점_30["전전저가"] && 저고점_30["전전저가"] < 저고점_30["전저가"] && 전봉4_30 < 저고점_30["전고가"] && 현재봉4_30 > 저고점_30["전고가"]); - var flag_5 = (저고점_5["전전전저가"] > 저고점_5["전전저가"] && 저고점_5["전전저가"] < 저고점_5["전저가"] && 현재봉3_5 > 저고점_5["전고가"]) - || (저고점_5["전전전고가"] > 저고점_5["전전고가"] && 저고점_5["전전고가"] > 저고점_5["전고가"] && 현재봉3_5 > 저고점_5["전고가"]); + var flag_5 = (저고점_5["전전전저가"] > 저고점_5["전전저가"] && 저고점_5["전전저가"] < 저고점_5["전저가"] && 현재봉4_5 > 저고점_5["전고가"]) + || (저고점_5["전전전고가"] > 저고점_5["전전고가"] && 저고점_5["전전고가"] > 저고점_5["전고가"] && 현재봉4_5 > 저고점_5["전고가"]) + || (저고점_5["전전저가"] < 저고점_5["전저가"] && 저고점_5["전전고가"] < 저고점_5["전고가"]); - var flag_1 = 현재봉3 > oneList.Max(); + var flag_1 = 현재봉4 > oneList.Max(); if (flag_30 && flag_5 && flag_1) { @@ -738,8 +747,7 @@ namespace BitgetAPI.IndicatorConditionSetup } var sellFlag = false; - if (저고점_30["전저가"] > 전봉3_30) - sellFlag = true; + if (flag) { @@ -748,17 +756,15 @@ namespace BitgetAPI.IndicatorConditionSetup sellFlag = true; } - if (저고점_30["전전고가"] > 현재봉3_30) + if (저고점_30["전전고가"] > 현재봉4_30) { sellFlag = true; } } else { - if (저고점_30["전저가"] > 현재봉3_30) - { + if (저고점_30["전저가"] > 현재봉4_30) sellFlag = true; - } if (저고점_30["전고가"] > 저고점_30["전전고가"]) { @@ -862,16 +868,14 @@ namespace BitgetAPI.IndicatorConditionSetup // || (저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] < 저고점_30["전고가"] && 현재봉3_30 < 저고점_30["전저가"]); var flag_30 = - //(저고점_30["전전전고가"] < 저고점_30["전전고가"] - //&& (저고점_30["전전고가"] > 전봉3 && 저고점_30["전전고가"] > 전전봉3 && 저고점_30["전전고가"] > 현재봉3 && 전전봉3 < 전봉3 && 전봉3 > 현재봉3) - //&& 현재봉3_30 < 저고점_30["전저가"]) || - (저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] > 저고점_30["전고가"] && 전봉3_30 > 저고점_30["전저가"] && 현재봉3_30 < 저고점_30["전저가"]); - //|| (저고점_30["전전전저가"] < 저고점_30["전전저가"] && 저고점_30["전전저가"] < 저고점_30["전저가"] && 현재봉3_30 < 저고점_30["전저가"]); - - var flag_5 = (저고점_5["전전전고가"] < 저고점_5["전전고가"] && 저고점_5["전전고가"] > 저고점_5["전고가"] && 현재봉3_5 < 저고점_5["전저가"]) - || (저고점_5["전전전저가"] < 저고점_5["전전저가"] && 저고점_5["전전저가"] < 저고점_5["전저가"] && 현재봉3_5 < 저고점_5["전저가"]); - - var flag_1 = 현재봉3 < oneList.Min(); + (저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] < 저고점_30["전고가"] && 전봉4_30 > 저고점_30["전저가"] && 현재봉4_30 < 저고점_30["전저가"] && + 저고점_30["전전전저가"] < 저고점_30["전전저가"] && 저고점_30["전전저가"] < 저고점_30["전저가"]) + || (저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] > 저고점_30["전고가"] && 전봉4_30 > 저고점_30["전저가"] && 현재봉4_30 < 저고점_30["전저가"]); + + var flag_5 = (저고점_5["전전전고가"] < 저고점_5["전전고가"] && 저고점_5["전전고가"] > 저고점_5["전고가"] && 현재봉4_5 < 저고점_5["전저가"]) + || (저고점_5["전전전저가"] < 저고점_5["전전저가"] && 저고점_5["전전저가"] < 저고점_5["전저가"] && 현재봉4_5 < 저고점_5["전저가"]) + || (저고점_5["전전저가"] > 저고점_5["전저가"] && 저고점_5["전전고가"] > 저고점_5["전고가"]); + var flag_1 = 현재봉4 < oneList.Min(); if (flag_30 && flag_5 && flag_1) { @@ -962,24 +966,21 @@ namespace BitgetAPI.IndicatorConditionSetup continue; } var sellFlag = false; - - if (저고점_30["전고가"] < 전봉3_30) - sellFlag = true; - + if (flag) { if (저고점_30["전저가"] > 저고점_30["전전저가"]) { sellFlag = true; } - if (저고점_30["전전저가"] < 현재봉3_30) + if (저고점_30["전전저가"] < 현재봉4_30) { sellFlag = true; } } else { - if (저고점_30["전고가"] < 현재봉3_30) + if (저고점_30["전고가"] < 현재봉4_30) { sellFlag = true; } @@ -1082,7 +1083,7 @@ namespace BitgetAPI.IndicatorConditionSetup //전저가 if (전봉3 > 전전봉3 && 전전봉3 < 전전전봉3 && 저고점["tempLowVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() && - ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempHighVal"] >= 120 * (int)type) + ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempHighVal"] >= 120 * (int)type + 59.9999) { 저고점["tempLow2Val"] = 저고점["tempLowVal"]; 저고점["tempLowVal"] = ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds(); @@ -1095,7 +1096,7 @@ namespace BitgetAPI.IndicatorConditionSetup } else if (전봉3 > 전전봉3 && 전전봉3 < 전전전봉3 && 저고점["tempLowVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() && - ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempHighVal"] < 120 * (int)type) + ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempHighVal"] < 120 * (int)type + 59.9999) { //이전으로 초기화 작업(High) 저고점["전고가"] = 저고점["전전고가"]; @@ -1111,7 +1112,7 @@ namespace BitgetAPI.IndicatorConditionSetup //전고가 if (전전봉3 > 전봉3 && 전전봉3 > 전전전봉3 && 저고점["tempHighVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() && - ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempLowVal"] >= 120 * (int)type) + ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempLowVal"] >= 120 * (int)type + 59.9999) { 저고점["tempHigh2Val"] = 저고점["tempHighVal"]; 저고점["tempHighVal"] = ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds(); @@ -1123,7 +1124,7 @@ namespace BitgetAPI.IndicatorConditionSetup } else if (전전봉3 > 전봉3 && 전전봉3 > 전전전봉3 && 저고점["tempHighVal"] != ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() && - ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempLowVal"] < 120 * (int)type) + ((DateTimeOffset)candleData.Argument).ToUnixTimeSeconds() - 저고점["tempLowVal"] < 120 * (int)type + 59.9999) { //이전으로 초기화 작업(Low) 저고점["전저가"] = 저고점["전전저가"];