@363045841yyt/klinechart-core 0.7.12-alpha.1 → 0.7.12
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/engine/indicators/indicator.worker.js +32 -4
- package/dist/engine/indicators/indicator.worker.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.map +1 -1
- package/dist/engine/indicators/indicatorMetadata.d.ts +27 -1
- 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 +12 -117
- package/dist/engine/indicators/indicatorRuntime.d.ts.map +1 -1
- package/dist/engine/indicators/indicatorRuntime.js +123 -1308
- package/dist/engine/indicators/indicatorRuntime.js.map +1 -1
- package/dist/engine/indicators/scheduler.d.ts +3 -142
- package/dist/engine/indicators/scheduler.d.ts.map +1 -1
- package/dist/engine/indicators/scheduler.js +61 -433
- package/dist/engine/indicators/scheduler.js.map +1 -1
- package/dist/engine/indicators/stateComposer.d.ts.map +1 -1
- package/dist/engine/indicators/stateComposer.js +15 -47
- package/dist/engine/indicators/stateComposer.js.map +1 -1
- package/dist/engine/indicators/workerProtocol.d.ts +12 -36
- package/dist/engine/indicators/workerProtocol.d.ts.map +1 -1
- package/dist/engine/indicators/workerProtocol.js.map +1 -1
- package/dist/engine/renderers/Indicator/atr.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/atr.js +9 -3
- package/dist/engine/renderers/Indicator/atr.js.map +1 -1
- package/dist/engine/renderers/Indicator/boll.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/boll.js +4 -2
- package/dist/engine/renderers/Indicator/boll.js.map +1 -1
- package/dist/engine/renderers/Indicator/cci.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/cci.js +9 -3
- package/dist/engine/renderers/Indicator/cci.js.map +1 -1
- package/dist/engine/renderers/Indicator/chaikinVol.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/chaikinVol.js +8 -2
- package/dist/engine/renderers/Indicator/chaikinVol.js.map +1 -1
- package/dist/engine/renderers/Indicator/cmf.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/cmf.js +8 -2
- package/dist/engine/renderers/Indicator/cmf.js.map +1 -1
- package/dist/engine/renderers/Indicator/dema.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/dema.js +3 -2
- package/dist/engine/renderers/Indicator/dema.js.map +1 -1
- package/dist/engine/renderers/Indicator/donchian.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/donchian.js +3 -2
- package/dist/engine/renderers/Indicator/donchian.js.map +1 -1
- package/dist/engine/renderers/Indicator/ene.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/ene.js +5 -3
- package/dist/engine/renderers/Indicator/ene.js.map +1 -1
- package/dist/engine/renderers/Indicator/expma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/expma.js +3 -1
- package/dist/engine/renderers/Indicator/expma.js.map +1 -1
- package/dist/engine/renderers/Indicator/fastk.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/fastk.js +9 -3
- package/dist/engine/renderers/Indicator/fastk.js.map +1 -1
- package/dist/engine/renderers/Indicator/fib.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/fib.js +3 -2
- package/dist/engine/renderers/Indicator/fib.js.map +1 -1
- package/dist/engine/renderers/Indicator/hma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/hma.js +3 -2
- package/dist/engine/renderers/Indicator/hma.js.map +1 -1
- package/dist/engine/renderers/Indicator/hv.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/hv.js +3 -2
- package/dist/engine/renderers/Indicator/hv.js.map +1 -1
- package/dist/engine/renderers/Indicator/ichimoku.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/ichimoku.js +3 -2
- package/dist/engine/renderers/Indicator/ichimoku.js.map +1 -1
- package/dist/engine/renderers/Indicator/kama.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/kama.js +3 -2
- package/dist/engine/renderers/Indicator/kama.js.map +1 -1
- package/dist/engine/renderers/Indicator/keltner.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/keltner.js +3 -2
- package/dist/engine/renderers/Indicator/keltner.js.map +1 -1
- package/dist/engine/renderers/Indicator/kst.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/kst.js +4 -3
- package/dist/engine/renderers/Indicator/kst.js.map +1 -1
- package/dist/engine/renderers/Indicator/ma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/ma.js +6 -1
- package/dist/engine/renderers/Indicator/ma.js.map +1 -1
- package/dist/engine/renderers/Indicator/macd.js +2 -2
- package/dist/engine/renderers/Indicator/macd.js.map +1 -1
- package/dist/engine/renderers/Indicator/mfi.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/mfi.js +8 -2
- package/dist/engine/renderers/Indicator/mfi.js.map +1 -1
- package/dist/engine/renderers/Indicator/mom.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/mom.js +9 -3
- package/dist/engine/renderers/Indicator/mom.js.map +1 -1
- package/dist/engine/renderers/Indicator/obv.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/obv.js +8 -2
- package/dist/engine/renderers/Indicator/obv.js.map +1 -1
- package/dist/engine/renderers/Indicator/parkinson.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/parkinson.js +3 -2
- package/dist/engine/renderers/Indicator/parkinson.js.map +1 -1
- package/dist/engine/renderers/Indicator/pivot.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/pivot.js +3 -2
- package/dist/engine/renderers/Indicator/pivot.js.map +1 -1
- package/dist/engine/renderers/Indicator/pvt.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/pvt.js +8 -2
- package/dist/engine/renderers/Indicator/pvt.js.map +1 -1
- package/dist/engine/renderers/Indicator/roc.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/roc.js +8 -2
- package/dist/engine/renderers/Indicator/roc.js.map +1 -1
- package/dist/engine/renderers/Indicator/rsi.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/rsi.js +7 -3
- package/dist/engine/renderers/Indicator/rsi.js.map +1 -1
- package/dist/engine/renderers/Indicator/sar.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/sar.js +3 -2
- package/dist/engine/renderers/Indicator/sar.js.map +1 -1
- package/dist/engine/renderers/Indicator/stoch.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/stoch.js +4 -3
- package/dist/engine/renderers/Indicator/stoch.js.map +1 -1
- package/dist/engine/renderers/Indicator/structure.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/structure.js +3 -2
- package/dist/engine/renderers/Indicator/structure.js.map +1 -1
- package/dist/engine/renderers/Indicator/supertrend.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/supertrend.js +3 -2
- package/dist/engine/renderers/Indicator/supertrend.js.map +1 -1
- package/dist/engine/renderers/Indicator/tema.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/tema.js +3 -2
- package/dist/engine/renderers/Indicator/tema.js.map +1 -1
- package/dist/engine/renderers/Indicator/trix.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/trix.js +3 -2
- package/dist/engine/renderers/Indicator/trix.js.map +1 -1
- package/dist/engine/renderers/Indicator/vma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/vma.js +8 -2
- package/dist/engine/renderers/Indicator/vma.js.map +1 -1
- package/dist/engine/renderers/Indicator/volumeProfile.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/volumeProfile.js +3 -2
- package/dist/engine/renderers/Indicator/volumeProfile.js.map +1 -1
- package/dist/engine/renderers/Indicator/vwap.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/vwap.js +8 -2
- package/dist/engine/renderers/Indicator/vwap.js.map +1 -1
- package/dist/engine/renderers/Indicator/wma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/wma.js +3 -2
- package/dist/engine/renderers/Indicator/wma.js.map +1 -1
- package/dist/engine/renderers/Indicator/wmsr.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/wmsr.js +9 -3
- package/dist/engine/renderers/Indicator/wmsr.js.map +1 -1
- package/dist/engine/renderers/Indicator/zones.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/zones.js +3 -2
- package/dist/engine/renderers/Indicator/zones.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 +1 -1
- package/src/engine/indicators/__tests__/registerBuiltins.test.ts +14 -22
- package/src/engine/indicators/__tests__/scheduler.test.ts +14 -14
- package/src/engine/indicators/__tests__/stateComposer.test.ts +7 -4
- package/src/engine/indicators/indicator.worker.ts +36 -4
- package/src/engine/indicators/indicatorDefinitionRegistry.ts +3 -1
- package/src/engine/indicators/indicatorMetadata.ts +29 -1
- package/src/engine/indicators/indicatorRuntime.ts +120 -1447
- package/src/engine/indicators/scheduler.ts +59 -487
- package/src/engine/indicators/stateComposer.ts +16 -60
- package/src/engine/indicators/workerProtocol.ts +14 -36
- package/src/engine/renderers/Indicator/atr.ts +9 -3
- package/src/engine/renderers/Indicator/boll.ts +4 -2
- package/src/engine/renderers/Indicator/cci.ts +9 -3
- package/src/engine/renderers/Indicator/chaikinVol.ts +8 -2
- package/src/engine/renderers/Indicator/cmf.ts +8 -2
- package/src/engine/renderers/Indicator/dema.ts +3 -2
- package/src/engine/renderers/Indicator/donchian.ts +3 -2
- package/src/engine/renderers/Indicator/ene.ts +5 -3
- package/src/engine/renderers/Indicator/expma.ts +3 -1
- package/src/engine/renderers/Indicator/fastk.ts +9 -3
- package/src/engine/renderers/Indicator/fib.ts +3 -2
- package/src/engine/renderers/Indicator/hma.ts +3 -2
- package/src/engine/renderers/Indicator/hv.ts +3 -2
- package/src/engine/renderers/Indicator/ichimoku.ts +3 -2
- package/src/engine/renderers/Indicator/kama.ts +3 -2
- package/src/engine/renderers/Indicator/keltner.ts +3 -2
- package/src/engine/renderers/Indicator/kst.ts +4 -3
- package/src/engine/renderers/Indicator/ma.ts +3 -2
- package/src/engine/renderers/Indicator/macd.ts +9 -9
- package/src/engine/renderers/Indicator/mfi.ts +8 -2
- package/src/engine/renderers/Indicator/mom.ts +9 -3
- package/src/engine/renderers/Indicator/obv.ts +8 -2
- package/src/engine/renderers/Indicator/parkinson.ts +3 -2
- package/src/engine/renderers/Indicator/pivot.ts +3 -2
- package/src/engine/renderers/Indicator/pvt.ts +8 -2
- package/src/engine/renderers/Indicator/roc.ts +8 -2
- package/src/engine/renderers/Indicator/rsi.ts +4 -3
- package/src/engine/renderers/Indicator/sar.ts +3 -2
- package/src/engine/renderers/Indicator/stoch.ts +4 -3
- package/src/engine/renderers/Indicator/structure.ts +3 -2
- package/src/engine/renderers/Indicator/supertrend.ts +3 -2
- package/src/engine/renderers/Indicator/tema.ts +3 -2
- package/src/engine/renderers/Indicator/trix.ts +3 -2
- package/src/engine/renderers/Indicator/vma.ts +8 -2
- package/src/engine/renderers/Indicator/volumeProfile.ts +3 -2
- package/src/engine/renderers/Indicator/vwap.ts +8 -2
- package/src/engine/renderers/Indicator/wma.ts +3 -2
- package/src/engine/renderers/Indicator/wmsr.ts +9 -3
- package/src/engine/renderers/Indicator/zones.ts +3 -2
- package/src/version.ts +1 -1
|
@@ -7,6 +7,7 @@ import { createNonNegativeSparseVisibleStateComposer } from '../../indicators/vi
|
|
|
7
7
|
import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
8
8
|
import { resolveStateKey } from '../../indicators/indicatorMetadata'
|
|
9
9
|
import type { IndicatorScheduler, VMASchedulerConfig } from '../../indicators/scheduler'
|
|
10
|
+
import { calcVMAData } from '../../indicators/calculators'
|
|
10
11
|
|
|
11
12
|
const VMA_COLOR = '#0ea5e9'
|
|
12
13
|
|
|
@@ -116,15 +117,20 @@ export function createVMARendererPlugin(options: { paneId?: string } = {}): Rend
|
|
|
116
117
|
category: 'volume',
|
|
117
118
|
stateKey: createVMAStateKey,
|
|
118
119
|
defaultPaneId: 'sub_VMA',
|
|
119
|
-
paneIdField: 'vmaPaneId',
|
|
120
120
|
scale: { indicatorKey: 'vma', label: 'VMA', decimals: 0 },
|
|
121
121
|
updateConfig: (scheduler, params, paneId) => {
|
|
122
|
-
(scheduler as IndicatorScheduler).
|
|
122
|
+
(scheduler as IndicatorScheduler).updateIndicatorConfig('vma', params, paneId)
|
|
123
123
|
},
|
|
124
124
|
visibleState: { compose: createNonNegativeSparseVisibleStateComposer('vma', EMPTY_VMA_STATE) },
|
|
125
125
|
applyResult: (host, state, paneId) => {
|
|
126
126
|
host.setSharedState(createVMAStateKey(paneId), state as any, 'indicator_scheduler')
|
|
127
127
|
},
|
|
128
|
+
runtime: {
|
|
129
|
+
configKey: 'vma',
|
|
130
|
+
defaultConfig: { period: 5, showVMA: true },
|
|
131
|
+
computeKey: 'calcVMAData',
|
|
132
|
+
compute: (data, c) => calcVMAData(data, c.period),
|
|
133
|
+
},
|
|
128
134
|
})
|
|
129
135
|
class VMAIndicatorDefinition {
|
|
130
136
|
static rendererFactory = createVMARendererPlugin
|
|
@@ -6,6 +6,7 @@ import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
|
6
6
|
import { createVolumeProfileVisibleStateComposer } from '../../indicators/visibleStateComposers'
|
|
7
7
|
import { resolveStateKey } from '../../indicators/indicatorMetadata'
|
|
8
8
|
import type { IndicatorScheduler, VolumeProfileSchedulerConfig } from '../../indicators/scheduler'
|
|
9
|
+
import { calcVolumeProfileData } from '../../indicators/calculators'
|
|
9
10
|
|
|
10
11
|
const BAR_FILL = 'rgba(99, 102, 241, 0.35)'
|
|
11
12
|
const POC_COLOR = '#f59e0b'
|
|
@@ -116,15 +117,15 @@ export function createVolumeProfileRendererPlugin(options: { paneId?: string } =
|
|
|
116
117
|
category: 'volume',
|
|
117
118
|
stateKey: createVolumeProfileStateKey,
|
|
118
119
|
defaultPaneId: 'sub_VolumeProfile',
|
|
119
|
-
paneIdField: 'volumeProfilePaneId',
|
|
120
120
|
scale: { indicatorKey: 'volumeProfile', label: 'VP', decimals: 0 },
|
|
121
121
|
visibleState: { compose: createVolumeProfileVisibleStateComposer('volumeProfile', EMPTY_VOLUME_PROFILE_STATE) },
|
|
122
122
|
updateConfig: (scheduler, params, paneId) => {
|
|
123
|
-
(scheduler as IndicatorScheduler).
|
|
123
|
+
(scheduler as IndicatorScheduler).updateIndicatorConfig('volumeProfile', params, paneId)
|
|
124
124
|
},
|
|
125
125
|
applyResult: (host, state, paneId) => {
|
|
126
126
|
host.setSharedState(createVolumeProfileStateKey(paneId), state as any, 'indicator_scheduler')
|
|
127
127
|
},
|
|
128
|
+
runtime: { configKey:'volumeProfile', defaultConfig:{bins:24,lookback:100,valueAreaPercent:70,showPOC:true,showValueArea:true}, computeKey:'calcVolumeProfileData', compute:(data,c)=>calcVolumeProfileData(data,c.bins,c.lookback,c.valueAreaPercent) },
|
|
128
129
|
})
|
|
129
130
|
class VolumeProfileIndicatorDefinition {
|
|
130
131
|
static rendererFactory = createVolumeProfileRendererPlugin
|
|
@@ -6,6 +6,7 @@ import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
|
6
6
|
import { resolveStateKey } from '../../indicators/indicatorMetadata'
|
|
7
7
|
import { createSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
|
|
8
8
|
import type { IndicatorScheduler, VWAPSchedulerConfig } from '../../indicators/scheduler'
|
|
9
|
+
import { calcVWAPData } from '../../indicators/calculators'
|
|
9
10
|
|
|
10
11
|
const VWAP_COLOR = '#ec4899'
|
|
11
12
|
|
|
@@ -114,15 +115,20 @@ export function createVWAPRendererPlugin(options: { paneId?: string } = {}): Ren
|
|
|
114
115
|
category: 'volume',
|
|
115
116
|
stateKey: createVWAPStateKey,
|
|
116
117
|
defaultPaneId: 'sub_VWAP',
|
|
117
|
-
paneIdField: 'vwapPaneId',
|
|
118
118
|
visibleState: { compose: createSparseVisibleStateComposer('vwap', EMPTY_VWAP_STATE) },
|
|
119
119
|
scale: { indicatorKey: 'vwap', label: 'VWAP', decimals: 2 },
|
|
120
120
|
updateConfig: (scheduler, params, paneId) => {
|
|
121
|
-
(scheduler as IndicatorScheduler).
|
|
121
|
+
(scheduler as IndicatorScheduler).updateIndicatorConfig('vwap', params, paneId)
|
|
122
122
|
},
|
|
123
123
|
applyResult: (host, state, paneId) => {
|
|
124
124
|
host.setSharedState(createVWAPStateKey(paneId), state as any, 'indicator_scheduler')
|
|
125
125
|
},
|
|
126
|
+
runtime: {
|
|
127
|
+
configKey: 'vwap',
|
|
128
|
+
defaultConfig: { sessionResetGapMs: 0, showVWAP: true },
|
|
129
|
+
computeKey: 'calcVWAPData',
|
|
130
|
+
compute: (data, c) => calcVWAPData(data, c.sessionResetGapMs),
|
|
131
|
+
},
|
|
126
132
|
})
|
|
127
133
|
class VWAPIndicatorDefinition {
|
|
128
134
|
static rendererFactory = createVWAPRendererPlugin
|
|
@@ -6,6 +6,7 @@ import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
|
6
6
|
import { resolveStateKey } from '../../indicators/indicatorMetadata'
|
|
7
7
|
import { createSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
|
|
8
8
|
import type { IndicatorScheduler, WMASchedulerConfig } from '../../indicators/scheduler'
|
|
9
|
+
import { calcWMAData } from '../../indicators/calculators'
|
|
9
10
|
|
|
10
11
|
const WMA_COLOR = '#10b981'
|
|
11
12
|
|
|
@@ -126,17 +127,17 @@ export function createWMARendererPlugin(options: WMARendererOptions = {}): Rende
|
|
|
126
127
|
category: 'main',
|
|
127
128
|
stateKey: createWMAStateKey,
|
|
128
129
|
defaultPaneId: 'main',
|
|
129
|
-
paneIdField: 'wmaPaneId',
|
|
130
130
|
allowMainPane: true,
|
|
131
131
|
mainPane: { rendererName: 'wma_main', toActiveConfig: (params, active) => ({ ...params, showWMA: active }) },
|
|
132
132
|
visibleState: { compose: createSparseVisibleStateComposer('wma', EMPTY_WMA_STATE) },
|
|
133
133
|
scale: { indicatorKey: 'wma', label: 'WMA', decimals: 2 },
|
|
134
134
|
updateConfig: (scheduler, params, paneId) => {
|
|
135
|
-
(scheduler as IndicatorScheduler).
|
|
135
|
+
(scheduler as IndicatorScheduler).updateIndicatorConfig('wma', params, paneId)
|
|
136
136
|
},
|
|
137
137
|
applyResult: (host, state, paneId) => {
|
|
138
138
|
host.setSharedState(createWMAStateKey(paneId), state as any, 'indicator_scheduler')
|
|
139
139
|
},
|
|
140
|
+
runtime: { configKey:'wma', defaultConfig:{period:10,showWMA:true}, computeKey:'calcWMAData', compute:(data,c)=>calcWMAData(data,c.period) },
|
|
140
141
|
})
|
|
141
142
|
class WMADefinition {
|
|
142
143
|
static rendererFactory = createWMARendererPlugin
|
|
@@ -9,6 +9,7 @@ import { createFixedRangeSparseVisibleStateComposer } from '../../indicators/vis
|
|
|
9
9
|
import { resolveStateKey } from '../../indicators/indicatorMetadata'
|
|
10
10
|
import type { IndicatorScheduler, WMSRSchedulerConfig } from '../../indicators/scheduler'
|
|
11
11
|
import { createWmsrScaleRendererPlugin } from './scale/wmsr_scale'
|
|
12
|
+
import { calcWMSRData } from '../../indicators/calculators'
|
|
12
13
|
|
|
13
14
|
type LinePoint = { x: number; y: number }
|
|
14
15
|
|
|
@@ -255,7 +256,7 @@ const { ctx, pane, range, scrollLeft, dpr, kLineCenters, lineWebGLSurface } = co
|
|
|
255
256
|
},
|
|
256
257
|
|
|
257
258
|
setConfig() {
|
|
258
|
-
// no-op: 配置通过 scheduler.
|
|
259
|
+
// no-op: 配置通过 scheduler.updateIndicatorConfig() 更新
|
|
259
260
|
},
|
|
260
261
|
}
|
|
261
262
|
}
|
|
@@ -321,15 +322,20 @@ export function getWMSRTitleInfo(
|
|
|
321
322
|
category: 'oscillator',
|
|
322
323
|
stateKey: createWMSRStateKey,
|
|
323
324
|
defaultPaneId: 'sub_WMSR',
|
|
324
|
-
paneIdField: 'wmsrPaneId',
|
|
325
325
|
visibleState: { compose: createFixedRangeSparseVisibleStateComposer('wmsr', EMPTY_WMSR_STATE) },
|
|
326
326
|
scaleRendererFactory: createWmsrScaleRendererPlugin,
|
|
327
327
|
updateConfig: (scheduler, params, paneId) => {
|
|
328
|
-
(scheduler as IndicatorScheduler).
|
|
328
|
+
(scheduler as IndicatorScheduler).updateIndicatorConfig('wmsr', params, paneId)
|
|
329
329
|
},
|
|
330
330
|
applyResult: (host, state, paneId) => {
|
|
331
331
|
host.setSharedState(createWMSRStateKey(paneId), state as any, 'indicator_scheduler')
|
|
332
332
|
},
|
|
333
|
+
runtime: {
|
|
334
|
+
configKey: 'wmsr',
|
|
335
|
+
defaultConfig: { period: 14, showWMSR: true },
|
|
336
|
+
computeKey: 'calcWMSRData',
|
|
337
|
+
compute: (data, c) => calcWMSRData(data, c.period),
|
|
338
|
+
},
|
|
333
339
|
})
|
|
334
340
|
class WMSRIndicatorDefinition {
|
|
335
341
|
static rendererFactory = createWMSRRendererPlugin
|
|
@@ -7,6 +7,7 @@ import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
|
7
7
|
import { createFixedUnitVisibleStateComposer } from '../../indicators/visibleStateComposers'
|
|
8
8
|
import { resolveStateKey } from '../../indicators/indicatorMetadata'
|
|
9
9
|
import type { IndicatorScheduler, ZonesSchedulerConfig } from '../../indicators/scheduler'
|
|
10
|
+
import { calcZonesData } from '../../indicators/calculators'
|
|
10
11
|
|
|
11
12
|
function getZonesStateKey(host: PluginHost | null, paneId: string): string | null {
|
|
12
13
|
const scheduler = host?.getService<IndicatorScheduler>('indicatorScheduler')
|
|
@@ -95,17 +96,17 @@ export function createZonesRendererPlugin(options: { paneId?: string } = {}): Re
|
|
|
95
96
|
category: 'main',
|
|
96
97
|
stateKey: createZonesStateKey,
|
|
97
98
|
defaultPaneId: 'main',
|
|
98
|
-
paneIdField: 'zonesPaneId',
|
|
99
99
|
allowMainPane: true,
|
|
100
100
|
mainPane: { rendererName: 'zones_main', toActiveConfig: (params, active) => ({ ...params, showFVG: active, showOB: active, showFilledZones: active }) },
|
|
101
101
|
scale: { indicatorKey: 'zones', label: 'Zones', decimals: 2 },
|
|
102
102
|
visibleState: { compose: createFixedUnitVisibleStateComposer('zones', EMPTY_ZONES_STATE) },
|
|
103
103
|
updateConfig: (scheduler, params, paneId) => {
|
|
104
|
-
(scheduler as IndicatorScheduler).
|
|
104
|
+
(scheduler as IndicatorScheduler).updateIndicatorConfig('zones', params, paneId)
|
|
105
105
|
},
|
|
106
106
|
applyResult: (host, state, paneId) => {
|
|
107
107
|
host.setSharedState(createZonesStateKey(paneId), state as any, 'indicator_scheduler')
|
|
108
108
|
},
|
|
109
|
+
runtime: { configKey:'zones', defaultConfig:{showFVG:true,showOB:true,showFilledZones:true,obLookback:20}, computeKey:'calcZonesData', compute:(data,c)=>calcZonesData(data,c.obLookback,5,2,'close') },
|
|
109
110
|
})
|
|
110
111
|
class ZonesDefinition {
|
|
111
112
|
static rendererFactory = createZonesRendererPlugin
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = "0.7.12
|
|
1
|
+
export const VERSION = "0.7.12"
|