....
This commit is contained in:
parent
3fcce5e5c6
commit
510e19b2e8
@ -109,9 +109,9 @@ object AutoTradingManager {
|
|||||||
if (KisSession.isAvailBuyTime(now) && isSuccess && completeTradingDecision != null) {
|
if (KisSession.isAvailBuyTime(now) && isSuccess && completeTradingDecision != null) {
|
||||||
val decision = completeTradingDecision
|
val decision = completeTradingDecision
|
||||||
|
|
||||||
println("${decision.stockName} ${decision.decision} ${buysCodes.contains(decision.stockCode) == false}")
|
println("${decision.stockName} ${decision.decision}")
|
||||||
// 1. 이미 AI가 결정한 decision과 confidence를 신뢰함
|
// 1. 이미 AI가 결정한 decision과 confidence를 신뢰함
|
||||||
if (decision.decision == "BUY" && buysCodes.contains(decision.stockCode) == false) {
|
if (decision.decision == "BUY") {
|
||||||
|
|
||||||
// AI가 이미 검증한 등급을 사용 (재계산 불필요)
|
// AI가 이미 검증한 등급을 사용 (재계산 불필요)
|
||||||
val grade = decision.investmentGrade ?: InvestmentGrade.LEVEL_1_SPECULATIVE
|
val grade = decision.investmentGrade ?: InvestmentGrade.LEVEL_1_SPECULATIVE
|
||||||
@ -121,9 +121,8 @@ object AutoTradingManager {
|
|||||||
val maxBudget = KisSession.config.getValues(ConfigIndex.MAX_BUDGET_INDEX) * gradeRate
|
val maxBudget = KisSession.config.getValues(ConfigIndex.MAX_BUDGET_INDEX) * gradeRate
|
||||||
|
|
||||||
TradingLogStore.addLog(decision,"BUY",decision.summary())
|
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) {
|
if (hasCodes == true) {
|
||||||
buysCodes.add(decision.stockCode)
|
|
||||||
TradingLogStore.addNotice(decision.stockName,decision.stockCode,"물타기 시도 1주 매수")
|
TradingLogStore.addNotice(decision.stockName,decision.stockCode,"물타기 시도 1주 매수")
|
||||||
}
|
}
|
||||||
val calculatedQty = if(hasCodes == true) KisSession.tradeConfig.lowerAverageStockCount else (maxBudget / decision.currentPrice).toInt().coerceAtLeast(1)
|
val calculatedQty = if(hasCodes == true) KisSession.tradeConfig.lowerAverageStockCount else (maxBudget / decision.currentPrice).toInt().coerceAtLeast(1)
|
||||||
@ -209,7 +208,7 @@ object AutoTradingManager {
|
|||||||
rawGrade
|
rawGrade
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var buysCodes = arrayListOf<String>()
|
|
||||||
fun excuteTrade(decision: TradingDecision, orderQty: String, profitRate1: Double?, investmentGrade: InvestmentGrade = InvestmentGrade.LEVEL_2_HIGH_RISK) {
|
fun excuteTrade(decision: TradingDecision, orderQty: String, profitRate1: Double?, investmentGrade: InvestmentGrade = InvestmentGrade.LEVEL_2_HIGH_RISK) {
|
||||||
scope.launch {
|
scope.launch {
|
||||||
var basePrice = decision.currentPrice
|
var basePrice = decision.currentPrice
|
||||||
@ -1043,7 +1042,6 @@ object AutoTradingManager {
|
|||||||
}
|
}
|
||||||
if (isExecuted) { executionCountMap[timeKey] = currentCount + 1 }
|
if (isExecuted) { executionCountMap[timeKey] = currentCount + 1 }
|
||||||
if (now.hour >= 20) {
|
if (now.hour >= 20) {
|
||||||
buysCodes.clear()
|
|
||||||
executionCountMap.clear()
|
executionCountMap.clear()
|
||||||
noticeFilter.clear()
|
noticeFilter.clear()
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user