@363045841yyt/klinechart-core 0.7.11 → 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 +59 -431
- 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.js +1 -1
- package/package.json +6 -2
- 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 +57 -485
- 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
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* 运行在独立线程,负责指标计算
|
|
4
4
|
*/
|
|
5
5
|
import { PROTOCOL_VERSION } from './workerProtocol';
|
|
6
|
-
import { IndicatorRuntime } from './indicatorRuntime';
|
|
6
|
+
import { IndicatorRuntime, createWorkerCompute } from './indicatorRuntime';
|
|
7
7
|
// Worker 全局作用域
|
|
8
8
|
const ctx = self;
|
|
9
9
|
// 运行时实例
|
|
@@ -17,13 +17,38 @@ function postResponse(response) {
|
|
|
17
17
|
/**
|
|
18
18
|
* 处理初始化
|
|
19
19
|
*/
|
|
20
|
-
function handleInit() {
|
|
21
|
-
|
|
20
|
+
function handleInit(msg) {
|
|
21
|
+
const serializedDescs = msg?.descriptors ?? [];
|
|
22
|
+
const descriptors = serializedDescs.map(d => ({
|
|
23
|
+
configKey: d.configKey,
|
|
24
|
+
paneIdKey: d.paneIdKey,
|
|
25
|
+
defaultConfig: d.defaultConfig,
|
|
26
|
+
computeKey: d.computeKey,
|
|
27
|
+
compute: createWorkerCompute(d),
|
|
28
|
+
}));
|
|
29
|
+
runtime = new IndicatorRuntime(descriptors);
|
|
22
30
|
postResponse({
|
|
23
31
|
type: 'ready',
|
|
24
32
|
protocolVersion: PROTOCOL_VERSION,
|
|
25
33
|
});
|
|
26
34
|
}
|
|
35
|
+
function handleAddDescriptor(descriptor) {
|
|
36
|
+
if (!runtime) {
|
|
37
|
+
postResponse({
|
|
38
|
+
type: 'error',
|
|
39
|
+
stage: 'init',
|
|
40
|
+
message: 'Runtime not initialized',
|
|
41
|
+
});
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
runtime.addDescriptor({
|
|
45
|
+
configKey: descriptor.configKey,
|
|
46
|
+
paneIdKey: descriptor.paneIdKey,
|
|
47
|
+
defaultConfig: descriptor.defaultConfig,
|
|
48
|
+
computeKey: descriptor.computeKey,
|
|
49
|
+
compute: createWorkerCompute(descriptor),
|
|
50
|
+
});
|
|
51
|
+
}
|
|
27
52
|
/**
|
|
28
53
|
* 处理设置数据
|
|
29
54
|
*/
|
|
@@ -115,7 +140,10 @@ ctx.onmessage = (event) => {
|
|
|
115
140
|
}
|
|
116
141
|
switch (msg.type) {
|
|
117
142
|
case 'init':
|
|
118
|
-
handleInit();
|
|
143
|
+
handleInit(msg);
|
|
144
|
+
break;
|
|
145
|
+
case 'addDescriptor':
|
|
146
|
+
handleAddDescriptor(msg.descriptor);
|
|
119
147
|
break;
|
|
120
148
|
case 'setData':
|
|
121
149
|
handleSetData(msg.data, msg.dataVersion);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indicator.worker.js","sourceRoot":"","sources":["../../../src/engine/indicators/indicator.worker.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"indicator.worker.js","sourceRoot":"","sources":["../../../src/engine/indicators/indicator.worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IndicatorMetadata, IndicatorCategory, StateKey, RendererFactory, ScaleRendererFactory, IndicatorConfigUpdater } from './indicatorMetadata';
|
|
1
|
+
import type { IndicatorMetadata, IndicatorCategory, StateKey, RendererFactory, ScaleRendererFactory, IndicatorConfigUpdater, IndicatorRuntimeDescriptor } from './indicatorMetadata';
|
|
2
2
|
import type { PluginHost } from '../../plugin';
|
|
3
3
|
export type IndicatorDefinitionConfig<T = unknown> = {
|
|
4
4
|
name: string;
|
|
@@ -7,7 +7,7 @@ export type IndicatorDefinitionConfig<T = unknown> = {
|
|
|
7
7
|
category: IndicatorCategory;
|
|
8
8
|
stateKey: StateKey;
|
|
9
9
|
defaultPaneId: string;
|
|
10
|
-
paneIdField?:
|
|
10
|
+
paneIdField?: string;
|
|
11
11
|
allowMainPane?: boolean;
|
|
12
12
|
scaleRendererFactory?: ScaleRendererFactory;
|
|
13
13
|
scale?: IndicatorMetadata['scale'];
|
|
@@ -15,6 +15,7 @@ export type IndicatorDefinitionConfig<T = unknown> = {
|
|
|
15
15
|
applyResult?: (host: PluginHost, state: unknown, paneId: string) => void;
|
|
16
16
|
mainPane?: IndicatorMetadata['mainPane'];
|
|
17
17
|
visibleState?: IndicatorMetadata['visibleState'];
|
|
18
|
+
runtime?: IndicatorRuntimeDescriptor;
|
|
18
19
|
semantic?: IndicatorMetadata<T>['semantic'];
|
|
19
20
|
};
|
|
20
21
|
type IndicatorDefinitionClass = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indicatorDefinitionRegistry.d.ts","sourceRoot":"","sources":["../../../src/engine/indicators/indicatorDefinitionRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,eAAe,EACf,oBAAoB,EACpB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"indicatorDefinitionRegistry.d.ts","sourceRoot":"","sources":["../../../src/engine/indicators/indicatorDefinitionRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC7B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C,MAAM,MAAM,yBAAyB,CAAC,CAAC,GAAG,OAAO,IAAI;IACjD,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,QAAQ,EAAE,QAAQ,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,KAAK,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAClC,YAAY,CAAC,EAAE,sBAAsB,CAAA;IACrC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACxE,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAA;IACxC,YAAY,CAAC,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAA;IAChD,OAAO,CAAC,EAAE,0BAA0B,CAAA;IACpC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;CAC9C,CAAA;AAED,KAAK,wBAAwB,GAAG;IAC5B,KAAI,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAA;CACpC,CAAA;AAwBD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,yBAAyB,IACtC,CAAC,SAAS,wBAAwB,EAAE,OAAO,CAAC,EAAE,SAAS,qBAAqB,CAAC,CAAC,CAAC,KAAG,CAAC,CA0BvG;AAED,wBAAgB,iCAAiC,IAAI,SAAS,iBAAiB,EAAE,CAEhF;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAI5F;AAED,wBAAgB,0CAA0C,IAAI,IAAI,CAGjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indicatorDefinitionRegistry.js","sourceRoot":"","sources":["../../../src/engine/indicators/indicatorDefinitionRegistry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"indicatorDefinitionRegistry.js","sourceRoot":"","sources":["../../../src/engine/indicators/indicatorDefinitionRegistry.ts"],"names":[],"mappings":"AAmCA,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA6B,CAAA;AACjE,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAAkB,CAAA;AAE5D,SAAS,oBAAoB,CAAC,EAAU;IACpC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;AAC5D,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,IAAY;IAC3C,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAC9C,IAAI,UAAU,EAAE,CAAC;QACb,0BAA0B,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IACpD,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IAClC,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,0BAA0B,EAAE,CAAC;QACvD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClB,0BAA0B,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC5C,CAAC;IACL,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CAAC,MAAiC;IACvD,OAAO,UAA8C,KAAQ,EAAE,OAAiC;QAC5F,OAAO,CAAC,cAAc,CAAC;YACnB,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAA;YAC5C,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,CAAC,IAAI,iDAAiD,CAAC,CAAA;YACjG,CAAC;YAED,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACxD,gBAAgB,CAAC,cAAc,CAAC,CAAA;YAEhC,oBAAoB,CAAC,GAAG,CAAC,cAAc,EAAE;gBACrC,GAAG,MAAM;gBACT,eAAe;gBACf,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,WAAW,EAAE,MAAM,CAAC,WAAW;aAClC,CAAC,CAAA;YACF,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;YACvC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;YAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;gBACvC,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;YACrC,CAAC;QACL,CAAC,CAAC,CAAA;QAEF,OAAO,KAAK,CAAA;IAChB,CAAC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,iCAAiC;IAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,IAAY;IACzD,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAA;IACjD,MAAM,aAAa,GAAG,0BAA0B,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,cAAc,CAAA;IACtF,OAAO,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;AAClD,CAAC;AAED,MAAM,UAAU,0CAA0C;IACtD,oBAAoB,CAAC,KAAK,EAAE,CAAA;IAC5B,0BAA0B,CAAC,KAAK,EAAE,CAAA;AACtC,CAAC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { PluginHost, RendererPluginWithHost } from '../../plugin';
|
|
8
8
|
import type { IndicatorConfigSnapshot, IndicatorSeriesBundle } from './workerProtocol';
|
|
9
|
+
import type { KLineData } from '../../types/price';
|
|
9
10
|
export type IndicatorId = string;
|
|
10
11
|
export interface IndicatorRendererOptions {
|
|
11
12
|
paneId: string;
|
|
@@ -59,6 +60,26 @@ export interface IndicatorVisibleStateComposeContext {
|
|
|
59
60
|
active: boolean;
|
|
60
61
|
}
|
|
61
62
|
export type IndicatorVisibleStateComposer = (context: IndicatorVisibleStateComposeContext) => unknown;
|
|
63
|
+
/**
|
|
64
|
+
* 指标计算描述符
|
|
65
|
+
* 描述每个指标的计算逻辑,供 IndicatorRuntime 驱动
|
|
66
|
+
*
|
|
67
|
+
* - 主线程:直接调用 compute
|
|
68
|
+
* - Worker:用 computeKey 从 calculators 模块映射到实际函数
|
|
69
|
+
* - 自定义运行时指标:无 computeKey,仅主线程 inline 运行
|
|
70
|
+
*/
|
|
71
|
+
export interface IndicatorRuntimeDescriptor<C = any> {
|
|
72
|
+
/** configSnapshot 中的 key,通常等于 name(如 'macd') */
|
|
73
|
+
configKey: string;
|
|
74
|
+
/** paneId 在 configSnapshot 中的 key(如 'macdPaneId'),可省略 */
|
|
75
|
+
paneIdKey?: string;
|
|
76
|
+
/** 默认配置值 */
|
|
77
|
+
defaultConfig: C;
|
|
78
|
+
/** 计算函数(主线程直接调用,Worker 用 computeKey 桥接) */
|
|
79
|
+
compute: (data: KLineData[], config: C) => unknown;
|
|
80
|
+
/** Worker 端计算键名,映射到 calculators 模块的导出 */
|
|
81
|
+
computeKey: string;
|
|
82
|
+
}
|
|
62
83
|
/**
|
|
63
84
|
* 指标元数据接口
|
|
64
85
|
*/
|
|
@@ -90,7 +111,7 @@ export interface IndicatorMetadata<T = unknown> {
|
|
|
90
111
|
* 在 configSnapshot 中的 paneId 字段名
|
|
91
112
|
* 用于从配置中获取当前 pane ID
|
|
92
113
|
*/
|
|
93
|
-
paneIdField?:
|
|
114
|
+
paneIdField?: string;
|
|
94
115
|
/**
|
|
95
116
|
* 渲染器工厂函数
|
|
96
117
|
* 调用时创建该指标的渲染器实例
|
|
@@ -148,6 +169,11 @@ export interface IndicatorMetadata<T = unknown> {
|
|
|
148
169
|
visibleState?: {
|
|
149
170
|
compose: IndicatorVisibleStateComposer;
|
|
150
171
|
};
|
|
172
|
+
/**
|
|
173
|
+
* 计算描述符(可选)
|
|
174
|
+
* 提供后,IndicatorRuntime 可据此自动调度计算,无需手写展开
|
|
175
|
+
*/
|
|
176
|
+
runtime?: IndicatorRuntimeDescriptor;
|
|
151
177
|
/**
|
|
152
178
|
* 语义配置应用入口。
|
|
153
179
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indicatorMetadata.d.ts","sourceRoot":"","sources":["../../../src/engine/indicators/indicatorMetadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"indicatorMetadata.d.ts","sourceRoot":"","sources":["../../../src/engine/indicators/indicatorMetadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAElD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAA;AAEhC,MAAM,WAAW,wBAAwB;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,WAAW,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,6BAA6B;IAC1C,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;CACvF;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,KAAK,GAAG,YAAY,GAAG,QAAQ,CAAA;AAExE;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;AAE5D;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,CAAC,EAAE,wBAAwB,KAAK,sBAAsB,CAAA;AAE5F,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,6BAA6B,KAAK,sBAAsB,CAAA;AAErG,MAAM,MAAM,sBAAsB,GAAG,CACjC,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,KACb,IAAI,CAAA;AAET,MAAM,WAAW,6BAA6B;IAC1C,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CAC5E;AAED,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,mBAAmB;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,2BAA2B,GAAG,CACtC,MAAM,EAAE,qBAAqB,EAC7B,YAAY,EAAE,qBAAqB,KAClC,mBAAmB,GAAG,IAAI,CAAA;AAE/B,MAAM,MAAM,4BAA4B,GAAG,CACvC,MAAM,EAAE,qBAAqB,EAC7B,YAAY,EAAE,qBAAqB,EACnC,SAAS,EAAE,MAAM,KAChB,OAAO,CAAA;AAEZ,MAAM,WAAW,mCAAmC;IAChD,MAAM,EAAE,qBAAqB,CAAA;IAC7B,YAAY,EAAE,qBAAqB,CAAA;IACnC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,MAAM,6BAA6B,GAAG,CACxC,OAAO,EAAE,mCAAmC,KAC3C,OAAO,CAAA;AAEZ;;;;;;;GAOG;AACH,MAAM,WAAW,0BAA0B,CAAC,CAAC,GAAG,GAAG;IAC/C,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAA;IACjB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY;IACZ,aAAa,EAAE,CAAC,CAAA;IAChB,2CAA2C;IAC3C,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,OAAO,CAAA;IAClD,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,OAAO;IAC1C;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAE3B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,QAAQ,EAAE,iBAAiB,CAAA;IAE3B;;;;OAIG;IACH,QAAQ,EAAE,QAAQ,CAAA;IAElB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;OAGG;IACH,eAAe,EAAE,eAAe,CAAA;IAEhC;;OAEG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAE3C;;OAEG;IACH,KAAK,CAAC,EAAE;QACJ,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IAED;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAA;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,OAAO,CAAA;IAExD;;OAEG;IACH,YAAY,CAAC,EAAE,sBAAsB,CAAA;IAErC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAExE;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;OAEG;IACH,QAAQ,CAAC,EAAE;QACP,YAAY,EAAE,MAAM,CAAA;QACpB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;QACrG,iBAAiB,CAAC,EAAE,2BAA2B,CAAA;QAC/C,kBAAkB,CAAC,EAAE,4BAA4B,CAAA;KACpD,CAAA;IAED,YAAY,CAAC,EAAE;QACX,OAAO,EAAE,6BAA6B,CAAA;KACzC,CAAA;IAED;;;OAGG;IACH,OAAO,CAAC,EAAE,0BAA0B,CAAA;IAEpC;;OAEG;IACH,QAAQ,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,6BAA6B,EAAE,SAAS,EAAE,CAAC,KAAK,IAAI,CAAA;KACvE,CAAA;CACJ;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ3E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indicatorMetadata.js","sourceRoot":"","sources":["../../../src/engine/indicators/indicatorMetadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"indicatorMetadata.js","sourceRoot":"","sources":["../../../src/engine/indicators/indicatorMetadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+NH;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,QAAkB,EAAE,MAAe;IAC/D,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;QACjF,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IACD,OAAO,QAAQ,CAAA;AACnB,CAAC"}
|
|
@@ -1,132 +1,27 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Indicator 纯计算运行时
|
|
3
|
-
* 不依赖 PluginHost/StateStore,只负责计算和缓存
|
|
4
|
-
* 可被主线程(inline fallback)或 Worker 使用
|
|
5
|
-
*/
|
|
6
1
|
import type { KLineData } from '../../types/price';
|
|
2
|
+
import type { IndicatorRuntimeDescriptor } from './indicatorMetadata';
|
|
7
3
|
import type { IndicatorConfigSnapshot, IndicatorSeriesBundle } from './workerProtocol';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
export declare const CALCULATOR_MAP: Record<string, (data: KLineData[], config: any) => unknown>;
|
|
5
|
+
export declare function createWorkerCompute(descriptor: {
|
|
6
|
+
computeKey: string;
|
|
7
|
+
}): (data: KLineData[], config: any) => unknown;
|
|
12
8
|
export declare class IndicatorRuntime {
|
|
13
9
|
private currentData;
|
|
14
10
|
private dataVersion;
|
|
15
|
-
private config;
|
|
16
11
|
private configVersion;
|
|
17
|
-
private
|
|
18
|
-
private
|
|
19
|
-
private
|
|
20
|
-
private
|
|
21
|
-
private
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
private cachedMomSeries;
|
|
25
|
-
private cachedWmsrSeries;
|
|
26
|
-
private cachedKstSeries;
|
|
27
|
-
private cachedFastkSeries;
|
|
28
|
-
private cachedMacdSeries;
|
|
29
|
-
private cachedAtrSeries;
|
|
30
|
-
private cachedWmaSeries;
|
|
31
|
-
private cachedDemaSeries;
|
|
32
|
-
private cachedTemaSeries;
|
|
33
|
-
private cachedHmaSeries;
|
|
34
|
-
private cachedKamaSeries;
|
|
35
|
-
private cachedSarSeries;
|
|
36
|
-
private cachedSupertrendSeries;
|
|
37
|
-
private cachedKeltnerSeries;
|
|
38
|
-
private cachedDonchianSeries;
|
|
39
|
-
private cachedIchimokuSeries;
|
|
40
|
-
private cachedRocSeries;
|
|
41
|
-
private cachedTrixSeries;
|
|
42
|
-
private cachedTrixSignalSeries;
|
|
43
|
-
private cachedHvSeries;
|
|
44
|
-
private cachedParkinsonSeries;
|
|
45
|
-
private cachedChaikinVolSeries;
|
|
46
|
-
private cachedVmaSeries;
|
|
47
|
-
private cachedObvSeries;
|
|
48
|
-
private cachedPvtSeries;
|
|
49
|
-
private cachedVwapSeries;
|
|
50
|
-
private cachedCmfSeries;
|
|
51
|
-
private cachedMfiSeries;
|
|
52
|
-
private cachedPivotSeries;
|
|
53
|
-
private cachedFibSeries;
|
|
54
|
-
private cachedStructureSeries;
|
|
55
|
-
private cachedZonesSeries;
|
|
56
|
-
private cachedVolumeProfileSeries;
|
|
57
|
-
private dirtyData;
|
|
58
|
-
private dirtyMAConfig;
|
|
59
|
-
private dirtyBollConfig;
|
|
60
|
-
private dirtyExpmaConfig;
|
|
61
|
-
private dirtyEneConfig;
|
|
62
|
-
private dirtyRsiConfig;
|
|
63
|
-
private dirtyCciConfig;
|
|
64
|
-
private dirtyStochConfig;
|
|
65
|
-
private dirtyMomConfig;
|
|
66
|
-
private dirtyWmsrConfig;
|
|
67
|
-
private dirtyKstConfig;
|
|
68
|
-
private dirtyFastkConfig;
|
|
69
|
-
private dirtyMacdConfig;
|
|
70
|
-
private dirtyAtrConfig;
|
|
71
|
-
private dirtyWmaConfig;
|
|
72
|
-
private dirtyDemaConfig;
|
|
73
|
-
private dirtyTemaConfig;
|
|
74
|
-
private dirtyHmaConfig;
|
|
75
|
-
private dirtyKamaConfig;
|
|
76
|
-
private dirtySarConfig;
|
|
77
|
-
private dirtySupertrendConfig;
|
|
78
|
-
private dirtyKeltnerConfig;
|
|
79
|
-
private dirtyDonchianConfig;
|
|
80
|
-
private dirtyIchimokuConfig;
|
|
81
|
-
private dirtyRocConfig;
|
|
82
|
-
private dirtyTrixConfig;
|
|
83
|
-
private dirtyHvConfig;
|
|
84
|
-
private dirtyParkinsonConfig;
|
|
85
|
-
private dirtyChaikinVolConfig;
|
|
86
|
-
private dirtyVmaConfig;
|
|
87
|
-
private dirtyObvConfig;
|
|
88
|
-
private dirtyPvtConfig;
|
|
89
|
-
private dirtyVwapConfig;
|
|
90
|
-
private dirtyCmfConfig;
|
|
91
|
-
private dirtyMfiConfig;
|
|
92
|
-
private dirtyPivotConfig;
|
|
93
|
-
private dirtyFibConfig;
|
|
94
|
-
private dirtyStructureConfig;
|
|
95
|
-
private dirtyZonesConfig;
|
|
96
|
-
private dirtyVolumeProfileConfig;
|
|
97
|
-
private getDefaultConfig;
|
|
98
|
-
/**
|
|
99
|
-
* 更新数据
|
|
100
|
-
*/
|
|
12
|
+
private dataDirty;
|
|
13
|
+
private configMap;
|
|
14
|
+
private seriesMap;
|
|
15
|
+
private dirtyFlags;
|
|
16
|
+
private descriptorMap;
|
|
17
|
+
constructor(descriptors?: IndicatorRuntimeDescriptor[]);
|
|
18
|
+
addDescriptor(d: IndicatorRuntimeDescriptor): void;
|
|
101
19
|
setData(data: KLineData[], version: number): void;
|
|
102
|
-
/**
|
|
103
|
-
* 更新配置
|
|
104
|
-
*/
|
|
105
20
|
private shallowEqual;
|
|
106
|
-
/**
|
|
107
|
-
* 更新配置(仅值变更时才设置脏标记)
|
|
108
|
-
*/
|
|
109
21
|
setConfig(config: Partial<IndicatorConfigSnapshot>, version: number): void;
|
|
110
|
-
/**
|
|
111
|
-
* 强制所有指标标记为脏(用于 recompute)
|
|
112
|
-
*/
|
|
113
22
|
forceDirty(): void;
|
|
114
|
-
/**
|
|
115
|
-
* 获取当前数据版本
|
|
116
|
-
*/
|
|
117
23
|
getDataVersion(): number;
|
|
118
|
-
/**
|
|
119
|
-
* 获取当前配置版本
|
|
120
|
-
*/
|
|
121
24
|
getConfigVersion(): number;
|
|
122
|
-
/**
|
|
123
|
-
* 计算所有指标的 series(如果脏了)
|
|
124
|
-
* 返回结果包,供主线程组装成 render states
|
|
125
|
-
*/
|
|
126
25
|
computeSeries(): IndicatorSeriesBundle;
|
|
127
|
-
/**
|
|
128
|
-
* 获取缓存的 series(用于 visibleRange 变更时扫描极值)
|
|
129
|
-
*/
|
|
130
|
-
getCachedSeries(): IndicatorSeriesBundle;
|
|
131
26
|
}
|
|
132
27
|
//# sourceMappingURL=indicatorRuntime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indicatorRuntime.d.ts","sourceRoot":"","sources":["../../../src/engine/indicators/indicatorRuntime.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"indicatorRuntime.d.ts","sourceRoot":"","sources":["../../../src/engine/indicators/indicatorRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AA2ClD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAEtF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,KAAK,OAAO,CAsDtF,CAAA;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,KAAK,OAAO,CAKnH;AAED,qBAAa,gBAAgB;IACzB,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,WAAW,CAAI;IACvB,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,SAAS,CAAO;IACxB,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,aAAa,CAAgD;gBAEzD,WAAW,GAAE,0BAA0B,EAAO;IAM1D,aAAa,CAAC,CAAC,EAAE,0BAA0B,GAAG,IAAI;IAUlD,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAOjD,OAAO,CAAC,YAAY;IAUpB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAgB1E,UAAU,IAAI,IAAI;IAOlB,cAAc,IAAI,MAAM;IAIxB,gBAAgB,IAAI,MAAM;IAI1B,aAAa,IAAI,qBAAqB;CAqCzC"}
|