From b6984286812d68182ca85abcd8d0fe10ec1873d6 Mon Sep 17 00:00:00 2001 From: kyh <1329522@naver.com> Date: Thu, 29 May 2025 11:57:43 +0900 Subject: [PATCH] =?UTF-8?q?Short=EC=9D=80=20=EA=B5=AC=EB=A6=84=EB=96=BC=20?= =?UTF-8?q?=EC=9D=B4=ED=9B=84=20=EC=B2=AB=EB=B2=88=EC=A7=B8=EB=A7=8C=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=20=ED=95=A8(Short=EC=9D=80=20=ED=95=9C?= =?UTF-8?q?=EB=B2=88=EB=A7=8C=20=EA=B0=80=EB=8A=94=EA=B2=BD=EC=9A=B0?= =?UTF-8?q?=EA=B0=80=20=EB=A7=8E=EC=95=84=EC=84=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SMABandConditionSetup.cs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/BitgetApi/IndicatorConditionSetup/SMABandConditionSetup.cs b/BitgetApi/IndicatorConditionSetup/SMABandConditionSetup.cs index a96f23c..dc9bc39 100644 --- a/BitgetApi/IndicatorConditionSetup/SMABandConditionSetup.cs +++ b/BitgetApi/IndicatorConditionSetup/SMABandConditionSetup.cs @@ -14,7 +14,8 @@ namespace BitgetApi.IndicatorConditionSetup { private readonly int rangeLookback = 12; private readonly double rangeThresholdPercent = 0.6; - + private bool wasBelowCloud = false; + private bool allowNewShortEntry = true; public bool Calculate(List candles, SMABandType type) { @@ -67,6 +68,17 @@ namespace BitgetApi.IndicatorConditionSetup bool isSma4BelowCloud = sma4 < cloudBottomNow; bool isSma4AboveCloud = sma4 > cloudTopNow; + if (isSma4BelowCloud && !wasBelowCloud) + { + allowNewShortEntry = true; + wasBelowCloud = true; + } + else if (!isSma4BelowCloud) + { + allowNewShortEntry = false; + wasBelowCloud = false; + } + bool greenCandle = open[i] < close[i]; bool redCandle = open[i] > close[i]; @@ -77,8 +89,7 @@ namespace BitgetApi.IndicatorConditionSetup bool rawLongSell = (sma4 <= prevSma4 && prevSma4 <= prev2Sma4 && prev2Sma4 <= prev3Sma4 && sma4 == sma4Low); - bool rawNewShort = isSideways && isSma4BelowCloud && (sma4 == sma4Low && prevSma4 >= prevSma4Low && prev2Sma4 >= prev2Sma4Low) && (sma4 <= prevSma4 && prevSma4 <= prev2Sma4 && prev2Sma4 <= prev3Sma4); - + bool rawNewShort = allowNewShortEntry && isSideways && isSma4BelowCloud && (sma4 == sma4Low && prevSma4 >= prevSma4Low && prev2Sma4 >= prev2Sma4Low) && (sma4 <= prevSma4 && prevSma4 <= prev2Sma4 && prev2Sma4 <= prev3Sma4); bool rawShortSell = (sma4 >= prevSma4 && prevSma4 >= prev2Sma4 && prev2Sma4 >= prev3Sma4 && sma4 == sma4High); @@ -93,7 +104,7 @@ namespace BitgetApi.IndicatorConditionSetup } else if (type == SMABandType.LongSell) - { + { return rawLongSell; } else if (type == SMABandType.ShortSell)