@363045841yyt/klinechart-core 0.7.3 → 0.7.5-alpha.2
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/README.md +201 -201
- package/README.zh-CN.md +201 -201
- package/dist/engine/renderers/webgl/candleSurface.js +47 -47
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -2
- package/dist/version.js.map +1 -1
- package/package.json +129 -122
- package/src/__tests__/signal.test.ts +124 -124
- package/src/config/chartSettings.ts +66 -66
- package/src/controllers/__tests__/drawing.test.ts +214 -214
- package/src/controllers/__tests__/indicatorSelector.test.ts +481 -481
- package/src/controllers/__tests__/toolbar.test.ts +225 -225
- package/src/controllers/createChartController.ts +665 -665
- package/src/controllers/createDrawingController.ts +96 -96
- package/src/controllers/createIndicatorSelectorController.ts +307 -307
- package/src/controllers/createToolbarController.ts +146 -146
- package/src/controllers/index.ts +19 -19
- package/src/controllers/types.ts +284 -284
- package/src/engine/__tests__/chart.dpr.test.ts +401 -401
- package/src/engine/__tests__/paneRenderer.resize.test.ts +92 -92
- package/src/engine/chart-store.ts +121 -121
- package/src/engine/chart.d.ts +617 -617
- package/src/engine/chart.ts +2815 -2815
- package/src/engine/controller/__tests__/interaction.dpr.test.ts +259 -259
- package/src/engine/controller/interaction.ts +722 -722
- package/src/engine/controller/markerInteraction.ts +130 -130
- package/src/engine/controller/pinchTracker.ts +82 -82
- package/src/engine/controller/tooltipPosition.ts +48 -48
- package/src/engine/draw/__tests__/pixelAlign.spec.ts +176 -176
- package/src/engine/draw/pixelAlign.ts +259 -259
- package/src/engine/drawing/index.ts +655 -655
- package/src/engine/drawing/interaction.ts +842 -842
- package/src/engine/drawing/plugin.ts +343 -343
- package/src/engine/indicators/__tests__/__fixtures__/golden/atr.json +38 -38
- package/src/engine/indicators/__tests__/__fixtures__/golden/dema.json +14 -14
- package/src/engine/indicators/__tests__/__fixtures__/golden/hma.json +14 -14
- package/src/engine/indicators/__tests__/__fixtures__/golden/index.ts +55 -55
- package/src/engine/indicators/__tests__/__fixtures__/golden/kama.json +14 -14
- package/src/engine/indicators/__tests__/__fixtures__/golden/tema.json +14 -14
- package/src/engine/indicators/__tests__/__fixtures__/golden/wma.json +40 -40
- package/src/engine/indicators/__tests__/__fixtures__/synthetic.ts +65 -65
- package/src/engine/indicators/__tests__/_propertyAssertions.ts +76 -76
- package/src/engine/indicators/__tests__/atr.test.ts +153 -153
- package/src/engine/indicators/__tests__/calculators.test.ts +614 -614
- package/src/engine/indicators/__tests__/cmf-mfi.test.ts +100 -100
- package/src/engine/indicators/__tests__/dema.test.ts +73 -73
- package/src/engine/indicators/__tests__/donchian.test.ts +70 -70
- package/src/engine/indicators/__tests__/hma.test.ts +73 -73
- package/src/engine/indicators/__tests__/ichimoku.test.ts +105 -105
- package/src/engine/indicators/__tests__/kama.test.ts +80 -80
- package/src/engine/indicators/__tests__/keltner.test.ts +65 -65
- package/src/engine/indicators/__tests__/pivot-fib.test.ts +110 -110
- package/src/engine/indicators/__tests__/roc.test.ts +68 -68
- package/src/engine/indicators/__tests__/sar.test.ts +86 -86
- package/src/engine/indicators/__tests__/scheduler.test.ts +831 -831
- package/src/engine/indicators/__tests__/soa.test.ts +533 -533
- package/src/engine/indicators/__tests__/structure.test.ts +110 -110
- package/src/engine/indicators/__tests__/supertrend.test.ts +65 -65
- package/src/engine/indicators/__tests__/tema.test.ts +68 -68
- package/src/engine/indicators/__tests__/trix.test.ts +70 -70
- package/src/engine/indicators/__tests__/volatility.test.ts +117 -117
- package/src/engine/indicators/__tests__/volume.test.ts +115 -115
- package/src/engine/indicators/__tests__/volumeProfile.test.ts +74 -74
- package/src/engine/indicators/__tests__/vwap.test.ts +69 -69
- package/src/engine/indicators/__tests__/wma.test.ts +112 -112
- package/src/engine/indicators/__tests__/zones.test.ts +95 -95
- package/src/engine/indicators/atrState.ts +27 -27
- package/src/engine/indicators/bollState.ts +51 -51
- package/src/engine/indicators/calculators.ts +2593 -2593
- package/src/engine/indicators/cciState.ts +25 -25
- package/src/engine/indicators/chaikinVolState.ts +32 -32
- package/src/engine/indicators/cmfState.ts +27 -27
- package/src/engine/indicators/demaState.ts +27 -27
- package/src/engine/indicators/donchianState.ts +43 -43
- package/src/engine/indicators/eneState.ts +43 -43
- package/src/engine/indicators/expmaState.ts +43 -43
- package/src/engine/indicators/fastkState.ts +25 -25
- package/src/engine/indicators/fibState.ts +41 -41
- package/src/engine/indicators/hmaState.ts +27 -27
- package/src/engine/indicators/hvState.ts +28 -28
- package/src/engine/indicators/ichimokuState.ts +70 -70
- package/src/engine/indicators/indicator.worker.ts +169 -169
- package/src/engine/indicators/indicatorDefinitionRegistry.ts +62 -62
- package/src/engine/indicators/indicatorMetadata.ts +110 -110
- package/src/engine/indicators/indicatorRegistry.ts +106 -106
- package/src/engine/indicators/indicatorRuntime.ts +1548 -1548
- package/src/engine/indicators/kamaState.ts +34 -34
- package/src/engine/indicators/keltnerState.ts +49 -49
- package/src/engine/indicators/kstState.ts +42 -42
- package/src/engine/indicators/maState.ts +36 -36
- package/src/engine/indicators/macdState.ts +76 -76
- package/src/engine/indicators/mfiState.ts +27 -27
- package/src/engine/indicators/momState.ts +25 -25
- package/src/engine/indicators/obvState.ts +25 -25
- package/src/engine/indicators/parkinsonState.ts +28 -28
- package/src/engine/indicators/pivotState.ts +51 -51
- package/src/engine/indicators/pvtState.ts +25 -25
- package/src/engine/indicators/rocState.ts +27 -27
- package/src/engine/indicators/rsiState.ts +65 -65
- package/src/engine/indicators/sarState.ts +41 -41
- package/src/engine/indicators/scheduler.ts +1205 -1205
- package/src/engine/indicators/soa.ts +352 -352
- package/src/engine/indicators/stateComposer.ts +1262 -1262
- package/src/engine/indicators/stochState.ts +26 -26
- package/src/engine/indicators/structureState.ts +69 -69
- package/src/engine/indicators/supertrendState.ts +37 -37
- package/src/engine/indicators/temaState.ts +27 -27
- package/src/engine/indicators/trixState.ts +35 -35
- package/src/engine/indicators/vmaState.ts +27 -27
- package/src/engine/indicators/volumeProfileState.ts +63 -63
- package/src/engine/indicators/vwapState.ts +29 -29
- package/src/engine/indicators/wmaState.ts +27 -27
- package/src/engine/indicators/wmsrState.ts +25 -25
- package/src/engine/indicators/workerProtocol.ts +613 -613
- package/src/engine/indicators/zonesState.ts +47 -47
- package/src/engine/layout/pane.ts +161 -161
- package/src/engine/marker/registry.ts +265 -265
- package/src/engine/paneRenderer.ts +169 -169
- package/src/engine/renderers/Indicator/atr.ts +237 -237
- package/src/engine/renderers/Indicator/boll.ts +317 -317
- package/src/engine/renderers/Indicator/cci.ts +275 -275
- package/src/engine/renderers/Indicator/chaikinVol.ts +138 -138
- package/src/engine/renderers/Indicator/cmf.ts +137 -137
- package/src/engine/renderers/Indicator/dema.ts +136 -136
- package/src/engine/renderers/Indicator/donchian.ts +137 -137
- package/src/engine/renderers/Indicator/ene.ts +271 -271
- package/src/engine/renderers/Indicator/expma.ts +197 -197
- package/src/engine/renderers/Indicator/fastk.ts +316 -316
- package/src/engine/renderers/Indicator/fib.ts +141 -141
- package/src/engine/renderers/Indicator/hma.ts +136 -136
- package/src/engine/renderers/Indicator/hv.ts +124 -124
- package/src/engine/renderers/Indicator/ichimoku.ts +181 -181
- package/src/engine/renderers/Indicator/index.ts +241 -241
- package/src/engine/renderers/Indicator/indicatorData.ts +650 -650
- package/src/engine/renderers/Indicator/kama.ts +136 -136
- package/src/engine/renderers/Indicator/keltner.ts +137 -137
- package/src/engine/renderers/Indicator/kst.ts +302 -302
- package/src/engine/renderers/Indicator/ma.ts +200 -200
- package/src/engine/renderers/Indicator/macd.ts +477 -477
- package/src/engine/renderers/Indicator/macdLegend.ts +141 -141
- package/src/engine/renderers/Indicator/mainIndicatorLegend.ts +272 -272
- package/src/engine/renderers/Indicator/mfi.ts +142 -142
- package/src/engine/renderers/Indicator/mom.ts +311 -311
- package/src/engine/renderers/Indicator/obv.ts +123 -123
- package/src/engine/renderers/Indicator/parkinson.ts +124 -124
- package/src/engine/renderers/Indicator/pivot.ts +131 -131
- package/src/engine/renderers/Indicator/pvt.ts +123 -123
- package/src/engine/renderers/Indicator/roc.ts +143 -143
- package/src/engine/renderers/Indicator/rsi.ts +390 -390
- package/src/engine/renderers/Indicator/sar.ts +113 -113
- package/src/engine/renderers/Indicator/scale/atr_scale.ts +19 -19
- package/src/engine/renderers/Indicator/scale/cci_scale.ts +19 -19
- package/src/engine/renderers/Indicator/scale/fastk_scale.ts +19 -19
- package/src/engine/renderers/Indicator/scale/indicator_scale.ts +204 -204
- package/src/engine/renderers/Indicator/scale/kst_scale.ts +19 -19
- package/src/engine/renderers/Indicator/scale/macd_scale.ts +22 -22
- package/src/engine/renderers/Indicator/scale/mom_scale.ts +19 -19
- package/src/engine/renderers/Indicator/scale/rsi_scale.ts +19 -19
- package/src/engine/renderers/Indicator/scale/stoch_scale.ts +19 -19
- package/src/engine/renderers/Indicator/scale/volume_scale.ts +26 -26
- package/src/engine/renderers/Indicator/scale/wmsr_scale.ts +19 -19
- package/src/engine/renderers/Indicator/stoch.ts +359 -359
- package/src/engine/renderers/Indicator/structure.ts +126 -126
- package/src/engine/renderers/Indicator/subPaneConfig.ts +265 -265
- package/src/engine/renderers/Indicator/supertrend.ts +115 -115
- package/src/engine/renderers/Indicator/tema.ts +136 -136
- package/src/engine/renderers/Indicator/trix.ts +158 -158
- package/src/engine/renderers/Indicator/vma.ts +124 -124
- package/src/engine/renderers/Indicator/volumeProfile.ts +125 -125
- package/src/engine/renderers/Indicator/vwap.ts +123 -123
- package/src/engine/renderers/Indicator/wma.ts +136 -136
- package/src/engine/renderers/Indicator/wmsr.ts +328 -328
- package/src/engine/renderers/Indicator/zones.ts +104 -104
- package/src/engine/renderers/__tests__/boll.renderer.test.ts +314 -314
- package/src/engine/renderers/__tests__/ene.renderer.test.ts +305 -305
- package/src/engine/renderers/__tests__/expma.renderer.test.ts +279 -279
- package/src/engine/renderers/__tests__/ma.renderer.test.ts +426 -426
- package/src/engine/renderers/__tests__/mainIndicatorLegend.renderer.test.ts +502 -502
- package/src/engine/renderers/__tests__/yAxis.renderer.test.ts +173 -173
- package/src/engine/renderers/candle.ts +459 -459
- package/src/engine/renderers/crosshair.ts +69 -69
- package/src/engine/renderers/customMarkers.ts +162 -162
- package/src/engine/renderers/extremaMarkers.ts +246 -246
- package/src/engine/renderers/gridLines.ts +90 -90
- package/src/engine/renderers/lastPrice.ts +97 -97
- package/src/engine/renderers/paneTitle.ts +136 -136
- package/src/engine/renderers/subVolume.ts +236 -236
- package/src/engine/renderers/timeAxis.ts +121 -121
- package/src/engine/renderers/webgl/candleSurface.ts +955 -955
- package/src/engine/renderers/webgl/sharedWebGLSurface.ts +146 -146
- package/src/engine/renderers/yAxis.ts +105 -105
- package/src/engine/scale/__tests__/logFormula.spec.ts +148 -148
- package/src/engine/scale/logFormula.ts +130 -130
- package/src/engine/scale/price.ts +39 -39
- package/src/engine/scale/priceScale.ts +264 -264
- package/src/engine/subPaneManager.ts +427 -427
- package/src/engine/theme/colors.ts +642 -642
- package/src/engine/theme/fonts.ts +20 -20
- package/src/engine/utils/klineConfig.ts +49 -49
- package/src/engine/utils/tickCount.ts +11 -11
- package/src/engine/utils/tickPosition.ts +214 -214
- package/src/engine/utils/zoom.ts +83 -83
- package/src/engine/viewport/viewport.ts +67 -67
- package/src/index.ts +3 -3
- package/src/plugin/ConfigManager.ts +93 -93
- package/src/plugin/EventBus.ts +77 -77
- package/src/plugin/HookSystem.ts +106 -106
- package/src/plugin/PluginHost.ts +243 -243
- package/src/plugin/PluginRegistry.ts +92 -92
- package/src/plugin/StateStore.ts +73 -73
- package/src/plugin/index.ts +19 -19
- package/src/plugin/rendererPluginManager.ts +368 -368
- package/src/plugin/stateKeys.ts +8 -8
- package/src/plugin/types.ts +526 -526
- package/src/reactivity/index.ts +2 -2
- package/src/reactivity/signal.ts +119 -119
- package/src/semantic/controller.ts +251 -251
- package/src/semantic/drawShape.ts +260 -260
- package/src/semantic/index.ts +28 -28
- package/src/semantic/schema.json +256 -256
- package/src/semantic/types.ts +251 -251
- package/src/semantic/validator.ts +349 -349
- package/src/types/kLine.ts +13 -13
- package/src/types/price.ts +56 -56
- package/src/types/volumePrice.ts +33 -33
- package/src/utils/dateFormat.ts +208 -208
- package/src/utils/kLineDraw/axis.ts +562 -562
- package/src/utils/priceToY.ts +34 -34
- package/src/utils/volumePrice.ts +202 -202
- package/src/version.ts +1 -1
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import type { BaseIndicatorState } from '../../plugin'
|
|
2
|
-
import { createIndicatorStateKey } from '../../plugin/stateKeys'
|
|
3
|
-
|
|
4
|
-
export interface ParkinsonRenderState extends BaseIndicatorState {
|
|
5
|
-
timestamp: number
|
|
6
|
-
series: (number | undefined)[]
|
|
7
|
-
params: { period: number; annualizationFactor: number; showParkinson: boolean }
|
|
8
|
-
valueMin: number
|
|
9
|
-
valueMax: number
|
|
10
|
-
visibleMin: number
|
|
11
|
-
visibleMax: number
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export const createParkinsonStateKey = (paneId: string) =>
|
|
15
|
-
createIndicatorStateKey('parkinson', paneId)
|
|
16
|
-
|
|
17
|
-
export const DEFAULT_PARKINSON_PERIOD = 20
|
|
18
|
-
export const DEFAULT_PARKINSON_ANNUALIZATION = 252
|
|
19
|
-
|
|
20
|
-
export const EMPTY_PARKINSON_STATE: ParkinsonRenderState = {
|
|
21
|
-
timestamp: 0,
|
|
22
|
-
series: [],
|
|
23
|
-
params: { period: DEFAULT_PARKINSON_PERIOD, annualizationFactor: DEFAULT_PARKINSON_ANNUALIZATION, showParkinson: true },
|
|
24
|
-
valueMin: 0,
|
|
25
|
-
valueMax: 1,
|
|
26
|
-
visibleMin: Infinity,
|
|
27
|
-
visibleMax: -Infinity,
|
|
28
|
-
}
|
|
1
|
+
import type { BaseIndicatorState } from '../../plugin'
|
|
2
|
+
import { createIndicatorStateKey } from '../../plugin/stateKeys'
|
|
3
|
+
|
|
4
|
+
export interface ParkinsonRenderState extends BaseIndicatorState {
|
|
5
|
+
timestamp: number
|
|
6
|
+
series: (number | undefined)[]
|
|
7
|
+
params: { period: number; annualizationFactor: number; showParkinson: boolean }
|
|
8
|
+
valueMin: number
|
|
9
|
+
valueMax: number
|
|
10
|
+
visibleMin: number
|
|
11
|
+
visibleMax: number
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const createParkinsonStateKey = (paneId: string) =>
|
|
15
|
+
createIndicatorStateKey('parkinson', paneId)
|
|
16
|
+
|
|
17
|
+
export const DEFAULT_PARKINSON_PERIOD = 20
|
|
18
|
+
export const DEFAULT_PARKINSON_ANNUALIZATION = 252
|
|
19
|
+
|
|
20
|
+
export const EMPTY_PARKINSON_STATE: ParkinsonRenderState = {
|
|
21
|
+
timestamp: 0,
|
|
22
|
+
series: [],
|
|
23
|
+
params: { period: DEFAULT_PARKINSON_PERIOD, annualizationFactor: DEFAULT_PARKINSON_ANNUALIZATION, showParkinson: true },
|
|
24
|
+
valueMin: 0,
|
|
25
|
+
valueMax: 1,
|
|
26
|
+
visibleMin: Infinity,
|
|
27
|
+
visibleMax: -Infinity,
|
|
28
|
+
}
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
import type { BaseIndicatorState } from '../../plugin'
|
|
2
|
-
import { createIndicatorStateKey } from '../../plugin/stateKeys'
|
|
3
|
-
|
|
4
|
-
export interface PivotPoint {
|
|
5
|
-
pp: number
|
|
6
|
-
r1: number
|
|
7
|
-
r2: number
|
|
8
|
-
r3: number
|
|
9
|
-
s1: number
|
|
10
|
-
s2: number
|
|
11
|
-
s3: number
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface PivotRenderState extends BaseIndicatorState {
|
|
15
|
-
timestamp: number
|
|
16
|
-
series: (PivotPoint | undefined)[]
|
|
17
|
-
params: {
|
|
18
|
-
showPP: boolean
|
|
19
|
-
showR1: boolean
|
|
20
|
-
showR2: boolean
|
|
21
|
-
showR3: boolean
|
|
22
|
-
showS1: boolean
|
|
23
|
-
showS2: boolean
|
|
24
|
-
showS3: boolean
|
|
25
|
-
}
|
|
26
|
-
valueMin: number
|
|
27
|
-
valueMax: number
|
|
28
|
-
visibleMin: number
|
|
29
|
-
visibleMax: number
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export const createPivotStateKey = (paneId: string) =>
|
|
33
|
-
createIndicatorStateKey('pivot', paneId)
|
|
34
|
-
|
|
35
|
-
export const EMPTY_PIVOT_STATE: PivotRenderState = {
|
|
36
|
-
timestamp: 0,
|
|
37
|
-
series: [],
|
|
38
|
-
params: {
|
|
39
|
-
showPP: true,
|
|
40
|
-
showR1: true,
|
|
41
|
-
showR2: true,
|
|
42
|
-
showR3: false,
|
|
43
|
-
showS1: true,
|
|
44
|
-
showS2: true,
|
|
45
|
-
showS3: false,
|
|
46
|
-
},
|
|
47
|
-
valueMin: 0,
|
|
48
|
-
valueMax: 1,
|
|
49
|
-
visibleMin: Infinity,
|
|
50
|
-
visibleMax: -Infinity,
|
|
51
|
-
}
|
|
1
|
+
import type { BaseIndicatorState } from '../../plugin'
|
|
2
|
+
import { createIndicatorStateKey } from '../../plugin/stateKeys'
|
|
3
|
+
|
|
4
|
+
export interface PivotPoint {
|
|
5
|
+
pp: number
|
|
6
|
+
r1: number
|
|
7
|
+
r2: number
|
|
8
|
+
r3: number
|
|
9
|
+
s1: number
|
|
10
|
+
s2: number
|
|
11
|
+
s3: number
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface PivotRenderState extends BaseIndicatorState {
|
|
15
|
+
timestamp: number
|
|
16
|
+
series: (PivotPoint | undefined)[]
|
|
17
|
+
params: {
|
|
18
|
+
showPP: boolean
|
|
19
|
+
showR1: boolean
|
|
20
|
+
showR2: boolean
|
|
21
|
+
showR3: boolean
|
|
22
|
+
showS1: boolean
|
|
23
|
+
showS2: boolean
|
|
24
|
+
showS3: boolean
|
|
25
|
+
}
|
|
26
|
+
valueMin: number
|
|
27
|
+
valueMax: number
|
|
28
|
+
visibleMin: number
|
|
29
|
+
visibleMax: number
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export const createPivotStateKey = (paneId: string) =>
|
|
33
|
+
createIndicatorStateKey('pivot', paneId)
|
|
34
|
+
|
|
35
|
+
export const EMPTY_PIVOT_STATE: PivotRenderState = {
|
|
36
|
+
timestamp: 0,
|
|
37
|
+
series: [],
|
|
38
|
+
params: {
|
|
39
|
+
showPP: true,
|
|
40
|
+
showR1: true,
|
|
41
|
+
showR2: true,
|
|
42
|
+
showR3: false,
|
|
43
|
+
showS1: true,
|
|
44
|
+
showS2: true,
|
|
45
|
+
showS3: false,
|
|
46
|
+
},
|
|
47
|
+
valueMin: 0,
|
|
48
|
+
valueMax: 1,
|
|
49
|
+
visibleMin: Infinity,
|
|
50
|
+
visibleMax: -Infinity,
|
|
51
|
+
}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import type { BaseIndicatorState } from '../../plugin'
|
|
2
|
-
import { createIndicatorStateKey } from '../../plugin/stateKeys'
|
|
3
|
-
|
|
4
|
-
export interface PVTRenderState extends BaseIndicatorState {
|
|
5
|
-
timestamp: number
|
|
6
|
-
series: (number | undefined)[]
|
|
7
|
-
params: { showPVT: boolean }
|
|
8
|
-
valueMin: number
|
|
9
|
-
valueMax: number
|
|
10
|
-
visibleMin: number
|
|
11
|
-
visibleMax: number
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export const createPVTStateKey = (paneId: string) =>
|
|
15
|
-
createIndicatorStateKey('pvt', paneId)
|
|
16
|
-
|
|
17
|
-
export const EMPTY_PVT_STATE: PVTRenderState = {
|
|
18
|
-
timestamp: 0,
|
|
19
|
-
series: [],
|
|
20
|
-
params: { showPVT: true },
|
|
21
|
-
valueMin: 0,
|
|
22
|
-
valueMax: 1,
|
|
23
|
-
visibleMin: Infinity,
|
|
24
|
-
visibleMax: -Infinity,
|
|
25
|
-
}
|
|
1
|
+
import type { BaseIndicatorState } from '../../plugin'
|
|
2
|
+
import { createIndicatorStateKey } from '../../plugin/stateKeys'
|
|
3
|
+
|
|
4
|
+
export interface PVTRenderState extends BaseIndicatorState {
|
|
5
|
+
timestamp: number
|
|
6
|
+
series: (number | undefined)[]
|
|
7
|
+
params: { showPVT: boolean }
|
|
8
|
+
valueMin: number
|
|
9
|
+
valueMax: number
|
|
10
|
+
visibleMin: number
|
|
11
|
+
visibleMax: number
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const createPVTStateKey = (paneId: string) =>
|
|
15
|
+
createIndicatorStateKey('pvt', paneId)
|
|
16
|
+
|
|
17
|
+
export const EMPTY_PVT_STATE: PVTRenderState = {
|
|
18
|
+
timestamp: 0,
|
|
19
|
+
series: [],
|
|
20
|
+
params: { showPVT: true },
|
|
21
|
+
valueMin: 0,
|
|
22
|
+
valueMax: 1,
|
|
23
|
+
visibleMin: Infinity,
|
|
24
|
+
visibleMax: -Infinity,
|
|
25
|
+
}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import type { BaseIndicatorState } from '../../plugin'
|
|
2
|
-
import { createIndicatorStateKey } from '../../plugin/stateKeys'
|
|
3
|
-
|
|
4
|
-
export interface ROCRenderState extends BaseIndicatorState {
|
|
5
|
-
timestamp: number
|
|
6
|
-
series: (number | undefined)[]
|
|
7
|
-
params: { period: number; showROC: boolean }
|
|
8
|
-
valueMin: number
|
|
9
|
-
valueMax: number
|
|
10
|
-
visibleMin: number
|
|
11
|
-
visibleMax: number
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export const createROCStateKey = (paneId: string) =>
|
|
15
|
-
createIndicatorStateKey('roc', paneId)
|
|
16
|
-
|
|
17
|
-
export const DEFAULT_ROC_PERIOD = 12
|
|
18
|
-
|
|
19
|
-
export const EMPTY_ROC_STATE: ROCRenderState = {
|
|
20
|
-
timestamp: 0,
|
|
21
|
-
series: [],
|
|
22
|
-
params: { period: DEFAULT_ROC_PERIOD, showROC: true },
|
|
23
|
-
valueMin: -10,
|
|
24
|
-
valueMax: 10,
|
|
25
|
-
visibleMin: Infinity,
|
|
26
|
-
visibleMax: -Infinity,
|
|
27
|
-
}
|
|
1
|
+
import type { BaseIndicatorState } from '../../plugin'
|
|
2
|
+
import { createIndicatorStateKey } from '../../plugin/stateKeys'
|
|
3
|
+
|
|
4
|
+
export interface ROCRenderState extends BaseIndicatorState {
|
|
5
|
+
timestamp: number
|
|
6
|
+
series: (number | undefined)[]
|
|
7
|
+
params: { period: number; showROC: boolean }
|
|
8
|
+
valueMin: number
|
|
9
|
+
valueMax: number
|
|
10
|
+
visibleMin: number
|
|
11
|
+
visibleMax: number
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const createROCStateKey = (paneId: string) =>
|
|
15
|
+
createIndicatorStateKey('roc', paneId)
|
|
16
|
+
|
|
17
|
+
export const DEFAULT_ROC_PERIOD = 12
|
|
18
|
+
|
|
19
|
+
export const EMPTY_ROC_STATE: ROCRenderState = {
|
|
20
|
+
timestamp: 0,
|
|
21
|
+
series: [],
|
|
22
|
+
params: { period: DEFAULT_ROC_PERIOD, showROC: true },
|
|
23
|
+
valueMin: -10,
|
|
24
|
+
valueMax: 10,
|
|
25
|
+
visibleMin: Infinity,
|
|
26
|
+
visibleMax: -Infinity,
|
|
27
|
+
}
|
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
import type { BaseIndicatorState } from '../../plugin'
|
|
2
|
-
import { createIndicatorStateKey } from '../../plugin/stateKeys'
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* RSI 渲染器状态(共享给渲染器、图例和 scale 渲染器)
|
|
6
|
-
* 包含全量 RSI 数组、计算参数、固定 Y 轴范围以及视口极值
|
|
7
|
-
*/
|
|
8
|
-
export interface RSIRenderState extends BaseIndicatorState {
|
|
9
|
-
timestamp: number
|
|
10
|
-
/** 各周期 RSI 数组(稀疏:前 period+1 个为 undefined) */
|
|
11
|
-
series: Record<number, (number | undefined)[]>
|
|
12
|
-
/** 当前启用的周期列表 */
|
|
13
|
-
enabledPeriods: number[]
|
|
14
|
-
/** 计算和渲染参数 */
|
|
15
|
-
params: {
|
|
16
|
-
period1: number
|
|
17
|
-
period2: number
|
|
18
|
-
period3: number
|
|
19
|
-
showRSI1: boolean
|
|
20
|
-
showRSI2: boolean
|
|
21
|
-
showRSI3: boolean
|
|
22
|
-
}
|
|
23
|
-
/** 固定 Y 轴最小值(始终为 0) */
|
|
24
|
-
valueMin: number
|
|
25
|
-
/** 固定 Y 轴最大值(始终为 100) */
|
|
26
|
-
valueMax: number
|
|
27
|
-
/** 视口内所有 RSI 线的最小值 */
|
|
28
|
-
visibleMin: number
|
|
29
|
-
/** 视口内所有 RSI 线的最大值 */
|
|
30
|
-
visibleMax: number
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* RSI 状态的基础 StateStore 键名
|
|
35
|
-
*/
|
|
36
|
-
export const RSI_STATE_KEY = 'indicator:rsi'
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* 创建 RSI 状态的 StateStore 键名
|
|
40
|
-
* 格式:indicator:rsi:{paneId}
|
|
41
|
-
*/
|
|
42
|
-
export const createRSIStateKey = (paneId: string) =>
|
|
43
|
-
createIndicatorStateKey('rsi', paneId)
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* 空数据占位状态
|
|
47
|
-
* 消费者应检查 visibleMin > visibleMax 判断"无有效数据"
|
|
48
|
-
*/
|
|
49
|
-
export const EMPTY_RSI_STATE: RSIRenderState = {
|
|
50
|
-
timestamp: 0,
|
|
51
|
-
series: {},
|
|
52
|
-
enabledPeriods: [],
|
|
53
|
-
params: {
|
|
54
|
-
period1: 6,
|
|
55
|
-
period2: 12,
|
|
56
|
-
period3: 24,
|
|
57
|
-
showRSI1: true,
|
|
58
|
-
showRSI2: true,
|
|
59
|
-
showRSI3: true,
|
|
60
|
-
},
|
|
61
|
-
valueMin: 0,
|
|
62
|
-
valueMax: 100,
|
|
63
|
-
visibleMin: Infinity,
|
|
64
|
-
visibleMax: -Infinity,
|
|
65
|
-
}
|
|
1
|
+
import type { BaseIndicatorState } from '../../plugin'
|
|
2
|
+
import { createIndicatorStateKey } from '../../plugin/stateKeys'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* RSI 渲染器状态(共享给渲染器、图例和 scale 渲染器)
|
|
6
|
+
* 包含全量 RSI 数组、计算参数、固定 Y 轴范围以及视口极值
|
|
7
|
+
*/
|
|
8
|
+
export interface RSIRenderState extends BaseIndicatorState {
|
|
9
|
+
timestamp: number
|
|
10
|
+
/** 各周期 RSI 数组(稀疏:前 period+1 个为 undefined) */
|
|
11
|
+
series: Record<number, (number | undefined)[]>
|
|
12
|
+
/** 当前启用的周期列表 */
|
|
13
|
+
enabledPeriods: number[]
|
|
14
|
+
/** 计算和渲染参数 */
|
|
15
|
+
params: {
|
|
16
|
+
period1: number
|
|
17
|
+
period2: number
|
|
18
|
+
period3: number
|
|
19
|
+
showRSI1: boolean
|
|
20
|
+
showRSI2: boolean
|
|
21
|
+
showRSI3: boolean
|
|
22
|
+
}
|
|
23
|
+
/** 固定 Y 轴最小值(始终为 0) */
|
|
24
|
+
valueMin: number
|
|
25
|
+
/** 固定 Y 轴最大值(始终为 100) */
|
|
26
|
+
valueMax: number
|
|
27
|
+
/** 视口内所有 RSI 线的最小值 */
|
|
28
|
+
visibleMin: number
|
|
29
|
+
/** 视口内所有 RSI 线的最大值 */
|
|
30
|
+
visibleMax: number
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* RSI 状态的基础 StateStore 键名
|
|
35
|
+
*/
|
|
36
|
+
export const RSI_STATE_KEY = 'indicator:rsi'
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* 创建 RSI 状态的 StateStore 键名
|
|
40
|
+
* 格式:indicator:rsi:{paneId}
|
|
41
|
+
*/
|
|
42
|
+
export const createRSIStateKey = (paneId: string) =>
|
|
43
|
+
createIndicatorStateKey('rsi', paneId)
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* 空数据占位状态
|
|
47
|
+
* 消费者应检查 visibleMin > visibleMax 判断"无有效数据"
|
|
48
|
+
*/
|
|
49
|
+
export const EMPTY_RSI_STATE: RSIRenderState = {
|
|
50
|
+
timestamp: 0,
|
|
51
|
+
series: {},
|
|
52
|
+
enabledPeriods: [],
|
|
53
|
+
params: {
|
|
54
|
+
period1: 6,
|
|
55
|
+
period2: 12,
|
|
56
|
+
period3: 24,
|
|
57
|
+
showRSI1: true,
|
|
58
|
+
showRSI2: true,
|
|
59
|
+
showRSI3: true,
|
|
60
|
+
},
|
|
61
|
+
valueMin: 0,
|
|
62
|
+
valueMax: 100,
|
|
63
|
+
visibleMin: Infinity,
|
|
64
|
+
visibleMax: -Infinity,
|
|
65
|
+
}
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
import type { BaseIndicatorState } from '../../plugin'
|
|
2
|
-
import { createIndicatorStateKey } from '../../plugin/stateKeys'
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* SAR 点:value 是 SAR 价格,trend = 'up' 表示 SAR 在 K 线下方(多头止损)
|
|
6
|
-
* 'down' 表示 SAR 在 K 线上方(空头止损)。
|
|
7
|
-
*/
|
|
8
|
-
export interface SARPoint {
|
|
9
|
-
value: number
|
|
10
|
-
trend: 'up' | 'down'
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export interface SARRenderState extends BaseIndicatorState {
|
|
14
|
-
timestamp: number
|
|
15
|
-
series: (SARPoint | undefined)[]
|
|
16
|
-
params: { step: number; maxStep: number; showSAR: boolean }
|
|
17
|
-
valueMin: number
|
|
18
|
-
valueMax: number
|
|
19
|
-
visibleMin: number
|
|
20
|
-
visibleMax: number
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export const createSARStateKey = (paneId: string) =>
|
|
24
|
-
createIndicatorStateKey('sar', paneId)
|
|
25
|
-
|
|
26
|
-
export const DEFAULT_SAR_STEP = 0.02
|
|
27
|
-
export const DEFAULT_SAR_MAX_STEP = 0.2
|
|
28
|
-
|
|
29
|
-
export const EMPTY_SAR_STATE: SARRenderState = {
|
|
30
|
-
timestamp: 0,
|
|
31
|
-
series: [],
|
|
32
|
-
params: {
|
|
33
|
-
step: DEFAULT_SAR_STEP,
|
|
34
|
-
maxStep: DEFAULT_SAR_MAX_STEP,
|
|
35
|
-
showSAR: true,
|
|
36
|
-
},
|
|
37
|
-
valueMin: 0,
|
|
38
|
-
valueMax: 1,
|
|
39
|
-
visibleMin: Infinity,
|
|
40
|
-
visibleMax: -Infinity,
|
|
41
|
-
}
|
|
1
|
+
import type { BaseIndicatorState } from '../../plugin'
|
|
2
|
+
import { createIndicatorStateKey } from '../../plugin/stateKeys'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* SAR 点:value 是 SAR 价格,trend = 'up' 表示 SAR 在 K 线下方(多头止损)
|
|
6
|
+
* 'down' 表示 SAR 在 K 线上方(空头止损)。
|
|
7
|
+
*/
|
|
8
|
+
export interface SARPoint {
|
|
9
|
+
value: number
|
|
10
|
+
trend: 'up' | 'down'
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface SARRenderState extends BaseIndicatorState {
|
|
14
|
+
timestamp: number
|
|
15
|
+
series: (SARPoint | undefined)[]
|
|
16
|
+
params: { step: number; maxStep: number; showSAR: boolean }
|
|
17
|
+
valueMin: number
|
|
18
|
+
valueMax: number
|
|
19
|
+
visibleMin: number
|
|
20
|
+
visibleMax: number
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const createSARStateKey = (paneId: string) =>
|
|
24
|
+
createIndicatorStateKey('sar', paneId)
|
|
25
|
+
|
|
26
|
+
export const DEFAULT_SAR_STEP = 0.02
|
|
27
|
+
export const DEFAULT_SAR_MAX_STEP = 0.2
|
|
28
|
+
|
|
29
|
+
export const EMPTY_SAR_STATE: SARRenderState = {
|
|
30
|
+
timestamp: 0,
|
|
31
|
+
series: [],
|
|
32
|
+
params: {
|
|
33
|
+
step: DEFAULT_SAR_STEP,
|
|
34
|
+
maxStep: DEFAULT_SAR_MAX_STEP,
|
|
35
|
+
showSAR: true,
|
|
36
|
+
},
|
|
37
|
+
valueMin: 0,
|
|
38
|
+
valueMax: 1,
|
|
39
|
+
visibleMin: Infinity,
|
|
40
|
+
visibleMax: -Infinity,
|
|
41
|
+
}
|