This commit is contained in:
lunaticbum 2026-06-01 13:37:07 +09:00
parent 3fcce5e5c6
commit 510e19b2e8

View File

@ -109,9 +109,9 @@ object AutoTradingManager {
if (KisSession.isAvailBuyTime(now) && isSuccess && completeTradingDecision != null) {
val decision = completeTradingDecision
println("${decision.stockName} ${decision.decision} ${buysCodes.contains(decision.stockCode) == false}")
println("${decision.stockName} ${decision.decision}")
// 1. 이미 AI가 결정한 decision과 confidence를 신뢰함
if (decision.decision == "BUY" && buysCodes.contains(decision.stockCode) == false) {
if (decision.decision == "BUY") {
// AI가 이미 검증한 등급을 사용 (재계산 불필요)
val grade = decision.investmentGrade ?: InvestmentGrade.LEVEL_1_SPECULATIVE
@ -121,9 +121,8 @@ 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.isTodayEntry}
var hasCodes = currentBalance?.getHoldings()?.any { it.code.equals(decision.stockCode) && it.quantity.toInt() > 2}
if (hasCodes == true) {
buysCodes.add(decision.stockCode)
TradingLogStore.addNotice(decision.stockName,decision.stockCode,"물타기 시도 1주 매수")
}
val calculatedQty = if(hasCodes == true) KisSession.tradeConfig.lowerAverageStockCount else (maxBudget / decision.currentPrice).toInt().coerceAtLeast(1)
@ -209,7 +208,7 @@ object AutoTradingManager {
rawGrade
}
}
var buysCodes = arrayListOf<String>()
fun excuteTrade(decision: TradingDecision, orderQty: String, profitRate1: Double?, investmentGrade: InvestmentGrade = InvestmentGrade.LEVEL_2_HIGH_RISK) {
scope.launch {
var basePrice = decision.currentPrice
@ -1043,7 +1042,6 @@ object AutoTradingManager {
}
if (isExecuted) { executionCountMap[timeKey] = currentCount + 1 }
if (now.hour >= 20) {
buysCodes.clear()
executionCountMap.clear()
noticeFilter.clear()
}