@363045841yyt/klinechart-core 0.8.1 → 0.8.2

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 (85) hide show
  1. package/dist/data-fetchers/dataBuffer.d.ts.map +1 -1
  2. package/dist/data-fetchers/dataBuffer.js +3 -0
  3. package/dist/data-fetchers/dataBuffer.js.map +1 -1
  4. package/dist/data-fetchers/gotdx.d.ts +3 -0
  5. package/dist/data-fetchers/gotdx.d.ts.map +1 -0
  6. package/dist/data-fetchers/gotdx.js +101 -0
  7. package/dist/data-fetchers/gotdx.js.map +1 -0
  8. package/dist/data-fetchers/hundred-mock.d.ts.map +1 -1
  9. package/dist/data-fetchers/hundred-mock.js +28 -5
  10. package/dist/data-fetchers/hundred-mock.js.map +1 -1
  11. package/dist/data-fetchers/index.d.ts +1 -0
  12. package/dist/data-fetchers/index.d.ts.map +1 -1
  13. package/dist/data-fetchers/index.js +1 -0
  14. package/dist/data-fetchers/index.js.map +1 -1
  15. package/dist/data-fetchers/router.d.ts.map +1 -1
  16. package/dist/data-fetchers/router.js +3 -0
  17. package/dist/data-fetchers/router.js.map +1 -1
  18. package/dist/data-fetchers/thousand-mock.d.ts.map +1 -1
  19. package/dist/data-fetchers/thousand-mock.js +24 -14
  20. package/dist/data-fetchers/thousand-mock.js.map +1 -1
  21. package/dist/data-fetchers/tradingview.d.ts.map +1 -1
  22. package/dist/data-fetchers/tradingview.js +8 -1
  23. package/dist/data-fetchers/tradingview.js.map +1 -1
  24. package/dist/engine/data/chartDataManager.d.ts +1 -0
  25. package/dist/engine/data/chartDataManager.d.ts.map +1 -1
  26. package/dist/engine/data/chartDataManager.js +3 -0
  27. package/dist/engine/data/chartDataManager.js.map +1 -1
  28. package/dist/engine/render/chartRenderer.d.ts.map +1 -1
  29. package/dist/engine/render/chartRenderer.js +2 -0
  30. package/dist/engine/render/chartRenderer.js.map +1 -1
  31. package/dist/engine/renderers/Indicator/mainIndicatorLegend.js +1 -1
  32. package/dist/engine/renderers/Indicator/mainIndicatorLegend.js.map +1 -1
  33. package/dist/engine/renderers/timeAxis.d.ts.map +1 -1
  34. package/dist/engine/renderers/timeAxis.js +1 -0
  35. package/dist/engine/renderers/timeAxis.js.map +1 -1
  36. package/dist/index.d.ts +1 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +1 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/plugin/types.d.ts +2 -0
  41. package/dist/plugin/types.d.ts.map +1 -1
  42. package/dist/plugin/types.js.map +1 -1
  43. package/dist/semantic/index.d.ts +1 -1
  44. package/dist/semantic/index.d.ts.map +1 -1
  45. package/dist/semantic/index.js.map +1 -1
  46. package/dist/semantic/schema.json +1 -1
  47. package/dist/semantic/types.d.ts +2 -1
  48. package/dist/semantic/types.d.ts.map +1 -1
  49. package/dist/utils/dateFormat.d.ts +25 -0
  50. package/dist/utils/dateFormat.d.ts.map +1 -1
  51. package/dist/utils/dateFormat.js +78 -0
  52. package/dist/utils/dateFormat.js.map +1 -1
  53. package/dist/utils/kLineDraw/axis.d.ts +2 -0
  54. package/dist/utils/kLineDraw/axis.d.ts.map +1 -1
  55. package/dist/utils/kLineDraw/axis.js +11 -6
  56. package/dist/utils/kLineDraw/axis.js.map +1 -1
  57. package/dist/version.d.ts +1 -1
  58. package/dist/version.js +1 -1
  59. package/package.json +1 -1
  60. package/src/data-fetchers/__tests__/dataBuffer.test.ts +5 -2
  61. package/src/data-fetchers/dataBuffer.ts +6 -0
  62. package/src/data-fetchers/gotdx.ts +138 -0
  63. package/src/data-fetchers/hundred-mock.ts +35 -5
  64. package/src/data-fetchers/index.ts +1 -0
  65. package/src/data-fetchers/router.ts +3 -0
  66. package/src/data-fetchers/thousand-mock.ts +30 -14
  67. package/src/data-fetchers/tradingview.ts +8 -1
  68. package/src/engine/data/chartDataManager.ts +4 -0
  69. package/src/engine/render/chartRenderer.ts +2 -0
  70. package/src/engine/renderers/Indicator/mainIndicatorLegend.ts +1 -1
  71. package/src/engine/renderers/__tests__/boll.renderer.test.ts +1 -0
  72. package/src/engine/renderers/__tests__/ene.renderer.test.ts +1 -0
  73. package/src/engine/renderers/__tests__/expma.renderer.test.ts +1 -0
  74. package/src/engine/renderers/__tests__/ma.renderer.test.ts +1 -0
  75. package/src/engine/renderers/__tests__/mainIndicatorLegend.renderer.test.ts +1 -0
  76. package/src/engine/renderers/__tests__/yAxis.renderer.test.ts +1 -0
  77. package/src/engine/renderers/timeAxis.ts +1 -0
  78. package/src/index.ts +1 -0
  79. package/src/plugin/types.ts +2 -0
  80. package/src/semantic/index.ts +1 -0
  81. package/src/semantic/schema.json +1 -1
  82. package/src/semantic/types.ts +3 -1
  83. package/src/utils/dateFormat.ts +85 -0
  84. package/src/utils/kLineDraw/axis.ts +13 -6
  85. package/src/version.ts +1 -1
@@ -1,6 +1,6 @@
1
1
  import { priceToY, yToPrice } from '../priceToY';
2
2
  import { alignToPhysicalPixelCenter, roundToPhysicalPixel } from '../../engine/draw/pixelAlign';
3
- import { formatYMDShanghai, formatMonthOrYear, findMonthBoundaries } from '../../utils/dateFormat';
3
+ import { formatYMDShanghai, formatMonthOrYear, formatDay, findMonthBoundaries, findDayBoundaries } from '../../utils/dateFormat';
4
4
  import { resolveThemeColors } from '../../tokens';
5
5
  import { getFont, setCanvasFont } from '../../engine/theme/fonts';
6
6
  const textWidthCache = new Map();
@@ -169,23 +169,28 @@ export function drawTimeAxis(ctx, opts, theme = 'light', isAsiaMarket, colorPres
169
169
  const textY = y + height / 2;
170
170
  const regularFont = getFont(fontSize);
171
171
  const boldFont = getFont(fontSize, { bold: true });
172
- const boundaries = findMonthBoundaries(data);
172
+ const isMinuteData = opts.period.includes('min');
173
+ const showOnlyYear = !isMinuteData && opts.period !== 'daily';
174
+ const boundaries = isMinuteData ? findDayBoundaries(data) : findMonthBoundaries(data);
173
175
  const visibleBoundaries = boundaries.filter((idx) => idx >= startIndex && idx < endIndex);
174
- let lastWasYear = null;
176
+ let lastBold = null;
177
+ const labelFn = isMinuteData ? formatDay : formatMonthOrYear;
175
178
  for (const idx of visibleBoundaries) {
176
179
  const k = data[idx];
177
180
  if (!k)
178
181
  continue;
182
+ const { text, isYear } = labelFn(k.timestamp);
183
+ if (showOnlyYear && !isYear)
184
+ continue;
179
185
  const worldX = startX + idx * unit + alignedKWidth / 2;
180
186
  const screenX = worldX - scrollLeft;
181
187
  const minX = paddingX;
182
188
  const maxX = Math.max(paddingX, width - paddingX);
183
189
  if (screenX >= minX && screenX <= maxX) {
184
190
  const drawX = Math.min(Math.max(screenX, minX), maxX);
185
- const { text, isYear } = formatMonthOrYear(k.timestamp);
186
- if (lastWasYear !== isYear) {
191
+ if (lastBold !== isYear) {
187
192
  setCanvasFont(ctx, isYear ? boldFont : regularFont);
188
- lastWasYear = isYear;
193
+ lastBold = isYear;
189
194
  }
190
195
  ctx.fillText(text, roundToPhysicalPixel(drawX, dpr), alignToPhysicalPixelCenter(textY, dpr));
191
196
  }
@@ -1 +1 @@
1
- {"version":3,"file":"axis.js","sourceRoot":"","sources":["../../../src/utils/kLineDraw/axis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"axis.js","sourceRoot":"","sources":["../../../src/utils/kLineDraw/axis.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.8.1";
1
+ export declare const VERSION = "0.8.2";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = "0.8.1";
1
+ export const VERSION = "0.8.2";
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@363045841yyt/klinechart-core",
3
- "version": "0.8.1",
3
+ "version": "0.8.2",
4
4
  "description": "Headless K-line chart engine + reactive controllers. Zero framework dependencies.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -294,7 +294,9 @@ describe('DataBuffer', () => {
294
294
  const fetcher: DataFetcher = async () => {
295
295
  fetchCount++
296
296
  if (fetchCount === 1) return initialData
297
- return []
297
+ // Return data with same timestamps so mergeSortedData deduplicates them,
298
+ // avoiding loadedWindow change while keeping boundary in _attemptedBoundaries
299
+ return initialData
298
300
  }
299
301
 
300
302
  buffer.setFetcher(fetcher)
@@ -314,6 +316,7 @@ describe('DataBuffer', () => {
314
316
 
315
317
  expect(fetchCount).toBe(2)
316
318
 
319
+ // same boundary → should be skipped
317
320
  buffer.ensureRange(oneYearAgo - 60 * MS_PER_DAY, oneYearAgo)
318
321
 
319
322
  await new Promise((r) => setTimeout(r, 50))
@@ -331,7 +334,7 @@ describe('DataBuffer', () => {
331
334
  fetchCount++
332
335
  if (fetchCount === 1) return initialData
333
336
  if (fetchCount === 2) return [makeKLine(oneYearAgo - 90 * MS_PER_DAY)]
334
- return []
337
+ return [makeKLine(oneYearAgo - 180 * MS_PER_DAY)]
335
338
  }
336
339
 
337
340
  buffer.setFetcher(fetcher)
@@ -153,6 +153,12 @@ export class DataBuffer {
153
153
  return fetchPromise.then((incoming) => {
154
154
  if (this._disposed) return
155
155
 
156
+ if (incoming.length === 0) {
157
+ throw new Error(
158
+ `[DataBuffer] empty data for ${spec.symbol} ${formatDate(startTs)}~${formatDate(endTs)}`,
159
+ )
160
+ }
161
+
156
162
  const oldLength = this._data.length
157
163
  const oldEarliestTs = oldLength > 0 ? this._data[0]!.timestamp : null
158
164
  const merged = mergeSortedData(this._data, [...incoming])
@@ -0,0 +1,138 @@
1
+ import type { DataFetcher, KLineData } from '../controllers/types'
2
+
3
+ const PERIOD_TO_CATEGORY: Record<string, number> = {
4
+ '1min': 8,
5
+ '5min': 0,
6
+ '15min': 1,
7
+ '30min': 2,
8
+ '60min': 3,
9
+ daily: 4,
10
+ weekly: 5,
11
+ monthly: 6,
12
+ quarterly: 10,
13
+ yearly: 11,
14
+ }
15
+
16
+ const ADJUST_MAP: Record<string, number> = {
17
+ none: 0,
18
+ qfq: 1,
19
+ hfq: 2,
20
+ splits: 0,
21
+ }
22
+
23
+ const EXCHANGE_EX_CATEGORY: Record<string, number> = {
24
+ US: 74,
25
+ HK: 71,
26
+ SG: 78,
27
+ DE: 73,
28
+ }
29
+
30
+ interface SecurityBar {
31
+ Last: number
32
+ Open: number
33
+ Close: number
34
+ High: number
35
+ Low: number
36
+ Vol: number
37
+ Amount: number
38
+ Turnover: number
39
+ RisePrice: number
40
+ RiseRate: number
41
+ Year: number
42
+ Month: number
43
+ Day: number
44
+ Hour: number
45
+ Minute: number
46
+ DateTime: string
47
+ UpCount: number
48
+ DownCount: number
49
+ }
50
+
51
+ interface ExKLineItem {
52
+ DateTime: string
53
+ Open: number
54
+ High: number
55
+ Low: number
56
+ Close: number
57
+ Amount: number
58
+ Vol: number
59
+ }
60
+
61
+ function mapBar(item: SecurityBar, code: string): KLineData {
62
+ const ts = new Date(item.DateTime).getTime()
63
+ return {
64
+ timestamp: ts,
65
+ date: item.DateTime.split('T')[0],
66
+ open: item.Open,
67
+ high: item.High,
68
+ low: item.Low,
69
+ close: item.Close,
70
+ volume: item.Vol,
71
+ turnover: item.Amount,
72
+ turnoverRate: item.Turnover,
73
+ changeAmount: item.RisePrice,
74
+ changePercent: item.RiseRate,
75
+ stockCode: code,
76
+ }
77
+ }
78
+
79
+ function mapExItem(item: ExKLineItem, code: string): KLineData {
80
+ const ts = new Date(item.DateTime).getTime()
81
+ return {
82
+ timestamp: ts,
83
+ date: item.DateTime.split('T')[0],
84
+ open: item.Open,
85
+ high: item.High,
86
+ low: item.Low,
87
+ close: item.Close,
88
+ volume: item.Vol,
89
+ turnover: item.Amount,
90
+ stockCode: code,
91
+ }
92
+ }
93
+
94
+ export const gotdxDataFetcher: DataFetcher = async (source, config) => {
95
+ const baseUrl = source === 'gotdx' ? 'http://127.0.0.1:8080' : ''
96
+
97
+ if (config.exchange && config.exchange in EXCHANGE_EX_CATEGORY) {
98
+ const category = EXCHANGE_EX_CATEGORY[config.exchange]
99
+ const period = PERIOD_TO_CATEGORY[config.period] ?? 4
100
+ const body = {
101
+ category,
102
+ code: config.symbol,
103
+ period,
104
+ start_date: config.startDate,
105
+ end_date: config.endDate,
106
+ times: 1,
107
+ }
108
+ const res = await fetch(`${baseUrl}/api/ex/kline-by-date`, {
109
+ method: 'POST',
110
+ headers: { 'Content-Type': 'application/json' },
111
+ body: JSON.stringify(body),
112
+ })
113
+ if (!res.ok) throw new Error(`[gotdx] ex/kline-by-date failed: ${res.status} ${res.statusText}`)
114
+ const list: ExKLineItem[] = await res.json()
115
+ return list.map((item) => mapExItem(item, config.symbol))
116
+ }
117
+
118
+ const market = config.symbol.startsWith('6') || config.symbol.startsWith('9') ? 1 : 0
119
+ const category = PERIOD_TO_CATEGORY[config.period] ?? 4
120
+ const adjust = ADJUST_MAP[config.adjust] ?? 0
121
+ const body = {
122
+ market,
123
+ code: config.symbol,
124
+ category,
125
+ start_date: config.startDate,
126
+ end_date: config.endDate,
127
+ times: 1,
128
+ adjust,
129
+ }
130
+ const res = await fetch(`${baseUrl}/api/stock/kline-by-date`, {
131
+ method: 'POST',
132
+ headers: { 'Content-Type': 'application/json' },
133
+ body: JSON.stringify(body),
134
+ })
135
+ if (!res.ok) throw new Error(`[gotdx] stock/kline-by-date failed: ${res.status} ${res.statusText}`)
136
+ const list: SecurityBar[] = await res.json()
137
+ return list.map((item) => mapBar(item, config.symbol))
138
+ }
@@ -6,13 +6,43 @@ export const hundredMockDataFetcher: DataFetcher = async (_source, config) => {
6
6
  const end = new Date(config.endDate).getTime()
7
7
  const dayMs = 86400000
8
8
  const totalDays = Math.floor((end - start) / dayMs) + 1
9
+ if (totalDays <= 0) return []
10
+
11
+ const basePrice = 12.5
9
12
  const data: KLineData[] = []
10
- let price = 10 + Math.random() * 5
13
+
14
+ if (totalDays === 1) {
15
+ data.push({
16
+ timestamp: start,
17
+ open: basePrice,
18
+ high: basePrice,
19
+ low: basePrice,
20
+ close: basePrice,
21
+ volume: Math.round(Math.random() * 10000000 + 1000000),
22
+ })
23
+ return data
24
+ }
25
+
26
+ const meanReversionStrength = 0.005
27
+
28
+ // raw random walk with mean reversion (close prices before bridge)
29
+ const rawWalk: number[] = [basePrice]
30
+ for (let i = 1; i < totalDays; i++) {
31
+ const prev = rawWalk[i - 1]!
32
+ const reversion = meanReversionStrength * (basePrice - prev)
33
+ const change = (Math.random() - 0.48) * prev * 0.06 + reversion
34
+ rawWalk.push(prev + change)
35
+ }
36
+
37
+ // Brownian bridge: subtract linear drift so last close = basePrice
38
+ const finalOffset = rawWalk[totalDays - 1]! - basePrice
11
39
  for (let i = 0; i < totalDays; i++) {
40
+ const bridge = finalOffset * (i / (totalDays - 1))
41
+ const close = Math.round((rawWalk[i]! - bridge) * 100) / 100
42
+
12
43
  const ts = start + i * dayMs
13
- const change = (Math.random() - 0.48) * price * 0.06
14
- const open = price
15
- const close = Math.round((open + change) * 100) / 100
44
+ const open = i === 0 ? basePrice : data[i - 1]!.close
45
+
16
46
  const high = Math.round(Math.max(open, close) * (1 + Math.random() * 0.03) * 100) / 100
17
47
  const low = Math.round(Math.min(open, close) * (1 - Math.random() * 0.03) * 100) / 100
18
48
  const volume = Math.round(Math.random() * 10000000 + 1000000)
@@ -25,7 +55,7 @@ export const hundredMockDataFetcher: DataFetcher = async (_source, config) => {
25
55
  volume,
26
56
  turnover: Math.round((volume * (open + close)) / 2),
27
57
  })
28
- price = close
29
58
  }
59
+
30
60
  return data
31
61
  }
@@ -2,6 +2,7 @@ export { thousandMockDataFetcher } from './thousand-mock'
2
2
  export { hundredMockDataFetcher } from './hundred-mock'
3
3
  export { baostockDataFetcher } from './baostock'
4
4
  export { tradingviewDataFetcher } from './tradingview'
5
+ export { gotdxDataFetcher } from './gotdx'
5
6
  export { routerDataFetcher } from './router'
6
7
  export { DataBuffer } from './dataBuffer'
7
8
  export type { DataWindow } from './dataBuffer'
@@ -1,5 +1,6 @@
1
1
  import type { DataFetcher } from '../controllers/types'
2
2
  import { baostockDataFetcher } from './baostock'
3
+ import { gotdxDataFetcher } from './gotdx'
3
4
  import { hundredMockDataFetcher } from './hundred-mock'
4
5
  import { thousandMockDataFetcher } from './thousand-mock'
5
6
  import { tradingviewDataFetcher } from './tradingview'
@@ -8,6 +9,8 @@ export const routerDataFetcher: DataFetcher = (source, config) => {
8
9
  switch (source) {
9
10
  case 'baostock':
10
11
  return baostockDataFetcher(source, config)
12
+ case 'gotdx':
13
+ return gotdxDataFetcher(source, config)
11
14
  case 'tradingview':
12
15
  return tradingviewDataFetcher(source, config)
13
16
  case 'mock-100':
@@ -5,26 +5,42 @@ export const thousandMockDataFetcher: DataFetcher = async (_source, _config) =>
5
5
  const data: KLineData[] = []
6
6
  const startTime = new Date('2020-01-01').getTime()
7
7
  const dayMs = 24 * 60 * 60 * 1000
8
- let lastClose = 3000
9
- for (let i = 0; i < 10000; i++) {
8
+ const totalDays = 10000
9
+
10
+ const basePrice = 3000
11
+ const meanReversionStrength = 0.0005
12
+ const volatility = 0.02
13
+
14
+ // raw random walk with mean reversion (close prices before bridge)
15
+ const rawWalk: number[] = [basePrice]
16
+ for (let i = 1; i < totalDays; i++) {
17
+ const prev = rawWalk[i - 1]!
18
+ const reversion = meanReversionStrength * (basePrice - prev)
19
+ const change = (Math.random() - 0.5) * 2 * volatility * prev + reversion
20
+ rawWalk.push(prev + change)
21
+ }
22
+
23
+ // Brownian bridge: subtract linear drift so last close = basePrice
24
+ const finalOffset = rawWalk[totalDays - 1]! - basePrice
25
+ for (let i = 0; i < totalDays; i++) {
26
+ const bridge = finalOffset * (i / (totalDays - 1))
27
+ const close = Math.round((rawWalk[i]! - bridge) * 100) / 100
28
+
10
29
  const timestamp = startTime + i * dayMs
11
- const volatility = 0.02
12
- const trend = 0.0001
13
- const change = (Math.random() - 0.5) * 2 * volatility + trend
14
- const open = lastClose
15
- const close = open * (1 + change)
16
- const high = Math.max(open, close) * (1 + Math.random() * 0.01)
17
- const low = Math.min(open, close) * (1 - Math.random() * 0.01)
30
+ const open = i === 0 ? basePrice : data[i - 1]!.close
31
+
32
+ const high = Math.round(Math.max(open, close) * (1 + Math.random() * 0.01) * 100) / 100
33
+ const low = Math.round(Math.min(open, close) * (1 - Math.random() * 0.01) * 100) / 100
18
34
  const volume = Math.floor(1000000 + Math.random() * 5000000)
19
35
  data.push({
20
36
  timestamp,
21
- open: parseFloat(open.toFixed(2)),
22
- high: parseFloat(high.toFixed(2)),
23
- low: parseFloat(low.toFixed(2)),
24
- close: parseFloat(close.toFixed(2)),
37
+ open,
38
+ high,
39
+ low,
40
+ close,
25
41
  volume,
26
42
  })
27
- lastClose = close
28
43
  }
44
+
29
45
  return data
30
46
  }
@@ -16,8 +16,15 @@ export const tradingviewDataFetcher: DataFetcher = async (source, config) => {
16
16
  const startDate = config.startDate.split('T')[0]
17
17
  const endDate = config.endDate.split('T')[0]
18
18
 
19
+ const ADJUST_TO_TV: Record<string, string | undefined> = {
20
+ qfq: 'dividends',
21
+ splits: 'splits',
22
+ none: 'none',
23
+ }
24
+ const tvAdjust = ADJUST_TO_TV[config.adjust]
19
25
  const exchangeQ = config.exchange ? `&exchange=${config.exchange}` : ''
20
- const url = `${baseUrl}/api/tradingview/kdata?symbol=${config.symbol}&timeframe=${timeframe}&start_date=${startDate}&end_date=${endDate}${exchangeQ}`
26
+ const adjustQ = tvAdjust ? `&adjust=${tvAdjust}` : ''
27
+ const url = `${baseUrl}/api/tradingview/kdata?symbol=${config.symbol}&timeframe=${timeframe}&start_date=${startDate}&end_date=${endDate}${exchangeQ}${adjustQ}`
21
28
  try {
22
29
  const res = await fetch(url)
23
30
  if (!res.ok) {
@@ -177,6 +177,10 @@ export class ChartDataManager {
177
177
  return this._symbolsSignal
178
178
  }
179
179
 
180
+ get currentPeriod(): string {
181
+ return this._dataBuffer.currentSpec?.period ?? 'daily'
182
+ }
183
+
180
184
  getInternalData(): KLineData[] {
181
185
  return this._internalData
182
186
  }
@@ -401,6 +401,7 @@ export class ChartRenderer {
401
401
  overlayCtx: overlayCtx ?? undefined,
402
402
  pane: wrapPaneInfo(pane),
403
403
  data: dataManager.getInternalData(),
404
+ period: dataManager.currentPeriod,
404
405
  comparisonData: dataManager.getComparisonData(),
405
406
  comparisonSymbols: dataManager.getComparisonSpecs(),
406
407
  comparisonColors: dataManager.getComparisonColors(),
@@ -496,6 +497,7 @@ export class ChartRenderer {
496
497
  },
497
498
  priceRange: { maxPrice: 0, minPrice: 0 },
498
499
  },
500
+ period: this.deps.getDataManager().currentPeriod,
499
501
  data: this.deps.getDataManager().getInternalData(),
500
502
  range,
501
503
  scrollLeft: vp.scrollLeft,
@@ -218,7 +218,7 @@ function pushComparisonLegendRows(
218
218
  const sign = pct > 0 ? '+' : ''
219
219
  const pctText = `${sign}${pct.toFixed(2)}%`
220
220
  overlayCtx.fillStyle = pct > 0 ? colors.candleUpBody : pct < 0 ? colors.candleDownBody : colors.text.primary
221
- overlayCtx.fillText(pctText, x, y + 1)
221
+ overlayCtx.fillText(pctText, x, y)
222
222
  },
223
223
  })
224
224
  }
@@ -118,6 +118,7 @@ function createMockRenderContext(
118
118
  scrollLeft: 0,
119
119
  pane: mockPane,
120
120
  kLineCenters: Array.from({ length: 100 }, (_, i) => i * 10 + 5),
121
+ period: 'daily',
121
122
  ...overrides,
122
123
  } as RenderContext
123
124
  }
@@ -106,6 +106,7 @@ function createMockRenderContext(
106
106
  scrollLeft: 0,
107
107
  pane: mockPane,
108
108
  kLineCenters: Array.from({ length: 100 }, (_, i) => i * 10 + 5),
109
+ period: 'daily',
109
110
  ...overrides,
110
111
  } as RenderContext
111
112
  }
@@ -105,6 +105,7 @@ function createMockRenderContext(
105
105
  scrollLeft: 0,
106
106
  pane: mockPane,
107
107
  kLineCenters: Array.from({ length: 100 }, (_, i) => i * 10 + 5),
108
+ period: 'daily',
108
109
  ...overrides,
109
110
  } as RenderContext
110
111
  }
@@ -104,6 +104,7 @@ function createMockRenderContext(
104
104
  scrollLeft: 0,
105
105
  pane: mockPane,
106
106
  kLineCenters: Array.from({ length: 10 }, (_, i) => i * 10 + 5),
107
+ period: 'daily',
107
108
  ...overrides,
108
109
  } as RenderContext
109
110
  }
@@ -168,6 +168,7 @@ function createMockRenderContext(
168
168
  scrollLeft: 0,
169
169
  pane: mockPane,
170
170
  kLineCenters: Array.from({ length: 100 }, (_, i) => i * 10 + 5),
171
+ period: 'daily',
171
172
  ...overrides,
172
173
  } as RenderContext
173
174
  }
@@ -76,6 +76,7 @@ function createContext(overrides: Partial<RenderContext> = {}): RenderContext {
76
76
  kBarRects: [] as { x: number; width: number }[],
77
77
  yAxisLabels: [],
78
78
  xAxisLabels: [],
79
+ period: 'daily',
79
80
  theme: 'light',
80
81
  ...overrides,
81
82
  }
@@ -56,6 +56,7 @@ export function createTimeAxisRendererPlugin(options: {
56
56
  lineColor: colors.border.dark,
57
57
  drawTopBorder: false,
58
58
  drawBottomBorder: false,
59
+ period: context.period,
59
60
  }, context.theme, context.isAsiaMarket, context.colorPresetSettings)
60
61
 
61
62
  // 绘制来自 xAxisRanges 的时间范围带(先于标签绘制)
package/src/index.ts CHANGED
@@ -2,3 +2,4 @@ export * from './reactivity'
2
2
  export * from './controllers'
3
3
  export { VERSION } from './version'
4
4
  export * from './tokens'
5
+ export { formatTimestamp } from './utils/dateFormat'
@@ -273,6 +273,8 @@ export interface RenderContext {
273
273
  ctx: CanvasRenderingContext2D
274
274
  pane: PaneInfo
275
275
  data: unknown[]
276
+ /** K线级别,如 'daily'、'5min'、'15min' */
277
+ period: string
276
278
  comparisonData?: ReadonlyMap<string, ReadonlyArray<KLineData>>
277
279
  comparisonSymbols?: ReadonlyArray<import('../controllers/types').SymbolSpec>
278
280
  comparisonColors?: ReadonlyMap<string, string>
@@ -1,5 +1,6 @@
1
1
  export type {
2
2
  SemanticChartConfig,
3
+ AdjustType,
3
4
  DataConfig,
4
5
  IndicatorsConfig,
5
6
  MainIndicatorConfig,
@@ -33,7 +33,7 @@
33
33
  "type": "string",
34
34
  "enum": ["daily", "weekly", "monthly", "5min", "15min", "30min", "60min"]
35
35
  },
36
- "adjust": { "type": "string", "enum": ["qfq", "hfq", "none"] }
36
+ "adjust": { "type": "string", "enum": ["qfq", "hfq", "splits", "none"] }
37
37
  }
38
38
  },
39
39
  "IndicatorsConfig": {
@@ -19,6 +19,8 @@ export interface SemanticChartConfig {
19
19
  // ============ 数据配置 ============
20
20
 
21
21
  /** 数据配置 */
22
+ export type AdjustType = 'qfq' | 'hfq' | 'splits' | 'none'
23
+
22
24
  export interface DataConfig {
23
25
  source: 'baostock' | 'dongcai'
24
26
  /** 股票代码(6位数字,不含前缀) */
@@ -30,7 +32,7 @@ export interface DataConfig {
30
32
  /** 结束日期 YYYY-MM-DD */
31
33
  endDate: string
32
34
  period: 'daily' | 'weekly' | 'monthly' | '5min' | '15min' | '30min' | '60min'
33
- adjust: 'qfq' | 'hfq' | 'none'
35
+ adjust: AdjustType
34
36
  }
35
37
 
36
38
  // ============ 指标配置 ============