44 lines
1.2 KiB
Kotlin
44 lines
1.2 KiB
Kotlin
package util
|
|
|
|
import java.time.LocalTime
|
|
import java.time.ZoneId
|
|
|
|
object MarketUtil {
|
|
fun isKoreanMarketOpen(): Boolean {
|
|
// 한국 시간대 기준 현재 시간 가져오기
|
|
val now = LocalTime.now(ZoneId.of("Asia/Seoul"))
|
|
val start = LocalTime.of(9, 0)
|
|
val end = LocalTime.of(15, 30)
|
|
|
|
// 주말 제외 로직은 필요시 추가 (일단 시간대 우선)
|
|
return now.isAfter(start) && now.isBefore(end)
|
|
}
|
|
|
|
fun getTickSize(price: Double): Double {
|
|
return when {
|
|
price < 2000 -> 1.0
|
|
price < 5000 -> 5.0
|
|
price < 20000 -> 10.0
|
|
price < 50000 -> 50.0
|
|
price < 200000 -> 100.0
|
|
price < 500000 -> 500.0
|
|
else -> 1000.0
|
|
}
|
|
}
|
|
|
|
fun roundToTickSize(price: Double): Double {
|
|
val tick = when {
|
|
price < 2000 -> 1.0
|
|
price < 5000 -> 5.0
|
|
price < 20000 -> 10.0
|
|
price < 50000 -> 50.0
|
|
price < 200000 -> 100.0
|
|
price < 500000 -> 500.0
|
|
else -> 1000.0
|
|
}
|
|
// 가장 가까운 호가 단위로 반올림
|
|
return Math.round(price / tick) * tick
|
|
}
|
|
|
|
|
|
} |