From 827a7262ce7ab5650766e8defe97c0324c6f94cc Mon Sep 17 00:00:00 2001 From: wangyiqian Date: Thu, 13 Jan 2022 14:48:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=87=E6=A0=87=E6=94=AF=E6=8C=81=E6=89=A9?= =?UTF-8?q?=E5=B1=95=E3=80=81=E7=BB=86=E8=8A=82=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../childchart/base/BaseChildChart.kt | 18 ++++++++++++++++++ .../stockchart/childchart/base/IChildChart.kt | 5 +++++ .../stockchart/childchart/kchart/KChart.kt | 16 ---------------- .../stockchart/childchart/kdjchart/KdjChart.kt | 12 ++++++++++-- .../childchart/macdchart/MacdChart.kt | 13 +++++++++++-- .../childchart/volumechart/VolumeChart.kt | 16 ---------------- .../wangyiqian/stockchart/index/Index.kt | 2 +- 7 files changed, 45 insertions(+), 37 deletions(-) diff --git a/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/base/BaseChildChart.kt b/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/base/BaseChildChart.kt index 3b407f7..6b4e8c8 100644 --- a/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/base/BaseChildChart.kt +++ b/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/base/BaseChildChart.kt @@ -18,7 +18,9 @@ import android.view.View import android.view.ViewGroup import com.github.wangyiqian.stockchart.IStockChart import com.github.wangyiqian.stockchart.StockChart +import com.github.wangyiqian.stockchart.entities.FLAG_EMPTY import com.github.wangyiqian.stockchart.entities.GestureEvent +import com.github.wangyiqian.stockchart.entities.containFlag import com.github.wangyiqian.stockchart.listener.OnKEntitiesChangedListener /** @@ -246,4 +248,20 @@ abstract class BaseChildChart @JvmOverloads constructo override fun getConfig() = chartConfig override fun onTap(event: GestureEvent) {} + + override fun isRise(idx: Int) = + if (getKEntities()[idx].getClosePrice() == getKEntities()[idx].getOpenPrice()) { + if (idx - 1 in getKEntities().indices) { + val preKEntity = getKEntities()[idx - 1] + if (!preKEntity.containFlag(FLAG_EMPTY)) { + getKEntities()[idx].getClosePrice() >= preKEntity.getClosePrice() + } else { + true + } + } else { + true + } + } else { + getKEntities()[idx].getClosePrice() > getKEntities()[idx].getOpenPrice() + } } \ No newline at end of file diff --git a/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/base/IChildChart.kt b/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/base/IChildChart.kt index a677e1b..98acb26 100644 --- a/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/base/IChildChart.kt +++ b/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/base/IChildChart.kt @@ -92,6 +92,11 @@ interface IChildChart { */ fun onTap(event: GestureEvent) + /** + * 涨跌判断 + */ + fun isRise(idx: Int): Boolean + fun getHighlightValue(highlightX: Float, highlightY: Float, highlightValue: FloatArray) { highlightValue[0] = highlightX highlightValue[1] = highlightY 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 007aaae..2c3358a 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 @@ -838,22 +838,6 @@ open class KChart( } } - private fun isRise(idx: Int) = - if (getKEntities()[idx].getClosePrice() == getKEntities()[idx].getOpenPrice()) { - if (idx - 1 in getKEntities().indices) { - val preKEntity = getKEntities()[idx - 1] - if (!preKEntity.containFlag(FLAG_EMPTY)) { - getKEntities()[idx].getClosePrice() >= preKEntity.getClosePrice() - } else { - true - } - } else { - true - } - } else { - getKEntities()[idx].getClosePrice() > getKEntities()[idx].getOpenPrice() - } - private fun drawLineKChart(canvas: Canvas) { lineKChartLinePaint.strokeWidth = chartConfig.lineChartStrokeWidth lineKChartLinePaint.color = chartConfig.lineChartColor diff --git a/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/kdjchart/KdjChart.kt b/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/kdjchart/KdjChart.kt index b1e785b..037e75c 100644 --- a/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/kdjchart/KdjChart.kt +++ b/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/kdjchart/KdjChart.kt @@ -17,6 +17,7 @@ import android.graphics.Canvas import android.graphics.Paint import com.github.wangyiqian.stockchart.IStockChart import com.github.wangyiqian.stockchart.childchart.base.BaseChildChart +import kotlin.math.abs /** * @author wangyiqian E-mail: wangyiqian9891@gmail.com @@ -59,8 +60,15 @@ class KdjChart(stockChart: IStockChart, chartConfig: KdjChartConfig) : } } } - result[0] = yMin - result[1] = yMax + + if (abs(yMin - yMax) > 0.0001) { + result[0] = yMin + result[1] = yMax + } else { // 约等于0 + var delta = 2 + result[0] = yMin - delta + result[1] = yMax + delta + } } override fun preDrawBackground(canvas: Canvas) { diff --git a/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/macdchart/MacdChart.kt b/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/macdchart/MacdChart.kt index 13adce1..7f10be0 100644 --- a/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/macdchart/MacdChart.kt +++ b/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/macdchart/MacdChart.kt @@ -17,6 +17,7 @@ import android.graphics.Canvas import android.graphics.Paint import com.github.wangyiqian.stockchart.IStockChart import com.github.wangyiqian.stockchart.childchart.base.BaseChildChart +import kotlin.math.abs /** * MACD指标图 @@ -63,8 +64,16 @@ class MacdChart( } } } - result[0] = yMin - result[1] = yMax + + if (abs(yMin - yMax) > 0.0001) { + result[0] = yMin + result[1] = yMax + } else { // 约等于0 + var delta = 2 + result[0] = yMin - delta + result[1] = yMax + delta + } + } override fun preDrawBackground(canvas: Canvas) { diff --git a/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/volumechart/VolumeChart.kt b/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/volumechart/VolumeChart.kt index 8f3b3c3..1dc0e13 100644 --- a/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/volumechart/VolumeChart.kt +++ b/lib/src/main/java/com/github/wangyiqian/stockchart/childchart/volumechart/VolumeChart.kt @@ -100,22 +100,6 @@ class VolumeChart( } } - private fun isRise(idx: Int) = - if (getKEntities()[idx].getClosePrice() == getKEntities()[idx].getOpenPrice()) { - if (idx - 1 in getKEntities().indices) { - val preKEntity = getKEntities()[idx - 1] - if (!preKEntity.containFlag(FLAG_EMPTY)) { - getKEntities()[idx].getClosePrice() >= preKEntity.getClosePrice() - } else { - true - } - } else { - true - } - } else { - getKEntities()[idx].getClosePrice() > getKEntities()[idx].getOpenPrice() - } - override fun preDrawHighlight(canvas: Canvas) {} override fun drawHighlight(canvas: Canvas) { diff --git a/lib/src/main/java/com/github/wangyiqian/stockchart/index/Index.kt b/lib/src/main/java/com/github/wangyiqian/stockchart/index/Index.kt index 6ae5f1a..5903b7e 100644 --- a/lib/src/main/java/com/github/wangyiqian/stockchart/index/Index.kt +++ b/lib/src/main/java/com/github/wangyiqian/stockchart/index/Index.kt @@ -20,7 +20,7 @@ import com.github.wangyiqian.stockchart.entities.IKEntity * @author wangyiqian E-mail: wangyiqian9891@gmail.com * @version 创建时间: 2021/2/18 */ -sealed class Index( +open abstract class Index( var param: String, var startText: String, var startTextColor: Int,