From a53beb1e181118a7bdf6ace0df064255e7a3ec42 Mon Sep 17 00:00:00 2001 From: lunaticbum Date: Tue, 15 Sep 2026 16:53:47 +0900 Subject: [PATCH] ... --- src/main/kotlin/model/AppConfig.kt | 2 +- src/main/kotlin/network/KisTradeService.kt | 2 +- src/main/kotlin/service/AutoTradingManager.kt | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/model/AppConfig.kt b/src/main/kotlin/model/AppConfig.kt index 24db78f..5ba608d 100644 --- a/src/main/kotlin/model/AppConfig.kt +++ b/src/main/kotlin/model/AppConfig.kt @@ -366,7 +366,7 @@ object KisSession { } fun isMarketAnalyzerTime(now: LocalTime) : Boolean { - return now.isBefore(LocalTime.of(18,0)) && now.isAfter(LocalTime.of(8,0)) + return now.isBefore(LocalTime.of(19,0)) && now.isAfter(LocalTime.of(8,0)) } } \ No newline at end of file diff --git a/src/main/kotlin/network/KisTradeService.kt b/src/main/kotlin/network/KisTradeService.kt index 43c6cfd..0ab5450 100644 --- a/src/main/kotlin/network/KisTradeService.kt +++ b/src/main/kotlin/network/KisTradeService.kt @@ -332,7 +332,7 @@ object KisTradeService { header("appsecret", config.realSecretKey) header("tr_id", if (isDomestic) "FHKST03010100" else "HHDFS76240000") header("custtype", "P") - + parameter("FID_INPUT_DATE_1", startDate) parameter("FID_INPUT_DATE_2", endDate) parameter("FID_COND_MRKT_DIV_CODE", if(LocalTime.now(ZoneId.of("Asia/Seoul")).isAfter(LocalTime.of(16,0))) "UN" else "J") diff --git a/src/main/kotlin/service/AutoTradingManager.kt b/src/main/kotlin/service/AutoTradingManager.kt index 66a3ecf..c28fdd3 100644 --- a/src/main/kotlin/service/AutoTradingManager.kt +++ b/src/main/kotlin/service/AutoTradingManager.kt @@ -397,7 +397,7 @@ object AutoTradingManager { TradingLogStore.addLog(decision, "BUY", it.message ?: "매수 실패") } } - } else if (!hasCode && KisSession.isAvailBuyTime(LocalTime.now())) { + } else if (!hasCode && KisSession.isAvailBuyTime(LocalTime.now()) == false) { AutoTradingManager.addToReanalysis( RankingStock( mksc_shrn_iscd = stockCode, @@ -537,7 +537,7 @@ object AutoTradingManager { watchdogJob = scope.launch { val activeTrades = DatabaseFactory.findAllMonitoringTrades() var now = LocalTime.now(ZoneId.of("Asia/Seoul")) - if (doStart && activeTrades.isNotEmpty() && !KisSession.isMarketOpenTime(now)) { + if (doStart && activeTrades.isNotEmpty() && !KisSession.isMarketAnalyzerTime(now)) { executeClosingLiquidation(activeTrades) } while (isActive) { @@ -1484,7 +1484,7 @@ object AutoTradingManager { val currentAtr = tempAnalyzer.calculateATR(dailyData) if (!isProfitable || !isValidEntryTiming) { - print("-> [${stock.name}] 목표 수익 조건 미달 (물타기:$isWatering, 수익:$isProfitable, 타이밍:$isValidEntryTiming) | 기대 수익율 : ${expectedProfitRate}") + print("-> [${stock.name}] 목표 수익 조건 미달 (물타기:$isWatering, 수익:$isProfitable, 타이밍:$isValidEntryTiming) | 기대 수익율 : ${expectedProfitRate} || ${dailyStats.avgReboundAmplitude}") return@withTimeout } @@ -1509,7 +1509,7 @@ object AutoTradingManager { } } - println("\n💧 [검문소 통과 -> ${if (isWatering) "물타기 탈출 분석" else "신규 매수 분석"}] ${stock.name} (물타기:$isWatering, 수익:$isProfitable, 타이밍:$isValidEntryTiming) | 기대 수익율 : ${expectedProfitRate}") + println("\n💧 [검문소 통과 -> ${if (isWatering) "물타기 탈출 분석" else "신규 매수 분석"}] ${stock.name} (물타기:$isWatering, 수익:$isProfitable, 타이밍:$isValidEntryTiming) | 기대 수익율 : ${expectedProfitRate} || ${dailyStats.avgReboundAmplitude}") // 멀티 타임프레임 및 AI 분석 진입 val analyzer = coroutineScope {