From 07085f88c736817c75a41267ac9f02dbbf770f3f Mon Sep 17 00:00:00 2001 From: kyh <1329522@naver.com> Date: Wed, 28 May 2025 15:37:09 +0900 Subject: [PATCH] =?UTF-8?q?=EC=82=AC=EB=8A=94=20=EC=A7=80=EC=A0=90?= =?UTF-8?q?=EA=B3=BC=20=ED=8C=8C=EB=8A=94=EC=A7=80=EC=A0=90=EC=9D=B4=20?= =?UTF-8?q?=EA=B2=B9=EC=B9=98=EB=A9=B4=20=EC=95=88=EC=82=AC=EB=8A=94?= =?UTF-8?q?=EA=B1=B0=EB=A1=9C=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs | 6 ++++-- BitgetApi/IndicatorConditionSetup/SMABandConditionSetup.cs | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs index 0e0baa8..2bb4876 100644 --- a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs +++ b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs @@ -370,7 +370,8 @@ namespace BitgetAPI.IndicatorConditionSetup //사는 시점 if (!UpBuyList.ContainsKey(market)) { - if (sMABandConditionSetup.Calculate(candleDatas_5_TempList, SMABandType.LongBuy)) + if (sMABandConditionSetup.Calculate(candleDatas_5_TempList, SMABandType.LongBuy) && + !sMABandConditionSetup.Calculate(candleDatas_5_TempList, SMABandType.LongSell)) { BuyLongStep[market] = 0; // 없으면 생성 @@ -544,7 +545,8 @@ namespace BitgetAPI.IndicatorConditionSetup //사는 시점 if (!DownBuyList.ContainsKey(market)) { - if (sMABandConditionSetup.Calculate(candleDatas_5_TempList, SMABandType.ShortBuy)) + if (sMABandConditionSetup.Calculate(candleDatas_5_TempList, SMABandType.ShortBuy) && + !sMABandConditionSetup.Calculate(candleDatas_5_TempList, SMABandType.ShortSell)) { BuyShortStep[market] = 0; // 없으면 생성 diff --git a/BitgetApi/IndicatorConditionSetup/SMABandConditionSetup.cs b/BitgetApi/IndicatorConditionSetup/SMABandConditionSetup.cs index 562e18d..856c15f 100644 --- a/BitgetApi/IndicatorConditionSetup/SMABandConditionSetup.cs +++ b/BitgetApi/IndicatorConditionSetup/SMABandConditionSetup.cs @@ -51,7 +51,7 @@ namespace BitgetApi.IndicatorConditionSetup double prev2Sma4High = Highest(close, i - 2, 12); double prev2Sma4Low = Lowest(close, i - 2, 12); - + double prev2Sma4Middle = SMA(close, i - 2, 12); bool isSideways = IsSideways(high, low, i); // 조건 판단 @@ -69,8 +69,8 @@ namespace BitgetApi.IndicatorConditionSetup bool rawLongSell = close[i] < sma4Middle || (prevSma4High == prevSma4 && sma4High > sma4); - bool rawNewShort = (sma4 == sma4Low && prevSma4 == prevSma4Low && prevSma4 > sma4 && redCandle && (sma4Middle - prevSma4Middle) < (prevSma4Middle - SMA(close, i - 2, 12))); - + bool rawNewShort = (sma4 == sma4Low && prevSma4 > sma4 && prevSma4 > prevSma4Low && open[i] > close[i] && ((sma4Middle - prevSma4Middle) < (prevSma4Middle - prev2Sma4Middle))); + bool rawShortSell = close[i] > sma4Middle || (sma4High == sma4 && prevSma4High > prevSma4) || (prev2Sma4Low == prev2Sma4 && prevSma4Low < prevSma4); // === 시그널 계산 ===