diff --git a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs index 2438d2d..93a3eb8 100644 --- a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs +++ b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs @@ -158,7 +158,7 @@ namespace BitgetAPI.IndicatorConditionSetup //var sellData = FutureOrder("XRPUSDT", FutureMarginMode.isolated, 10, 0, FutureSide.SellShort, OrderType.market, 10, orderDic["orderId"]); - + var firstFlag = true; // 추후 공통화 및 소스정리 필요 while (true) { @@ -254,11 +254,42 @@ namespace BitgetAPI.IndicatorConditionSetup dic.Add("switchLowVal", 0); dic.Add("switchHighVal", 0); 전저고점.Add(market + strInterval, dic); + + var candleDatas_Temp = findedMarket.candleDataList[interval]; + var candleDatas_정렬_Temp = candleDatas_Temp.OrderBy(i => i.Argument).ToList(); + var candleDatas_Temp_List = new List(); + + for (var i = 0; i < 199; i++) + candleDatas_Temp_List.Add(candleDatas_정렬_Temp[i]); + + for (var i = 199; i < candleDatas_정렬_Temp.Count; i++) + { + + var candleData_Main = candleDatas_정렬_Temp[i]; + + if (candleData_Main == null) continue; + + candleDatas_Temp_List.Add(candleData_Main); + + ichimokuConditionSetup.calIchimokuData(candleDatas_Temp_List, candleData_Main); + movingAverageConditionSetup.Cal_YHK_Downpublic(candleDatas_Temp_List, candleData_Main); + if(i > 210) + { + var 현재봉3_Temp = candleDatas_Temp_List[i].movingAverageDataList[3].Value; + var 전봉3_Temp = candleDatas_Temp_List[i-1].movingAverageDataList[3].Value; + var 전전봉3_Temp = candleDatas_Temp_List[i-2].movingAverageDataList[3].Value; + var 전전전봉3_Temp = candleDatas_Temp_List[i-3].movingAverageDataList[3].Value; + + var returnVal = Calculate전고점(market, strInterval, interval, 전봉3_Temp, 전전봉3_Temp, 전전전봉3_Temp, candleDatas_Temp_List[candleDatas_Temp_List.Count - 1]); + } + } } if (!BuyShortStep.ContainsKey(market + strInterval)) { BuyShortStep[market + strInterval] = false; BuyLongStep[market + strInterval] = false; } + + #region Main 처리 // 시간별로 정렬하기 (임시 리스트) var candleDatas = findedMarket.candleDataList[MCandleTimeType.M1]; @@ -474,9 +505,9 @@ namespace BitgetAPI.IndicatorConditionSetup var 전전봉40 = candleData_전전봉.movingAverageDataList[40].Value; var 전전봉120 = candleData_전전봉.movingAverageDataList[120].Value; var 전전봉160 = candleData_전전봉.movingAverageDataList[160].Value; - var 전전봉240 = candleData_전전봉.movingAverageDataList[240].Value; + //var 전전봉240 = candleData_전전봉.movingAverageDataList[240].Value; var 전전봉80 = candleData_전전봉.movingAverageDataList[80].Value; - var 전전봉480 = candleData_전전봉.movingAverageDataList[480].Value; + //var 전전봉480 = candleData_전전봉.movingAverageDataList[480].Value; var 전봉3 = candleData_전봉.movingAverageDataList[3].Value; @@ -493,8 +524,8 @@ namespace BitgetAPI.IndicatorConditionSetup var 전봉80 = candleData_전봉.movingAverageDataList[80].Value; var 전봉120 = candleData_전봉.movingAverageDataList[120].Value; var 전봉160 = candleData_전봉.movingAverageDataList[160].Value; - var 전봉240 = candleData_전봉.movingAverageDataList[240].Value; - var 전봉480 = candleData_전봉.movingAverageDataList[480].Value; + //var 전봉240 = candleData_전봉.movingAverageDataList[240].Value; + //var 전봉480 = candleData_전봉.movingAverageDataList[480].Value; var 현재봉3 = candleData.movingAverageDataList[3].Value; var 현재봉4 = candleData.movingAverageDataList[4].Value; @@ -508,7 +539,7 @@ namespace BitgetAPI.IndicatorConditionSetup var 현재봉72 = candleData.movingAverageDataList[72].Value; var 현재봉120 = candleData.movingAverageDataList[120].Value; var 현재봉144 = candleData.movingAverageDataList[144].Value; - var 현재봉240 = candleData.movingAverageDataList[240].Value; + //var 현재봉240 = candleData.movingAverageDataList[240].Value; var 현재봉160 = candleData.movingAverageDataList[160].Value; var 현재봉80 = candleData.movingAverageDataList[80].Value; @@ -562,7 +593,6 @@ namespace BitgetAPI.IndicatorConditionSetup var returnVal = Calculate전고점(market, "1m", MCandleTimeType.M1, 전봉3, 전전봉3, 전전전봉3, candleData); if (!returnVal) continue; - returnVal = Calculate전고점(market, "5m", MCandleTimeType.M5, 전봉3_5, 전전봉3_5, 전전전봉3_5, candleData_5); if (!returnVal) continue; returnVal = Calculate전고점(market, "30m", MCandleTimeType.M30, 전봉3_30, 전전봉3_30, 전전전봉3_30, candleData_30); @@ -980,7 +1010,7 @@ namespace BitgetAPI.IndicatorConditionSetup } } - private bool Calculate전고점(string market, string strInterval, MCandleTimeType type, double 전봉3, double 전전봉3, double 전전전봉3, CandleData candleData) + public bool Calculate전고점(string market, string strInterval, MCandleTimeType type, double 전봉3, double 전전봉3, double 전전전봉3, CandleData candleData) { var 저고점 = 전저고점[market + strInterval]; @@ -1040,9 +1070,7 @@ namespace BitgetAPI.IndicatorConditionSetup if (저고점["전고가"] < 전전봉3) 저고점["전고가"] = 전전봉3; - } - - 전저고점[market + strInterval] = 저고점; + } if (저고점["전전전저가"] == 0 || 저고점["전전전고가"] == 0) return false;