diff --git a/src/main/kotlin/network/KisTradeService.kt b/src/main/kotlin/network/KisTradeService.kt index 4142aaf..0b82aa2 100644 --- a/src/main/kotlin/network/KisTradeService.kt +++ b/src/main/kotlin/network/KisTradeService.kt @@ -637,7 +637,7 @@ object KisTradeService { } val body = response.body() - println("✅ [Step $pageCount] $markgetCode 수신 완료 - 종목 수: \n${body.output2}\n\n") + println("✅ [Step $pageCount] $markgetCode 수신 완료 - 종목 수: ${body.output1.size}\n${body.output2}\n\n") // println("✅ [Step $pageCount] $markgetCode 수신 완료 - 종목 수: ${body.output1.size}") allHoldings.addAll(body.output1) diff --git a/src/main/kotlin/service/AutoTradingManager.kt b/src/main/kotlin/service/AutoTradingManager.kt index f54aea7..19639a1 100644 --- a/src/main/kotlin/service/AutoTradingManager.kt +++ b/src/main/kotlin/service/AutoTradingManager.kt @@ -119,7 +119,7 @@ object AutoTradingManager { val maxBudget = KisSession.config.getValues(ConfigIndex.MAX_BUDGET_INDEX) * gradeRate TradingLogStore.addLog(decision,"BUY",decision.summary()) - var hasCodes = currentBalance?.getHoldings()?.any { it.code.equals(decision.stockCode) && it.quantity.toInt() > 2 && it.availOrderCount.toInt() > 0} ?: false + var hasCodes = KisSession.tradeConfig.lowerAveragePrice && currentBalance?.getHoldings()?.any { it.code.equals(decision.stockCode) && it.quantity.toInt() > 2 && it.availOrderCount.toInt() > 0} ?: false if (hasCodes == true) { TradingLogStore.addNotice(decision.stockName,decision.stockCode,"물타기 시도 1주 매수") } @@ -240,7 +240,7 @@ object AutoTradingManager { (profitRate1 ?: KisSession.config.getValues(ConfigIndex.PROFIT_INDEX)) + tax try { var oldTarget = currentBalance?.getHoldings()?.first { it.availOrderCount.toInt() > 0 && it.code.equals(decision.stockCode) } - if (hasCode && oldTarget != null) { + if (KisSession.tradeConfig.lowerAveragePrice && hasCode && oldTarget != null) { var avgPrive = oldTarget.avgPrice.toDouble() var qty = oldTarget.quantity.toDouble() basePrice = avgPrive * 1.5//((avgPrive * qty) + (decision.currentPrice * orderQty.toInt())).div(qty!!.toInt() + (orderQty.toInt())) @@ -352,7 +352,7 @@ object AutoTradingManager { // 💡 [수정] 매수 주문(orderNo)에 대해 '진짜 산 가격'을 기록해야 합니다. // 기존에는 여기에 finalTargetPrice를 넣으셨는데, 그러면 매수 단가가 오염됩니다. TradingReportManager.updateExecution(orderNo, actualBuyPrice, dbItem.quantity) - var hasCodes = currentBalance?.getHoldings()?.any { it.code.equals(dbItem.code) && it.quantity.toInt() > 2 && dbItem.quantity == KisSession.tradeConfig.lowerAverageStockCount } ?: false + var hasCodes = KisSession.tradeConfig.lowerAveragePrice && currentBalance?.getHoldings()?.any { it.code.equals(dbItem.code) && it.quantity.toInt() > 2 && dbItem.quantity == KisSession.tradeConfig.lowerAverageStockCount } ?: false if (hasCodes) { actualBuyPrice = actualBuyPrice * 1.1 }