From b2813cc62c5b039bbafadde62799b034228b370d Mon Sep 17 00:00:00 2001 From: kyh <1329522@naver.com> Date: Thu, 19 Jun 2025 10:48:45 +0900 Subject: [PATCH] =?UTF-8?q?=ED=8C=8C=EB=8A=94=20=EB=A1=9C=EC=A7=81?= =?UTF-8?q?=EC=97=90=20=EC=B6=94=EA=B0=80=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IndicatorProcess.cs | 54 ++++++++----------- .../SMABandConditionSetup.cs | 4 +- 2 files changed, 25 insertions(+), 33 deletions(-) diff --git a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs index 02290f6..99f83e7 100644 --- a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs +++ b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs @@ -409,7 +409,7 @@ namespace BitgetAPI.IndicatorConditionSetup { "MarketName", market }, { "BuyDate", nowTime }, { "Price", price }, - { "Flag", false }, + { "Flag", 저고점["전저가"] > 저고점["전전저가"] }, { "MCandleTimeType", (int)interval }, { "CandleTime", candleData_5.Argument }, { "Candle", candleData_5 } @@ -459,18 +459,10 @@ namespace BitgetAPI.IndicatorConditionSetup var flag = (bool)buyItem["Flag"]; if (interval < MCandleTimeType.H1) { - var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes(1); - var buyTwoTime = buyTime.AddMinutes(5); + var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes(5); if (nowTime < buyTime) continue; - else if (nowTime < buyTwoTime) - { - if (!(sMABandConditionSetup.Calculate(candleDatas_5_TempList, SMABandType.LongBuy, market, true) && - !sMABandConditionSetup.Calculate(candleDatas_5_TempList, SMABandType.LongSell, market, true))) - { - buyItem["Flag"] = true; - } - } + } //임시로 처리 else @@ -480,13 +472,17 @@ namespace BitgetAPI.IndicatorConditionSetup continue; } - var sellFlag = false; + var sellFlag = false; - if (flag) + if (!flag) { - var buyPrice = (double)buyItem["Price"]; - if(candleData_5.Close > buyPrice) - sellFlag= true; + if (저고점["전저가"] > 저고점["전전저가"]) + buyItem["Flag"] = true; + } + else + { + if (저고점["전저가"] < 저고점["전전저가"] || 저고점["전저가"] > candleData_5_전봉.Close) + sellFlag = true; } if (sMABandConditionSetup.Calculate(candleDatas_5_TempList, SMABandType.LongSell, market, true) || sellFlag) @@ -614,7 +610,7 @@ namespace BitgetAPI.IndicatorConditionSetup { "MarketName", market }, { "BuyDate", nowTime }, { "Price", price }, - { "Flag", false }, + { "Flag", 저고점["전고가"] < 저고점["전전고가"] }, { "MCandleTimeType", (int)interval }, { "CandleTime", candleData_5.Argument }, { "Candle", candleData_5 } @@ -664,19 +660,11 @@ namespace BitgetAPI.IndicatorConditionSetup var flag = (bool)buyItem["Flag"]; if (interval < MCandleTimeType.H1) { - var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes(1); - var buyTwoTime = buyTime.AddMinutes(5); - + var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes(5); + if (nowTime < buyTime) continue; - else if (nowTime < buyTwoTime) - { - if (!(sMABandConditionSetup.Calculate(candleDatas_5_TempList, SMABandType.ShortBuy, market, true) && - !sMABandConditionSetup.Calculate(candleDatas_5_TempList, SMABandType.ShortSell, market, true))) - { - buyItem["Flag"] = true; - } - } + } //임시로 처리 else @@ -690,10 +678,14 @@ namespace BitgetAPI.IndicatorConditionSetup var sellFlag = false; - if (flag) + if (!flag) { - var buyPrice = (double)buyItem["Price"]; - if (candleData_5.Close > buyPrice) + if (저고점["전고가"] < 저고점["전전고가"]) + buyItem["Flag"] = true; + } + else + { + if (저고점["전고가"] > 저고점["전전고가"] || 저고점["전고가"] < candleData_5_전봉.Close) sellFlag = true; } diff --git a/BitgetApi/IndicatorConditionSetup/SMABandConditionSetup.cs b/BitgetApi/IndicatorConditionSetup/SMABandConditionSetup.cs index fbca86a..6d4e496 100644 --- a/BitgetApi/IndicatorConditionSetup/SMABandConditionSetup.cs +++ b/BitgetApi/IndicatorConditionSetup/SMABandConditionSetup.cs @@ -123,12 +123,12 @@ namespace BitgetApi.IndicatorConditionSetup bool redCandle = open[i] > close[i]; // 진입/청산 조건 - bool rawNewLong = sma4 == sma4High && prevSma4 sma72 && sma4 > cloudTopNow && ichmok.SenkouSpanA > ichmok.SenkouSpanB; // sma4 > cloudBottomNow && IsSideways(high, low, i, true) && isSma4AboveCloud && (sma4 == sma4High && prevSma4 <= prevSma4High && prev2Sma4 <= prev2Sma4High) && (sma4 >= prevSma4 && prevSma4 >= prev2Sma4 && prev2Sma4 >= prev3Sma4); + bool rawNewLong = sma4 == sma4High && prevSma4 < sma4High && sma4Middle > sma72 && sma4 > cloudTopNow && ichmok.SenkouSpanA >= ichmok.SenkouSpanB; // sma4 > cloudBottomNow && IsSideways(high, low, i, true) && isSma4AboveCloud && (sma4 == sma4High && prevSma4 <= prevSma4High && prev2Sma4 <= prev2Sma4High) && (sma4 >= prevSma4 && prevSma4 >= prev2Sma4 && prev2Sma4 >= prev3Sma4); bool rawLongSell = (sma4Middle < sma72 && prevSma4Middle > prevSma72) || (sma4 < cloudBottomNow);// (sma4 <= prevSma4 && prevSma4 <= prev2Sma4 && sma4 < sma4Middle); //cloudFlag && - bool rawNewShort = sma4High < sma72 && prevSma4High > prevSma72;//sma4 < cloudTopNow && IsSideways(high, low, i, false) && isSma4BelowCloud && (sma4 == sma4Low && prevSma4 >= prevSma4Low && prev2Sma4 >= prev2Sma4Low) && (sma4 <= prevSma4 && prevSma4 <= prev2Sma4 && prev2Sma4 <= prev3Sma4); + bool rawNewShort = sma4 == sma4Low && prevSma4 > sma4Low && sma4Middle < sma72 && sma4 < cloudBottomNow;// sma4High < sma72 && prevSma4High > prevSma72;//sma4 < cloudTopNow && IsSideways(high, low, i, false) && isSma4BelowCloud && (sma4 == sma4Low && prevSma4 >= prevSma4Low && prev2Sma4 >= prev2Sma4Low) && (sma4 <= prevSma4 && prevSma4 <= prev2Sma4 && prev2Sma4 <= prev3Sma4); bool rawShortSell = (sma4Middle > sma72 && prevSma4Middle < prevSma72) || (sma4 > cloudTopNow);//(sma4 >= prevSma4 && prevSma4 >= prev2Sma4 && sma4 > sma4Middle);