@363045841yyt/klinechart-core 0.7.3 → 0.7.5
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/controllers/index.d.ts +1 -0
- package/dist/controllers/index.d.ts.map +1 -1
- package/dist/controllers/index.js +1 -0
- package/dist/controllers/index.js.map +1 -1
- package/dist/engine/chart.d.ts +11 -19
- package/dist/engine/chart.d.ts.map +1 -1
- package/dist/engine/chart.js +92 -109
- package/dist/engine/chart.js.map +1 -1
- package/dist/engine/renderers/Indicator/indicatorData.d.ts +1 -0
- package/dist/engine/renderers/Indicator/indicatorData.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/indicatorData.js +1 -1
- package/dist/engine/renderers/Indicator/indicatorData.js.map +1 -1
- package/dist/engine/renderers/webgl/candleSurface.js +47 -47
- package/dist/engine/subPaneManager.d.ts +4 -0
- package/dist/engine/subPaneManager.d.ts.map +1 -1
- package/dist/engine/subPaneManager.js +13 -0
- package/dist/engine/subPaneManager.js.map +1 -1
- 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 +20 -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 +2803 -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 +442 -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,650 +1,650 @@
|
|
|
1
|
-
export interface ParamConfig {
|
|
2
|
-
key: string
|
|
3
|
-
label: string
|
|
4
|
-
type: 'number'
|
|
5
|
-
min?: number
|
|
6
|
-
max?: number
|
|
7
|
-
step?: number
|
|
8
|
-
default?: number
|
|
9
|
-
description?: string
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export interface Indicator {
|
|
13
|
-
id: string
|
|
14
|
-
label: string
|
|
15
|
-
name: string
|
|
16
|
-
pane: 'main' | 'sub'
|
|
17
|
-
description?: string
|
|
18
|
-
params?: ParamConfig[]
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const allIndicators: Indicator[] = [
|
|
22
|
-
{ id: 'MA', label: 'MA', name: '均线', pane: 'main' },
|
|
23
|
-
{
|
|
24
|
-
id: 'VOLUME',
|
|
25
|
-
label: 'VOL',
|
|
26
|
-
name: '成交量',
|
|
27
|
-
pane: 'sub',
|
|
28
|
-
description:
|
|
29
|
-
'成交量反映市场活跃度,柱状图显示每根K线的交易量。上涨时柱子为红色,下跌时为绿色。',
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
id: 'BOLL',
|
|
33
|
-
label: 'BOLL',
|
|
34
|
-
name: '布林带',
|
|
35
|
-
pane: 'main',
|
|
36
|
-
description:
|
|
37
|
-
'布林带由三条轨道线组成,用于判断价格的波动范围和趋势强度。价格触及上轨可能超买,触及下轨可能超卖。',
|
|
38
|
-
params: [
|
|
39
|
-
{
|
|
40
|
-
key: 'period',
|
|
41
|
-
label: '周期',
|
|
42
|
-
type: 'number',
|
|
43
|
-
min: 2,
|
|
44
|
-
max: 100,
|
|
45
|
-
step: 1,
|
|
46
|
-
default: 20,
|
|
47
|
-
description: '计算移动平均线的周期数,周期越长轨道越平滑',
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
key: 'multiplier',
|
|
51
|
-
label: '倍数',
|
|
52
|
-
type: 'number',
|
|
53
|
-
min: 0.1,
|
|
54
|
-
max: 5,
|
|
55
|
-
step: 0.1,
|
|
56
|
-
default: 2,
|
|
57
|
-
description: '标准差倍数,决定轨道宽度,通常为 2',
|
|
58
|
-
},
|
|
59
|
-
],
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
id: 'EXPMA',
|
|
63
|
-
label: 'EXPMA',
|
|
64
|
-
name: '指数平滑移动平均线',
|
|
65
|
-
pane: 'main',
|
|
66
|
-
description:
|
|
67
|
-
'EXPMA 对近期价格给予更高权重,比普通 MA 更敏感。快线上穿慢线为金叉看涨,下穿为死叉看跌。',
|
|
68
|
-
params: [
|
|
69
|
-
{
|
|
70
|
-
key: 'fastPeriod',
|
|
71
|
-
label: '快线',
|
|
72
|
-
type: 'number',
|
|
73
|
-
min: 2,
|
|
74
|
-
max: 100,
|
|
75
|
-
step: 1,
|
|
76
|
-
default: 12,
|
|
77
|
-
description: '快线周期,对价格变化更敏感',
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
key: 'slowPeriod',
|
|
81
|
-
label: '慢线',
|
|
82
|
-
type: 'number',
|
|
83
|
-
min: 2,
|
|
84
|
-
max: 200,
|
|
85
|
-
step: 1,
|
|
86
|
-
default: 50,
|
|
87
|
-
description: '慢线周期,用于判断趋势方向',
|
|
88
|
-
},
|
|
89
|
-
],
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
id: 'ENE',
|
|
93
|
-
label: 'ENE',
|
|
94
|
-
name: '轨道线',
|
|
95
|
-
pane: 'main',
|
|
96
|
-
description:
|
|
97
|
-
'ENE 轨道线由三条轨道组成,价格突破上轨可能超买,突破下轨可能超卖,适合判断震荡行情的买卖点。',
|
|
98
|
-
params: [
|
|
99
|
-
{
|
|
100
|
-
key: 'period',
|
|
101
|
-
label: '周期',
|
|
102
|
-
type: 'number',
|
|
103
|
-
min: 2,
|
|
104
|
-
max: 100,
|
|
105
|
-
step: 1,
|
|
106
|
-
default: 10,
|
|
107
|
-
description: '计算中轨的周期数',
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
key: 'deviation',
|
|
111
|
-
label: '偏离率',
|
|
112
|
-
type: 'number',
|
|
113
|
-
min: 1,
|
|
114
|
-
max: 30,
|
|
115
|
-
step: 0.5,
|
|
116
|
-
default: 11,
|
|
117
|
-
description: '轨道偏离率百分比,决定轨道宽度',
|
|
118
|
-
},
|
|
119
|
-
],
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
id: 'MACD',
|
|
123
|
-
label: 'MACD',
|
|
124
|
-
name: '指数平滑异同移动平均线',
|
|
125
|
-
pane: 'sub',
|
|
126
|
-
description:
|
|
127
|
-
'MACD 通过快慢均线的交叉判断趋势方向和动量。DIF 上穿 DEA 为金叉看涨,下穿为死叉看跌。',
|
|
128
|
-
params: [
|
|
129
|
-
{
|
|
130
|
-
key: 'fastPeriod',
|
|
131
|
-
label: '快线',
|
|
132
|
-
type: 'number',
|
|
133
|
-
min: 2,
|
|
134
|
-
max: 50,
|
|
135
|
-
step: 1,
|
|
136
|
-
default: 12,
|
|
137
|
-
description: '快线 EMA 周期,对价格变化更敏感',
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
key: 'slowPeriod',
|
|
141
|
-
label: '慢线',
|
|
142
|
-
type: 'number',
|
|
143
|
-
min: 2,
|
|
144
|
-
max: 100,
|
|
145
|
-
step: 1,
|
|
146
|
-
default: 26,
|
|
147
|
-
description: '慢线 EMA 周期,用于计算 DIF',
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
key: 'signalPeriod',
|
|
151
|
-
label: '信号',
|
|
152
|
-
type: 'number',
|
|
153
|
-
min: 2,
|
|
154
|
-
max: 50,
|
|
155
|
-
step: 1,
|
|
156
|
-
default: 9,
|
|
157
|
-
description: 'DEA 的 EMA 周期,用于生成买卖信号',
|
|
158
|
-
},
|
|
159
|
-
],
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
id: 'RSI',
|
|
163
|
-
label: 'RSI',
|
|
164
|
-
name: '相对强弱指标',
|
|
165
|
-
pane: 'sub',
|
|
166
|
-
description: 'RSI 衡量价格变动的速度和幅度,判断超买超卖状态。RSI > 70 超买,RSI < 30 超卖。',
|
|
167
|
-
params: [
|
|
168
|
-
{
|
|
169
|
-
key: 'period1',
|
|
170
|
-
label: '周期 1',
|
|
171
|
-
type: 'number',
|
|
172
|
-
min: 2,
|
|
173
|
-
max: 100,
|
|
174
|
-
step: 1,
|
|
175
|
-
default: 6,
|
|
176
|
-
description: '第一条 RSI 周期,通常为 6(快线)',
|
|
177
|
-
},
|
|
178
|
-
{
|
|
179
|
-
key: 'period2',
|
|
180
|
-
label: '周期 2',
|
|
181
|
-
type: 'number',
|
|
182
|
-
min: 2,
|
|
183
|
-
max: 100,
|
|
184
|
-
step: 1,
|
|
185
|
-
default: 12,
|
|
186
|
-
description: '第二条 RSI 周期,通常为 12(中线)',
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
key: 'period3',
|
|
190
|
-
label: '周期 3',
|
|
191
|
-
type: 'number',
|
|
192
|
-
min: 2,
|
|
193
|
-
max: 100,
|
|
194
|
-
step: 1,
|
|
195
|
-
default: 24,
|
|
196
|
-
description: '第三条 RSI 周期,通常为 24(慢线)',
|
|
197
|
-
},
|
|
198
|
-
],
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
id: 'CCI',
|
|
202
|
-
label: 'CCI',
|
|
203
|
-
name: '顺势指标',
|
|
204
|
-
pane: 'sub',
|
|
205
|
-
description:
|
|
206
|
-
'CCI 衡量价格与统计平均值的偏离程度。CCI > 100 超买,CCI < -100 超卖,适合捕捉趋势反转。',
|
|
207
|
-
params: [
|
|
208
|
-
{
|
|
209
|
-
key: 'period',
|
|
210
|
-
label: '周期',
|
|
211
|
-
type: 'number',
|
|
212
|
-
min: 2,
|
|
213
|
-
max: 100,
|
|
214
|
-
step: 1,
|
|
215
|
-
default: 14,
|
|
216
|
-
description: '计算周期,周期越短信号越灵敏',
|
|
217
|
-
},
|
|
218
|
-
],
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
id: 'STOCH',
|
|
222
|
-
label: 'STOCH',
|
|
223
|
-
name: '随机指标',
|
|
224
|
-
pane: 'sub',
|
|
225
|
-
description:
|
|
226
|
-
'KDJ 随机指标通过比较收盘价与价格区间判断超买超卖。K > 80 超买,K < 20 超卖,K 上穿 D 金叉。',
|
|
227
|
-
params: [
|
|
228
|
-
{
|
|
229
|
-
key: 'n',
|
|
230
|
-
label: 'K 周期',
|
|
231
|
-
type: 'number',
|
|
232
|
-
min: 2,
|
|
233
|
-
max: 100,
|
|
234
|
-
step: 1,
|
|
235
|
-
default: 9,
|
|
236
|
-
description: '计算 K 值的周期,统计 N 日内价格区间',
|
|
237
|
-
},
|
|
238
|
-
{
|
|
239
|
-
key: 'm',
|
|
240
|
-
label: 'D 周期',
|
|
241
|
-
type: 'number',
|
|
242
|
-
min: 1,
|
|
243
|
-
max: 50,
|
|
244
|
-
step: 1,
|
|
245
|
-
default: 3,
|
|
246
|
-
description: 'D 值是 K 的 M 日移动平均,使信号更平滑',
|
|
247
|
-
},
|
|
248
|
-
],
|
|
249
|
-
},
|
|
250
|
-
{
|
|
251
|
-
id: 'MOM',
|
|
252
|
-
label: 'MOM',
|
|
253
|
-
name: '动量指标',
|
|
254
|
-
pane: 'sub',
|
|
255
|
-
description:
|
|
256
|
-
'动量指标衡量价格变化的速度,MOM > 0 表示上涨动能,MOM < 0 表示下跌动能。适合判断趋势强度。',
|
|
257
|
-
params: [
|
|
258
|
-
{
|
|
259
|
-
key: 'period',
|
|
260
|
-
label: '周期',
|
|
261
|
-
type: 'number',
|
|
262
|
-
min: 2,
|
|
263
|
-
max: 100,
|
|
264
|
-
step: 1,
|
|
265
|
-
default: 10,
|
|
266
|
-
description: '与多少日前价格比较,周期越短越灵敏',
|
|
267
|
-
},
|
|
268
|
-
],
|
|
269
|
-
},
|
|
270
|
-
{
|
|
271
|
-
id: 'WMSR',
|
|
272
|
-
label: 'WMSR',
|
|
273
|
-
name: '威廉指标',
|
|
274
|
-
pane: 'sub',
|
|
275
|
-
description: '威廉指标衡量超买超卖程度,范围为 -100 到 0。WMSR > -20 超买,WMSR < -80 超卖。',
|
|
276
|
-
params: [
|
|
277
|
-
{
|
|
278
|
-
key: 'period',
|
|
279
|
-
label: '周期',
|
|
280
|
-
type: 'number',
|
|
281
|
-
min: 2,
|
|
282
|
-
max: 100,
|
|
283
|
-
step: 1,
|
|
284
|
-
default: 14,
|
|
285
|
-
description: '回溯周期,统计周期内最高最低价',
|
|
286
|
-
},
|
|
287
|
-
],
|
|
288
|
-
},
|
|
289
|
-
{
|
|
290
|
-
id: 'KST',
|
|
291
|
-
label: 'KST',
|
|
292
|
-
name: '确然指标',
|
|
293
|
-
pane: 'sub',
|
|
294
|
-
description:
|
|
295
|
-
'KST 综合多个 ROC 判断长期趋势,KST 上穿信号线看涨,下穿看跌。适合捕捉主要趋势转换。',
|
|
296
|
-
params: [
|
|
297
|
-
{
|
|
298
|
-
key: 'roc1',
|
|
299
|
-
label: 'ROC1',
|
|
300
|
-
type: 'number',
|
|
301
|
-
min: 2,
|
|
302
|
-
max: 100,
|
|
303
|
-
step: 1,
|
|
304
|
-
default: 10,
|
|
305
|
-
description: '短期变化率周期',
|
|
306
|
-
},
|
|
307
|
-
{
|
|
308
|
-
key: 'roc2',
|
|
309
|
-
label: 'ROC2',
|
|
310
|
-
type: 'number',
|
|
311
|
-
min: 2,
|
|
312
|
-
max: 100,
|
|
313
|
-
step: 1,
|
|
314
|
-
default: 15,
|
|
315
|
-
description: '中短期变化率周期',
|
|
316
|
-
},
|
|
317
|
-
{
|
|
318
|
-
key: 'roc3',
|
|
319
|
-
label: 'ROC3',
|
|
320
|
-
type: 'number',
|
|
321
|
-
min: 2,
|
|
322
|
-
max: 100,
|
|
323
|
-
step: 1,
|
|
324
|
-
default: 20,
|
|
325
|
-
description: '中长期变化率周期',
|
|
326
|
-
},
|
|
327
|
-
{
|
|
328
|
-
key: 'roc4',
|
|
329
|
-
label: 'ROC4',
|
|
330
|
-
type: 'number',
|
|
331
|
-
min: 2,
|
|
332
|
-
max: 100,
|
|
333
|
-
step: 1,
|
|
334
|
-
default: 30,
|
|
335
|
-
description: '长期变化率周期',
|
|
336
|
-
},
|
|
337
|
-
{
|
|
338
|
-
key: 'signalPeriod',
|
|
339
|
-
label: '信号',
|
|
340
|
-
type: 'number',
|
|
341
|
-
min: 2,
|
|
342
|
-
max: 50,
|
|
343
|
-
step: 1,
|
|
344
|
-
default: 9,
|
|
345
|
-
description: '信号线的 SMA 周期',
|
|
346
|
-
},
|
|
347
|
-
],
|
|
348
|
-
},
|
|
349
|
-
{
|
|
350
|
-
id: 'FASTK',
|
|
351
|
-
label: 'FASTK',
|
|
352
|
-
name: '快速随机指标',
|
|
353
|
-
pane: 'sub',
|
|
354
|
-
description:
|
|
355
|
-
'FASTK 是未经过平滑处理的随机指标,比普通 KDJ 更敏感,能更快捕捉价格转折点,但假信号也更多。',
|
|
356
|
-
params: [
|
|
357
|
-
{
|
|
358
|
-
key: 'period',
|
|
359
|
-
label: '周期',
|
|
360
|
-
type: 'number',
|
|
361
|
-
min: 2,
|
|
362
|
-
max: 100,
|
|
363
|
-
step: 1,
|
|
364
|
-
default: 9,
|
|
365
|
-
description: '计算周期,周期越短越敏感',
|
|
366
|
-
},
|
|
367
|
-
],
|
|
368
|
-
},
|
|
369
|
-
{
|
|
370
|
-
id: 'ATR',
|
|
371
|
-
label: 'ATR',
|
|
372
|
-
name: '平均真实波幅',
|
|
373
|
-
pane: 'sub',
|
|
374
|
-
description:
|
|
375
|
-
'ATR(Average True Range)衡量市场波动性,值越大表示波动越剧烈。Wilder 平滑算法,常用于设置止损位和判断趋势强度。',
|
|
376
|
-
params: [
|
|
377
|
-
{
|
|
378
|
-
key: 'period',
|
|
379
|
-
label: '周期',
|
|
380
|
-
type: 'number',
|
|
381
|
-
min: 1,
|
|
382
|
-
max: 100,
|
|
383
|
-
step: 1,
|
|
384
|
-
default: 14,
|
|
385
|
-
description: 'ATR 计算周期,周期越长曲线越平滑',
|
|
386
|
-
},
|
|
387
|
-
],
|
|
388
|
-
},
|
|
389
|
-
// === PR 合入的新指标 ===
|
|
390
|
-
{
|
|
391
|
-
id: 'WMA',
|
|
392
|
-
label: 'WMA',
|
|
393
|
-
name: '加权移动平均',
|
|
394
|
-
pane: 'main',
|
|
395
|
-
description: 'WMA 对近期价格赋予更高权重,比普通 MA 反应更快,适用于短期趋势跟踪。',
|
|
396
|
-
params: [{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 10, description: '计算周期' }],
|
|
397
|
-
},
|
|
398
|
-
{
|
|
399
|
-
id: 'DEMA',
|
|
400
|
-
label: 'DEMA',
|
|
401
|
-
name: '双指数移动平均',
|
|
402
|
-
pane: 'main',
|
|
403
|
-
description: 'DEMA 通过双重平滑减少滞后,比传统 EMA 更贴近价格,适合快速趋势判断。',
|
|
404
|
-
params: [{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 14, description: '计算周期' }],
|
|
405
|
-
},
|
|
406
|
-
{
|
|
407
|
-
id: 'TEMA',
|
|
408
|
-
label: 'TEMA',
|
|
409
|
-
name: '三指数移动平均',
|
|
410
|
-
pane: 'main',
|
|
411
|
-
description: 'TEMA 三重平滑,滞后最小,响应最快,适合敏锐捕捉价格变化。',
|
|
412
|
-
params: [{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 14, description: '计算周期' }],
|
|
413
|
-
},
|
|
414
|
-
{
|
|
415
|
-
id: 'HMA',
|
|
416
|
-
label: 'HMA',
|
|
417
|
-
name: '赫尔移动平均',
|
|
418
|
-
pane: 'main',
|
|
419
|
-
description: 'HMA 通过加权移动平均和平方根计算,在平滑度和响应速度之间取得极佳平衡。',
|
|
420
|
-
params: [{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 14, description: '计算周期' }],
|
|
421
|
-
},
|
|
422
|
-
{
|
|
423
|
-
id: 'KAMA',
|
|
424
|
-
label: 'KAMA',
|
|
425
|
-
name: '考夫曼自适应移动平均',
|
|
426
|
-
pane: 'main',
|
|
427
|
-
description: 'KAMA 根据市场噪音自适应调整平滑度,趋势强时快速跟随,震荡时平滑过滤。',
|
|
428
|
-
params: [
|
|
429
|
-
{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 10, description: 'ER 计算周期' },
|
|
430
|
-
{ key: 'fastPeriod', label: '快线', type: 'number', min: 2, max: 30, step: 1, default: 2, description: '最快平滑系数' },
|
|
431
|
-
{ key: 'slowPeriod', label: '慢线', type: 'number', min: 2, max: 60, step: 1, default: 30, description: '最慢平滑系数' },
|
|
432
|
-
],
|
|
433
|
-
},
|
|
434
|
-
{
|
|
435
|
-
id: 'SAR',
|
|
436
|
-
label: 'SAR',
|
|
437
|
-
name: '抛物线转向',
|
|
438
|
-
pane: 'main',
|
|
439
|
-
description: 'SAR(Parabolic Stop and Reverse)通过抛物线轨迹跟踪趋势,提供动态止损和反转信号。',
|
|
440
|
-
params: [
|
|
441
|
-
{ key: 'step', label: '步长', type: 'number', min: 0.001, max: 0.1, step: 0.001, default: 0.02, description: '加速度步长' },
|
|
442
|
-
{ key: 'maxStep', label: '最大步长', type: 'number', min: 0.01, max: 0.5, step: 0.01, default: 0.2, description: '最大加速度上限' },
|
|
443
|
-
],
|
|
444
|
-
},
|
|
445
|
-
{
|
|
446
|
-
id: 'SUPERTREND',
|
|
447
|
-
label: 'ST',
|
|
448
|
-
name: '超级趋势',
|
|
449
|
-
pane: 'main',
|
|
450
|
-
description: 'SuperTrend 基于 ATR 的通道突破系统,价格在通道上方为多头趋势,下方为空头趋势。',
|
|
451
|
-
params: [
|
|
452
|
-
{ key: 'atrPeriod', label: 'ATR 周期', type: 'number', min: 2, max: 100, step: 1, default: 10, description: 'ATR 计算周期' },
|
|
453
|
-
{ key: 'multiplier', label: '倍数', type: 'number', min: 0.5, max: 10, step: 0.5, default: 3, description: 'ATR 倍数' },
|
|
454
|
-
],
|
|
455
|
-
},
|
|
456
|
-
{
|
|
457
|
-
id: 'KELTNER',
|
|
458
|
-
label: 'KC',
|
|
459
|
-
name: '肯特纳通道',
|
|
460
|
-
pane: 'main',
|
|
461
|
-
description: 'Keltner Channel 以 EMA 为中轨,ATR 倍数确定通道宽度,适合判断突破与回归。',
|
|
462
|
-
params: [
|
|
463
|
-
{ key: 'emaPeriod', label: 'EMA 周期', type: 'number', min: 2, max: 100, step: 1, default: 20, description: '中轨 EMA 周期' },
|
|
464
|
-
{ key: 'atrPeriod', label: 'ATR 周期', type: 'number', min: 2, max: 100, step: 1, default: 10, description: 'ATR 计算周期' },
|
|
465
|
-
{ key: 'multiplier', label: '倍数', type: 'number', min: 0.5, max: 10, step: 0.5, default: 2, description: 'ATR 倍数' },
|
|
466
|
-
],
|
|
467
|
-
},
|
|
468
|
-
{
|
|
469
|
-
id: 'DONCHIAN',
|
|
470
|
-
label: 'DC',
|
|
471
|
-
name: '唐奇安通道',
|
|
472
|
-
pane: 'main',
|
|
473
|
-
description: 'Donchian Channel 显示 N 日内最高价和最低价的通道,价格突破上下轨视为趋势信号。',
|
|
474
|
-
params: [{ key: 'period', label: '周期', type: 'number', min: 2, max: 200, step: 1, default: 20, description: '通道周期' }],
|
|
475
|
-
},
|
|
476
|
-
{
|
|
477
|
-
id: 'ICHIMOKU',
|
|
478
|
-
label: 'IK',
|
|
479
|
-
name: '一目均衡表',
|
|
480
|
-
pane: 'main',
|
|
481
|
-
description: 'Ichimoku Kinko Hyo(一目均衡表)综合显示支撑阻力、趋势方向和动量,云区变色提示趋势转换。',
|
|
482
|
-
params: [
|
|
483
|
-
{ key: 'tenkanPeriod', label: '转折线', type: 'number', min: 2, max: 100, step: 1, default: 9, description: 'Tenkan-sen 周期' },
|
|
484
|
-
{ key: 'kijunPeriod', label: '基准线', type: 'number', min: 2, max: 100, step: 1, default: 26, description: 'Kijun-sen 周期' },
|
|
485
|
-
{ key: 'spanBPeriod', label: '领先线 B', type: 'number', min: 2, max: 200, step: 1, default: 52, description: 'Senkou Span B 周期' },
|
|
486
|
-
{ key: 'displacement', label: '偏移', type: 'number', min: 1, max: 52, step: 1, default: 26, description: '偏移量' },
|
|
487
|
-
],
|
|
488
|
-
},
|
|
489
|
-
{
|
|
490
|
-
id: 'ROC',
|
|
491
|
-
label: 'ROC',
|
|
492
|
-
name: '变化率',
|
|
493
|
-
pane: 'sub',
|
|
494
|
-
description: 'ROC 衡量当前价格与 N 日前价格的百分比变化,正值表示上涨动能,负值表示下跌动能。',
|
|
495
|
-
params: [{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 12, description: 'ROC 周期' }],
|
|
496
|
-
},
|
|
497
|
-
{
|
|
498
|
-
id: 'TRIX',
|
|
499
|
-
label: 'TRIX',
|
|
500
|
-
name: '三重指数平滑平均',
|
|
501
|
-
pane: 'sub',
|
|
502
|
-
description: 'TRIX 三平滑后取 ROC,过滤短期波动,上穿信号线为买入信号,下穿为卖出信号。',
|
|
503
|
-
params: [
|
|
504
|
-
{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 15, description: 'TRIX 周期' },
|
|
505
|
-
{ key: 'signalPeriod', label: '信号', type: 'number', min: 2, max: 50, step: 1, default: 9, description: '信号线周期' },
|
|
506
|
-
],
|
|
507
|
-
},
|
|
508
|
-
{
|
|
509
|
-
id: 'HV',
|
|
510
|
-
label: 'HV',
|
|
511
|
-
name: '历史波动率',
|
|
512
|
-
pane: 'sub',
|
|
513
|
-
description: 'HV 衡量过去 N 日对数收益率的年化标准差,值越高表示市场波动越大。',
|
|
514
|
-
params: [
|
|
515
|
-
{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 20, description: '计算周期' },
|
|
516
|
-
{ key: 'annualizationFactor', label: '年化因子', type: 'number', min: 1, max: 365, step: 1, default: 252, description: '年化天数' },
|
|
517
|
-
],
|
|
518
|
-
},
|
|
519
|
-
{
|
|
520
|
-
id: 'PARKINSON',
|
|
521
|
-
label: 'PK',
|
|
522
|
-
name: '帕金森波动率',
|
|
523
|
-
pane: 'sub',
|
|
524
|
-
description: 'Parkinson 利用最高最低价估算波动率,比 HV 更高效,捕捉日内波动范围。',
|
|
525
|
-
params: [
|
|
526
|
-
{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 20, description: '计算周期' },
|
|
527
|
-
{ key: 'annualizationFactor', label: '年化因子', type: 'number', min: 1, max: 365, step: 1, default: 252, description: '年化天数' },
|
|
528
|
-
],
|
|
529
|
-
},
|
|
530
|
-
{
|
|
531
|
-
id: 'CHAIKIN_VOL',
|
|
532
|
-
label: 'CV',
|
|
533
|
-
name: '蔡金波动率',
|
|
534
|
-
pane: 'sub',
|
|
535
|
-
description: 'Chaikin Volatility 衡量价格区间的宽度变化,波动率扩张预示突破,收缩预示盘整。',
|
|
536
|
-
params: [
|
|
537
|
-
{ key: 'emaPeriod', label: 'EMA 周期', type: 'number', min: 2, max: 100, step: 1, default: 10, description: '平滑周期' },
|
|
538
|
-
{ key: 'rocPeriod', label: 'ROC 周期', type: 'number', min: 2, max: 100, step: 1, default: 10, description: '变化率周期' },
|
|
539
|
-
],
|
|
540
|
-
},
|
|
541
|
-
{
|
|
542
|
-
id: 'VMA',
|
|
543
|
-
label: 'VMA',
|
|
544
|
-
name: '成交量移动平均',
|
|
545
|
-
pane: 'sub',
|
|
546
|
-
description: 'VMA 对成交量做移动平均,量能上升确认趋势,量能萎缩预示反转。',
|
|
547
|
-
params: [{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 5, description: 'VMA 周期' }],
|
|
548
|
-
},
|
|
549
|
-
{
|
|
550
|
-
id: 'OBV',
|
|
551
|
-
label: 'OBV',
|
|
552
|
-
name: '能量潮',
|
|
553
|
-
pane: 'sub',
|
|
554
|
-
description: 'OBV 累积量能,价格上涨时加量,下跌时减量。OBV 趋势与价格背离常预示反转。',
|
|
555
|
-
params: [],
|
|
556
|
-
},
|
|
557
|
-
{
|
|
558
|
-
id: 'PVT',
|
|
559
|
-
label: 'PVT',
|
|
560
|
-
name: '价量趋势',
|
|
561
|
-
pane: 'sub',
|
|
562
|
-
description: 'PVT 将成交量按价格变化率加权累计,比 OBV 更精细,反映资金流入流出力度。',
|
|
563
|
-
params: [],
|
|
564
|
-
},
|
|
565
|
-
{
|
|
566
|
-
id: 'VWAP',
|
|
567
|
-
label: 'VWAP',
|
|
568
|
-
name: '成交量加权均价',
|
|
569
|
-
pane: 'sub',
|
|
570
|
-
description: 'VWAP(Volume-Weighted Average Price)以成交量加权的均价线,机构常用作日内交易基准。',
|
|
571
|
-
params: [{ key: 'sessionResetGapMs', label: '重置间隔', type: 'number', min: 0, max: 86400000, step: 3600000, default: 0, description: '0=不重置,>0=超过间隔毫秒重置' }],
|
|
572
|
-
},
|
|
573
|
-
{
|
|
574
|
-
id: 'CMF',
|
|
575
|
-
label: 'CMF',
|
|
576
|
-
name: '蔡金资金流',
|
|
577
|
-
pane: 'sub',
|
|
578
|
-
description: 'CMF(Chaikin Money Flow)衡量资金流入流出强度,正值看涨,负值看跌。',
|
|
579
|
-
params: [{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 20, description: 'CMF 周期' }],
|
|
580
|
-
},
|
|
581
|
-
{
|
|
582
|
-
id: 'MFI',
|
|
583
|
-
label: 'MFI',
|
|
584
|
-
name: '资金流量指数',
|
|
585
|
-
pane: 'sub',
|
|
586
|
-
description: 'MFI(Money Flow Index)类似 RSI 但用量能加权,判断超买超卖。MFI > 80 超买,MFI < 20 超卖。',
|
|
587
|
-
params: [{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 14, description: 'MFI 周期' }],
|
|
588
|
-
},
|
|
589
|
-
{
|
|
590
|
-
id: 'PIVOT',
|
|
591
|
-
label: 'PP',
|
|
592
|
-
name: '枢轴点',
|
|
593
|
-
pane: 'main',
|
|
594
|
-
description: 'Pivot Points 根据前日最高/最低/收盘计算支撑阻力位,R1-R3 为阻力,S1-S3 为支撑。',
|
|
595
|
-
params: [],
|
|
596
|
-
},
|
|
597
|
-
{
|
|
598
|
-
id: 'FIB',
|
|
599
|
-
label: 'FIB',
|
|
600
|
-
name: '斐波那契',
|
|
601
|
-
pane: 'main',
|
|
602
|
-
description: 'Fibonacci 回调线标记关键回撤位(0.236/0.382/0.5/0.618/0.786),用于判断回调目标。',
|
|
603
|
-
params: [{ key: 'period', label: '周期', type: 'number', min: 5, max: 500, step: 1, default: 50, description: '计算周期' }],
|
|
604
|
-
},
|
|
605
|
-
{
|
|
606
|
-
id: 'STRUCTURE',
|
|
607
|
-
label: 'SMC',
|
|
608
|
-
name: 'SMC 结构',
|
|
609
|
-
pane: 'main',
|
|
610
|
-
description: 'Swing / BOS / CHOCH 识别市场结构转换,突破结构(BOS)确认趋势,趋势反转(CHOCH)提示反转。',
|
|
611
|
-
params: [
|
|
612
|
-
{ key: 'leftWindow', label: '左窗口', type: 'number', min: 1, max: 20, step: 1, default: 2, description: '摆点左侧 K 线数' },
|
|
613
|
-
{ key: 'rightWindow', label: '右窗口', type: 'number', min: 1, max: 20, step: 1, default: 2, description: '摆点右侧 K 线数' },
|
|
614
|
-
],
|
|
615
|
-
},
|
|
616
|
-
{
|
|
617
|
-
id: 'ZONES',
|
|
618
|
-
label: 'ZONES',
|
|
619
|
-
name: 'SMC 区域',
|
|
620
|
-
pane: 'main',
|
|
621
|
-
description: 'FVG(公允价值缺口)和 Order Block(订单块)识别机构交易行为中的关键流动性区域。',
|
|
622
|
-
params: [
|
|
623
|
-
{ key: 'obLookback', label: 'OB 回溯', type: 'number', min: 1, max: 50, step: 1, default: 5, description: 'Order Block 回溯窗口' },
|
|
624
|
-
],
|
|
625
|
-
},
|
|
626
|
-
{
|
|
627
|
-
id: 'VOLUME_PROFILE',
|
|
628
|
-
label: 'VP',
|
|
629
|
-
name: '成交量分布',
|
|
630
|
-
pane: 'sub',
|
|
631
|
-
description: 'Volume Profile 显示各价位成交量分布,识别高量区域(价值区)和低量区域(缺口),POC 为成交量最大价位。',
|
|
632
|
-
params: [
|
|
633
|
-
{ key: 'bins', label: '分箱数', type: 'number', min: 5, max: 100, step: 1, default: 24, description: '价格分箱数' },
|
|
634
|
-
{ key: 'lookback', label: '回溯', type: 'number', min: 0, max: 500, step: 1, default: 0, description: '0=全部数据' },
|
|
635
|
-
{ key: 'valueAreaPercent', label: '价值区%', type: 'number', min: 0.1, max: 1, step: 0.05, default: 0.7, description: '价值区占比' },
|
|
636
|
-
],
|
|
637
|
-
},
|
|
638
|
-
]
|
|
639
|
-
|
|
640
|
-
export const mainIndicators = allIndicators.filter((i) => i.pane === 'main')
|
|
641
|
-
export const subIndicators = allIndicators.filter((i) => i.pane === 'sub')
|
|
642
|
-
|
|
643
|
-
export function findIndicator(id: string): Indicator | undefined {
|
|
644
|
-
return allIndicators.find((i) => i.id === id)
|
|
645
|
-
}
|
|
646
|
-
|
|
647
|
-
export function isSubIndicatorId(id: string): boolean {
|
|
648
|
-
const indicator = allIndicators.find((i) => i.id === id)
|
|
649
|
-
return indicator?.pane === 'sub'
|
|
650
|
-
}
|
|
1
|
+
export interface ParamConfig {
|
|
2
|
+
key: string
|
|
3
|
+
label: string
|
|
4
|
+
type: 'number'
|
|
5
|
+
min?: number
|
|
6
|
+
max?: number
|
|
7
|
+
step?: number
|
|
8
|
+
default?: number
|
|
9
|
+
description?: string
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface Indicator {
|
|
13
|
+
id: string
|
|
14
|
+
label: string
|
|
15
|
+
name: string
|
|
16
|
+
pane: 'main' | 'sub'
|
|
17
|
+
description?: string
|
|
18
|
+
params?: ParamConfig[]
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const allIndicators: Indicator[] = [
|
|
22
|
+
{ id: 'MA', label: 'MA', name: '均线', pane: 'main' },
|
|
23
|
+
{
|
|
24
|
+
id: 'VOLUME',
|
|
25
|
+
label: 'VOL',
|
|
26
|
+
name: '成交量',
|
|
27
|
+
pane: 'sub',
|
|
28
|
+
description:
|
|
29
|
+
'成交量反映市场活跃度,柱状图显示每根K线的交易量。上涨时柱子为红色,下跌时为绿色。',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: 'BOLL',
|
|
33
|
+
label: 'BOLL',
|
|
34
|
+
name: '布林带',
|
|
35
|
+
pane: 'main',
|
|
36
|
+
description:
|
|
37
|
+
'布林带由三条轨道线组成,用于判断价格的波动范围和趋势强度。价格触及上轨可能超买,触及下轨可能超卖。',
|
|
38
|
+
params: [
|
|
39
|
+
{
|
|
40
|
+
key: 'period',
|
|
41
|
+
label: '周期',
|
|
42
|
+
type: 'number',
|
|
43
|
+
min: 2,
|
|
44
|
+
max: 100,
|
|
45
|
+
step: 1,
|
|
46
|
+
default: 20,
|
|
47
|
+
description: '计算移动平均线的周期数,周期越长轨道越平滑',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
key: 'multiplier',
|
|
51
|
+
label: '倍数',
|
|
52
|
+
type: 'number',
|
|
53
|
+
min: 0.1,
|
|
54
|
+
max: 5,
|
|
55
|
+
step: 0.1,
|
|
56
|
+
default: 2,
|
|
57
|
+
description: '标准差倍数,决定轨道宽度,通常为 2',
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: 'EXPMA',
|
|
63
|
+
label: 'EXPMA',
|
|
64
|
+
name: '指数平滑移动平均线',
|
|
65
|
+
pane: 'main',
|
|
66
|
+
description:
|
|
67
|
+
'EXPMA 对近期价格给予更高权重,比普通 MA 更敏感。快线上穿慢线为金叉看涨,下穿为死叉看跌。',
|
|
68
|
+
params: [
|
|
69
|
+
{
|
|
70
|
+
key: 'fastPeriod',
|
|
71
|
+
label: '快线',
|
|
72
|
+
type: 'number',
|
|
73
|
+
min: 2,
|
|
74
|
+
max: 100,
|
|
75
|
+
step: 1,
|
|
76
|
+
default: 12,
|
|
77
|
+
description: '快线周期,对价格变化更敏感',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
key: 'slowPeriod',
|
|
81
|
+
label: '慢线',
|
|
82
|
+
type: 'number',
|
|
83
|
+
min: 2,
|
|
84
|
+
max: 200,
|
|
85
|
+
step: 1,
|
|
86
|
+
default: 50,
|
|
87
|
+
description: '慢线周期,用于判断趋势方向',
|
|
88
|
+
},
|
|
89
|
+
],
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
id: 'ENE',
|
|
93
|
+
label: 'ENE',
|
|
94
|
+
name: '轨道线',
|
|
95
|
+
pane: 'main',
|
|
96
|
+
description:
|
|
97
|
+
'ENE 轨道线由三条轨道组成,价格突破上轨可能超买,突破下轨可能超卖,适合判断震荡行情的买卖点。',
|
|
98
|
+
params: [
|
|
99
|
+
{
|
|
100
|
+
key: 'period',
|
|
101
|
+
label: '周期',
|
|
102
|
+
type: 'number',
|
|
103
|
+
min: 2,
|
|
104
|
+
max: 100,
|
|
105
|
+
step: 1,
|
|
106
|
+
default: 10,
|
|
107
|
+
description: '计算中轨的周期数',
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
key: 'deviation',
|
|
111
|
+
label: '偏离率',
|
|
112
|
+
type: 'number',
|
|
113
|
+
min: 1,
|
|
114
|
+
max: 30,
|
|
115
|
+
step: 0.5,
|
|
116
|
+
default: 11,
|
|
117
|
+
description: '轨道偏离率百分比,决定轨道宽度',
|
|
118
|
+
},
|
|
119
|
+
],
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
id: 'MACD',
|
|
123
|
+
label: 'MACD',
|
|
124
|
+
name: '指数平滑异同移动平均线',
|
|
125
|
+
pane: 'sub',
|
|
126
|
+
description:
|
|
127
|
+
'MACD 通过快慢均线的交叉判断趋势方向和动量。DIF 上穿 DEA 为金叉看涨,下穿为死叉看跌。',
|
|
128
|
+
params: [
|
|
129
|
+
{
|
|
130
|
+
key: 'fastPeriod',
|
|
131
|
+
label: '快线',
|
|
132
|
+
type: 'number',
|
|
133
|
+
min: 2,
|
|
134
|
+
max: 50,
|
|
135
|
+
step: 1,
|
|
136
|
+
default: 12,
|
|
137
|
+
description: '快线 EMA 周期,对价格变化更敏感',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
key: 'slowPeriod',
|
|
141
|
+
label: '慢线',
|
|
142
|
+
type: 'number',
|
|
143
|
+
min: 2,
|
|
144
|
+
max: 100,
|
|
145
|
+
step: 1,
|
|
146
|
+
default: 26,
|
|
147
|
+
description: '慢线 EMA 周期,用于计算 DIF',
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
key: 'signalPeriod',
|
|
151
|
+
label: '信号',
|
|
152
|
+
type: 'number',
|
|
153
|
+
min: 2,
|
|
154
|
+
max: 50,
|
|
155
|
+
step: 1,
|
|
156
|
+
default: 9,
|
|
157
|
+
description: 'DEA 的 EMA 周期,用于生成买卖信号',
|
|
158
|
+
},
|
|
159
|
+
],
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
id: 'RSI',
|
|
163
|
+
label: 'RSI',
|
|
164
|
+
name: '相对强弱指标',
|
|
165
|
+
pane: 'sub',
|
|
166
|
+
description: 'RSI 衡量价格变动的速度和幅度,判断超买超卖状态。RSI > 70 超买,RSI < 30 超卖。',
|
|
167
|
+
params: [
|
|
168
|
+
{
|
|
169
|
+
key: 'period1',
|
|
170
|
+
label: '周期 1',
|
|
171
|
+
type: 'number',
|
|
172
|
+
min: 2,
|
|
173
|
+
max: 100,
|
|
174
|
+
step: 1,
|
|
175
|
+
default: 6,
|
|
176
|
+
description: '第一条 RSI 周期,通常为 6(快线)',
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
key: 'period2',
|
|
180
|
+
label: '周期 2',
|
|
181
|
+
type: 'number',
|
|
182
|
+
min: 2,
|
|
183
|
+
max: 100,
|
|
184
|
+
step: 1,
|
|
185
|
+
default: 12,
|
|
186
|
+
description: '第二条 RSI 周期,通常为 12(中线)',
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
key: 'period3',
|
|
190
|
+
label: '周期 3',
|
|
191
|
+
type: 'number',
|
|
192
|
+
min: 2,
|
|
193
|
+
max: 100,
|
|
194
|
+
step: 1,
|
|
195
|
+
default: 24,
|
|
196
|
+
description: '第三条 RSI 周期,通常为 24(慢线)',
|
|
197
|
+
},
|
|
198
|
+
],
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
id: 'CCI',
|
|
202
|
+
label: 'CCI',
|
|
203
|
+
name: '顺势指标',
|
|
204
|
+
pane: 'sub',
|
|
205
|
+
description:
|
|
206
|
+
'CCI 衡量价格与统计平均值的偏离程度。CCI > 100 超买,CCI < -100 超卖,适合捕捉趋势反转。',
|
|
207
|
+
params: [
|
|
208
|
+
{
|
|
209
|
+
key: 'period',
|
|
210
|
+
label: '周期',
|
|
211
|
+
type: 'number',
|
|
212
|
+
min: 2,
|
|
213
|
+
max: 100,
|
|
214
|
+
step: 1,
|
|
215
|
+
default: 14,
|
|
216
|
+
description: '计算周期,周期越短信号越灵敏',
|
|
217
|
+
},
|
|
218
|
+
],
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
id: 'STOCH',
|
|
222
|
+
label: 'STOCH',
|
|
223
|
+
name: '随机指标',
|
|
224
|
+
pane: 'sub',
|
|
225
|
+
description:
|
|
226
|
+
'KDJ 随机指标通过比较收盘价与价格区间判断超买超卖。K > 80 超买,K < 20 超卖,K 上穿 D 金叉。',
|
|
227
|
+
params: [
|
|
228
|
+
{
|
|
229
|
+
key: 'n',
|
|
230
|
+
label: 'K 周期',
|
|
231
|
+
type: 'number',
|
|
232
|
+
min: 2,
|
|
233
|
+
max: 100,
|
|
234
|
+
step: 1,
|
|
235
|
+
default: 9,
|
|
236
|
+
description: '计算 K 值的周期,统计 N 日内价格区间',
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
key: 'm',
|
|
240
|
+
label: 'D 周期',
|
|
241
|
+
type: 'number',
|
|
242
|
+
min: 1,
|
|
243
|
+
max: 50,
|
|
244
|
+
step: 1,
|
|
245
|
+
default: 3,
|
|
246
|
+
description: 'D 值是 K 的 M 日移动平均,使信号更平滑',
|
|
247
|
+
},
|
|
248
|
+
],
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
id: 'MOM',
|
|
252
|
+
label: 'MOM',
|
|
253
|
+
name: '动量指标',
|
|
254
|
+
pane: 'sub',
|
|
255
|
+
description:
|
|
256
|
+
'动量指标衡量价格变化的速度,MOM > 0 表示上涨动能,MOM < 0 表示下跌动能。适合判断趋势强度。',
|
|
257
|
+
params: [
|
|
258
|
+
{
|
|
259
|
+
key: 'period',
|
|
260
|
+
label: '周期',
|
|
261
|
+
type: 'number',
|
|
262
|
+
min: 2,
|
|
263
|
+
max: 100,
|
|
264
|
+
step: 1,
|
|
265
|
+
default: 10,
|
|
266
|
+
description: '与多少日前价格比较,周期越短越灵敏',
|
|
267
|
+
},
|
|
268
|
+
],
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
id: 'WMSR',
|
|
272
|
+
label: 'WMSR',
|
|
273
|
+
name: '威廉指标',
|
|
274
|
+
pane: 'sub',
|
|
275
|
+
description: '威廉指标衡量超买超卖程度,范围为 -100 到 0。WMSR > -20 超买,WMSR < -80 超卖。',
|
|
276
|
+
params: [
|
|
277
|
+
{
|
|
278
|
+
key: 'period',
|
|
279
|
+
label: '周期',
|
|
280
|
+
type: 'number',
|
|
281
|
+
min: 2,
|
|
282
|
+
max: 100,
|
|
283
|
+
step: 1,
|
|
284
|
+
default: 14,
|
|
285
|
+
description: '回溯周期,统计周期内最高最低价',
|
|
286
|
+
},
|
|
287
|
+
],
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
id: 'KST',
|
|
291
|
+
label: 'KST',
|
|
292
|
+
name: '确然指标',
|
|
293
|
+
pane: 'sub',
|
|
294
|
+
description:
|
|
295
|
+
'KST 综合多个 ROC 判断长期趋势,KST 上穿信号线看涨,下穿看跌。适合捕捉主要趋势转换。',
|
|
296
|
+
params: [
|
|
297
|
+
{
|
|
298
|
+
key: 'roc1',
|
|
299
|
+
label: 'ROC1',
|
|
300
|
+
type: 'number',
|
|
301
|
+
min: 2,
|
|
302
|
+
max: 100,
|
|
303
|
+
step: 1,
|
|
304
|
+
default: 10,
|
|
305
|
+
description: '短期变化率周期',
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
key: 'roc2',
|
|
309
|
+
label: 'ROC2',
|
|
310
|
+
type: 'number',
|
|
311
|
+
min: 2,
|
|
312
|
+
max: 100,
|
|
313
|
+
step: 1,
|
|
314
|
+
default: 15,
|
|
315
|
+
description: '中短期变化率周期',
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
key: 'roc3',
|
|
319
|
+
label: 'ROC3',
|
|
320
|
+
type: 'number',
|
|
321
|
+
min: 2,
|
|
322
|
+
max: 100,
|
|
323
|
+
step: 1,
|
|
324
|
+
default: 20,
|
|
325
|
+
description: '中长期变化率周期',
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
key: 'roc4',
|
|
329
|
+
label: 'ROC4',
|
|
330
|
+
type: 'number',
|
|
331
|
+
min: 2,
|
|
332
|
+
max: 100,
|
|
333
|
+
step: 1,
|
|
334
|
+
default: 30,
|
|
335
|
+
description: '长期变化率周期',
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
key: 'signalPeriod',
|
|
339
|
+
label: '信号',
|
|
340
|
+
type: 'number',
|
|
341
|
+
min: 2,
|
|
342
|
+
max: 50,
|
|
343
|
+
step: 1,
|
|
344
|
+
default: 9,
|
|
345
|
+
description: '信号线的 SMA 周期',
|
|
346
|
+
},
|
|
347
|
+
],
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
id: 'FASTK',
|
|
351
|
+
label: 'FASTK',
|
|
352
|
+
name: '快速随机指标',
|
|
353
|
+
pane: 'sub',
|
|
354
|
+
description:
|
|
355
|
+
'FASTK 是未经过平滑处理的随机指标,比普通 KDJ 更敏感,能更快捕捉价格转折点,但假信号也更多。',
|
|
356
|
+
params: [
|
|
357
|
+
{
|
|
358
|
+
key: 'period',
|
|
359
|
+
label: '周期',
|
|
360
|
+
type: 'number',
|
|
361
|
+
min: 2,
|
|
362
|
+
max: 100,
|
|
363
|
+
step: 1,
|
|
364
|
+
default: 9,
|
|
365
|
+
description: '计算周期,周期越短越敏感',
|
|
366
|
+
},
|
|
367
|
+
],
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
id: 'ATR',
|
|
371
|
+
label: 'ATR',
|
|
372
|
+
name: '平均真实波幅',
|
|
373
|
+
pane: 'sub',
|
|
374
|
+
description:
|
|
375
|
+
'ATR(Average True Range)衡量市场波动性,值越大表示波动越剧烈。Wilder 平滑算法,常用于设置止损位和判断趋势强度。',
|
|
376
|
+
params: [
|
|
377
|
+
{
|
|
378
|
+
key: 'period',
|
|
379
|
+
label: '周期',
|
|
380
|
+
type: 'number',
|
|
381
|
+
min: 1,
|
|
382
|
+
max: 100,
|
|
383
|
+
step: 1,
|
|
384
|
+
default: 14,
|
|
385
|
+
description: 'ATR 计算周期,周期越长曲线越平滑',
|
|
386
|
+
},
|
|
387
|
+
],
|
|
388
|
+
},
|
|
389
|
+
// === PR 合入的新指标 ===
|
|
390
|
+
{
|
|
391
|
+
id: 'WMA',
|
|
392
|
+
label: 'WMA',
|
|
393
|
+
name: '加权移动平均',
|
|
394
|
+
pane: 'main',
|
|
395
|
+
description: 'WMA 对近期价格赋予更高权重,比普通 MA 反应更快,适用于短期趋势跟踪。',
|
|
396
|
+
params: [{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 10, description: '计算周期' }],
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
id: 'DEMA',
|
|
400
|
+
label: 'DEMA',
|
|
401
|
+
name: '双指数移动平均',
|
|
402
|
+
pane: 'main',
|
|
403
|
+
description: 'DEMA 通过双重平滑减少滞后,比传统 EMA 更贴近价格,适合快速趋势判断。',
|
|
404
|
+
params: [{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 14, description: '计算周期' }],
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
id: 'TEMA',
|
|
408
|
+
label: 'TEMA',
|
|
409
|
+
name: '三指数移动平均',
|
|
410
|
+
pane: 'main',
|
|
411
|
+
description: 'TEMA 三重平滑,滞后最小,响应最快,适合敏锐捕捉价格变化。',
|
|
412
|
+
params: [{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 14, description: '计算周期' }],
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
id: 'HMA',
|
|
416
|
+
label: 'HMA',
|
|
417
|
+
name: '赫尔移动平均',
|
|
418
|
+
pane: 'main',
|
|
419
|
+
description: 'HMA 通过加权移动平均和平方根计算,在平滑度和响应速度之间取得极佳平衡。',
|
|
420
|
+
params: [{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 14, description: '计算周期' }],
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
id: 'KAMA',
|
|
424
|
+
label: 'KAMA',
|
|
425
|
+
name: '考夫曼自适应移动平均',
|
|
426
|
+
pane: 'main',
|
|
427
|
+
description: 'KAMA 根据市场噪音自适应调整平滑度,趋势强时快速跟随,震荡时平滑过滤。',
|
|
428
|
+
params: [
|
|
429
|
+
{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 10, description: 'ER 计算周期' },
|
|
430
|
+
{ key: 'fastPeriod', label: '快线', type: 'number', min: 2, max: 30, step: 1, default: 2, description: '最快平滑系数' },
|
|
431
|
+
{ key: 'slowPeriod', label: '慢线', type: 'number', min: 2, max: 60, step: 1, default: 30, description: '最慢平滑系数' },
|
|
432
|
+
],
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
id: 'SAR',
|
|
436
|
+
label: 'SAR',
|
|
437
|
+
name: '抛物线转向',
|
|
438
|
+
pane: 'main',
|
|
439
|
+
description: 'SAR(Parabolic Stop and Reverse)通过抛物线轨迹跟踪趋势,提供动态止损和反转信号。',
|
|
440
|
+
params: [
|
|
441
|
+
{ key: 'step', label: '步长', type: 'number', min: 0.001, max: 0.1, step: 0.001, default: 0.02, description: '加速度步长' },
|
|
442
|
+
{ key: 'maxStep', label: '最大步长', type: 'number', min: 0.01, max: 0.5, step: 0.01, default: 0.2, description: '最大加速度上限' },
|
|
443
|
+
],
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
id: 'SUPERTREND',
|
|
447
|
+
label: 'ST',
|
|
448
|
+
name: '超级趋势',
|
|
449
|
+
pane: 'main',
|
|
450
|
+
description: 'SuperTrend 基于 ATR 的通道突破系统,价格在通道上方为多头趋势,下方为空头趋势。',
|
|
451
|
+
params: [
|
|
452
|
+
{ key: 'atrPeriod', label: 'ATR 周期', type: 'number', min: 2, max: 100, step: 1, default: 10, description: 'ATR 计算周期' },
|
|
453
|
+
{ key: 'multiplier', label: '倍数', type: 'number', min: 0.5, max: 10, step: 0.5, default: 3, description: 'ATR 倍数' },
|
|
454
|
+
],
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
id: 'KELTNER',
|
|
458
|
+
label: 'KC',
|
|
459
|
+
name: '肯特纳通道',
|
|
460
|
+
pane: 'main',
|
|
461
|
+
description: 'Keltner Channel 以 EMA 为中轨,ATR 倍数确定通道宽度,适合判断突破与回归。',
|
|
462
|
+
params: [
|
|
463
|
+
{ key: 'emaPeriod', label: 'EMA 周期', type: 'number', min: 2, max: 100, step: 1, default: 20, description: '中轨 EMA 周期' },
|
|
464
|
+
{ key: 'atrPeriod', label: 'ATR 周期', type: 'number', min: 2, max: 100, step: 1, default: 10, description: 'ATR 计算周期' },
|
|
465
|
+
{ key: 'multiplier', label: '倍数', type: 'number', min: 0.5, max: 10, step: 0.5, default: 2, description: 'ATR 倍数' },
|
|
466
|
+
],
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
id: 'DONCHIAN',
|
|
470
|
+
label: 'DC',
|
|
471
|
+
name: '唐奇安通道',
|
|
472
|
+
pane: 'main',
|
|
473
|
+
description: 'Donchian Channel 显示 N 日内最高价和最低价的通道,价格突破上下轨视为趋势信号。',
|
|
474
|
+
params: [{ key: 'period', label: '周期', type: 'number', min: 2, max: 200, step: 1, default: 20, description: '通道周期' }],
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
id: 'ICHIMOKU',
|
|
478
|
+
label: 'IK',
|
|
479
|
+
name: '一目均衡表',
|
|
480
|
+
pane: 'main',
|
|
481
|
+
description: 'Ichimoku Kinko Hyo(一目均衡表)综合显示支撑阻力、趋势方向和动量,云区变色提示趋势转换。',
|
|
482
|
+
params: [
|
|
483
|
+
{ key: 'tenkanPeriod', label: '转折线', type: 'number', min: 2, max: 100, step: 1, default: 9, description: 'Tenkan-sen 周期' },
|
|
484
|
+
{ key: 'kijunPeriod', label: '基准线', type: 'number', min: 2, max: 100, step: 1, default: 26, description: 'Kijun-sen 周期' },
|
|
485
|
+
{ key: 'spanBPeriod', label: '领先线 B', type: 'number', min: 2, max: 200, step: 1, default: 52, description: 'Senkou Span B 周期' },
|
|
486
|
+
{ key: 'displacement', label: '偏移', type: 'number', min: 1, max: 52, step: 1, default: 26, description: '偏移量' },
|
|
487
|
+
],
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
id: 'ROC',
|
|
491
|
+
label: 'ROC',
|
|
492
|
+
name: '变化率',
|
|
493
|
+
pane: 'sub',
|
|
494
|
+
description: 'ROC 衡量当前价格与 N 日前价格的百分比变化,正值表示上涨动能,负值表示下跌动能。',
|
|
495
|
+
params: [{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 12, description: 'ROC 周期' }],
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
id: 'TRIX',
|
|
499
|
+
label: 'TRIX',
|
|
500
|
+
name: '三重指数平滑平均',
|
|
501
|
+
pane: 'sub',
|
|
502
|
+
description: 'TRIX 三平滑后取 ROC,过滤短期波动,上穿信号线为买入信号,下穿为卖出信号。',
|
|
503
|
+
params: [
|
|
504
|
+
{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 15, description: 'TRIX 周期' },
|
|
505
|
+
{ key: 'signalPeriod', label: '信号', type: 'number', min: 2, max: 50, step: 1, default: 9, description: '信号线周期' },
|
|
506
|
+
],
|
|
507
|
+
},
|
|
508
|
+
{
|
|
509
|
+
id: 'HV',
|
|
510
|
+
label: 'HV',
|
|
511
|
+
name: '历史波动率',
|
|
512
|
+
pane: 'sub',
|
|
513
|
+
description: 'HV 衡量过去 N 日对数收益率的年化标准差,值越高表示市场波动越大。',
|
|
514
|
+
params: [
|
|
515
|
+
{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 20, description: '计算周期' },
|
|
516
|
+
{ key: 'annualizationFactor', label: '年化因子', type: 'number', min: 1, max: 365, step: 1, default: 252, description: '年化天数' },
|
|
517
|
+
],
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
id: 'PARKINSON',
|
|
521
|
+
label: 'PK',
|
|
522
|
+
name: '帕金森波动率',
|
|
523
|
+
pane: 'sub',
|
|
524
|
+
description: 'Parkinson 利用最高最低价估算波动率,比 HV 更高效,捕捉日内波动范围。',
|
|
525
|
+
params: [
|
|
526
|
+
{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 20, description: '计算周期' },
|
|
527
|
+
{ key: 'annualizationFactor', label: '年化因子', type: 'number', min: 1, max: 365, step: 1, default: 252, description: '年化天数' },
|
|
528
|
+
],
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
id: 'CHAIKIN_VOL',
|
|
532
|
+
label: 'CV',
|
|
533
|
+
name: '蔡金波动率',
|
|
534
|
+
pane: 'sub',
|
|
535
|
+
description: 'Chaikin Volatility 衡量价格区间的宽度变化,波动率扩张预示突破,收缩预示盘整。',
|
|
536
|
+
params: [
|
|
537
|
+
{ key: 'emaPeriod', label: 'EMA 周期', type: 'number', min: 2, max: 100, step: 1, default: 10, description: '平滑周期' },
|
|
538
|
+
{ key: 'rocPeriod', label: 'ROC 周期', type: 'number', min: 2, max: 100, step: 1, default: 10, description: '变化率周期' },
|
|
539
|
+
],
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
id: 'VMA',
|
|
543
|
+
label: 'VMA',
|
|
544
|
+
name: '成交量移动平均',
|
|
545
|
+
pane: 'sub',
|
|
546
|
+
description: 'VMA 对成交量做移动平均,量能上升确认趋势,量能萎缩预示反转。',
|
|
547
|
+
params: [{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 5, description: 'VMA 周期' }],
|
|
548
|
+
},
|
|
549
|
+
{
|
|
550
|
+
id: 'OBV',
|
|
551
|
+
label: 'OBV',
|
|
552
|
+
name: '能量潮',
|
|
553
|
+
pane: 'sub',
|
|
554
|
+
description: 'OBV 累积量能,价格上涨时加量,下跌时减量。OBV 趋势与价格背离常预示反转。',
|
|
555
|
+
params: [],
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
id: 'PVT',
|
|
559
|
+
label: 'PVT',
|
|
560
|
+
name: '价量趋势',
|
|
561
|
+
pane: 'sub',
|
|
562
|
+
description: 'PVT 将成交量按价格变化率加权累计,比 OBV 更精细,反映资金流入流出力度。',
|
|
563
|
+
params: [],
|
|
564
|
+
},
|
|
565
|
+
{
|
|
566
|
+
id: 'VWAP',
|
|
567
|
+
label: 'VWAP',
|
|
568
|
+
name: '成交量加权均价',
|
|
569
|
+
pane: 'sub',
|
|
570
|
+
description: 'VWAP(Volume-Weighted Average Price)以成交量加权的均价线,机构常用作日内交易基准。',
|
|
571
|
+
params: [{ key: 'sessionResetGapMs', label: '重置间隔', type: 'number', min: 0, max: 86400000, step: 3600000, default: 0, description: '0=不重置,>0=超过间隔毫秒重置' }],
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
id: 'CMF',
|
|
575
|
+
label: 'CMF',
|
|
576
|
+
name: '蔡金资金流',
|
|
577
|
+
pane: 'sub',
|
|
578
|
+
description: 'CMF(Chaikin Money Flow)衡量资金流入流出强度,正值看涨,负值看跌。',
|
|
579
|
+
params: [{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 20, description: 'CMF 周期' }],
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
id: 'MFI',
|
|
583
|
+
label: 'MFI',
|
|
584
|
+
name: '资金流量指数',
|
|
585
|
+
pane: 'sub',
|
|
586
|
+
description: 'MFI(Money Flow Index)类似 RSI 但用量能加权,判断超买超卖。MFI > 80 超买,MFI < 20 超卖。',
|
|
587
|
+
params: [{ key: 'period', label: '周期', type: 'number', min: 2, max: 100, step: 1, default: 14, description: 'MFI 周期' }],
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
id: 'PIVOT',
|
|
591
|
+
label: 'PP',
|
|
592
|
+
name: '枢轴点',
|
|
593
|
+
pane: 'main',
|
|
594
|
+
description: 'Pivot Points 根据前日最高/最低/收盘计算支撑阻力位,R1-R3 为阻力,S1-S3 为支撑。',
|
|
595
|
+
params: [],
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
id: 'FIB',
|
|
599
|
+
label: 'FIB',
|
|
600
|
+
name: '斐波那契',
|
|
601
|
+
pane: 'main',
|
|
602
|
+
description: 'Fibonacci 回调线标记关键回撤位(0.236/0.382/0.5/0.618/0.786),用于判断回调目标。',
|
|
603
|
+
params: [{ key: 'period', label: '周期', type: 'number', min: 5, max: 500, step: 1, default: 50, description: '计算周期' }],
|
|
604
|
+
},
|
|
605
|
+
{
|
|
606
|
+
id: 'STRUCTURE',
|
|
607
|
+
label: 'SMC',
|
|
608
|
+
name: 'SMC 结构',
|
|
609
|
+
pane: 'main',
|
|
610
|
+
description: 'Swing / BOS / CHOCH 识别市场结构转换,突破结构(BOS)确认趋势,趋势反转(CHOCH)提示反转。',
|
|
611
|
+
params: [
|
|
612
|
+
{ key: 'leftWindow', label: '左窗口', type: 'number', min: 1, max: 20, step: 1, default: 2, description: '摆点左侧 K 线数' },
|
|
613
|
+
{ key: 'rightWindow', label: '右窗口', type: 'number', min: 1, max: 20, step: 1, default: 2, description: '摆点右侧 K 线数' },
|
|
614
|
+
],
|
|
615
|
+
},
|
|
616
|
+
{
|
|
617
|
+
id: 'ZONES',
|
|
618
|
+
label: 'ZONES',
|
|
619
|
+
name: 'SMC 区域',
|
|
620
|
+
pane: 'main',
|
|
621
|
+
description: 'FVG(公允价值缺口)和 Order Block(订单块)识别机构交易行为中的关键流动性区域。',
|
|
622
|
+
params: [
|
|
623
|
+
{ key: 'obLookback', label: 'OB 回溯', type: 'number', min: 1, max: 50, step: 1, default: 5, description: 'Order Block 回溯窗口' },
|
|
624
|
+
],
|
|
625
|
+
},
|
|
626
|
+
{
|
|
627
|
+
id: 'VOLUME_PROFILE',
|
|
628
|
+
label: 'VP',
|
|
629
|
+
name: '成交量分布',
|
|
630
|
+
pane: 'sub',
|
|
631
|
+
description: 'Volume Profile 显示各价位成交量分布,识别高量区域(价值区)和低量区域(缺口),POC 为成交量最大价位。',
|
|
632
|
+
params: [
|
|
633
|
+
{ key: 'bins', label: '分箱数', type: 'number', min: 5, max: 100, step: 1, default: 24, description: '价格分箱数' },
|
|
634
|
+
{ key: 'lookback', label: '回溯', type: 'number', min: 0, max: 500, step: 1, default: 0, description: '0=全部数据' },
|
|
635
|
+
{ key: 'valueAreaPercent', label: '价值区%', type: 'number', min: 0.1, max: 1, step: 0.05, default: 0.7, description: '价值区占比' },
|
|
636
|
+
],
|
|
637
|
+
},
|
|
638
|
+
]
|
|
639
|
+
|
|
640
|
+
export const mainIndicators = allIndicators.filter((i) => i.pane === 'main')
|
|
641
|
+
export const subIndicators = allIndicators.filter((i) => i.pane === 'sub')
|
|
642
|
+
|
|
643
|
+
export function findIndicator(id: string): Indicator | undefined {
|
|
644
|
+
return allIndicators.find((i) => i.id === id)
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
export function isSubIndicatorId(id: string): boolean {
|
|
648
|
+
const indicator = allIndicators.find((i) => i.id === id)
|
|
649
|
+
return indicator?.pane === 'sub'
|
|
650
|
+
}
|