From 5dc918567bc39c8ac8074716df84381f5a3db490 Mon Sep 17 00:00:00 2001 From: kyh <1329522@naver.com> Date: Fri, 31 Jan 2025 14:49:45 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9E=AC=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IndicatorProcess.cs | 104 +++++++++--------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs index c2c735e..0468005 100644 --- a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs +++ b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs @@ -620,7 +620,7 @@ namespace BitgetAPI.IndicatorConditionSetup var buyFlag = false; // 30분봉 - var flag_30 = (저고점_30["전전전저가"] > 저고점_30["전전저가"] + var flag_30 = (저고점_30["전전전저가"] > 저고점_30["전전저가"] && (저고점_30["전전저가"] < 전봉3 && 저고점_30["전전저가"] < 전전봉3 && 저고점_30["전전저가"] < 현재봉3 && 전전봉3 > 전봉3 && 전봉3 < 현재봉3) && 현재봉3_30 > 저고점_30["전고가"]) || (저고점_30["전전전저가"] > 저고점_30["전전저가"] && 저고점_30["전전저가"] < 저고점_30["전저가"] && 현재봉3_30 > 저고점_30["전고가"]) @@ -722,7 +722,7 @@ namespace BitgetAPI.IndicatorConditionSetup } var sellFlag = false; - if (저고점_30["전저가"] > 전봉3 || 저고점_30["전고가"] < 저고점_30["전전고가"]) + if (저고점_30["전저가"] > 전봉3_30 || 저고점_30["전고가"] < 저고점_30["전전고가"]) sellFlag = true; @@ -815,13 +815,13 @@ namespace BitgetAPI.IndicatorConditionSetup //사는 시점 if (!DownBuyList.ContainsKey(market)) { - - var buyFlag = false; + + var buyFlag = false; //var flag_30 = (저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] > 저고점_30["전고가"] && 현재봉3_30 < 저고점_30["전저가"]) // || (저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] < 저고점_30["전고가"] && 현재봉3_30 < 저고점_30["전저가"]); - var flag_30 = (저고점_30["전전전고가"] < 저고점_30["전전고가"] + var flag_30 = (저고점_30["전전전고가"] < 저고점_30["전전고가"] && (저고점_30["전전고가"] > 전봉3 && 저고점_30["전전고가"] > 전전봉3 && 저고점_30["전전고가"] > 현재봉3 && 전전봉3 < 전봉3 && 전봉3 > 현재봉3) && 현재봉3_30 < 저고점_30["전저가"]) || (저고점_30["전전전고가"] < 저고점_30["전전고가"] && 저고점_30["전전고가"] > 저고점_30["전고가"] && 현재봉3_30 < 저고점_30["전저가"]) @@ -830,31 +830,31 @@ namespace BitgetAPI.IndicatorConditionSetup var flag_5 = (저고점_5["전전전고가"] < 저고점_5["전전고가"] && 저고점_5["전전고가"] > 저고점_5["전고가"] && 현재봉3_5 < 저고점_5["전저가"]) || (저고점_5["전전전고가"] < 저고점_5["전전고가"] && 저고점_5["전전고가"] < 저고점_5["전고가"] && 현재봉3_5 < 저고점_5["전저가"]); - var flag_1 = 현재봉3 < 현재봉24 && 현재봉3 < 현재봉48 && 현재봉3 < 현재봉72 && 현재봉3 < 현재봉120; + var flag_1 = 현재봉3 < 현재봉24 && 현재봉3 < 현재봉48 && 현재봉3 < 현재봉72 && 현재봉3 < 현재봉120; - if (flag_30 && flag_5 && flag_1) + if (flag_30 && flag_5 && flag_1) + { + buyFlag = true; + } + + if (buyFlag) + { + // 없으면 생성 + if (signalData == null) { - buyFlag = true; + SignalInfoData signalInfoData = new SignalInfoData(); + signalInfoData.SignalStart = nowTime; + signalInfoData.MarketName = market; + signalInfoData.Description = description; + signalInfoData.Rate = rate; + signalInfoData.Price = price; + signalInfoData.IndicatorPrice = indicatorPrice; + signalInfoData.IndicatorRate = indicatorRate; + signalInfoData.MCandleTimeType = interval; + + signals_SD.Add(signalInfoData); } - - if (buyFlag) - { - // 없으면 생성 - if (signalData == null) - { - SignalInfoData signalInfoData = new SignalInfoData(); - signalInfoData.SignalStart = nowTime; - signalInfoData.MarketName = market; - signalInfoData.Description = description; - signalInfoData.Rate = rate; - signalInfoData.Price = price; - signalInfoData.IndicatorPrice = indicatorPrice; - signalInfoData.IndicatorRate = indicatorRate; - signalInfoData.MCandleTimeType = interval; - - signals_SD.Add(signalInfoData); - } - var buyDic = new Dictionary + var buyDic = new Dictionary { { "MarketName", market }, { "BuyDate", nowTime }, @@ -864,26 +864,26 @@ namespace BitgetAPI.IndicatorConditionSetup { "Candle", candleData } }; - DownBuyList.Add(market, buyDic); - var dic = new Dictionary - { - [1] = true, - [2] = false, - [3] = false, - [4] = false, - [5] = false - }; - SellShortStep.Add(market, dic); + DownBuyList.Add(market, buyDic); + var dic = new Dictionary + { + [1] = true, + [2] = false, + [3] = false, + [4] = false, + [5] = false + }; + SellShortStep.Add(market, dic); - if (ShortCount < 5) + if (ShortCount < 5) + { + double size = YHKIM_OrderAmount / price * YHKIM_Leverage; + var orderData = FutureOrder(market, FutureMarginMode.isolated, size, price, FutureSide.BuyShort, OrderType.limit, YHKIM_Leverage); + if (orderData != null) { - double size = YHKIM_OrderAmount / price * YHKIM_Leverage; - var orderData = FutureOrder(market, FutureMarginMode.isolated, size, price, FutureSide.BuyShort, OrderType.limit, YHKIM_Leverage); - if (orderData != null) - { - var orderDic = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(orderData["data"])); + var orderDic = JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(orderData["data"])); - var orderDataDic = new Dictionary + var orderDataDic = new Dictionary { { "MarketName", market }, { "BuyDate", nowTime }, @@ -893,19 +893,19 @@ namespace BitgetAPI.IndicatorConditionSetup { "Size", size }, { "orderId", orderDic["orderId"] } }; - BuyShortList.Add(orderDataDic); - ShortCount++; - } + BuyShortList.Add(orderDataDic); + ShortCount++; } } - } - + + } + //파는 시점 else - { + { var buyItem = DownBuyList[market]; - + if (interval < MCandleTimeType.H1) { var buyTime = ((DateTime)buyItem["BuyDate"]).AddMinutes((int)interval); @@ -921,7 +921,7 @@ namespace BitgetAPI.IndicatorConditionSetup } var sellFlag = false; - if (저고점_30["전고가"] < 전봉3 || 저고점_30["전저가"] > 저고점_30["전전저가"]) + if (저고점_30["전고가"] < 전봉3_30 || 저고점_30["전저가"] > 저고점_30["전전저가"]) sellFlag = true;