Short은 구름떼 이후 첫번째만 처리 함(Short은 한번만 가는경우가 많아서)

This commit is contained in:
kyh
2025-05-29 11:57:43 +09:00
parent d11c703670
commit b698428681

View File

@@ -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<CandleData> 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)