diff --git a/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/kchart/KChart.kt b/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/kchart/KChart.kt index 92d4ddf..ce23553 100644 --- a/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/kchart/KChart.kt +++ b/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/kchart/KChart.kt @@ -504,12 +504,6 @@ open class KChart( mapPointsReal2Value(tmp4FloatArray) val leftIdx = (tmp4FloatArray[0] + 0.5f).toInt() val rightIdx = (tmp4FloatArray[2] + 0.5f).toInt() - 1 - getKEntities().filterIndexed { kEntityIdx, kEntity -> - kEntityIdx in leftIdx..rightIdx && !kEntity.containFlag( - FLAG_EMPTY - ) - } - .map { it.getHighPrice() }.max() var maxIdx: Int? = null var minIdx: Int? = null diff --git a/lib/src/main/java/com/github/wangyiqian/stockchart/index/BollCalculator.kt b/lib/src/main/java/com/github/wangyiqian/stockchart/index/BollCalculator.kt index 56e7b67..931e2fb 100644 --- a/lib/src/main/java/com/github/wangyiqian/stockchart/index/BollCalculator.kt +++ b/lib/src/main/java/com/github/wangyiqian/stockchart/index/BollCalculator.kt @@ -24,12 +24,24 @@ import kotlin.math.sqrt * @author wangyiqian E-mail: wangyiqian9891@gmail.com * @version 创建时间: 2021/2/16 */ -object BollCalculator: ICalculator { +object BollCalculator : ICalculator { override fun calculate(param: String, input: List): List> { val paramList = param.split(",") - val n = paramList[0].toInt() - val k = paramList[1].toInt() + val n = try { + paramList[0].toInt() + } catch (tr: Throwable) { + null + } + val k = try { + paramList[1].toInt() + } catch (tr: Throwable) { + null + } + + if (n == null || k == null) { + return emptyList() + } // 1. MB 2.UP 3.DN val result = MutableList(3) { MutableList(input.size) { 0f } } diff --git a/lib/src/main/java/com/github/wangyiqian/stockchart/index/EMACalculator.kt b/lib/src/main/java/com/github/wangyiqian/stockchart/index/EMACalculator.kt index 7f64e8b..f85842e 100644 --- a/lib/src/main/java/com/github/wangyiqian/stockchart/index/EMACalculator.kt +++ b/lib/src/main/java/com/github/wangyiqian/stockchart/index/EMACalculator.kt @@ -26,7 +26,11 @@ object EMACalculator : ICalculator { override fun calculate(param: String, input: List): List> { val paramList = param.split(",") - val emaPeriodList = paramList.map { it.toInt() } + val emaPeriodList = try { + paramList.map { it.toInt() } + } catch (tr: Throwable) { + emptyList() + } val result = MutableList(emaPeriodList.size) { MutableList(input.size) { 0f } } input.forEachIndexed { kEntityIdx, kEntity -> diff --git a/lib/src/main/java/com/github/wangyiqian/stockchart/index/KDJCalculator.kt b/lib/src/main/java/com/github/wangyiqian/stockchart/index/KDJCalculator.kt index 7c8ab20..b6d86a6 100644 --- a/lib/src/main/java/com/github/wangyiqian/stockchart/index/KDJCalculator.kt +++ b/lib/src/main/java/com/github/wangyiqian/stockchart/index/KDJCalculator.kt @@ -24,13 +24,29 @@ import kotlin.math.min * @author wangyiqian E-mail: wangyiqian9891@gmail.com * @version 创建时间: 2021/2/18 */ -object KDJCalculator: ICalculator { +object KDJCalculator : ICalculator { override fun calculate(param: String, input: List): List> { val paramList = param.split(",") - val n = paramList[0].toInt() - val kn = paramList[1].toInt() - val dn = paramList[2].toInt() + val n = try { + paramList[0].toInt() + } catch (tr: Throwable) { + null + } + val kn = try { + paramList[1].toInt() + } catch (tr: Throwable) { + null + } + val dn = try { + paramList[2].toInt() + } catch (tr: Throwable) { + null + } + + if (n == null || kn == null || dn == null) { + return emptyList() + } val result = MutableList(3) { MutableList(input.size) { 0f } } val kIdx = 0 diff --git a/lib/src/main/java/com/github/wangyiqian/stockchart/index/MACDCalculator.kt b/lib/src/main/java/com/github/wangyiqian/stockchart/index/MACDCalculator.kt index 4cbc1ec..c5d46e6 100644 --- a/lib/src/main/java/com/github/wangyiqian/stockchart/index/MACDCalculator.kt +++ b/lib/src/main/java/com/github/wangyiqian/stockchart/index/MACDCalculator.kt @@ -26,9 +26,24 @@ object MACDCalculator : ICalculator { override fun calculate(param: String, input: List): List> { val paramList = param.split(",") - val shortPeriod = paramList[0].toInt() - val longPeriod = paramList[1].toInt() - val avgPeriod = paramList[2].toInt() + val shortPeriod = try { + paramList[0].toInt() + } catch (tr: Throwable) { + null + } + val longPeriod = try { + paramList[1].toInt() + } catch (tr: Throwable) { + null + } + val avgPeriod = try { + paramList[2].toInt() + } catch (tr: Throwable) { + null + } + if (shortPeriod == null || longPeriod == null || avgPeriod == null) { + return emptyList() + } val result = MutableList(3) { MutableList(input.size) { 0f } } val difIdx = 0 diff --git a/lib/src/main/java/com/github/wangyiqian/stockchart/index/MACalculator.kt b/lib/src/main/java/com/github/wangyiqian/stockchart/index/MACalculator.kt index df7e205..9530a26 100644 --- a/lib/src/main/java/com/github/wangyiqian/stockchart/index/MACalculator.kt +++ b/lib/src/main/java/com/github/wangyiqian/stockchart/index/MACalculator.kt @@ -23,11 +23,15 @@ import com.github.wangyiqian.stockchart.entities.containFlag * @author wangyiqian E-mail: wangyiqian9891@gmail.com * @version 创建时间: 2021/2/14 */ -object MACalculator: ICalculator { +object MACalculator : ICalculator { override fun calculate(param: String, input: List): List> { val paramList = param.split(",") - val periodList = paramList.map { it.toInt() } + val periodList = try { + paramList.map { it.toInt() } + } catch (tr: Throwable) { + emptyList() + } val result = MutableList(periodList.size) { MutableList(input.size) { 0f } } val pFromList = MutableList(periodList.size) { 0 } diff --git a/lib/src/main/java/com/github/wangyiqian/stockchart/index/RSICalculator.kt b/lib/src/main/java/com/github/wangyiqian/stockchart/index/RSICalculator.kt index a779349..0d5f3e7 100644 --- a/lib/src/main/java/com/github/wangyiqian/stockchart/index/RSICalculator.kt +++ b/lib/src/main/java/com/github/wangyiqian/stockchart/index/RSICalculator.kt @@ -13,7 +13,11 @@ import kotlin.math.min object RSICalculator : ICalculator { override fun calculate(param: String, input: List): List> { val paramList = param.split(",") - val periodList = paramList.map { it.toInt() } + val periodList = try { + paramList.map { it.toInt() } + } catch (tr: Throwable) { + emptyList() + } val result = MutableList(periodList.size) { MutableList(input.size) { 0f } } val preAvgRiseList = MutableList(periodList.size) { 0f } val preAvgDownList = MutableList(periodList.size) { 0f }