@363045841yyt/klinechart 0.7.1 → 0.7.3-alpha.0

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.
Files changed (236) hide show
  1. package/README.md +10 -6
  2. package/dist/components/DrawingStyleToolbar.vue.d.ts +28 -0
  3. package/dist/components/DrawingStyleToolbar.vue.d.ts.map +1 -0
  4. package/dist/{src/components → components}/IndicatorParams.vue.d.ts +3 -3
  5. package/dist/components/IndicatorParams.vue.d.ts.map +1 -0
  6. package/dist/{src/components → components}/IndicatorSelector.vue.d.ts +4 -4
  7. package/dist/components/IndicatorSelector.vue.d.ts.map +1 -0
  8. package/dist/components/KLineChart.vue.d.ts +63 -0
  9. package/dist/components/KLineChart.vue.d.ts.map +1 -0
  10. package/dist/components/KLineTooltip.vue.d.ts +30 -0
  11. package/dist/components/KLineTooltip.vue.d.ts.map +1 -0
  12. package/dist/{src/components → components}/LeftToolbar.vue.d.ts +3 -2
  13. package/dist/components/LeftToolbar.vue.d.ts.map +1 -0
  14. package/dist/components/MarkerTooltip.vue.d.ts +26 -0
  15. package/dist/components/MarkerTooltip.vue.d.ts.map +1 -0
  16. package/dist/components/index.d.ts +8 -0
  17. package/dist/components/index.d.ts.map +1 -0
  18. package/dist/{src/composables → composables}/useFullscreenTeleportTarget.d.ts +1 -0
  19. package/dist/composables/useFullscreenTeleportTarget.d.ts.map +1 -0
  20. package/dist/{src/debug → debug}/canvasProfiler.d.ts +1 -0
  21. package/dist/debug/canvasProfiler.d.ts.map +1 -0
  22. package/dist/index.cjs +2 -49
  23. package/dist/index.d.cts +124 -0
  24. package/dist/index.d.ts +124 -2
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +1390 -23809
  27. package/dist/klinechart.css +1 -1
  28. package/dist/version.d.ts +3 -0
  29. package/dist/version.d.ts.map +1 -0
  30. package/package.json +75 -112
  31. package/src/__tests__/_mockController.ts +192 -0
  32. package/src/__tests__/contract.test.ts +132 -0
  33. package/src/components/DrawingStyleToolbar.vue +199 -0
  34. package/src/components/IndicatorParams.vue +570 -0
  35. package/src/components/IndicatorSelector.vue +1042 -0
  36. package/src/components/KLineChart.vue +1570 -0
  37. package/src/components/KLineTooltip.vue +200 -0
  38. package/src/components/LeftToolbar.vue +844 -0
  39. package/src/components/MarkerTooltip.vue +155 -0
  40. package/src/components/index.ts +7 -0
  41. package/src/composables/useFullscreenTeleportTarget.ts +18 -0
  42. package/src/debug/canvasProfiler.ts +296 -0
  43. package/src/index.ts +402 -0
  44. package/src/version.ts +3 -0
  45. package/LICENSE +0 -21
  46. package/dist/favicon.ico +0 -0
  47. package/dist/mock-stock-data.json +0 -1
  48. package/dist/schema-CzmPW09E.cjs +0 -1
  49. package/dist/schema-DBMGp6Af.js +0 -437
  50. package/dist/src/App.vue.d.ts +0 -4
  51. package/dist/src/api/data/baostock.d.ts +0 -90
  52. package/dist/src/api/data/baostock.integration.test.d.ts +0 -1
  53. package/dist/src/api/data/index.d.ts +0 -26
  54. package/dist/src/api/data/kLine.d.ts +0 -11
  55. package/dist/src/api/data/types.d.ts +0 -33
  56. package/dist/src/api/data/unified.d.ts +0 -37
  57. package/dist/src/components/DrawingStyleToolbar.vue.d.ts +0 -12
  58. package/dist/src/components/KLineChart.vue.d.ts +0 -100
  59. package/dist/src/components/KLineTooltip.vue.d.ts +0 -17
  60. package/dist/src/components/MarkerTooltip.vue.d.ts +0 -13
  61. package/dist/src/components/index.d.ts +0 -2
  62. package/dist/src/config/chartSettings.d.ts +0 -69
  63. package/dist/src/core/chart-store.d.ts +0 -74
  64. package/dist/src/core/chart.d.ts +0 -617
  65. package/dist/src/core/controller/interaction.d.ts +0 -167
  66. package/dist/src/core/controller/markerInteraction.d.ts +0 -28
  67. package/dist/src/core/controller/pinchTracker.d.ts +0 -18
  68. package/dist/src/core/controller/tooltipPosition.d.ts +0 -21
  69. package/dist/src/core/draw/pixelAlign.d.ts +0 -114
  70. package/dist/src/core/drawing/index.d.ts +0 -47
  71. package/dist/src/core/drawing/interaction.d.ts +0 -75
  72. package/dist/src/core/drawing/plugin.d.ts +0 -27
  73. package/dist/src/core/indicators/atrState.d.ts +0 -16
  74. package/dist/src/core/indicators/bollState.d.ts +0 -34
  75. package/dist/src/core/indicators/calculators.d.ts +0 -465
  76. package/dist/src/core/indicators/cciState.d.ts +0 -15
  77. package/dist/src/core/indicators/chaikinVolState.d.ts +0 -18
  78. package/dist/src/core/indicators/cmfState.d.ts +0 -16
  79. package/dist/src/core/indicators/demaState.d.ts +0 -16
  80. package/dist/src/core/indicators/donchianState.d.ts +0 -23
  81. package/dist/src/core/indicators/eneState.d.ts +0 -30
  82. package/dist/src/core/indicators/expmaState.d.ts +0 -30
  83. package/dist/src/core/indicators/fastkState.d.ts +0 -15
  84. package/dist/src/core/indicators/fibState.d.ts +0 -26
  85. package/dist/src/core/indicators/hmaState.d.ts +0 -16
  86. package/dist/src/core/indicators/hvState.d.ts +0 -18
  87. package/dist/src/core/indicators/ichimokuState.d.ts +0 -44
  88. package/dist/src/core/indicators/indicator.worker.d.ts +0 -5
  89. package/dist/src/core/indicators/indicatorDefinitionRegistry.d.ts +0 -30
  90. package/dist/src/core/indicators/indicatorMetadata.d.ts +0 -81
  91. package/dist/src/core/indicators/indicatorRegistry.d.ts +0 -57
  92. package/dist/src/core/indicators/indicatorRuntime.d.ts +0 -126
  93. package/dist/src/core/indicators/kamaState.d.ts +0 -20
  94. package/dist/src/core/indicators/keltnerState.d.ts +0 -27
  95. package/dist/src/core/indicators/kstState.d.ts +0 -21
  96. package/dist/src/core/indicators/maState.d.ts +0 -26
  97. package/dist/src/core/indicators/macdState.d.ts +0 -58
  98. package/dist/src/core/indicators/mfiState.d.ts +0 -16
  99. package/dist/src/core/indicators/momState.d.ts +0 -15
  100. package/dist/src/core/indicators/obvState.d.ts +0 -14
  101. package/dist/src/core/indicators/parkinsonState.d.ts +0 -18
  102. package/dist/src/core/indicators/pivotState.d.ts +0 -29
  103. package/dist/src/core/indicators/pvtState.d.ts +0 -14
  104. package/dist/src/core/indicators/rocState.d.ts +0 -16
  105. package/dist/src/core/indicators/rsiState.d.ts +0 -43
  106. package/dist/src/core/indicators/sarState.d.ts +0 -26
  107. package/dist/src/core/indicators/scheduler.d.ts +0 -262
  108. package/dist/src/core/indicators/soa.d.ts +0 -115
  109. package/dist/src/core/indicators/stateComposer.d.ts +0 -146
  110. package/dist/src/core/indicators/stochState.d.ts +0 -18
  111. package/dist/src/core/indicators/structureState.d.ts +0 -43
  112. package/dist/src/core/indicators/supertrendState.d.ts +0 -22
  113. package/dist/src/core/indicators/temaState.d.ts +0 -16
  114. package/dist/src/core/indicators/trixState.d.ts +0 -20
  115. package/dist/src/core/indicators/vmaState.d.ts +0 -16
  116. package/dist/src/core/indicators/volumeProfileState.d.ts +0 -34
  117. package/dist/src/core/indicators/vwapState.d.ts +0 -16
  118. package/dist/src/core/indicators/wmaState.d.ts +0 -16
  119. package/dist/src/core/indicators/wmsrState.d.ts +0 -15
  120. package/dist/src/core/indicators/workerProtocol.d.ts +0 -496
  121. package/dist/src/core/indicators/zonesState.d.ts +0 -26
  122. package/dist/src/core/layout/pane.d.ts +0 -103
  123. package/dist/src/core/marker/registry.d.ts +0 -174
  124. package/dist/src/core/paneRenderer.d.ts +0 -45
  125. package/dist/src/core/renderers/Indicator/atr.d.ts +0 -17
  126. package/dist/src/core/renderers/Indicator/boll.d.ts +0 -2
  127. package/dist/src/core/renderers/Indicator/cci.d.ts +0 -22
  128. package/dist/src/core/renderers/Indicator/chaikinVol.d.ts +0 -4
  129. package/dist/src/core/renderers/Indicator/cmf.d.ts +0 -4
  130. package/dist/src/core/renderers/Indicator/dema.d.ts +0 -5
  131. package/dist/src/core/renderers/Indicator/donchian.d.ts +0 -5
  132. package/dist/src/core/renderers/Indicator/ene.d.ts +0 -2
  133. package/dist/src/core/renderers/Indicator/expma.d.ts +0 -2
  134. package/dist/src/core/renderers/Indicator/fastk.d.ts +0 -22
  135. package/dist/src/core/renderers/Indicator/fib.d.ts +0 -4
  136. package/dist/src/core/renderers/Indicator/hma.d.ts +0 -5
  137. package/dist/src/core/renderers/Indicator/hv.d.ts +0 -4
  138. package/dist/src/core/renderers/Indicator/ichimoku.d.ts +0 -5
  139. package/dist/src/core/renderers/Indicator/index.d.ts +0 -59
  140. package/dist/src/core/renderers/Indicator/indicatorData.d.ts +0 -13
  141. package/dist/src/core/renderers/Indicator/kama.d.ts +0 -5
  142. package/dist/src/core/renderers/Indicator/keltner.d.ts +0 -5
  143. package/dist/src/core/renderers/Indicator/kst.d.ts +0 -22
  144. package/dist/src/core/renderers/Indicator/ma.d.ts +0 -3
  145. package/dist/src/core/renderers/Indicator/macd.d.ts +0 -50
  146. package/dist/src/core/renderers/Indicator/macdLegend.d.ts +0 -12
  147. package/dist/src/core/renderers/Indicator/mainIndicatorLegend.d.ts +0 -10
  148. package/dist/src/core/renderers/Indicator/mfi.d.ts +0 -4
  149. package/dist/src/core/renderers/Indicator/mom.d.ts +0 -22
  150. package/dist/src/core/renderers/Indicator/obv.d.ts +0 -4
  151. package/dist/src/core/renderers/Indicator/parkinson.d.ts +0 -4
  152. package/dist/src/core/renderers/Indicator/pivot.d.ts +0 -4
  153. package/dist/src/core/renderers/Indicator/pvt.d.ts +0 -4
  154. package/dist/src/core/renderers/Indicator/roc.d.ts +0 -5
  155. package/dist/src/core/renderers/Indicator/rsi.d.ts +0 -33
  156. package/dist/src/core/renderers/Indicator/sar.d.ts +0 -5
  157. package/dist/src/core/renderers/Indicator/scale/atr_scale.d.ts +0 -11
  158. package/dist/src/core/renderers/Indicator/scale/cci_scale.d.ts +0 -11
  159. package/dist/src/core/renderers/Indicator/scale/fastk_scale.d.ts +0 -11
  160. package/dist/src/core/renderers/Indicator/scale/indicator_scale.d.ts +0 -38
  161. package/dist/src/core/renderers/Indicator/scale/kst_scale.d.ts +0 -11
  162. package/dist/src/core/renderers/Indicator/scale/macd_scale.d.ts +0 -14
  163. package/dist/src/core/renderers/Indicator/scale/mom_scale.d.ts +0 -11
  164. package/dist/src/core/renderers/Indicator/scale/rsi_scale.d.ts +0 -11
  165. package/dist/src/core/renderers/Indicator/scale/stoch_scale.d.ts +0 -11
  166. package/dist/src/core/renderers/Indicator/scale/volume_scale.d.ts +0 -14
  167. package/dist/src/core/renderers/Indicator/scale/wmsr_scale.d.ts +0 -11
  168. package/dist/src/core/renderers/Indicator/stoch.d.ts +0 -22
  169. package/dist/src/core/renderers/Indicator/structure.d.ts +0 -4
  170. package/dist/src/core/renderers/Indicator/subPaneConfig.d.ts +0 -9
  171. package/dist/src/core/renderers/Indicator/supertrend.d.ts +0 -5
  172. package/dist/src/core/renderers/Indicator/tema.d.ts +0 -5
  173. package/dist/src/core/renderers/Indicator/trix.d.ts +0 -5
  174. package/dist/src/core/renderers/Indicator/vma.d.ts +0 -4
  175. package/dist/src/core/renderers/Indicator/volumeProfile.d.ts +0 -4
  176. package/dist/src/core/renderers/Indicator/vwap.d.ts +0 -4
  177. package/dist/src/core/renderers/Indicator/wma.d.ts +0 -5
  178. package/dist/src/core/renderers/Indicator/wmsr.d.ts +0 -22
  179. package/dist/src/core/renderers/Indicator/zones.d.ts +0 -4
  180. package/dist/src/core/renderers/candle.d.ts +0 -21
  181. package/dist/src/core/renderers/crosshair.d.ts +0 -17
  182. package/dist/src/core/renderers/customMarkers.d.ts +0 -6
  183. package/dist/src/core/renderers/extremaMarkers.d.ts +0 -5
  184. package/dist/src/core/renderers/gridLines.d.ts +0 -7
  185. package/dist/src/core/renderers/lastPrice.d.ts +0 -9
  186. package/dist/src/core/renderers/paneTitle.d.ts +0 -40
  187. package/dist/src/core/renderers/subVolume.d.ts +0 -13
  188. package/dist/src/core/renderers/timeAxis.d.ts +0 -14
  189. package/dist/src/core/renderers/webgl/candleSurface.d.ts +0 -80
  190. package/dist/src/core/renderers/webgl/sharedWebGLSurface.d.ts +0 -33
  191. package/dist/src/core/renderers/yAxis.d.ts +0 -14
  192. package/dist/src/core/scale/logFormula.d.ts +0 -66
  193. package/dist/src/core/scale/price.d.ts +0 -11
  194. package/dist/src/core/scale/priceScale.d.ts +0 -87
  195. package/dist/src/core/subPaneManager.d.ts +0 -22
  196. package/dist/src/core/theme/colors.d.ts +0 -222
  197. package/dist/src/core/theme/fonts.d.ts +0 -12
  198. package/dist/src/core/utils/klineConfig.d.ts +0 -28
  199. package/dist/src/core/utils/tickCount.d.ts +0 -8
  200. package/dist/src/core/utils/tickPosition.d.ts +0 -24
  201. package/dist/src/core/utils/zoom.d.ts +0 -30
  202. package/dist/src/core/viewport/viewport.d.ts +0 -31
  203. package/dist/src/index.d.ts +0 -8
  204. package/dist/src/main.d.ts +0 -0
  205. package/dist/src/plugin/ConfigManager.d.ts +0 -31
  206. package/dist/src/plugin/EventBus.d.ts +0 -34
  207. package/dist/src/plugin/HookSystem.d.ts +0 -28
  208. package/dist/src/plugin/PluginHost.d.ts +0 -57
  209. package/dist/src/plugin/PluginRegistry.d.ts +0 -40
  210. package/dist/src/plugin/StateStore.d.ts +0 -37
  211. package/dist/src/plugin/index.d.ts +0 -11
  212. package/dist/src/plugin/rendererPluginManager.d.ts +0 -77
  213. package/dist/src/plugin/stateKeys.d.ts +0 -6
  214. package/dist/src/plugin/types.d.ts +0 -445
  215. package/dist/src/semantic/controller.d.ts +0 -35
  216. package/dist/src/semantic/drawShape.d.ts +0 -14
  217. package/dist/src/semantic/index.d.ts +0 -8
  218. package/dist/src/semantic/types.d.ts +0 -298
  219. package/dist/src/semantic/validator.d.ts +0 -43
  220. package/dist/src/test-setup.d.ts +0 -6
  221. package/dist/src/types/kLine.d.ts +0 -3
  222. package/dist/src/types/price.d.ts +0 -31
  223. package/dist/src/types/volumePrice.d.ts +0 -26
  224. package/dist/src/utils/cache.d.ts +0 -33
  225. package/dist/src/utils/dateFormat.d.ts +0 -83
  226. package/dist/src/utils/http.d.ts +0 -14
  227. package/dist/src/utils/kLineDraw/MA.d.ts +0 -7
  228. package/dist/src/utils/kLineDraw/axis.d.ts +0 -150
  229. package/dist/src/utils/kLineDraw/grid.d.ts +0 -30
  230. package/dist/src/utils/kLineDraw/kLine.d.ts +0 -15
  231. package/dist/src/utils/kline/format.d.ts +0 -11
  232. package/dist/src/utils/kline/viewport.d.ts +0 -10
  233. package/dist/src/utils/logger.d.ts +0 -5
  234. package/dist/src/utils/mock/genRandomPriceData.d.ts +0 -3
  235. package/dist/src/utils/priceToY.d.ts +0 -7
  236. package/dist/src/utils/volumePrice.d.ts +0 -54
@@ -1,18 +0,0 @@
1
- import { BaseIndicatorState } from '../../plugin';
2
- export interface HVRenderState extends BaseIndicatorState {
3
- timestamp: number;
4
- series: (number | undefined)[];
5
- params: {
6
- period: number;
7
- annualizationFactor: number;
8
- showHV: boolean;
9
- };
10
- valueMin: number;
11
- valueMax: number;
12
- visibleMin: number;
13
- visibleMax: number;
14
- }
15
- export declare const createHVStateKey: (paneId: string) => `indicator:${string}:${string}`;
16
- export declare const DEFAULT_HV_PERIOD = 20;
17
- export declare const DEFAULT_HV_ANNUALIZATION = 252;
18
- export declare const EMPTY_HV_STATE: HVRenderState;
@@ -1,44 +0,0 @@
1
- import { BaseIndicatorState } from '../../plugin';
2
- /**
3
- * 一目均衡表数据点:5 条线在同一根 K 线槽位
4
- * - tenkan (转换线) = (HH9 + LL9) / 2,当根 K 线计算
5
- * - kijun (基准线) = (HH26 + LL26) / 2,当根 K 线计算
6
- * - spanA (先行带 A) = (tenkan[t-displacement] + kijun[t-displacement]) / 2,前置位移
7
- * - spanB (先行带 B) = (HH52[t-displacement] + LL52[t-displacement]) / 2,前置位移
8
- * - chikou (迟行线) = close[t+displacement],后置位移
9
- *
10
- * 任一字段都可能 undefined(数据不足或位移外)。
11
- */
12
- export interface IchimokuPoint {
13
- tenkan?: number;
14
- kijun?: number;
15
- spanA?: number;
16
- spanB?: number;
17
- chikou?: number;
18
- }
19
- export interface IchimokuRenderState extends BaseIndicatorState {
20
- timestamp: number;
21
- series: (IchimokuPoint | undefined)[];
22
- params: {
23
- tenkanPeriod: number;
24
- kijunPeriod: number;
25
- spanBPeriod: number;
26
- displacement: number;
27
- showTenkan: boolean;
28
- showKijun: boolean;
29
- showSpanA: boolean;
30
- showSpanB: boolean;
31
- showCloud: boolean;
32
- showChikou: boolean;
33
- };
34
- valueMin: number;
35
- valueMax: number;
36
- visibleMin: number;
37
- visibleMax: number;
38
- }
39
- export declare const createIchimokuStateKey: (paneId: string) => `indicator:${string}:${string}`;
40
- export declare const DEFAULT_ICHIMOKU_TENKAN = 9;
41
- export declare const DEFAULT_ICHIMOKU_KIJUN = 26;
42
- export declare const DEFAULT_ICHIMOKU_SPAN_B = 52;
43
- export declare const DEFAULT_ICHIMOKU_DISPLACEMENT = 26;
44
- export declare const EMPTY_ICHIMOKU_STATE: IchimokuRenderState;
@@ -1,5 +0,0 @@
1
- /**
2
- * Indicator Worker 入口
3
- * 运行在独立线程,负责指标计算
4
- */
5
- export {};
@@ -1,30 +0,0 @@
1
- import { IndicatorMetadata, IndicatorCategory, StateKey, RendererFactory } from './indicatorMetadata';
2
- import { PluginHost } from '../../plugin';
3
- export interface IndicatorDefinitionConfig {
4
- name: string;
5
- displayName: string;
6
- category: IndicatorCategory;
7
- stateKey: StateKey;
8
- defaultPaneId: string;
9
- paneIdField?: keyof import('./workerProtocol').IndicatorConfigSnapshot;
10
- allowMainPane?: boolean;
11
- applyResult?: (host: PluginHost, state: unknown, paneId: string) => void;
12
- }
13
- type IndicatorDefinitionClass = {
14
- new (...args: never[]): unknown;
15
- rendererFactory?: RendererFactory;
16
- };
17
- /**
18
- * 标准类装饰器:在模块加载时收集指标定义
19
- *
20
- * 使用方式:
21
- * @Indicator({ name: 'ma', ... })
22
- * class MADefinition {
23
- * static rendererFactory = createMARendererPlugin
24
- * }
25
- */
26
- export declare function Indicator(config: IndicatorDefinitionConfig): <T extends IndicatorDefinitionClass>(value: T, context: ClassDecoratorContext<T>) => T;
27
- export declare function getRegisteredIndicatorDefinitions(): readonly IndicatorMetadata[];
28
- export declare function getRegisteredIndicatorDefinition(name: string): IndicatorMetadata | undefined;
29
- export declare function clearRegisteredIndicatorDefinitionsForTest(): void;
30
- export {};
@@ -1,81 +0,0 @@
1
- import { PluginHost, RendererPluginWithHost } from '../../plugin';
2
- import { IndicatorConfigSnapshot } from './workerProtocol';
3
- /**
4
- * 指标分类:主图/副图
5
- */
6
- export type IndicatorCategory = 'main' | 'sub' | 'oscillator' | 'volume';
7
- /**
8
- * State key 生成器类型
9
- * - 主图指标:常量字符串
10
- * - 副图指标:函数,接收 paneId 返回 key
11
- */
12
- export type StateKey = string | ((paneId: string) => string);
13
- /**
14
- * 渲染器工厂函数
15
- */
16
- export type RendererFactory = () => RendererPluginWithHost;
17
- /**
18
- * 指标元数据接口
19
- */
20
- export interface IndicatorMetadata<T = unknown> {
21
- /**
22
- * 指标唯一标识
23
- * 如:'ma', 'boll', 'rsi', 'customIndicator'
24
- */
25
- name: string;
26
- /**
27
- * 显示名称(用于日志和调试)
28
- */
29
- displayName: string;
30
- /**
31
- * 分类:主图/副图
32
- */
33
- category: IndicatorCategory;
34
- /**
35
- * StateStore key
36
- * - 主图指标:常量字符串(如 'indicator:ma:main')
37
- * - 副图指标:函数 (paneId) => string
38
- */
39
- stateKey: StateKey;
40
- /**
41
- * 在 configSnapshot 中的 paneId 字段名
42
- * 用于从配置中获取当前 pane ID
43
- */
44
- paneIdField?: keyof IndicatorConfigSnapshot;
45
- /**
46
- * 渲染器工厂函数
47
- * 调用时创建该指标的渲染器实例
48
- */
49
- rendererFactory: RendererFactory;
50
- /**
51
- * 默认 pane ID
52
- * - 主图指标:'main'
53
- * - 副图指标:如 'sub_RSI'
54
- */
55
- defaultPaneId: string;
56
- /**
57
- * 是否启用(可选条件判断)
58
- * 用于副图指标根据配置决定是否参与计算
59
- */
60
- isEnabled?: (config: IndicatorConfigSnapshot) => boolean;
61
- /**
62
- * 将指标计算结果写入 StateStore
63
- * @param host - PluginHost
64
- * @param state - 计算结果(由 composeRenderStates 或 composeVisibleSubIndicatorStates 产出)
65
- * @param paneId - 目标 pane ID(从 configSnapshot 读取)
66
- */
67
- applyResult?: (host: PluginHost, state: unknown, paneId: string) => void;
68
- /**
69
- * 是否允许在主图显示(部分副图指标可切换至主图)
70
- * - true:指标可放置在主图(如 WMA/SAR/Pivot 等叠加类指标)
71
- * - false/undefined:仅限副图显示
72
- */
73
- allowMainPane?: boolean;
74
- }
75
- /**
76
- * 提取 stateKey 对应的实际 key 值
77
- * @param stateKey - 可以是字符串或函数
78
- * @param paneId - pane ID(副图指标需要)
79
- * @returns 实际的 state key 字符串
80
- */
81
- export declare function resolveStateKey(stateKey: StateKey, paneId?: string): string;
@@ -1,57 +0,0 @@
1
- import { IndicatorMetadata } from './indicatorMetadata';
2
- /**
3
- * IndicatorRegistry - 指标注册表
4
- *
5
- * 管理所有已注册指标的元数据
6
- * 支持运行时动态注册/注销指标
7
- */
8
- export declare class IndicatorRegistry {
9
- private indicators;
10
- /**
11
- * 注册指标
12
- * @param meta - 指标元数据
13
- * @throws 如果 name 为空或元数据无效
14
- */
15
- register<T>(meta: IndicatorMetadata<T>): void;
16
- /**
17
- * 注销指标
18
- * @param name - 指标名称
19
- * @returns 是否成功注销
20
- */
21
- unregister(name: string): boolean;
22
- /**
23
- * 获取指定指标的元数据
24
- * @param name - 指标名称
25
- * @returns 元数据或 undefined
26
- */
27
- get(name: string): IndicatorMetadata | undefined;
28
- /**
29
- * 检查指标是否已注册
30
- * @param name - 指标名称
31
- */
32
- has(name: string): boolean;
33
- /**
34
- * 获取所有已注册指标
35
- */
36
- getAll(): readonly IndicatorMetadata[];
37
- /**
38
- * 获取主图指标
39
- */
40
- getMainIndicators(): readonly IndicatorMetadata[];
41
- /**
42
- * 获取副图指标
43
- */
44
- getSubIndicators(): readonly IndicatorMetadata[];
45
- /**
46
- * 获取指标名称列表
47
- */
48
- getNames(): string[];
49
- /**
50
- * 清空所有注册指标
51
- */
52
- clear(): void;
53
- /**
54
- * 获取已注册指标数量
55
- */
56
- get size(): number;
57
- }
@@ -1,126 +0,0 @@
1
- import { KLineData } from '../../types/price';
2
- import { IndicatorConfigSnapshot, IndicatorSeriesBundle } from './workerProtocol';
3
- /**
4
- * 计算运行时
5
- * 管理数据、配置、缓存和脏标记
6
- */
7
- export declare class IndicatorRuntime {
8
- private currentData;
9
- private dataVersion;
10
- private config;
11
- private configVersion;
12
- private cachedSeries;
13
- private cachedBollSeries;
14
- private cachedExpmaSeries;
15
- private cachedEneSeries;
16
- private cachedRsiSeries;
17
- private cachedCciSeries;
18
- private cachedStochSeries;
19
- private cachedMomSeries;
20
- private cachedWmsrSeries;
21
- private cachedKstSeries;
22
- private cachedFastkSeries;
23
- private cachedMacdSeries;
24
- private cachedAtrSeries;
25
- private cachedWmaSeries;
26
- private cachedDemaSeries;
27
- private cachedTemaSeries;
28
- private cachedHmaSeries;
29
- private cachedKamaSeries;
30
- private cachedSarSeries;
31
- private cachedSupertrendSeries;
32
- private cachedKeltnerSeries;
33
- private cachedDonchianSeries;
34
- private cachedIchimokuSeries;
35
- private cachedRocSeries;
36
- private cachedTrixSeries;
37
- private cachedTrixSignalSeries;
38
- private cachedHvSeries;
39
- private cachedParkinsonSeries;
40
- private cachedChaikinVolSeries;
41
- private cachedVmaSeries;
42
- private cachedObvSeries;
43
- private cachedPvtSeries;
44
- private cachedVwapSeries;
45
- private cachedCmfSeries;
46
- private cachedMfiSeries;
47
- private cachedPivotSeries;
48
- private cachedFibSeries;
49
- private cachedStructureSeries;
50
- private cachedZonesSeries;
51
- private cachedVolumeProfileSeries;
52
- private dirtyData;
53
- private dirtyMAConfig;
54
- private dirtyBollConfig;
55
- private dirtyExpmaConfig;
56
- private dirtyEneConfig;
57
- private dirtyRsiConfig;
58
- private dirtyCciConfig;
59
- private dirtyStochConfig;
60
- private dirtyMomConfig;
61
- private dirtyWmsrConfig;
62
- private dirtyKstConfig;
63
- private dirtyFastkConfig;
64
- private dirtyMacdConfig;
65
- private dirtyAtrConfig;
66
- private dirtyWmaConfig;
67
- private dirtyDemaConfig;
68
- private dirtyTemaConfig;
69
- private dirtyHmaConfig;
70
- private dirtyKamaConfig;
71
- private dirtySarConfig;
72
- private dirtySupertrendConfig;
73
- private dirtyKeltnerConfig;
74
- private dirtyDonchianConfig;
75
- private dirtyIchimokuConfig;
76
- private dirtyRocConfig;
77
- private dirtyTrixConfig;
78
- private dirtyHvConfig;
79
- private dirtyParkinsonConfig;
80
- private dirtyChaikinVolConfig;
81
- private dirtyVmaConfig;
82
- private dirtyObvConfig;
83
- private dirtyPvtConfig;
84
- private dirtyVwapConfig;
85
- private dirtyCmfConfig;
86
- private dirtyMfiConfig;
87
- private dirtyPivotConfig;
88
- private dirtyFibConfig;
89
- private dirtyStructureConfig;
90
- private dirtyZonesConfig;
91
- private dirtyVolumeProfileConfig;
92
- private getDefaultConfig;
93
- /**
94
- * 更新数据
95
- */
96
- setData(data: KLineData[], version: number): void;
97
- /**
98
- * 更新配置
99
- */
100
- private shallowEqual;
101
- /**
102
- * 更新配置(仅值变更时才设置脏标记)
103
- */
104
- setConfig(config: Partial<IndicatorConfigSnapshot>, version: number): void;
105
- /**
106
- * 强制所有指标标记为脏(用于 recompute)
107
- */
108
- forceDirty(): void;
109
- /**
110
- * 获取当前数据版本
111
- */
112
- getDataVersion(): number;
113
- /**
114
- * 获取当前配置版本
115
- */
116
- getConfigVersion(): number;
117
- /**
118
- * 计算所有指标的 series(如果脏了)
119
- * 返回结果包,供主线程组装成 render states
120
- */
121
- computeSeries(): IndicatorSeriesBundle;
122
- /**
123
- * 获取缓存的 series(用于 visibleRange 变更时扫描极值)
124
- */
125
- getCachedSeries(): IndicatorSeriesBundle;
126
- }
@@ -1,20 +0,0 @@
1
- import { BaseIndicatorState } from '../../plugin';
2
- export interface KAMARenderState extends BaseIndicatorState {
3
- timestamp: number;
4
- series: (number | undefined)[];
5
- params: {
6
- period: number;
7
- fastPeriod: number;
8
- slowPeriod: number;
9
- showKAMA: boolean;
10
- };
11
- valueMin: number;
12
- valueMax: number;
13
- visibleMin: number;
14
- visibleMax: number;
15
- }
16
- export declare const createKAMAStateKey: (paneId: string) => `indicator:${string}:${string}`;
17
- export declare const DEFAULT_KAMA_PERIOD = 10;
18
- export declare const DEFAULT_KAMA_FAST_PERIOD = 2;
19
- export declare const DEFAULT_KAMA_SLOW_PERIOD = 30;
20
- export declare const EMPTY_KAMA_STATE: KAMARenderState;
@@ -1,27 +0,0 @@
1
- import { BaseIndicatorState } from '../../plugin';
2
- export interface KeltnerPoint {
3
- upper: number;
4
- middle: number;
5
- lower: number;
6
- }
7
- export interface KeltnerRenderState extends BaseIndicatorState {
8
- timestamp: number;
9
- series: (KeltnerPoint | undefined)[];
10
- params: {
11
- emaPeriod: number;
12
- atrPeriod: number;
13
- multiplier: number;
14
- showUpper: boolean;
15
- showMiddle: boolean;
16
- showLower: boolean;
17
- };
18
- valueMin: number;
19
- valueMax: number;
20
- visibleMin: number;
21
- visibleMax: number;
22
- }
23
- export declare const createKeltnerStateKey: (paneId: string) => `indicator:${string}:${string}`;
24
- export declare const DEFAULT_KELTNER_EMA_PERIOD = 20;
25
- export declare const DEFAULT_KELTNER_ATR_PERIOD = 10;
26
- export declare const DEFAULT_KELTNER_MULTIPLIER = 2;
27
- export declare const EMPTY_KELTNER_STATE: KeltnerRenderState;
@@ -1,21 +0,0 @@
1
- import { BaseIndicatorState } from '../../plugin';
2
- import { KSTPoint } from './calculators';
3
- export interface KSTRenderState extends BaseIndicatorState {
4
- timestamp: number;
5
- series: KSTPoint[];
6
- params: {
7
- roc1: number;
8
- roc2: number;
9
- roc3: number;
10
- roc4: number;
11
- signalPeriod: number;
12
- showKST: boolean;
13
- showSignal: boolean;
14
- };
15
- valueMin: number;
16
- valueMax: number;
17
- visibleMin: number;
18
- visibleMax: number;
19
- }
20
- export declare const createKSTStateKey: (paneId: string) => `indicator:${string}:${string}`;
21
- export declare const EMPTY_KST_STATE: KSTRenderState;
@@ -1,26 +0,0 @@
1
- import { BaseIndicatorState } from '../../plugin';
2
- /**
3
- * MA 渲染器状态(共享给渲染器和图例)
4
- * 包含全量 MA 数组、启用的周期列表、以及视口极值
5
- */
6
- export interface MARenderState extends BaseIndicatorState {
7
- timestamp: number;
8
- /** period → 全量 MA 数组(用 Record 而非 Map,兼容 JSON 序列化和 postMessage) */
9
- series: Record<number, (number | undefined)[]>;
10
- /** 当前启用的周期列表(渲染器直接从此字段决定绘制哪些线) */
11
- enabledPeriods: number[];
12
- /** 视口内所有 MA 线的最低价(供 Y 轴刻度渲染器使用) */
13
- visibleMin: number;
14
- /** 视口内所有 MA 线的最高价 */
15
- visibleMax: number;
16
- }
17
- /**
18
- * MA 状态的 StateStore 键名
19
- * 格式:indicator:ma:main
20
- */
21
- export declare const MA_STATE_KEY: `indicator:${string}:${string}`;
22
- /**
23
- * 空数据占位状态
24
- * 消费者应检查 visibleMin > visibleMax 判断"无有效数据"
25
- */
26
- export declare const EMPTY_MA_STATE: MARenderState;
@@ -1,58 +0,0 @@
1
- import { BaseIndicatorState } from '../../plugin';
2
- import { MACDPoint } from './calculators';
3
- /**
4
- * MACD 调度器配置
5
- */
6
- export interface MACDSchedulerConfig {
7
- /** 快线周期(默认 12) */
8
- fastPeriod: number;
9
- /** 慢线周期(默认 26) */
10
- slowPeriod: number;
11
- /** DEA 周期(默认 9) */
12
- signalPeriod: number;
13
- /** 是否显示 DIF 线 */
14
- showDIF: boolean;
15
- /** 是否显示 DEA 线 */
16
- showDEA: boolean;
17
- /** 是否显示 MACD 柱 */
18
- showBAR: boolean;
19
- }
20
- /**
21
- * MACD 渲染器状态
22
- * 用 Record 而非 Map,兼容 JSON 序列化和 postMessage
23
- */
24
- export interface MACDRenderState extends BaseIndicatorState {
25
- /** MACD 系列数据,与 K 线数据同长度 */
26
- series: MACDPoint[];
27
- /** 配置参数 */
28
- params: MACDSchedulerConfig;
29
- /** 可视范围内的最小值 */
30
- visibleMin: number;
31
- /** 可视范围内的最大值 */
32
- visibleMax: number;
33
- /** 固定数值范围最小值 */
34
- valueMin: number;
35
- /** 固定数值范围最大值 */
36
- valueMax: number;
37
- /** 最新值 */
38
- latestValues?: {
39
- dif: number;
40
- dea: number;
41
- macd: number;
42
- };
43
- }
44
- /**
45
- * MACD State 的命名空间 key
46
- * 格式: indicator:macd:{paneId}
47
- */
48
- export declare const MACD_STATE_KEY = "indicator:macd";
49
- /**
50
- * 创建 MACD State Key
51
- * @param paneId pane ID,如 'sub_MACD'
52
- */
53
- export declare function createMACDStateKey(paneId: string): string;
54
- /**
55
- * 空 MACD State(哨兵值)
56
- * visibleMin > visibleMax 表示无有效数据
57
- */
58
- export declare const EMPTY_MACD_STATE: MACDRenderState;
@@ -1,16 +0,0 @@
1
- import { BaseIndicatorState } from '../../plugin';
2
- export interface MFIRenderState extends BaseIndicatorState {
3
- timestamp: number;
4
- series: (number | undefined)[];
5
- params: {
6
- period: number;
7
- showMFI: boolean;
8
- };
9
- valueMin: number;
10
- valueMax: number;
11
- visibleMin: number;
12
- visibleMax: number;
13
- }
14
- export declare const createMFIStateKey: (paneId: string) => `indicator:${string}:${string}`;
15
- export declare const DEFAULT_MFI_PERIOD = 14;
16
- export declare const EMPTY_MFI_STATE: MFIRenderState;
@@ -1,15 +0,0 @@
1
- import { BaseIndicatorState } from '../../plugin';
2
- export interface MOMRenderState extends BaseIndicatorState {
3
- timestamp: number;
4
- series: (number | undefined)[];
5
- params: {
6
- period: number;
7
- showMOM: boolean;
8
- };
9
- valueMin: number;
10
- valueMax: number;
11
- visibleMin: number;
12
- visibleMax: number;
13
- }
14
- export declare const createMOMStateKey: (paneId: string) => `indicator:${string}:${string}`;
15
- export declare const EMPTY_MOM_STATE: MOMRenderState;
@@ -1,14 +0,0 @@
1
- import { BaseIndicatorState } from '../../plugin';
2
- export interface OBVRenderState extends BaseIndicatorState {
3
- timestamp: number;
4
- series: (number | undefined)[];
5
- params: {
6
- showOBV: boolean;
7
- };
8
- valueMin: number;
9
- valueMax: number;
10
- visibleMin: number;
11
- visibleMax: number;
12
- }
13
- export declare const createOBVStateKey: (paneId: string) => `indicator:${string}:${string}`;
14
- export declare const EMPTY_OBV_STATE: OBVRenderState;
@@ -1,18 +0,0 @@
1
- import { BaseIndicatorState } from '../../plugin';
2
- export interface ParkinsonRenderState extends BaseIndicatorState {
3
- timestamp: number;
4
- series: (number | undefined)[];
5
- params: {
6
- period: number;
7
- annualizationFactor: number;
8
- showParkinson: boolean;
9
- };
10
- valueMin: number;
11
- valueMax: number;
12
- visibleMin: number;
13
- visibleMax: number;
14
- }
15
- export declare const createParkinsonStateKey: (paneId: string) => `indicator:${string}:${string}`;
16
- export declare const DEFAULT_PARKINSON_PERIOD = 20;
17
- export declare const DEFAULT_PARKINSON_ANNUALIZATION = 252;
18
- export declare const EMPTY_PARKINSON_STATE: ParkinsonRenderState;
@@ -1,29 +0,0 @@
1
- import { BaseIndicatorState } from '../../plugin';
2
- export interface PivotPoint {
3
- pp: number;
4
- r1: number;
5
- r2: number;
6
- r3: number;
7
- s1: number;
8
- s2: number;
9
- s3: number;
10
- }
11
- export interface PivotRenderState extends BaseIndicatorState {
12
- timestamp: number;
13
- series: (PivotPoint | undefined)[];
14
- params: {
15
- showPP: boolean;
16
- showR1: boolean;
17
- showR2: boolean;
18
- showR3: boolean;
19
- showS1: boolean;
20
- showS2: boolean;
21
- showS3: boolean;
22
- };
23
- valueMin: number;
24
- valueMax: number;
25
- visibleMin: number;
26
- visibleMax: number;
27
- }
28
- export declare const createPivotStateKey: (paneId: string) => `indicator:${string}:${string}`;
29
- export declare const EMPTY_PIVOT_STATE: PivotRenderState;
@@ -1,14 +0,0 @@
1
- import { BaseIndicatorState } from '../../plugin';
2
- export interface PVTRenderState extends BaseIndicatorState {
3
- timestamp: number;
4
- series: (number | undefined)[];
5
- params: {
6
- showPVT: boolean;
7
- };
8
- valueMin: number;
9
- valueMax: number;
10
- visibleMin: number;
11
- visibleMax: number;
12
- }
13
- export declare const createPVTStateKey: (paneId: string) => `indicator:${string}:${string}`;
14
- export declare const EMPTY_PVT_STATE: PVTRenderState;
@@ -1,16 +0,0 @@
1
- import { BaseIndicatorState } from '../../plugin';
2
- export interface ROCRenderState extends BaseIndicatorState {
3
- timestamp: number;
4
- series: (number | undefined)[];
5
- params: {
6
- period: number;
7
- showROC: boolean;
8
- };
9
- valueMin: number;
10
- valueMax: number;
11
- visibleMin: number;
12
- visibleMax: number;
13
- }
14
- export declare const createROCStateKey: (paneId: string) => `indicator:${string}:${string}`;
15
- export declare const DEFAULT_ROC_PERIOD = 12;
16
- export declare const EMPTY_ROC_STATE: ROCRenderState;