diff --git a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs index 47a9766..c5f29e5 100644 --- a/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs +++ b/BitgetApi/IndicatorConditionSetup/IndicatorProcess.cs @@ -277,36 +277,44 @@ namespace BitgetAPI.IndicatorConditionSetup // 24,48 높은값 var 높은값_48_24_전전봉 = Math.Max(candleData_전전봉.movingAverageDataList[48].Value, candleData_전전봉.movingAverageDataList[24].Value); + var 높은값_72_24_전전봉 = Math.Max(candleData_전전봉.movingAverageDataList[72].Value, candleData_전전봉.movingAverageDataList[24].Value); // 24,48 낮은값 var 낮은값_48_24_전전봉 = Math.Min(candleData_전전봉.movingAverageDataList[48].Value, candleData_전전봉.movingAverageDataList[24].Value); - + var 낮은값_72_24_전전봉 = Math.Min(candleData_전전봉.movingAverageDataList[72].Value, candleData_전전봉.movingAverageDataList[24].Value); // 24,48 높은값 var 높은값_48_24_전봉 = Math.Max(candleData_전봉.movingAverageDataList[48].Value, candleData_전봉.movingAverageDataList[24].Value); + var 높은값_72_24_전봉 = Math.Max(candleData_전봉.movingAverageDataList[72].Value, candleData_전봉.movingAverageDataList[24].Value); // 24,48 낮은값 var 낮은값_48_24_전봉 = Math.Min(candleData_전봉.movingAverageDataList[48].Value, candleData_전봉.movingAverageDataList[24].Value); + var 낮은값_72_24_전봉 = Math.Min(candleData_전봉.movingAverageDataList[72].Value, candleData_전봉.movingAverageDataList[24].Value); // 24,48 높은값 var 높은값_48_24 = Math.Max(candleData.movingAverageDataList[48].Value, candleData.movingAverageDataList[24].Value); + var 높은값_72_24 = Math.Max(candleData.movingAverageDataList[72].Value, candleData.movingAverageDataList[24].Value); // 24,48 낮은값 var 낮은값_48_24 = Math.Min(candleData.movingAverageDataList[48].Value, candleData.movingAverageDataList[24].Value); + var 낮은값_72_24 = Math.Min(candleData.movingAverageDataList[72].Value, candleData.movingAverageDataList[24].Value); var 높은값_12_낮은값48_24 = Math.Max(candleData.movingAverageDataList[12].Value, 낮은값_48_24); - var 낮은값_12_높은값48_24 = Math.Min(candleData.movingAverageDataList[12].Value, 높은값_48_24); + var 낮은값_12_높은값72_24 = Math.Min(candleData.movingAverageDataList[12].Value, 높은값_72_24); var 전전봉4 = candleData_전전봉.movingAverageDataList[4].Value; var 전전봉12 = candleData_전전봉.movingAverageDataList[12].Value; var 전전봉24 = candleData_전전봉.movingAverageDataList[24].Value; var 전전봉48 = candleData_전전봉.movingAverageDataList[48].Value; + var 전전봉72 = candleData_전전봉.movingAverageDataList[72].Value; var 전봉4 = candleData_전봉.movingAverageDataList[4].Value; var 전봉12 = candleData_전봉.movingAverageDataList[12].Value; var 전봉24 = candleData_전봉.movingAverageDataList[24].Value; var 전봉48 = candleData_전봉.movingAverageDataList[48].Value; + var 전봉72 = candleData_전봉.movingAverageDataList[72].Value; var 현재봉4 = candleData.movingAverageDataList[4].Value; var 현재봉12 = candleData.movingAverageDataList[12].Value; var 현재봉24 = candleData.movingAverageDataList[24].Value; var 현재봉48 = candleData.movingAverageDataList[48].Value; + var 현재봉72 = candleData.movingAverageDataList[72].Value; var 전봉Bol4 = candleData_전봉.movingAverageDataList[4].BolangerValue; @@ -392,13 +400,13 @@ namespace BitgetAPI.IndicatorConditionSetup try { - var candle240Flag = 현재봉240_4 < 높은값240_48_24 && - 현재봉240_4 < 전봉240_4 && - 현재봉240_12 < 전봉240_12 && + var candle240Flag = 현재봉240_4 > 낮은값240_48_24 && + 현재봉240_4 > 전봉240_4 && + 현재봉240_12 > 전봉240_12 && 전봉240Bol12 - 전봉240Bol24 > 현재봉240Bol12 - 현재봉240Bol24; var buyFlag = 전전봉Bol12 - 전전봉Bol24 > 전봉Bol12 - 전봉Bol24 && 전전봉Bol4 > 전봉Bol4; - var sellFlag = 현재봉4 < 낮은값_12_높은값48_24; + var sellFlag = 현재봉4 < 낮은값_12_높은값72_24; var 전고점Data = 전고점[market + strInterval]; double.TryParse(전고점Data["val"].ToString(), out var val); @@ -407,7 +415,7 @@ namespace BitgetAPI.IndicatorConditionSetup bool.TryParse(전고점Data["clearFlag"].ToString(), out var clearFlag); bool.TryParse(전고점Data["breakFlag"].ToString(), out var breakFlag); - if (현재봉4 < 낮은값_48_24) + if (현재봉4 < 낮은값_72_24) { if (firstFlag) 전고점Data["firstFlag"] = false; @@ -429,7 +437,7 @@ namespace BitgetAPI.IndicatorConditionSetup if (전봉4 < 전전봉4 && clearFlag) { 전고점Data["clearFlag"] = false; - if (전전봉4 > val) + if (전전봉4 < val) { 전고점Data["flag"] = false; 전고점Data["breakFlag"] = true; @@ -455,11 +463,11 @@ namespace BitgetAPI.IndicatorConditionSetup { if ( ( - 전전봉4 < 높은값_48_24_전전봉 && - 전봉4 > 높은값_48_24_전봉 && + 전전봉4 < 높은값_72_24_전전봉 && + 전봉4 > 높은값_72_24_전봉 && 전봉12 > 전전봉12 && - (전봉4 < candleData_전봉.IchimokData.하한선 - || 전봉4 > candleData_전봉.IchimokData.상한선) && + ((전봉4 < candleData_전봉.IchimokData.하한선 && 높은값_72_24_전봉 < candleData_전봉.IchimokData.하한선) + || (전봉4 > candleData_전봉.IchimokData.상한선 && 높은값_72_24_전봉 > candleData_전봉.IchimokData.상한선)) && 전봉4 - 전전봉4 > 전봉12 - 전전봉12 && 전봉12 - 전전봉12 > 전봉24 - 전전봉24 ) @@ -712,11 +720,10 @@ namespace BitgetAPI.IndicatorConditionSetup if ( ( 전전봉4 > 낮은값_48_24_전전봉 && - 전봉4 < 낮은값_48_24_전봉 && - + 전봉4 < 낮은값_48_24_전봉 && 전봉12 < 전전봉12 && - (전봉4 > candleData_전봉.IchimokData.상한선 - || 전봉4 < candleData_전봉.IchimokData.하한선) && + ((전봉4 > candleData_전봉.IchimokData.상한선 && 낮은값_48_24_전봉 > candleData_전봉.IchimokData.상한선) + ||(전봉4 < candleData_전봉.IchimokData.하한선 && 낮은값_48_24_전봉 < candleData_전봉.IchimokData.하한선)) && 전봉4 - 전전봉4 < 전봉12 - 전전봉12 && 전봉12 - 전전봉12 < 전봉24 - 전전봉24 )