diff --git a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs index 468c790..0e0baa8 100644 --- a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs +++ b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs @@ -613,7 +613,7 @@ namespace BitgetAPI.IndicatorConditionSetup else { var buyItem = DownBuyList[market]; - var flag = (bool)buyItem["Flag"]; + //var flag = (bool)buyItem["Flag"]; if (interval < MCandleTimeType.H1) { var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes(5); diff --git a/BitgetApi/IndicatorConditionSetup/SMABandConditionSetup.cs b/BitgetApi/IndicatorConditionSetup/SMABandConditionSetup.cs index e494604..7b024d0 100644 --- a/BitgetApi/IndicatorConditionSetup/SMABandConditionSetup.cs +++ b/BitgetApi/IndicatorConditionSetup/SMABandConditionSetup.cs @@ -12,7 +12,7 @@ namespace BitgetApi.IndicatorConditionSetup public class SMABandConditionSetup { private readonly int rangeLookback = 12; - private readonly double rangeThresholdPercent = 0.4; + private readonly double rangeThresholdPercent = 0.6; private readonly int recentTouchLookback = 5; private readonly int recentTouch2Lookback = 15; @@ -100,20 +100,18 @@ namespace BitgetApi.IndicatorConditionSetup { double sma4_j = Avg(close[j], close[j - 1], close[j - 2], close[j - 3]); double sma4Middle_j = SMA(close, j, 12, useSma4: true); - if (sma4_j > sma4Middle_j) + if (sma4_j < sma4Middle_j) { - isShort2RecentTouch = true; + isLong2RecentTouch = true; break; } } - bool rawNewLong = (isSideways && ! isLongRecentTouch && isLong2RecentTouch && sma4 == sma4High && prevSma4 (prevSma4Middle - prev2Sma4Middle))) || - (isSideways && isLong2RecentTouch && sma4 == sma4High && prevSma4 == prevSma4High && prevSma4 < sma4 && ((sma4Middle - prevSma4Middle) > (prevSma4Middle - prev2Sma4Middle))); - bool rawLongSell = prevSma4High == prevSma4 && sma4High > sma4; + bool rawNewLong = (isSideways && ! isLongRecentTouch && isLong2RecentTouch && sma4 == sma4High && prevSma4 (prevSma4Middle - prev2Sma4Middle))) &&(isSideways && isLong2RecentTouch && sma4 > sma4Middle && prevSma4 < prevSma4Middle && prevSma4 < sma4 &&((sma4Middle - prevSma4Middle) > (prevSma4Middle - prev2Sma4Middle) && open[open.Count - 1] < close[close.Count - 1])); + bool rawLongSell = close[close.Count - 1] < sma4Middle || prevSma4High == prevSma4 && sma4High > sma4; - bool rawNewShort = (!isShortRecentTouch && isShort2RecentTouch && sma4 == sma4Low && prevSma4 > sma4 && prevSma4 > prevSma4Low && ((sma4Middle - prevSma4Middle) < (prevSma4Middle - prev2Sma4Middle))) || - (isShort2RecentTouch && sma4 == sma4Low && prevSma4 == prevSma4Low && prevSma4 > sma4 && ((sma4Middle - prevSma4Middle) < (prevSma4Middle - prev2Sma4Middle))); - bool rawShortSell = open[open.Count - 1] > sma4Middle || (sma4High == sma4 && prevSma4High > prevSma4) ||(prev2Sma4Low == prev2Sma4 && prevSma4Low < prevSma4); ; + bool rawNewShort = (! isShortRecentTouch && isShort2RecentTouch && sma4 == sma4Low && prevSma4 > sma4 && prevSma4 > prevSma4Low && open[open.Count - 1] > close[close.Count - 1] &&((sma4Middle - prevSma4Middle) < (prevSma4Middle - prev2Sma4Middle))) || (isShort2RecentTouch && sma4 == sma4Low && prevSma4 == prevSma4Low && prevSma4 > sma4 && open[open.Count - 1] > close[close.Count - 1] &&((sma4Middle - prevSma4Middle) < (prevSma4Middle - prev2Sma4Middle))); + bool rawShortSell = rawShortSell = close[close.Count - 1] > sma4Middle || (sma4High == sma4 && prevSma4High > prevSma4) || (prev2Sma4Low == prev2Sma4 && prevSma4Low < prevSma4); // === 시그널 계산 === if (type == SMABandType.LongBuy)