@363045841yyt/klinechart-core 0.7.12 → 0.8.1-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/chartSettings.d.ts +0 -6
- package/dist/config/chartSettings.d.ts.map +1 -1
- package/dist/config/chartSettings.js +0 -1
- package/dist/config/chartSettings.js.map +1 -1
- package/dist/controllers/createChartController.d.ts.map +1 -1
- package/dist/controllers/createChartController.js +22 -0
- package/dist/controllers/createChartController.js.map +1 -1
- package/dist/controllers/createIndicatorSelectorController.d.ts.map +1 -1
- package/dist/controllers/createIndicatorSelectorController.js +4 -6
- package/dist/controllers/createIndicatorSelectorController.js.map +1 -1
- package/dist/controllers/index.d.ts +4 -4
- package/dist/controllers/index.d.ts.map +1 -1
- package/dist/controllers/index.js +3 -2
- package/dist/controllers/index.js.map +1 -1
- package/dist/controllers/types.d.ts +21 -0
- package/dist/controllers/types.d.ts.map +1 -1
- package/dist/data-fetchers/baostock.d.ts +3 -0
- package/dist/data-fetchers/baostock.d.ts.map +1 -0
- package/dist/data-fetchers/baostock.js +34 -0
- package/dist/data-fetchers/baostock.js.map +1 -0
- package/dist/data-fetchers/hundred-mock.d.ts +3 -0
- package/dist/data-fetchers/hundred-mock.d.ts.map +1 -0
- package/dist/data-fetchers/hundred-mock.js +30 -0
- package/dist/data-fetchers/hundred-mock.js.map +1 -0
- package/dist/data-fetchers/index.d.ts +5 -0
- package/dist/data-fetchers/index.d.ts.map +1 -0
- package/dist/data-fetchers/index.js +5 -0
- package/dist/data-fetchers/index.js.map +1 -0
- package/dist/data-fetchers/router.d.ts +3 -0
- package/dist/data-fetchers/router.d.ts.map +1 -0
- package/dist/data-fetchers/router.js +16 -0
- package/dist/data-fetchers/router.js.map +1 -0
- package/dist/data-fetchers/thousand-mock.d.ts +3 -0
- package/dist/data-fetchers/thousand-mock.d.ts.map +1 -0
- package/dist/data-fetchers/thousand-mock.js +29 -0
- package/dist/data-fetchers/thousand-mock.js.map +1 -0
- package/dist/engine/chart.d.ts +20 -2
- package/dist/engine/chart.d.ts.map +1 -1
- package/dist/engine/chart.js +81 -24
- package/dist/engine/chart.js.map +1 -1
- package/dist/engine/indicators/indicatorDefinitionRegistry.d.ts +3 -2
- package/dist/engine/indicators/indicatorDefinitionRegistry.d.ts.map +1 -1
- package/dist/engine/indicators/indicatorDefinitionRegistry.js +26 -1
- package/dist/engine/indicators/indicatorDefinitionRegistry.js.map +1 -1
- package/dist/engine/indicators/indicatorMetadata.d.ts +29 -2
- package/dist/engine/indicators/indicatorMetadata.d.ts.map +1 -1
- package/dist/engine/indicators/indicatorMetadata.js.map +1 -1
- package/dist/engine/indicators/indicatorRuntime.d.ts.map +1 -1
- package/dist/engine/indicators/indicatorRuntime.js +5 -4
- package/dist/engine/indicators/indicatorRuntime.js.map +1 -1
- package/dist/engine/indicators/scheduler.d.ts +16 -1
- package/dist/engine/indicators/scheduler.d.ts.map +1 -1
- package/dist/engine/indicators/scheduler.js +26 -7
- package/dist/engine/indicators/scheduler.js.map +1 -1
- package/dist/engine/renderers/Indicator/atr.d.ts +2 -1
- package/dist/engine/renderers/Indicator/atr.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/atr.js +5 -9
- package/dist/engine/renderers/Indicator/atr.js.map +1 -1
- package/dist/engine/renderers/Indicator/boll.d.ts +4 -1
- package/dist/engine/renderers/Indicator/boll.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/boll.js +22 -10
- package/dist/engine/renderers/Indicator/boll.js.map +1 -1
- package/dist/engine/renderers/Indicator/cci.d.ts +2 -1
- package/dist/engine/renderers/Indicator/cci.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/cci.js +6 -10
- package/dist/engine/renderers/Indicator/cci.js.map +1 -1
- package/dist/engine/renderers/Indicator/chaikinVol.d.ts +4 -1
- package/dist/engine/renderers/Indicator/chaikinVol.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/chaikinVol.js +16 -8
- package/dist/engine/renderers/Indicator/chaikinVol.js.map +1 -1
- package/dist/engine/renderers/Indicator/cmf.d.ts +4 -1
- package/dist/engine/renderers/Indicator/cmf.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/cmf.js +15 -8
- package/dist/engine/renderers/Indicator/cmf.js.map +1 -1
- package/dist/engine/renderers/Indicator/dema.d.ts +2 -0
- package/dist/engine/renderers/Indicator/dema.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/dema.js +18 -8
- package/dist/engine/renderers/Indicator/dema.js.map +1 -1
- package/dist/engine/renderers/Indicator/donchian.d.ts +4 -1
- package/dist/engine/renderers/Indicator/donchian.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/donchian.js +19 -8
- package/dist/engine/renderers/Indicator/donchian.js.map +1 -1
- package/dist/engine/renderers/Indicator/ene.d.ts +12 -1
- package/dist/engine/renderers/Indicator/ene.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/ene.js +22 -10
- package/dist/engine/renderers/Indicator/ene.js.map +1 -1
- package/dist/engine/renderers/Indicator/expma.d.ts +4 -1
- package/dist/engine/renderers/Indicator/expma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/expma.js +21 -10
- package/dist/engine/renderers/Indicator/expma.js.map +1 -1
- package/dist/engine/renderers/Indicator/fastk.d.ts +2 -1
- package/dist/engine/renderers/Indicator/fastk.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/fastk.js +6 -10
- package/dist/engine/renderers/Indicator/fastk.js.map +1 -1
- package/dist/engine/renderers/Indicator/fib.d.ts +2 -0
- package/dist/engine/renderers/Indicator/fib.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/fib.js +25 -8
- package/dist/engine/renderers/Indicator/fib.js.map +1 -1
- package/dist/engine/renderers/Indicator/hma.d.ts +2 -0
- package/dist/engine/renderers/Indicator/hma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/hma.js +18 -8
- package/dist/engine/renderers/Indicator/hma.js.map +1 -1
- package/dist/engine/renderers/Indicator/hv.d.ts +4 -1
- package/dist/engine/renderers/Indicator/hv.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/hv.js +17 -8
- package/dist/engine/renderers/Indicator/hv.js.map +1 -1
- package/dist/engine/renderers/Indicator/ichimoku.d.ts +4 -1
- package/dist/engine/renderers/Indicator/ichimoku.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/ichimoku.js +26 -8
- package/dist/engine/renderers/Indicator/ichimoku.js.map +1 -1
- package/dist/engine/renderers/Indicator/index.d.ts +27 -28
- package/dist/engine/renderers/Indicator/index.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/index.js +27 -28
- package/dist/engine/renderers/Indicator/index.js.map +1 -1
- package/dist/engine/renderers/Indicator/{indicatorData.d.ts → indicatorCatalog.d.ts} +1 -1
- package/dist/engine/renderers/Indicator/indicatorCatalog.d.ts.map +1 -0
- package/dist/engine/renderers/Indicator/{indicatorData.js → indicatorCatalog.js} +94 -406
- package/dist/engine/renderers/Indicator/indicatorCatalog.js.map +1 -0
- package/dist/engine/renderers/Indicator/kama.d.ts +2 -0
- package/dist/engine/renderers/Indicator/kama.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/kama.js +18 -8
- package/dist/engine/renderers/Indicator/kama.js.map +1 -1
- package/dist/engine/renderers/Indicator/keltner.d.ts +4 -1
- package/dist/engine/renderers/Indicator/keltner.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/keltner.js +19 -8
- package/dist/engine/renderers/Indicator/keltner.js.map +1 -1
- package/dist/engine/renderers/Indicator/kst.d.ts +2 -1
- package/dist/engine/renderers/Indicator/kst.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/kst.js +11 -10
- package/dist/engine/renderers/Indicator/kst.js.map +1 -1
- package/dist/engine/renderers/Indicator/ma.d.ts +4 -1
- package/dist/engine/renderers/Indicator/ma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/ma.js +32 -9
- package/dist/engine/renderers/Indicator/ma.js.map +1 -1
- package/dist/engine/renderers/Indicator/macd.d.ts +1 -1
- package/dist/engine/renderers/Indicator/macd.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/macd.js +9 -10
- package/dist/engine/renderers/Indicator/macd.js.map +1 -1
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.js +38 -136
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.js.map +1 -1
- package/dist/engine/renderers/Indicator/mfi.d.ts +4 -1
- package/dist/engine/renderers/Indicator/mfi.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/mfi.js +15 -8
- package/dist/engine/renderers/Indicator/mfi.js.map +1 -1
- package/dist/engine/renderers/Indicator/mom.d.ts +2 -1
- package/dist/engine/renderers/Indicator/mom.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/mom.js +6 -10
- package/dist/engine/renderers/Indicator/mom.js.map +1 -1
- package/dist/engine/renderers/Indicator/obv.d.ts +4 -1
- package/dist/engine/renderers/Indicator/obv.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/obv.js +14 -8
- package/dist/engine/renderers/Indicator/obv.js.map +1 -1
- package/dist/engine/renderers/Indicator/parkinson.d.ts +4 -1
- package/dist/engine/renderers/Indicator/parkinson.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/parkinson.js +17 -8
- package/dist/engine/renderers/Indicator/parkinson.js.map +1 -1
- package/dist/engine/renderers/Indicator/pivot.d.ts +2 -0
- package/dist/engine/renderers/Indicator/pivot.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/pivot.js +42 -8
- package/dist/engine/renderers/Indicator/pivot.js.map +1 -1
- package/dist/engine/renderers/Indicator/pvt.d.ts +4 -1
- package/dist/engine/renderers/Indicator/pvt.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/pvt.js +14 -8
- package/dist/engine/renderers/Indicator/pvt.js.map +1 -1
- package/dist/engine/renderers/Indicator/roc.d.ts +4 -1
- package/dist/engine/renderers/Indicator/roc.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/roc.js +15 -8
- package/dist/engine/renderers/Indicator/roc.js.map +1 -1
- package/dist/engine/renderers/Indicator/rsi.d.ts +2 -1
- package/dist/engine/renderers/Indicator/rsi.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/rsi.js +9 -10
- package/dist/engine/renderers/Indicator/rsi.js.map +1 -1
- package/dist/engine/renderers/Indicator/sar.d.ts +4 -1
- package/dist/engine/renderers/Indicator/sar.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/sar.js +17 -8
- package/dist/engine/renderers/Indicator/sar.js.map +1 -1
- package/dist/engine/renderers/Indicator/stoch.d.ts +2 -1
- package/dist/engine/renderers/Indicator/stoch.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/stoch.js +8 -10
- package/dist/engine/renderers/Indicator/stoch.js.map +1 -1
- package/dist/engine/renderers/Indicator/structure.d.ts +4 -1
- package/dist/engine/renderers/Indicator/structure.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/structure.js +21 -9
- package/dist/engine/renderers/Indicator/structure.js.map +1 -1
- package/dist/engine/renderers/Indicator/supertrend.d.ts +4 -1
- package/dist/engine/renderers/Indicator/supertrend.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/supertrend.js +18 -9
- package/dist/engine/renderers/Indicator/supertrend.js.map +1 -1
- package/dist/engine/renderers/Indicator/tema.d.ts +2 -0
- package/dist/engine/renderers/Indicator/tema.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/tema.js +18 -8
- package/dist/engine/renderers/Indicator/tema.js.map +1 -1
- package/dist/engine/renderers/Indicator/trix.d.ts +4 -1
- package/dist/engine/renderers/Indicator/trix.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/trix.js +29 -8
- package/dist/engine/renderers/Indicator/trix.js.map +1 -1
- package/dist/engine/renderers/Indicator/vma.d.ts +4 -1
- package/dist/engine/renderers/Indicator/vma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/vma.js +15 -8
- package/dist/engine/renderers/Indicator/vma.js.map +1 -1
- package/dist/engine/renderers/Indicator/volumeProfile.d.ts +4 -1
- package/dist/engine/renderers/Indicator/volumeProfile.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/volumeProfile.js +27 -8
- package/dist/engine/renderers/Indicator/volumeProfile.js.map +1 -1
- package/dist/engine/renderers/Indicator/vwap.d.ts +4 -1
- package/dist/engine/renderers/Indicator/vwap.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/vwap.js +14 -8
- package/dist/engine/renderers/Indicator/vwap.js.map +1 -1
- package/dist/engine/renderers/Indicator/wma.d.ts +2 -0
- package/dist/engine/renderers/Indicator/wma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/wma.js +18 -8
- package/dist/engine/renderers/Indicator/wma.js.map +1 -1
- package/dist/engine/renderers/Indicator/wmsr.d.ts +2 -1
- package/dist/engine/renderers/Indicator/wmsr.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/wmsr.js +6 -10
- package/dist/engine/renderers/Indicator/wmsr.js.map +1 -1
- package/dist/engine/renderers/Indicator/zones.d.ts +2 -0
- package/dist/engine/renderers/Indicator/zones.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/zones.js +23 -8
- package/dist/engine/renderers/Indicator/zones.js.map +1 -1
- package/dist/engine/renderers/paneTitle.d.ts +4 -10
- package/dist/engine/renderers/paneTitle.d.ts.map +1 -1
- package/dist/engine/renderers/paneTitle.js +30 -7
- package/dist/engine/renderers/paneTitle.js.map +1 -1
- package/dist/engine/renderers/subVolume.js +0 -3
- package/dist/engine/renderers/subVolume.js.map +1 -1
- package/dist/engine/subPaneManager.d.ts.map +1 -1
- package/dist/engine/subPaneManager.js +2 -1
- package/dist/engine/subPaneManager.js.map +1 -1
- package/dist/semantic/controller.d.ts +3 -14
- package/dist/semantic/controller.d.ts.map +1 -1
- package/dist/semantic/controller.js +9 -43
- package/dist/semantic/controller.js.map +1 -1
- package/dist/semantic/index.d.ts +3 -2
- package/dist/semantic/index.d.ts.map +1 -1
- package/dist/semantic/index.js +1 -1
- package/dist/semantic/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +7 -7
- package/src/config/chartSettings.ts +0 -1
- package/src/controllers/__tests__/indicatorSelector.test.ts +5 -4
- package/src/controllers/createChartController.ts +28 -1
- package/src/controllers/createIndicatorSelectorController.ts +4 -6
- package/src/controllers/index.ts +7 -6
- package/src/controllers/types.ts +30 -0
- package/src/data-fetchers/baostock.ts +34 -0
- package/src/data-fetchers/hundred-mock.ts +31 -0
- package/src/data-fetchers/index.ts +4 -0
- package/src/data-fetchers/router.ts +17 -0
- package/src/data-fetchers/thousand-mock.ts +30 -0
- package/src/engine/chart.ts +91 -23
- package/src/engine/indicators/__tests__/registerBuiltins.test.ts +4 -5
- package/src/engine/indicators/indicatorDefinitionRegistry.ts +35 -2
- package/src/engine/indicators/indicatorMetadata.ts +39 -2
- package/src/engine/indicators/indicatorRuntime.ts +5 -4
- package/src/engine/indicators/scheduler.ts +32 -8
- package/src/engine/renderers/Indicator/atr.ts +8 -11
- package/src/engine/renderers/Indicator/boll.ts +31 -10
- package/src/engine/renderers/Indicator/cci.ts +9 -14
- package/src/engine/renderers/Indicator/chaikinVol.ts +24 -8
- package/src/engine/renderers/Indicator/cmf.ts +23 -8
- package/src/engine/renderers/Indicator/dema.ts +27 -9
- package/src/engine/renderers/Indicator/donchian.ts +27 -9
- package/src/engine/renderers/Indicator/ene.ts +31 -10
- package/src/engine/renderers/Indicator/expma.ts +30 -10
- package/src/engine/renderers/Indicator/fastk.ts +9 -14
- package/src/engine/renderers/Indicator/fib.ts +28 -9
- package/src/engine/renderers/Indicator/hma.ts +27 -9
- package/src/engine/renderers/Indicator/hv.ts +26 -8
- package/src/engine/renderers/Indicator/ichimoku.ts +30 -9
- package/src/engine/renderers/Indicator/index.ts +27 -28
- package/src/engine/renderers/Indicator/indicatorCatalog.ts +346 -0
- package/src/engine/renderers/Indicator/kama.ts +27 -9
- package/src/engine/renderers/Indicator/keltner.ts +27 -9
- package/src/engine/renderers/Indicator/kst.ts +14 -18
- package/src/engine/renderers/Indicator/ma.ts +43 -9
- package/src/engine/renderers/Indicator/macd.ts +27 -32
- package/src/engine/renderers/Indicator/mainIndicatorLegend.ts +43 -162
- package/src/engine/renderers/Indicator/mfi.ts +23 -8
- package/src/engine/renderers/Indicator/mom.ts +9 -14
- package/src/engine/renderers/Indicator/obv.ts +22 -8
- package/src/engine/renderers/Indicator/parkinson.ts +26 -8
- package/src/engine/renderers/Indicator/pivot.ts +46 -9
- package/src/engine/renderers/Indicator/pvt.ts +22 -8
- package/src/engine/renderers/Indicator/roc.ts +24 -8
- package/src/engine/renderers/Indicator/rsi.ts +12 -16
- package/src/engine/renderers/Indicator/sar.ts +25 -9
- package/src/engine/renderers/Indicator/stoch.ts +11 -15
- package/src/engine/renderers/Indicator/structure.ts +31 -9
- package/src/engine/renderers/Indicator/supertrend.ts +26 -10
- package/src/engine/renderers/Indicator/tema.ts +27 -9
- package/src/engine/renderers/Indicator/trix.ts +38 -8
- package/src/engine/renderers/Indicator/vma.ts +23 -8
- package/src/engine/renderers/Indicator/volumeProfile.ts +39 -8
- package/src/engine/renderers/Indicator/vwap.ts +22 -8
- package/src/engine/renderers/Indicator/wma.ts +27 -9
- package/src/engine/renderers/Indicator/wmsr.ts +9 -14
- package/src/engine/renderers/Indicator/zones.ts +28 -9
- package/src/engine/renderers/__tests__/mainIndicatorLegend.renderer.test.ts +142 -79
- package/src/engine/renderers/paneTitle.ts +45 -19
- package/src/engine/renderers/subVolume.ts +0 -2
- package/src/engine/subPaneManager.ts +2 -1
- package/src/semantic/__tests__/controller.test.ts +19 -7
- package/src/semantic/controller.ts +9 -57
- package/src/semantic/index.ts +3 -2
- package/src/version.ts +1 -1
- package/dist/engine/renderers/Indicator/indicatorData.d.ts.map +0 -1
- package/dist/engine/renderers/Indicator/indicatorData.js.map +0 -1
- package/dist/engine/renderers/Indicator/macdLegend.d.ts +0 -13
- package/dist/engine/renderers/Indicator/macdLegend.d.ts.map +0 -1
- package/dist/engine/renderers/Indicator/macdLegend.js +0 -116
- package/dist/engine/renderers/Indicator/macdLegend.js.map +0 -1
- package/dist/engine/renderers/Indicator/subPaneConfig.d.ts +0 -16
- package/dist/engine/renderers/Indicator/subPaneConfig.d.ts.map +0 -1
- package/dist/engine/renderers/Indicator/subPaneConfig.js +0 -194
- package/dist/engine/renderers/Indicator/subPaneConfig.js.map +0 -1
- package/src/engine/renderers/Indicator/indicatorData.ts +0 -650
- package/src/engine/renderers/Indicator/macdLegend.ts +0 -141
- package/src/engine/renderers/Indicator/subPaneConfig.ts +0 -265
|
@@ -2,8 +2,33 @@ import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../pl
|
|
|
2
2
|
import { RENDERER_PRIORITY } from '../../plugin'
|
|
3
3
|
import { resolveThemeColors } from '../../tokens'
|
|
4
4
|
import { getFont, setCanvasFont } from '../theme/fonts'
|
|
5
|
-
import { SUB_PANE_INDICATOR_CONFIGS } from './Indicator/subPaneConfig'
|
|
6
5
|
import type { SubIndicatorType } from './Indicator'
|
|
6
|
+
import type { KLineData } from '../../types/price'
|
|
7
|
+
import type { TitleInfo } from '../indicators/indicatorMetadata'
|
|
8
|
+
import type { IndicatorScheduler } from '../indicators/scheduler'
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated 请从 indicatorMetadata 导入 TitleInfo
|
|
12
|
+
*/
|
|
13
|
+
export type { TitleInfo, TitleValueItem } from '../indicators/indicatorMetadata'
|
|
14
|
+
|
|
15
|
+
function getVolumeTitleInfo(
|
|
16
|
+
data: KLineData[],
|
|
17
|
+
index: number | null,
|
|
18
|
+
_params: Record<string, number | boolean | string>,
|
|
19
|
+
_host: PluginHost,
|
|
20
|
+
_paneId: string,
|
|
21
|
+
): TitleInfo | null {
|
|
22
|
+
if (index === null) return null
|
|
23
|
+
const kline = data[index]
|
|
24
|
+
if (!kline || kline.volume === undefined) return null
|
|
25
|
+
const color = kline.open < kline.close ? '#ef4444' : '#22c55e'
|
|
26
|
+
return {
|
|
27
|
+
name: 'VOL',
|
|
28
|
+
params: [],
|
|
29
|
+
values: [{ label: 'VOL', value: kline.volume, color }],
|
|
30
|
+
}
|
|
31
|
+
}
|
|
7
32
|
|
|
8
33
|
const textWidthCache = new Map<string, number>()
|
|
9
34
|
const TEXT_WIDTH_CACHE_LIMIT = 256
|
|
@@ -23,18 +48,6 @@ function measureTextWidth(ctx: CanvasRenderingContext2D, text: string): number {
|
|
|
23
48
|
return width
|
|
24
49
|
}
|
|
25
50
|
|
|
26
|
-
export interface TitleValueItem {
|
|
27
|
-
label: string
|
|
28
|
-
value: number
|
|
29
|
-
color: string
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export interface TitleInfo {
|
|
33
|
-
name: string
|
|
34
|
-
params?: number[]
|
|
35
|
-
values?: TitleValueItem[]
|
|
36
|
-
}
|
|
37
|
-
|
|
38
51
|
export interface PaneTitleOptions {
|
|
39
52
|
paneId: string
|
|
40
53
|
title: string
|
|
@@ -68,7 +81,7 @@ export function createPaneTitleRendererPlugin(options: PaneTitleOptions): Render
|
|
|
68
81
|
|
|
69
82
|
const fontSize = 12
|
|
70
83
|
const x = 12
|
|
71
|
-
|
|
84
|
+
let y = currentOptions.yOffset ?? fontSize
|
|
72
85
|
const gap = 8
|
|
73
86
|
|
|
74
87
|
overlayCtx.save()
|
|
@@ -76,11 +89,22 @@ export function createPaneTitleRendererPlugin(options: PaneTitleOptions): Render
|
|
|
76
89
|
overlayCtx.textAlign = 'left'
|
|
77
90
|
overlayCtx.textBaseline = 'top'
|
|
78
91
|
|
|
79
|
-
const config = SUB_PANE_INDICATOR_CONFIGS[currentOptions.indicatorId]
|
|
80
92
|
const crosshairIndex = context.crosshairIndex ?? null
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
93
|
+
const castParams = currentOptions.params as Record<string, number | boolean | string>
|
|
94
|
+
const klineData = context.data as KLineData[]
|
|
95
|
+
|
|
96
|
+
// 优先从 indicator metadata registry 获取 getTitleInfo
|
|
97
|
+
let titleInfo: TitleInfo | null = null
|
|
98
|
+
const scheduler = pluginHost?.getService<IndicatorScheduler>('indicatorScheduler')
|
|
99
|
+
const meta = scheduler?.getIndicatorMetadata(currentOptions.indicatorId)
|
|
100
|
+
if (meta?.getTitleInfo && pluginHost) {
|
|
101
|
+
titleInfo = meta.getTitleInfo(klineData, crosshairIndex, castParams, pluginHost, currentOptions.paneId)
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// fallback: VOLUME 不是注册指标,内联处理
|
|
105
|
+
if (!titleInfo && pluginHost) {
|
|
106
|
+
titleInfo = getVolumeTitleInfo(klineData, crosshairIndex, castParams, pluginHost, currentOptions.paneId)
|
|
107
|
+
}
|
|
84
108
|
|
|
85
109
|
if (titleInfo) {
|
|
86
110
|
let currentX = x
|
|
@@ -99,6 +123,7 @@ export function createPaneTitleRendererPlugin(options: PaneTitleOptions): Render
|
|
|
99
123
|
}
|
|
100
124
|
|
|
101
125
|
if (titleInfo.values && titleInfo.values.length > 0) {
|
|
126
|
+
// y += 1
|
|
102
127
|
for (const item of titleInfo.values) {
|
|
103
128
|
const valueText = `${item.label} ${item.value.toFixed(3)}`
|
|
104
129
|
overlayCtx.fillStyle = item.color
|
|
@@ -108,7 +133,8 @@ export function createPaneTitleRendererPlugin(options: PaneTitleOptions): Render
|
|
|
108
133
|
}
|
|
109
134
|
} else {
|
|
110
135
|
overlayCtx.fillStyle = colors.text.primary
|
|
111
|
-
|
|
136
|
+
const fallbackTitle = meta?.displayName ?? currentOptions.title
|
|
137
|
+
overlayCtx.fillText(fallbackTitle, x, y)
|
|
112
138
|
|
|
113
139
|
if (currentOptions.description) {
|
|
114
140
|
const titleWidth = measureTextWidth(overlayCtx, currentOptions.title)
|
|
@@ -232,10 +232,8 @@ function judgeColor(dayData: KLineData, upColor: string, downColor: string, neut
|
|
|
232
232
|
name: 'volume',
|
|
233
233
|
displayName: 'VOL',
|
|
234
234
|
category: 'volume',
|
|
235
|
-
stateKey: (paneId: string) => createIndicatorStateKey('volume', paneId),
|
|
236
235
|
defaultPaneId: 'sub',
|
|
237
236
|
scaleRendererFactory: createVolumeScaleRendererPlugin,
|
|
238
|
-
updateConfig: () => {},
|
|
239
237
|
})
|
|
240
238
|
class VolumeIndicatorDefinition {
|
|
241
239
|
static rendererFactory = createVolumeRendererPlugin
|
|
@@ -4,6 +4,7 @@ import { createSignal, type Signal } from '../reactivity/signal'
|
|
|
4
4
|
import { createSubIndicatorRenderer } from './renderers/Indicator'
|
|
5
5
|
import { createPaneTitleRendererPlugin } from './renderers/paneTitle'
|
|
6
6
|
import { createIndicatorScaleRendererPlugin } from './renderers/Indicator/scale/indicator_scale'
|
|
7
|
+
import { findIndicator } from './renderers/Indicator/indicatorCatalog'
|
|
7
8
|
|
|
8
9
|
export interface SubPaneEntry {
|
|
9
10
|
paneId: string
|
|
@@ -220,7 +221,7 @@ export class SubPaneManager {
|
|
|
220
221
|
|
|
221
222
|
const renderer = createPaneTitleRendererPlugin({
|
|
222
223
|
paneId,
|
|
223
|
-
title: indicatorId,
|
|
224
|
+
title: findIndicator(indicatorId)?.label ?? indicatorId,
|
|
224
225
|
indicatorId,
|
|
225
226
|
params,
|
|
226
227
|
})
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { afterEach, describe, expect, it, vi } from 'vitest'
|
|
2
|
-
import { SemanticChartController,
|
|
2
|
+
import { SemanticChartController, type SemanticChartAdapter } from '../controller'
|
|
3
3
|
import type { SemanticChartConfig } from '../types'
|
|
4
4
|
|
|
5
5
|
function createConfig(indicators: SemanticChartConfig['indicators']): SemanticChartConfig {
|
|
@@ -20,6 +20,7 @@ function createConfig(indicators: SemanticChartConfig['indicators']): SemanticCh
|
|
|
20
20
|
|
|
21
21
|
function createChartAdapter(): SemanticChartAdapter {
|
|
22
22
|
return {
|
|
23
|
+
setSymbols: vi.fn(),
|
|
23
24
|
updateData: vi.fn(),
|
|
24
25
|
updateRendererConfig: vi.fn(),
|
|
25
26
|
addIndicator: vi.fn((definitionId: string) => definitionId),
|
|
@@ -34,12 +35,7 @@ function createChartAdapter(): SemanticChartAdapter {
|
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
describe('SemanticChartController', () => {
|
|
37
|
-
afterEach(() => {
|
|
38
|
-
__setDataFetcher(null)
|
|
39
|
-
})
|
|
40
|
-
|
|
41
38
|
it('routes semantic sub indicators through registered definitions', async () => {
|
|
42
|
-
__setDataFetcher(vi.fn(async () => []))
|
|
43
39
|
const chart = createChartAdapter()
|
|
44
40
|
const controller = new SemanticChartController(chart)
|
|
45
41
|
|
|
@@ -61,7 +57,6 @@ describe('SemanticChartController', () => {
|
|
|
61
57
|
})
|
|
62
58
|
|
|
63
59
|
it('routes semantic main indicators through chart main indicator API', async () => {
|
|
64
|
-
__setDataFetcher(vi.fn(async () => []))
|
|
65
60
|
const chart = createChartAdapter()
|
|
66
61
|
const controller = new SemanticChartController(chart)
|
|
67
62
|
|
|
@@ -81,4 +76,21 @@ describe('SemanticChartController', () => {
|
|
|
81
76
|
expect(chart.disableMainIndicator).not.toHaveBeenCalled()
|
|
82
77
|
expect(chart.updateRendererConfig).not.toHaveBeenCalledWith('boll', expect.anything())
|
|
83
78
|
})
|
|
79
|
+
|
|
80
|
+
it('calls setSymbols on the adapter when applying config', async () => {
|
|
81
|
+
const chart = createChartAdapter()
|
|
82
|
+
const controller = new SemanticChartController(chart)
|
|
83
|
+
|
|
84
|
+
await controller.applyConfig(createConfig({}))
|
|
85
|
+
|
|
86
|
+
expect(chart.setSymbols).toHaveBeenCalledWith([{
|
|
87
|
+
symbol: '600000',
|
|
88
|
+
exchange: 'SH',
|
|
89
|
+
period: 'daily',
|
|
90
|
+
adjust: 'qfq',
|
|
91
|
+
source: 'baostock',
|
|
92
|
+
startDate: '2025-01-01',
|
|
93
|
+
endDate: '2025-01-02',
|
|
94
|
+
}])
|
|
95
|
+
})
|
|
84
96
|
})
|
|
@@ -13,22 +13,10 @@ import type {
|
|
|
13
13
|
DataConfig,
|
|
14
14
|
} from './types'
|
|
15
15
|
import type { SubIndicatorType as CoreSubIndicatorType } from '../engine/renderers/Indicator'
|
|
16
|
-
import type { KLineData } from '../controllers/types'
|
|
16
|
+
import type { KLineData, DataFetcher, SymbolSpec } from '../controllers/types'
|
|
17
17
|
|
|
18
18
|
export type SemanticEventType = 'config:loading' | 'config:ready' | 'config:error'
|
|
19
|
-
|
|
20
|
-
export type DataFetcher = (
|
|
21
|
-
source: string,
|
|
22
|
-
config: {
|
|
23
|
-
symbol: string
|
|
24
|
-
startDate: string
|
|
25
|
-
endDate: string
|
|
26
|
-
period: string
|
|
27
|
-
adjust: string
|
|
28
|
-
},
|
|
29
|
-
) => Promise<ReadonlyArray<KLineData>>
|
|
30
|
-
|
|
31
|
-
let _dataFetcher: DataFetcher | null = null
|
|
19
|
+
export type { DataFetcher, SymbolSpec } from '../controllers/types'
|
|
32
20
|
|
|
33
21
|
function normalizeIndicatorId(id: string): string {
|
|
34
22
|
return id.trim().toLowerCase().replace(/[^a-z0-9]/g, '')
|
|
@@ -45,21 +33,8 @@ function getSemanticIndicatorDefinition(type: string): IndicatorMetadata | undef
|
|
|
45
33
|
})
|
|
46
34
|
}
|
|
47
35
|
|
|
48
|
-
export function __setDataFetcher(fetcher: DataFetcher | null): void {
|
|
49
|
-
_dataFetcher = fetcher
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
async function getDataFetcher(): Promise<DataFetcher> {
|
|
53
|
-
if (_dataFetcher === null) {
|
|
54
|
-
throw new Error(
|
|
55
|
-
'[SemanticChartController] No data fetcher registered. ' +
|
|
56
|
-
'Call __setDataFetcher(...) before applying a config that requires data fetching.',
|
|
57
|
-
)
|
|
58
|
-
}
|
|
59
|
-
return _dataFetcher
|
|
60
|
-
}
|
|
61
|
-
|
|
62
36
|
export interface SemanticChartAdapter {
|
|
37
|
+
setSymbols(specs: ReadonlyArray<SymbolSpec>): void
|
|
63
38
|
updateData(data: ReadonlyArray<KLineData>): void
|
|
64
39
|
updateRendererConfig(name: string, config: Record<string, unknown>): void
|
|
65
40
|
addIndicator?(definitionId: string, role: 'main' | 'sub', params?: Record<string, unknown>): string | null
|
|
@@ -116,44 +91,21 @@ export class SemanticChartController {
|
|
|
116
91
|
this.events.off(event, handler)
|
|
117
92
|
}
|
|
118
93
|
|
|
119
|
-
/**
|
|
120
|
-
* 仅注册指标配置,不获取/更新数据。
|
|
121
|
-
* 用于 performanceTest10kKlines 等场景:数据由外部提供,语义控制器只管指标。
|
|
122
|
-
*/
|
|
123
|
-
applyIndicatorsOnly(config: SemanticChartConfig): ApplyResult {
|
|
124
|
-
try {
|
|
125
|
-
if (config.indicators) {
|
|
126
|
-
this.applyIndicators(config.indicators.main, config.indicators.sub)
|
|
127
|
-
}
|
|
128
|
-
if (config.markers) {
|
|
129
|
-
this.applyMarkers(config.markers.customMarkers, config.data.period)
|
|
130
|
-
}
|
|
131
|
-
this.events.emit('config:ready', undefined)
|
|
132
|
-
return { success: true }
|
|
133
|
-
} catch (error) {
|
|
134
|
-
this.events.emit('config:error', error)
|
|
135
|
-
return {
|
|
136
|
-
success: false,
|
|
137
|
-
errors: [error instanceof Error ? error.message : String(error)],
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
94
|
private async doApplyConfig(config: SemanticChartConfig): Promise<void> {
|
|
143
95
|
// 先注册指标(同步),确保 scheduler 首次 applyResults 时指标已在 registry
|
|
144
96
|
if (config.indicators) {
|
|
145
97
|
this.applyIndicators(config.indicators.main, config.indicators.sub)
|
|
146
98
|
}
|
|
147
99
|
|
|
148
|
-
|
|
149
|
-
const data = await fetcher(config.data.source, {
|
|
100
|
+
this.chart.setSymbols([{
|
|
150
101
|
symbol: config.data.symbol,
|
|
151
|
-
|
|
152
|
-
endDate: config.data.endDate,
|
|
102
|
+
exchange: config.data.exchange,
|
|
153
103
|
period: config.data.period,
|
|
154
104
|
adjust: config.data.adjust,
|
|
155
|
-
|
|
156
|
-
|
|
105
|
+
source: config.data.source,
|
|
106
|
+
startDate: config.data.startDate,
|
|
107
|
+
endDate: config.data.endDate,
|
|
108
|
+
}])
|
|
157
109
|
|
|
158
110
|
if (config.markers) {
|
|
159
111
|
this.applyMarkers(config.markers.customMarkers, config.data.period)
|
package/src/semantic/index.ts
CHANGED
|
@@ -20,8 +20,9 @@ export type {
|
|
|
20
20
|
SecurityResult,
|
|
21
21
|
} from './types'
|
|
22
22
|
|
|
23
|
-
export { SemanticChartController, type SemanticEventType
|
|
24
|
-
export type {
|
|
23
|
+
export { SemanticChartController, type SemanticEventType } from './controller'
|
|
24
|
+
export type { SemanticChartAdapter } from './controller'
|
|
25
|
+
export type { DataFetcher, SymbolSpec } from '../controllers/types'
|
|
25
26
|
|
|
26
27
|
export { SemanticConfigValidator, sanitizeParams, sanitizeColor, validateColor, validateSymbol } from './validator'
|
|
27
28
|
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = "0.
|
|
1
|
+
export const VERSION = "0.8.1-alpha.1"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"indicatorData.d.ts","sourceRoot":"","sources":["../../../../src/engine/renderers/Indicator/indicatorData.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,QAAQ,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,KAAK,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;CACvB;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,EAymBpC,CAAA;AAED,eAAO,MAAM,cAAc,aAAiD,CAAA;AAC5E,eAAO,MAAM,aAAa,aAAgD,CAAA;AAE1E,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAE/D;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAGpD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"indicatorData.js","sourceRoot":"","sources":["../../../../src/engine/renderers/Indicator/indicatorData.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { RendererPluginWithHost } from '../../../plugin';
|
|
2
|
-
export interface MACDLegendOptions {
|
|
3
|
-
/** Y 轴内边距(与主图保持一致) */
|
|
4
|
-
yPaddingPx?: number;
|
|
5
|
-
/** 目标 pane ID(默认 'sub') */
|
|
6
|
-
paneId?: string;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* 创建 MACD 图例渲染器插件
|
|
10
|
-
* 从 StateStore 读取 MACD 状态,不再在 draw 时计算
|
|
11
|
-
*/
|
|
12
|
-
export declare function createMACDLegendRendererPlugin(options?: MACDLegendOptions): RendererPluginWithHost;
|
|
13
|
-
//# sourceMappingURL=macdLegend.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"macdLegend.d.ts","sourceRoot":"","sources":["../../../../src/engine/renderers/Indicator/macdLegend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAA6B,MAAM,iBAAiB,CAAA;AAyBxF,MAAM,WAAW,iBAAiB;IAC9B,sBAAsB;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,GAAE,iBAAsB,GAAG,sBAAsB,CAwGtG"}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { RENDERER_PRIORITY } from '../../../plugin';
|
|
2
|
-
import { resolveThemeColors } from '../../../tokens';
|
|
3
|
-
import { getFont, setCanvasFont } from '../../theme/fonts';
|
|
4
|
-
import { createMACDStateKey } from '../../indicators/macdState';
|
|
5
|
-
const textWidthCache = new Map();
|
|
6
|
-
const TEXT_WIDTH_CACHE_LIMIT = 256;
|
|
7
|
-
function measureTextWidth(ctx, text) {
|
|
8
|
-
const key = `${ctx.font}\n${text}`;
|
|
9
|
-
const cached = textWidthCache.get(key);
|
|
10
|
-
if (cached !== undefined) {
|
|
11
|
-
return cached;
|
|
12
|
-
}
|
|
13
|
-
const width = ctx.measureText(text).width;
|
|
14
|
-
if (textWidthCache.size >= TEXT_WIDTH_CACHE_LIMIT) {
|
|
15
|
-
textWidthCache.clear();
|
|
16
|
-
}
|
|
17
|
-
textWidthCache.set(key, width);
|
|
18
|
-
return width;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* 创建 MACD 图例渲染器插件
|
|
22
|
-
* 从 StateStore 读取 MACD 状态,不再在 draw 时计算
|
|
23
|
-
*/
|
|
24
|
-
export function createMACDLegendRendererPlugin(options = {}) {
|
|
25
|
-
const yPaddingPx = options.yPaddingPx ?? 0;
|
|
26
|
-
const paneId = options.paneId ?? 'sub';
|
|
27
|
-
let fastPeriod = 12;
|
|
28
|
-
let slowPeriod = 26;
|
|
29
|
-
let signalPeriod = 9;
|
|
30
|
-
let pluginHost = null;
|
|
31
|
-
const stateKey = createMACDStateKey(paneId);
|
|
32
|
-
return {
|
|
33
|
-
name: `macdLegend_${paneId}`,
|
|
34
|
-
version: '2.1.0',
|
|
35
|
-
description: 'MACD 图例渲染器(StateStore 版)',
|
|
36
|
-
debugName: 'MACD 图例',
|
|
37
|
-
paneId,
|
|
38
|
-
priority: RENDERER_PRIORITY.FOREGROUND,
|
|
39
|
-
onInstall(host) {
|
|
40
|
-
pluginHost = host;
|
|
41
|
-
},
|
|
42
|
-
draw(context) {
|
|
43
|
-
const { ctx, range } = context;
|
|
44
|
-
const colors = resolveThemeColors(context.theme, context.isAsiaMarket, context.colorPresetSettings);
|
|
45
|
-
// 从 StateStore 读取 MACD 状态
|
|
46
|
-
const state = pluginHost?.getSharedState(stateKey);
|
|
47
|
-
if (!state || state.visibleMin > state.visibleMax)
|
|
48
|
-
return;
|
|
49
|
-
// 获取最新值
|
|
50
|
-
let macdValue = null;
|
|
51
|
-
// 优先使用 latestValues(scheduler 已计算好)
|
|
52
|
-
if (state.latestValues) {
|
|
53
|
-
macdValue = state.latestValues;
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
// 回退:从 series 读取最后一个可见点
|
|
57
|
-
const lastIndex = Math.min(range.end - 1, state.series.length - 1);
|
|
58
|
-
const point = state.series[lastIndex];
|
|
59
|
-
if (point) {
|
|
60
|
-
macdValue = {
|
|
61
|
-
dif: point.dif,
|
|
62
|
-
dea: point.dea,
|
|
63
|
-
macd: point.macd,
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
if (!macdValue)
|
|
68
|
-
return;
|
|
69
|
-
// 从 state.params 读取当前参数
|
|
70
|
-
const params = state.params;
|
|
71
|
-
fastPeriod = params.fastPeriod;
|
|
72
|
-
slowPeriod = params.slowPeriod;
|
|
73
|
-
signalPeriod = params.signalPeriod;
|
|
74
|
-
const fontSize = 11;
|
|
75
|
-
const gap = 12;
|
|
76
|
-
let x = 12;
|
|
77
|
-
const y = yPaddingPx + fontSize;
|
|
78
|
-
ctx.save();
|
|
79
|
-
setCanvasFont(ctx, getFont(fontSize));
|
|
80
|
-
ctx.textAlign = 'left';
|
|
81
|
-
ctx.textBaseline = 'top';
|
|
82
|
-
const paramText = `MACD(${fastPeriod},${slowPeriod},${signalPeriod})`;
|
|
83
|
-
ctx.fillStyle = colors.text.tertiary;
|
|
84
|
-
ctx.fillText(paramText, x, y);
|
|
85
|
-
x += measureTextWidth(ctx, paramText) + gap;
|
|
86
|
-
const difText = `DIF:${macdValue.dif.toFixed(2)}`;
|
|
87
|
-
ctx.fillStyle = colors.macd.dif;
|
|
88
|
-
ctx.fillText(difText, x, y);
|
|
89
|
-
x += measureTextWidth(ctx, difText) + gap;
|
|
90
|
-
const deaText = `DEA:${macdValue.dea.toFixed(2)}`;
|
|
91
|
-
ctx.fillStyle = colors.macd.dea;
|
|
92
|
-
ctx.fillText(deaText, x, y);
|
|
93
|
-
x += measureTextWidth(ctx, deaText) + gap;
|
|
94
|
-
const macdText = `MACD:${macdValue.macd.toFixed(2)}`;
|
|
95
|
-
ctx.fillStyle = macdValue.macd >= 0 ? colors.macd.barUp : colors.macd.barDown;
|
|
96
|
-
ctx.fillText(macdText, x, y);
|
|
97
|
-
ctx.restore();
|
|
98
|
-
},
|
|
99
|
-
getConfig() {
|
|
100
|
-
return {
|
|
101
|
-
fastPeriod,
|
|
102
|
-
slowPeriod,
|
|
103
|
-
signalPeriod,
|
|
104
|
-
};
|
|
105
|
-
},
|
|
106
|
-
setConfig(newConfig) {
|
|
107
|
-
if (typeof newConfig.fastPeriod === 'number')
|
|
108
|
-
fastPeriod = newConfig.fastPeriod;
|
|
109
|
-
if (typeof newConfig.slowPeriod === 'number')
|
|
110
|
-
slowPeriod = newConfig.slowPeriod;
|
|
111
|
-
if (typeof newConfig.signalPeriod === 'number')
|
|
112
|
-
signalPeriod = newConfig.signalPeriod;
|
|
113
|
-
},
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
//# sourceMappingURL=macdLegend.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"macdLegend.js","sourceRoot":"","sources":["../../../../src/engine/renderers/Indicator/macdLegend.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAE/D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAA;AAChD,MAAM,sBAAsB,GAAG,GAAG,CAAA;AAElC,SAAS,gBAAgB,CAAC,GAA6B,EAAE,IAAY;IACjE,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAA;IAClC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACtC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAA;IACzC,IAAI,cAAc,CAAC,IAAI,IAAI,sBAAsB,EAAE,CAAC;QAChD,cAAc,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;IACD,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC9B,OAAO,KAAK,CAAA;AAChB,CAAC;AASD;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAAC,UAA6B,EAAE;IAC1E,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAA;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAA;IAEtC,IAAI,UAAU,GAAG,EAAE,CAAA;IACnB,IAAI,UAAU,GAAG,EAAE,CAAA;IACnB,IAAI,YAAY,GAAG,CAAC,CAAA;IAEpB,IAAI,UAAU,GAAsB,IAAI,CAAA;IACxC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAE3C,OAAO;QACH,IAAI,EAAE,cAAc,MAAM,EAAE;QAC5B,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,0BAA0B;QACvC,SAAS,EAAE,SAAS;QACpB,MAAM;QACN,QAAQ,EAAE,iBAAiB,CAAC,UAAU;QAEtC,SAAS,CAAC,IAAgB;YACtB,UAAU,GAAG,IAAI,CAAA;QACrB,CAAC;QAED,IAAI,CAAC,OAAsB;YACvB,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;YAC9B,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;YAEnG,0BAA0B;YAC1B,MAAM,KAAK,GAAG,UAAU,EAAE,cAAc,CAAkB,QAAQ,CAAC,CAAA;YACnE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;gBAAE,OAAM;YAEzD,QAAQ;YACR,IAAI,SAAS,GAAsD,IAAI,CAAA;YAEvE,oCAAoC;YACpC,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACrB,SAAS,GAAG,KAAK,CAAC,YAAY,CAAA;YAClC,CAAC;iBAAM,CAAC;gBACJ,wBAAwB;gBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBAClE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBACrC,IAAI,KAAK,EAAE,CAAC;oBACR,SAAS,GAAG;wBACR,GAAG,EAAE,KAAK,CAAC,GAAG;wBACd,GAAG,EAAE,KAAK,CAAC,GAAG;wBACd,IAAI,EAAE,KAAK,CAAC,IAAI;qBACnB,CAAA;gBACL,CAAC;YACL,CAAC;YAED,IAAI,CAAC,SAAS;gBAAE,OAAM;YAEtB,wBAAwB;YACxB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;YAC3B,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;YAC9B,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;YAC9B,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;YAElC,MAAM,QAAQ,GAAG,EAAE,CAAA;YACnB,MAAM,GAAG,GAAG,EAAE,CAAA;YACd,IAAI,CAAC,GAAG,EAAE,CAAA;YACV,MAAM,CAAC,GAAG,UAAU,GAAG,QAAQ,CAAA;YAE/B,GAAG,CAAC,IAAI,EAAE,CAAA;YACV,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;YACrC,GAAG,CAAC,SAAS,GAAG,MAAM,CAAA;YACtB,GAAG,CAAC,YAAY,GAAG,KAAK,CAAA;YAExB,MAAM,SAAS,GAAG,QAAQ,UAAU,IAAI,UAAU,IAAI,YAAY,GAAG,CAAA;YACrE,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAA;YACpC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAC7B,CAAC,IAAI,gBAAgB,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,GAAG,CAAA;YAE3C,MAAM,OAAO,GAAG,OAAO,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;YACjD,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA;YAC/B,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAC3B,CAAC,IAAI,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,GAAG,CAAA;YAEzC,MAAM,OAAO,GAAG,OAAO,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;YACjD,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA;YAC/B,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAC3B,CAAC,IAAI,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,GAAG,CAAA;YAEzC,MAAM,QAAQ,GAAG,QAAQ,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;YACpD,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAA;YAC7E,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAE5B,GAAG,CAAC,OAAO,EAAE,CAAA;QACjB,CAAC;QAED,SAAS;YACL,OAAO;gBACH,UAAU;gBACV,UAAU;gBACV,YAAY;aACf,CAAA;QACL,CAAC;QAED,SAAS,CAAC,SAAkC;YACxC,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ;gBAAE,UAAU,GAAG,SAAS,CAAC,UAAU,CAAA;YAC/E,IAAI,OAAO,SAAS,CAAC,UAAU,KAAK,QAAQ;gBAAE,UAAU,GAAG,SAAS,CAAC,UAAU,CAAA;YAC/E,IAAI,OAAO,SAAS,CAAC,YAAY,KAAK,QAAQ;gBAAE,YAAY,GAAG,SAAS,CAAC,YAAY,CAAA;QACzF,CAAC;KACJ,CAAA;AACL,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 副图指标配置表
|
|
3
|
-
*
|
|
4
|
-
* 定义各副图指标的默认参数和标题信息获取函数,
|
|
5
|
-
* 由 KLineChart.vue 消费,集中管理避免散落在组件中。
|
|
6
|
-
*/
|
|
7
|
-
import type { TitleInfo } from '../../renderers/paneTitle';
|
|
8
|
-
import type { PluginHost } from '../../../plugin';
|
|
9
|
-
import type { SubIndicatorType } from '../../renderers/Indicator';
|
|
10
|
-
export interface SubPaneIndicatorConfig {
|
|
11
|
-
defaultParams: Record<string, number | boolean | string>;
|
|
12
|
-
getTitleInfo: (data: any[], index: number | null, params: Record<string, number | boolean | string>, pluginHost: PluginHost, paneId: string) => TitleInfo | null;
|
|
13
|
-
}
|
|
14
|
-
export declare const SUB_PANE_INDICATOR_CONFIGS: Record<string, SubPaneIndicatorConfig>;
|
|
15
|
-
export declare const SUB_PANE_INDICATORS: SubIndicatorType[];
|
|
16
|
-
//# sourceMappingURL=subPaneConfig.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"subPaneConfig.d.ts","sourceRoot":"","sources":["../../../../src/engine/renderers/Indicator/subPaneConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAajE,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,CAAA;IACxD,YAAY,EAAE,CACZ,IAAI,EAAE,GAAG,EAAE,EACX,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,EACjD,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,KACX,SAAS,GAAG,IAAI,CAAA;CACtB;AAED,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAqO7E,CAAA;AAED,eAAO,MAAM,mBAAmB,EAA8C,gBAAgB,EAAE,CAAA"}
|