@363045841yyt/klinechart 0.6.9 → 0.7.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.
- package/README.md +1 -0
- package/dist/favicon.ico +0 -0
- package/dist/index.cjs +5 -5
- package/dist/index.js +8980 -2945
- package/dist/klinechart.css +1 -1
- package/dist/mock-stock-data.json +1 -0
- package/dist/src/api/data/baostock.d.ts +4 -0
- package/dist/src/components/IndicatorSelector.vue.d.ts +0 -10
- package/dist/src/components/KLineChart.vue.d.ts +1 -1
- package/dist/src/config/chartSettings.d.ts +6 -0
- package/dist/src/core/chart.d.ts +43 -10
- package/dist/src/core/controller/interaction.d.ts +2 -30
- package/dist/src/core/controller/markerInteraction.d.ts +28 -0
- package/dist/src/core/controller/pinchTracker.d.ts +18 -0
- package/dist/src/core/controller/tooltipPosition.d.ts +21 -0
- package/dist/src/core/drawing/plugin.d.ts +19 -0
- package/dist/src/core/indicators/atrState.d.ts +16 -0
- package/dist/src/core/indicators/calculators.d.ts +196 -0
- package/dist/src/core/indicators/chaikinVolState.d.ts +18 -0
- package/dist/src/core/indicators/cmfState.d.ts +16 -0
- package/dist/src/core/indicators/demaState.d.ts +16 -0
- package/dist/src/core/indicators/donchianState.d.ts +23 -0
- package/dist/src/core/indicators/fibState.d.ts +26 -0
- package/dist/src/core/indicators/hmaState.d.ts +16 -0
- package/dist/src/core/indicators/hvState.d.ts +18 -0
- package/dist/src/core/indicators/ichimokuState.d.ts +44 -0
- package/dist/src/core/indicators/indicatorRuntime.d.ts +55 -0
- package/dist/src/core/indicators/kamaState.d.ts +20 -0
- package/dist/src/core/indicators/keltnerState.d.ts +27 -0
- package/dist/src/core/indicators/mfiState.d.ts +16 -0
- package/dist/src/core/indicators/obvState.d.ts +14 -0
- package/dist/src/core/indicators/parkinsonState.d.ts +18 -0
- package/dist/src/core/indicators/pivotState.d.ts +29 -0
- package/dist/src/core/indicators/pvtState.d.ts +14 -0
- package/dist/src/core/indicators/rocState.d.ts +16 -0
- package/dist/src/core/indicators/sarState.d.ts +26 -0
- package/dist/src/core/indicators/scheduler.d.ts +100 -2
- package/dist/src/core/indicators/stateComposer.d.ts +81 -0
- package/dist/src/core/indicators/structureState.d.ts +43 -0
- package/dist/src/core/indicators/supertrendState.d.ts +22 -0
- package/dist/src/core/indicators/temaState.d.ts +16 -0
- package/dist/src/core/indicators/trixState.d.ts +20 -0
- package/dist/src/core/indicators/vmaState.d.ts +16 -0
- package/dist/src/core/indicators/volumeProfileState.d.ts +34 -0
- package/dist/src/core/indicators/vwapState.d.ts +16 -0
- package/dist/src/core/indicators/wmaState.d.ts +16 -0
- package/dist/src/core/indicators/workerProtocol.d.ts +308 -1
- package/dist/src/core/indicators/zonesState.d.ts +26 -0
- package/dist/src/core/paneRenderer.d.ts +3 -1
- package/dist/src/core/renderers/Indicator/atr.d.ts +17 -0
- package/dist/src/core/renderers/Indicator/chaikinVol.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/cmf.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/dema.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/donchian.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/fib.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/hma.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/hv.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/ichimoku.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/index.d.ts +28 -1
- package/dist/src/core/renderers/Indicator/indicatorData.d.ts +13 -0
- package/dist/src/core/renderers/Indicator/kama.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/keltner.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/mfi.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/obv.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/parkinson.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/pivot.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/pvt.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/roc.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/sar.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/scale/atr_scale.d.ts +11 -0
- package/dist/src/core/renderers/Indicator/structure.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/subPaneConfig.d.ts +9 -0
- package/dist/src/core/renderers/Indicator/supertrend.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/tema.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/trix.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/vma.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/volumeProfile.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/vwap.d.ts +4 -0
- package/dist/src/core/renderers/Indicator/wma.d.ts +5 -0
- package/dist/src/core/renderers/Indicator/zones.d.ts +4 -0
- package/dist/src/core/renderers/webgl/candleSurface.d.ts +16 -5
- package/dist/src/core/renderers/webgl/sharedWebGLSurface.d.ts +33 -0
- package/dist/src/core/subPaneManager.d.ts +22 -0
- package/dist/src/semantic/types.d.ts +95 -0
- package/dist/src/test-setup.d.ts +6 -0
- package/package.json +1 -1
- /package/dist/src/api/data/{baostock.test.d.ts → baostock.integration.test.d.ts} +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { BaseIndicatorState } from '../../plugin';
|
|
2
|
+
export interface VolumeProfileBin {
|
|
3
|
+
priceLow: number;
|
|
4
|
+
priceHigh: number;
|
|
5
|
+
volume: number;
|
|
6
|
+
}
|
|
7
|
+
export interface VolumeProfileResult {
|
|
8
|
+
bins: VolumeProfileBin[];
|
|
9
|
+
poc: number;
|
|
10
|
+
vah: number;
|
|
11
|
+
val: number;
|
|
12
|
+
totalVolume: number;
|
|
13
|
+
}
|
|
14
|
+
export interface VolumeProfileRenderState extends BaseIndicatorState {
|
|
15
|
+
timestamp: number;
|
|
16
|
+
series: VolumeProfileResult;
|
|
17
|
+
params: {
|
|
18
|
+
bins: number;
|
|
19
|
+
lookback: number;
|
|
20
|
+
valueAreaPercent: number;
|
|
21
|
+
showPOC: boolean;
|
|
22
|
+
showValueArea: boolean;
|
|
23
|
+
};
|
|
24
|
+
valueMin: number;
|
|
25
|
+
valueMax: number;
|
|
26
|
+
visibleMin: number;
|
|
27
|
+
visibleMax: number;
|
|
28
|
+
}
|
|
29
|
+
export declare const createVolumeProfileStateKey: (paneId: string) => `indicator:${string}:${string}`;
|
|
30
|
+
export declare const DEFAULT_VP_BINS = 24;
|
|
31
|
+
export declare const DEFAULT_VP_LOOKBACK = 0;
|
|
32
|
+
export declare const DEFAULT_VP_VALUE_AREA = 0.7;
|
|
33
|
+
export declare const EMPTY_VP_RESULT: VolumeProfileResult;
|
|
34
|
+
export declare const EMPTY_VOLUME_PROFILE_STATE: VolumeProfileRenderState;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BaseIndicatorState } from '../../plugin';
|
|
2
|
+
export interface VWAPRenderState extends BaseIndicatorState {
|
|
3
|
+
timestamp: number;
|
|
4
|
+
series: (number | undefined)[];
|
|
5
|
+
params: {
|
|
6
|
+
sessionResetGapMs: number;
|
|
7
|
+
showVWAP: boolean;
|
|
8
|
+
};
|
|
9
|
+
valueMin: number;
|
|
10
|
+
valueMax: number;
|
|
11
|
+
visibleMin: number;
|
|
12
|
+
visibleMax: number;
|
|
13
|
+
}
|
|
14
|
+
export declare const createVWAPStateKey: (paneId: string) => `indicator:${string}:${string}`;
|
|
15
|
+
export declare const DEFAULT_VWAP_SESSION_GAP_MS = 0;
|
|
16
|
+
export declare const EMPTY_VWAP_STATE: VWAPRenderState;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BaseIndicatorState } from '../../plugin';
|
|
2
|
+
export interface WMARenderState extends BaseIndicatorState {
|
|
3
|
+
timestamp: number;
|
|
4
|
+
series: (number | undefined)[];
|
|
5
|
+
params: {
|
|
6
|
+
period: number;
|
|
7
|
+
showWMA: boolean;
|
|
8
|
+
};
|
|
9
|
+
valueMin: number;
|
|
10
|
+
valueMax: number;
|
|
11
|
+
visibleMin: number;
|
|
12
|
+
visibleMax: number;
|
|
13
|
+
}
|
|
14
|
+
export declare const createWMAStateKey: (paneId: string) => `indicator:${string}:${string}`;
|
|
15
|
+
export declare const DEFAULT_WMA_PERIOD = 9;
|
|
16
|
+
export declare const EMPTY_WMA_STATE: WMARenderState;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { KLineData } from '../../types/price';
|
|
2
|
-
import { MAFlags, BOLLPoint, EXPMAPoint, ENEPoint, STOCHPoint, KSTPoint, MACDPoint } from './calculators';
|
|
2
|
+
import { MAFlags, BOLLPoint, EXPMAPoint, ENEPoint, STOCHPoint, KSTPoint, MACDPoint, SARPoint, SuperTrendPoint, KeltnerPoint, DonchianPoint, IchimokuPoint, PivotPoint, FibPoint, StructureSnapshot, Zone, VolumeProfileResult } from './calculators';
|
|
3
3
|
export interface BOLLSchedulerConfig {
|
|
4
4
|
period: number;
|
|
5
5
|
multiplier: number;
|
|
@@ -63,6 +63,150 @@ export interface MACDSchedulerConfig {
|
|
|
63
63
|
showDEA: boolean;
|
|
64
64
|
showBAR: boolean;
|
|
65
65
|
}
|
|
66
|
+
export interface ATRSchedulerConfig {
|
|
67
|
+
period: number;
|
|
68
|
+
showATR: boolean;
|
|
69
|
+
}
|
|
70
|
+
export interface WMASchedulerConfig {
|
|
71
|
+
period: number;
|
|
72
|
+
showWMA: boolean;
|
|
73
|
+
}
|
|
74
|
+
export interface DEMASchedulerConfig {
|
|
75
|
+
period: number;
|
|
76
|
+
showDEMA: boolean;
|
|
77
|
+
}
|
|
78
|
+
export interface TEMASchedulerConfig {
|
|
79
|
+
period: number;
|
|
80
|
+
showTEMA: boolean;
|
|
81
|
+
}
|
|
82
|
+
export interface HMASchedulerConfig {
|
|
83
|
+
period: number;
|
|
84
|
+
showHMA: boolean;
|
|
85
|
+
}
|
|
86
|
+
export interface KAMASchedulerConfig {
|
|
87
|
+
period: number;
|
|
88
|
+
fastPeriod: number;
|
|
89
|
+
slowPeriod: number;
|
|
90
|
+
showKAMA: boolean;
|
|
91
|
+
}
|
|
92
|
+
export interface SARSchedulerConfig {
|
|
93
|
+
step: number;
|
|
94
|
+
maxStep: number;
|
|
95
|
+
showSAR: boolean;
|
|
96
|
+
}
|
|
97
|
+
export interface SuperTrendSchedulerConfig {
|
|
98
|
+
atrPeriod: number;
|
|
99
|
+
multiplier: number;
|
|
100
|
+
showSuperTrend: boolean;
|
|
101
|
+
}
|
|
102
|
+
export interface KeltnerSchedulerConfig {
|
|
103
|
+
emaPeriod: number;
|
|
104
|
+
atrPeriod: number;
|
|
105
|
+
multiplier: number;
|
|
106
|
+
showUpper: boolean;
|
|
107
|
+
showMiddle: boolean;
|
|
108
|
+
showLower: boolean;
|
|
109
|
+
}
|
|
110
|
+
export interface DonchianSchedulerConfig {
|
|
111
|
+
period: number;
|
|
112
|
+
showUpper: boolean;
|
|
113
|
+
showMiddle: boolean;
|
|
114
|
+
showLower: boolean;
|
|
115
|
+
}
|
|
116
|
+
export interface IchimokuSchedulerConfig {
|
|
117
|
+
tenkanPeriod: number;
|
|
118
|
+
kijunPeriod: number;
|
|
119
|
+
spanBPeriod: number;
|
|
120
|
+
displacement: number;
|
|
121
|
+
showTenkan: boolean;
|
|
122
|
+
showKijun: boolean;
|
|
123
|
+
showSpanA: boolean;
|
|
124
|
+
showSpanB: boolean;
|
|
125
|
+
showCloud: boolean;
|
|
126
|
+
showChikou: boolean;
|
|
127
|
+
}
|
|
128
|
+
export interface ROCSchedulerConfig {
|
|
129
|
+
period: number;
|
|
130
|
+
showROC: boolean;
|
|
131
|
+
}
|
|
132
|
+
export interface TRIXSchedulerConfig {
|
|
133
|
+
period: number;
|
|
134
|
+
signalPeriod: number;
|
|
135
|
+
showTRIX: boolean;
|
|
136
|
+
showSignal: boolean;
|
|
137
|
+
}
|
|
138
|
+
export interface HVSchedulerConfig {
|
|
139
|
+
period: number;
|
|
140
|
+
annualizationFactor: number;
|
|
141
|
+
showHV: boolean;
|
|
142
|
+
}
|
|
143
|
+
export interface ParkinsonSchedulerConfig {
|
|
144
|
+
period: number;
|
|
145
|
+
annualizationFactor: number;
|
|
146
|
+
showParkinson: boolean;
|
|
147
|
+
}
|
|
148
|
+
export interface ChaikinVolSchedulerConfig {
|
|
149
|
+
emaPeriod: number;
|
|
150
|
+
rocPeriod: number;
|
|
151
|
+
showChaikinVol: boolean;
|
|
152
|
+
}
|
|
153
|
+
export interface VMASchedulerConfig {
|
|
154
|
+
period: number;
|
|
155
|
+
showVMA: boolean;
|
|
156
|
+
}
|
|
157
|
+
export interface OBVSchedulerConfig {
|
|
158
|
+
showOBV: boolean;
|
|
159
|
+
}
|
|
160
|
+
export interface PVTSchedulerConfig {
|
|
161
|
+
showPVT: boolean;
|
|
162
|
+
}
|
|
163
|
+
export interface VWAPSchedulerConfig {
|
|
164
|
+
sessionResetGapMs: number;
|
|
165
|
+
showVWAP: boolean;
|
|
166
|
+
}
|
|
167
|
+
export interface CMFSchedulerConfig {
|
|
168
|
+
period: number;
|
|
169
|
+
showCMF: boolean;
|
|
170
|
+
}
|
|
171
|
+
export interface MFISchedulerConfig {
|
|
172
|
+
period: number;
|
|
173
|
+
showMFI: boolean;
|
|
174
|
+
}
|
|
175
|
+
export interface PivotSchedulerConfig {
|
|
176
|
+
showPP: boolean;
|
|
177
|
+
showR1: boolean;
|
|
178
|
+
showR2: boolean;
|
|
179
|
+
showR3: boolean;
|
|
180
|
+
showS1: boolean;
|
|
181
|
+
showS2: boolean;
|
|
182
|
+
showS3: boolean;
|
|
183
|
+
}
|
|
184
|
+
export interface FibSchedulerConfig {
|
|
185
|
+
period: number;
|
|
186
|
+
showLevels: boolean;
|
|
187
|
+
}
|
|
188
|
+
export interface StructureSchedulerConfig {
|
|
189
|
+
leftWindow: number;
|
|
190
|
+
rightWindow: number;
|
|
191
|
+
breakoutSource: 'close' | 'wick';
|
|
192
|
+
showSwingLabels: boolean;
|
|
193
|
+
showBOS: boolean;
|
|
194
|
+
showCHOCH: boolean;
|
|
195
|
+
showProvisional: boolean;
|
|
196
|
+
}
|
|
197
|
+
export interface ZonesSchedulerConfig {
|
|
198
|
+
showFVG: boolean;
|
|
199
|
+
showOB: boolean;
|
|
200
|
+
showFilledZones: boolean;
|
|
201
|
+
obLookback: number;
|
|
202
|
+
}
|
|
203
|
+
export interface VolumeProfileSchedulerConfig {
|
|
204
|
+
bins: number;
|
|
205
|
+
lookback: number;
|
|
206
|
+
valueAreaPercent: number;
|
|
207
|
+
showPOC: boolean;
|
|
208
|
+
showValueArea: boolean;
|
|
209
|
+
}
|
|
66
210
|
export interface InitRequest {
|
|
67
211
|
type: 'init';
|
|
68
212
|
protocolVersion: number;
|
|
@@ -123,6 +267,33 @@ export interface IndicatorConfigSnapshot {
|
|
|
123
267
|
kst: KSTSchedulerConfig;
|
|
124
268
|
fastk: FASTKSchedulerConfig;
|
|
125
269
|
macd: MACDSchedulerConfig;
|
|
270
|
+
atr: ATRSchedulerConfig;
|
|
271
|
+
wma: WMASchedulerConfig;
|
|
272
|
+
dema: DEMASchedulerConfig;
|
|
273
|
+
tema: TEMASchedulerConfig;
|
|
274
|
+
hma: HMASchedulerConfig;
|
|
275
|
+
kama: KAMASchedulerConfig;
|
|
276
|
+
sar: SARSchedulerConfig;
|
|
277
|
+
supertrend: SuperTrendSchedulerConfig;
|
|
278
|
+
keltner: KeltnerSchedulerConfig;
|
|
279
|
+
donchian: DonchianSchedulerConfig;
|
|
280
|
+
ichimoku: IchimokuSchedulerConfig;
|
|
281
|
+
roc: ROCSchedulerConfig;
|
|
282
|
+
trix: TRIXSchedulerConfig;
|
|
283
|
+
hv: HVSchedulerConfig;
|
|
284
|
+
parkinson: ParkinsonSchedulerConfig;
|
|
285
|
+
chaikinVol: ChaikinVolSchedulerConfig;
|
|
286
|
+
vma: VMASchedulerConfig;
|
|
287
|
+
obv: OBVSchedulerConfig;
|
|
288
|
+
pvt: PVTSchedulerConfig;
|
|
289
|
+
vwap: VWAPSchedulerConfig;
|
|
290
|
+
cmf: CMFSchedulerConfig;
|
|
291
|
+
mfi: MFISchedulerConfig;
|
|
292
|
+
pivot: PivotSchedulerConfig;
|
|
293
|
+
fib: FibSchedulerConfig;
|
|
294
|
+
structure: StructureSchedulerConfig;
|
|
295
|
+
zones: ZonesSchedulerConfig;
|
|
296
|
+
volumeProfile: VolumeProfileSchedulerConfig;
|
|
126
297
|
rsiPaneId: string;
|
|
127
298
|
cciPaneId: string;
|
|
128
299
|
stochPaneId: string;
|
|
@@ -131,6 +302,33 @@ export interface IndicatorConfigSnapshot {
|
|
|
131
302
|
kstPaneId: string;
|
|
132
303
|
fastkPaneId: string;
|
|
133
304
|
macdPaneId: string;
|
|
305
|
+
atrPaneId: string;
|
|
306
|
+
wmaPaneId: string;
|
|
307
|
+
demaPaneId: string;
|
|
308
|
+
temaPaneId: string;
|
|
309
|
+
hmaPaneId: string;
|
|
310
|
+
kamaPaneId: string;
|
|
311
|
+
sarPaneId: string;
|
|
312
|
+
supertrendPaneId: string;
|
|
313
|
+
keltnerPaneId: string;
|
|
314
|
+
donchianPaneId: string;
|
|
315
|
+
ichimokuPaneId: string;
|
|
316
|
+
rocPaneId: string;
|
|
317
|
+
trixPaneId: string;
|
|
318
|
+
hvPaneId: string;
|
|
319
|
+
parkinsonPaneId: string;
|
|
320
|
+
chaikinVolPaneId: string;
|
|
321
|
+
vmaPaneId: string;
|
|
322
|
+
obvPaneId: string;
|
|
323
|
+
pvtPaneId: string;
|
|
324
|
+
vwapPaneId: string;
|
|
325
|
+
cmfPaneId: string;
|
|
326
|
+
mfiPaneId: string;
|
|
327
|
+
pivotPaneId: string;
|
|
328
|
+
fibPaneId: string;
|
|
329
|
+
structurePaneId: string;
|
|
330
|
+
zonesPaneId: string;
|
|
331
|
+
volumeProfilePaneId: string;
|
|
134
332
|
}
|
|
135
333
|
export interface IndicatorSeriesBundle {
|
|
136
334
|
ma: {
|
|
@@ -182,6 +380,115 @@ export interface IndicatorSeriesBundle {
|
|
|
182
380
|
series: MACDPoint[];
|
|
183
381
|
params: MACDSchedulerConfig;
|
|
184
382
|
};
|
|
383
|
+
atr: {
|
|
384
|
+
series: (number | undefined)[];
|
|
385
|
+
params: ATRSchedulerConfig;
|
|
386
|
+
};
|
|
387
|
+
wma: {
|
|
388
|
+
series: (number | undefined)[];
|
|
389
|
+
params: WMASchedulerConfig;
|
|
390
|
+
};
|
|
391
|
+
dema: {
|
|
392
|
+
series: (number | undefined)[];
|
|
393
|
+
params: DEMASchedulerConfig;
|
|
394
|
+
};
|
|
395
|
+
tema: {
|
|
396
|
+
series: (number | undefined)[];
|
|
397
|
+
params: TEMASchedulerConfig;
|
|
398
|
+
};
|
|
399
|
+
hma: {
|
|
400
|
+
series: (number | undefined)[];
|
|
401
|
+
params: HMASchedulerConfig;
|
|
402
|
+
};
|
|
403
|
+
kama: {
|
|
404
|
+
series: (number | undefined)[];
|
|
405
|
+
params: KAMASchedulerConfig;
|
|
406
|
+
};
|
|
407
|
+
sar: {
|
|
408
|
+
series: (SARPoint | undefined)[];
|
|
409
|
+
params: SARSchedulerConfig;
|
|
410
|
+
};
|
|
411
|
+
supertrend: {
|
|
412
|
+
series: (SuperTrendPoint | undefined)[];
|
|
413
|
+
params: SuperTrendSchedulerConfig;
|
|
414
|
+
};
|
|
415
|
+
keltner: {
|
|
416
|
+
series: (KeltnerPoint | undefined)[];
|
|
417
|
+
params: KeltnerSchedulerConfig;
|
|
418
|
+
};
|
|
419
|
+
donchian: {
|
|
420
|
+
series: (DonchianPoint | undefined)[];
|
|
421
|
+
params: DonchianSchedulerConfig;
|
|
422
|
+
};
|
|
423
|
+
ichimoku: {
|
|
424
|
+
series: (IchimokuPoint | undefined)[];
|
|
425
|
+
params: IchimokuSchedulerConfig;
|
|
426
|
+
};
|
|
427
|
+
roc: {
|
|
428
|
+
series: (number | undefined)[];
|
|
429
|
+
params: ROCSchedulerConfig;
|
|
430
|
+
};
|
|
431
|
+
trix: {
|
|
432
|
+
series: (number | undefined)[];
|
|
433
|
+
signalSeries: (number | undefined)[];
|
|
434
|
+
params: TRIXSchedulerConfig;
|
|
435
|
+
};
|
|
436
|
+
hv: {
|
|
437
|
+
series: (number | undefined)[];
|
|
438
|
+
params: HVSchedulerConfig;
|
|
439
|
+
};
|
|
440
|
+
parkinson: {
|
|
441
|
+
series: (number | undefined)[];
|
|
442
|
+
params: ParkinsonSchedulerConfig;
|
|
443
|
+
};
|
|
444
|
+
chaikinVol: {
|
|
445
|
+
series: (number | undefined)[];
|
|
446
|
+
params: ChaikinVolSchedulerConfig;
|
|
447
|
+
};
|
|
448
|
+
vma: {
|
|
449
|
+
series: (number | undefined)[];
|
|
450
|
+
params: VMASchedulerConfig;
|
|
451
|
+
};
|
|
452
|
+
obv: {
|
|
453
|
+
series: (number | undefined)[];
|
|
454
|
+
params: OBVSchedulerConfig;
|
|
455
|
+
};
|
|
456
|
+
pvt: {
|
|
457
|
+
series: (number | undefined)[];
|
|
458
|
+
params: PVTSchedulerConfig;
|
|
459
|
+
};
|
|
460
|
+
vwap: {
|
|
461
|
+
series: (number | undefined)[];
|
|
462
|
+
params: VWAPSchedulerConfig;
|
|
463
|
+
};
|
|
464
|
+
cmf: {
|
|
465
|
+
series: (number | undefined)[];
|
|
466
|
+
params: CMFSchedulerConfig;
|
|
467
|
+
};
|
|
468
|
+
mfi: {
|
|
469
|
+
series: (number | undefined)[];
|
|
470
|
+
params: MFISchedulerConfig;
|
|
471
|
+
};
|
|
472
|
+
pivot: {
|
|
473
|
+
series: (PivotPoint | undefined)[];
|
|
474
|
+
params: PivotSchedulerConfig;
|
|
475
|
+
};
|
|
476
|
+
fib: {
|
|
477
|
+
series: (FibPoint | undefined)[];
|
|
478
|
+
params: FibSchedulerConfig;
|
|
479
|
+
};
|
|
480
|
+
structure: {
|
|
481
|
+
series: StructureSnapshot;
|
|
482
|
+
params: StructureSchedulerConfig;
|
|
483
|
+
};
|
|
484
|
+
zones: {
|
|
485
|
+
series: Zone[];
|
|
486
|
+
params: ZonesSchedulerConfig;
|
|
487
|
+
};
|
|
488
|
+
volumeProfile: {
|
|
489
|
+
series: VolumeProfileResult;
|
|
490
|
+
params: VolumeProfileSchedulerConfig;
|
|
491
|
+
};
|
|
185
492
|
/** 本次计算中实际变更的指标列表 */
|
|
186
493
|
_changed: string[];
|
|
187
494
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BaseIndicatorState } from '../../plugin';
|
|
2
|
+
export type ZoneKind = 'FVG_BULL' | 'FVG_BEAR' | 'OB_BULL' | 'OB_BEAR';
|
|
3
|
+
export interface Zone {
|
|
4
|
+
kind: ZoneKind;
|
|
5
|
+
startIndex: number;
|
|
6
|
+
endIndex?: number;
|
|
7
|
+
high: number;
|
|
8
|
+
low: number;
|
|
9
|
+
}
|
|
10
|
+
export interface ZonesRenderState extends BaseIndicatorState {
|
|
11
|
+
timestamp: number;
|
|
12
|
+
series: Zone[];
|
|
13
|
+
params: {
|
|
14
|
+
showFVG: boolean;
|
|
15
|
+
showOB: boolean;
|
|
16
|
+
showFilledZones: boolean;
|
|
17
|
+
obLookback: number;
|
|
18
|
+
};
|
|
19
|
+
valueMin: number;
|
|
20
|
+
valueMax: number;
|
|
21
|
+
visibleMin: number;
|
|
22
|
+
visibleMax: number;
|
|
23
|
+
}
|
|
24
|
+
export declare const createZonesStateKey: (paneId: string) => `indicator:${string}:${string}`;
|
|
25
|
+
export declare const DEFAULT_ZONES_OB_LOOKBACK = 5;
|
|
26
|
+
export declare const EMPTY_ZONES_STATE: ZonesRenderState;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CandleWebGLSurface, LineWebGLSurface } from './renderers/webgl/candleSurface';
|
|
2
|
+
import { SharedWebGLSurface, WebGLRegion } from './renderers/webgl/sharedWebGLSurface';
|
|
2
3
|
export type PaneRendererDom = {
|
|
3
4
|
mainCanvas: HTMLCanvasElement;
|
|
4
5
|
overlayCanvas: HTMLCanvasElement;
|
|
@@ -24,13 +25,14 @@ export declare class PaneRenderer {
|
|
|
24
25
|
private opt;
|
|
25
26
|
private contexts;
|
|
26
27
|
private webgl;
|
|
27
|
-
constructor(dom: PaneRendererDom, pane: import('./layout/pane').Pane, opt: PaneRendererOptions);
|
|
28
|
+
constructor(dom: PaneRendererDom, pane: import('./layout/pane').Pane, opt: PaneRendererOptions, sharedWebGLSurface: SharedWebGLSurface);
|
|
28
29
|
/** 获取关联的 Pane 实例 */
|
|
29
30
|
getPane(): import('./layout/pane').Pane;
|
|
30
31
|
/** 获取 DOM 元素 */
|
|
31
32
|
getDom(): PaneRendererDom;
|
|
32
33
|
getContexts(): PaneRendererContexts;
|
|
33
34
|
getWebGL(): PaneRendererWebGLHandles;
|
|
35
|
+
setWebGLRegion(region: WebGLRegion): void;
|
|
34
36
|
/**
|
|
35
37
|
* 调整 Canvas 尺寸
|
|
36
38
|
* @param width pane 宽度(逻辑像素)
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { RendererPluginWithHost, PluginHost } from '../../../plugin';
|
|
2
|
+
export interface ATRRendererOptions {
|
|
3
|
+
paneId?: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function createATRRendererPlugin(options?: ATRRendererOptions): RendererPluginWithHost;
|
|
6
|
+
/**
|
|
7
|
+
* 获取 ATR 标题信息(供 paneTitle 使用)
|
|
8
|
+
*/
|
|
9
|
+
export declare function getATRTitleInfo(index: number, period: number, pluginHost: PluginHost, paneId?: string): {
|
|
10
|
+
name: string;
|
|
11
|
+
params: number[];
|
|
12
|
+
values: Array<{
|
|
13
|
+
label: string;
|
|
14
|
+
value: number;
|
|
15
|
+
color: string;
|
|
16
|
+
}>;
|
|
17
|
+
} | null;
|
|
@@ -13,10 +13,37 @@ export { createMOMRendererPlugin, type MOMRendererOptions, getMOMTitleInfo } fro
|
|
|
13
13
|
export { createWMSRRendererPlugin, type WMSRRendererOptions, getWMSRTitleInfo } from './wmsr';
|
|
14
14
|
export { createKSTRendererPlugin, type KSTRendererOptions, getKSTTitleInfo } from './kst';
|
|
15
15
|
export { createFASTKRendererPlugin, type FASTKRendererOptions, getFASTKTitleInfo } from './fastk';
|
|
16
|
+
export { createATRRendererPlugin, type ATRRendererOptions, getATRTitleInfo } from './atr';
|
|
17
|
+
export { createWMARendererPlugin } from './wma';
|
|
18
|
+
export { createDEMARendererPlugin } from './dema';
|
|
19
|
+
export { createTEMARendererPlugin } from './tema';
|
|
20
|
+
export { createHMARendererPlugin } from './hma';
|
|
21
|
+
export { createKAMARendererPlugin } from './kama';
|
|
22
|
+
export { createSARRendererPlugin } from './sar';
|
|
23
|
+
export { createSuperTrendRendererPlugin } from './supertrend';
|
|
24
|
+
export { createKeltnerRendererPlugin } from './keltner';
|
|
25
|
+
export { createDonchianRendererPlugin } from './donchian';
|
|
26
|
+
export { createIchimokuRendererPlugin } from './ichimoku';
|
|
27
|
+
export { createROCRendererPlugin } from './roc';
|
|
28
|
+
export { createTRIXRendererPlugin } from './trix';
|
|
29
|
+
export { createHVRendererPlugin } from './hv';
|
|
30
|
+
export { createParkinsonRendererPlugin } from './parkinson';
|
|
31
|
+
export { createChaikinVolRendererPlugin } from './chaikinVol';
|
|
32
|
+
export { createVMARendererPlugin } from './vma';
|
|
33
|
+
export { createOBVRendererPlugin } from './obv';
|
|
34
|
+
export { createPVTRendererPlugin } from './pvt';
|
|
35
|
+
export { createVWAPRendererPlugin } from './vwap';
|
|
36
|
+
export { createCMFRendererPlugin } from './cmf';
|
|
37
|
+
export { createMFIRendererPlugin } from './mfi';
|
|
38
|
+
export { createPivotRendererPlugin } from './pivot';
|
|
39
|
+
export { createFibRendererPlugin } from './fib';
|
|
40
|
+
export { createStructureRendererPlugin } from './structure';
|
|
41
|
+
export { createZonesRendererPlugin } from './zones';
|
|
42
|
+
export { createVolumeProfileRendererPlugin } from './volumeProfile';
|
|
16
43
|
/**
|
|
17
44
|
* 副图指标类型
|
|
18
45
|
*/
|
|
19
|
-
export type SubIndicatorType = 'VOLUME' | 'MACD' | 'RSI' | 'CCI' | 'STOCH' | 'MOM' | 'WMSR' | 'KST' | 'FASTK';
|
|
46
|
+
export type SubIndicatorType = 'VOLUME' | 'MACD' | 'RSI' | 'CCI' | 'STOCH' | 'MOM' | 'WMSR' | 'KST' | 'FASTK' | 'ATR' | 'WMA' | 'DEMA' | 'TEMA' | 'HMA' | 'KAMA' | 'SAR' | 'SUPERTREND' | 'KELTNER' | 'DONCHIAN' | 'ICHIMOKU' | 'ROC' | 'TRIX' | 'HV' | 'PARKINSON' | 'CHAIKIN_VOL' | 'VMA' | 'OBV' | 'PVT' | 'VWAP' | 'CMF' | 'MFI' | 'PIVOT' | 'FIB' | 'STRUCTURE' | 'ZONES' | 'VOLUME_PROFILE';
|
|
20
47
|
/**
|
|
21
48
|
* 渲染器工厂选项
|
|
22
49
|
*/
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ParamConfig } from '../../../components/IndicatorParams.vue';
|
|
2
|
+
export interface Indicator {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
name: string;
|
|
6
|
+
pane: 'main' | 'sub';
|
|
7
|
+
description?: string;
|
|
8
|
+
params?: ParamConfig[];
|
|
9
|
+
}
|
|
10
|
+
export declare const mainIndicators: Indicator[];
|
|
11
|
+
export declare const subIndicators: Indicator[];
|
|
12
|
+
export declare function findIndicator(id: string): Indicator | undefined;
|
|
13
|
+
export declare function isSubIndicatorId(id: string): boolean;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { RendererPluginWithHost } from '../../../../plugin';
|
|
2
|
+
export declare function createAtrScaleRendererPlugin(options: {
|
|
3
|
+
axisWidth: number;
|
|
4
|
+
paneId: string;
|
|
5
|
+
yPaddingPx?: number;
|
|
6
|
+
getCrosshair?: () => {
|
|
7
|
+
y: number;
|
|
8
|
+
price: number;
|
|
9
|
+
activePaneId: string | null;
|
|
10
|
+
} | null;
|
|
11
|
+
}): RendererPluginWithHost;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TitleInfo } from '../paneTitle';
|
|
2
|
+
import { PluginHost } from '../../../plugin';
|
|
3
|
+
import { SubIndicatorType } from '.';
|
|
4
|
+
export interface SubPaneIndicatorConfig {
|
|
5
|
+
defaultParams: Record<string, number | boolean | string>;
|
|
6
|
+
getTitleInfo: (data: any[], index: number | null, params: Record<string, number | boolean | string>, pluginHost: PluginHost, paneId: string) => TitleInfo | null;
|
|
7
|
+
}
|
|
8
|
+
export declare const SUB_PANE_INDICATOR_CONFIGS: Record<SubIndicatorType, SubPaneIndicatorConfig>;
|
|
9
|
+
export declare const SUB_PANE_INDICATORS: SubIndicatorType[];
|