@363045841yyt/klinechart 0.6.2 → 0.6.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 +3 -1
- package/dist/index.cjs +49 -2
- package/dist/index.js +3364 -2222
- package/dist/klinechart.css +1 -1
- package/dist/src/config/chartSettings.d.ts +39 -1
- package/dist/src/core/chart.d.ts +14 -1
- package/dist/src/core/controller/interaction.d.ts +5 -1
- package/dist/src/core/indicators/calculators.d.ts +140 -0
- package/dist/src/core/indicators/macdState.d.ts +58 -0
- package/dist/src/core/indicators/scheduler.d.ts +12 -0
- package/dist/src/core/indicators/soa.d.ts +115 -0
- package/dist/src/core/paneRenderer.d.ts +14 -0
- package/dist/src/core/renderers/Indicator/boll.d.ts +0 -9
- package/dist/src/core/renderers/Indicator/expma.d.ts +0 -9
- package/dist/src/core/renderers/Indicator/ma.d.ts +0 -9
- package/dist/src/core/renderers/Indicator/macd.d.ts +3 -11
- package/dist/src/core/renderers/Indicator/rsi.d.ts +10 -0
- package/dist/src/core/renderers/webgl/candleSurface.d.ts +48 -0
- package/dist/src/plugin/types.d.ts +6 -1
- package/package.json +1 -1
|
@@ -1,12 +1,3 @@
|
|
|
1
1
|
import { RendererPluginWithHost } from '../../../plugin';
|
|
2
2
|
export type { MAFlags } from '../../indicators/calculators';
|
|
3
|
-
/**
|
|
4
|
-
* 创建 MA 均线渲染器插件(无状态版本)
|
|
5
|
-
*
|
|
6
|
-
* 设计原则:
|
|
7
|
-
* 1. 不持有任何计算缓存或配置状态
|
|
8
|
-
* 2. 所有数据从 StateStore 读取(通过 MA_STATE_KEY)
|
|
9
|
-
* 3. 配置变更通过外部 IndicatorScheduler 处理,不经过本渲染器
|
|
10
|
-
* 4. 纯绘制函数,无副作用
|
|
11
|
-
*/
|
|
12
3
|
export declare function createMARendererPlugin(): RendererPluginWithHost;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RendererPluginWithHost
|
|
1
|
+
import { RendererPluginWithHost } from '../../../plugin';
|
|
2
2
|
import { KLineData } from '../../../types/price';
|
|
3
3
|
export interface MACDConfig {
|
|
4
4
|
/** 快线周期(默认 12) */
|
|
@@ -14,16 +14,6 @@ export interface MACDConfig {
|
|
|
14
14
|
/** 是否显示 MACD 柱 */
|
|
15
15
|
showBAR?: boolean;
|
|
16
16
|
}
|
|
17
|
-
/** MACD 渲染器状态(共享给刻度渲染器) */
|
|
18
|
-
export interface MACDRenderState extends BaseIndicatorState {
|
|
19
|
-
valueMin: number;
|
|
20
|
-
valueMax: number;
|
|
21
|
-
latestValues?: {
|
|
22
|
-
dif: number;
|
|
23
|
-
dea: number;
|
|
24
|
-
macd: number;
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
17
|
export interface MACDRendererOptions {
|
|
28
18
|
/** 目标 pane ID(默认 'sub') */
|
|
29
19
|
paneId?: string;
|
|
@@ -32,10 +22,12 @@ export interface MACDRendererOptions {
|
|
|
32
22
|
}
|
|
33
23
|
/**
|
|
34
24
|
* 创建 MACD 渲染器插件
|
|
25
|
+
* 从 StateStore 读取 MACD 状态,不再内联计算
|
|
35
26
|
*/
|
|
36
27
|
export declare function createMACDRendererPlugin(options?: MACDRendererOptions): RendererPluginWithHost;
|
|
37
28
|
/**
|
|
38
29
|
* 计算指定索引处的 MACD 值(供图例使用)
|
|
30
|
+
* 使用 calculators.ts 中的计算函数
|
|
39
31
|
*/
|
|
40
32
|
export declare function calcMACDAtIndex(data: KLineData[], index: number, fastPeriod?: number, slowPeriod?: number, signalPeriod?: number): {
|
|
41
33
|
dif: number;
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { RendererPluginWithHost, PluginHost } from '../../../plugin';
|
|
2
|
+
type LinePoint = {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
};
|
|
2
6
|
export interface RSIRendererOptions {
|
|
3
7
|
/** 目标 pane ID(默认 'sub') */
|
|
4
8
|
paneId?: string;
|
|
@@ -11,6 +15,11 @@ export declare function createRSIRendererPlugin(options?: RSIRendererOptions): R
|
|
|
11
15
|
* 获取 RSI 标题信息(供 paneTitle 使用)
|
|
12
16
|
* 从 StateStore 读取已计算的 RSI 数据
|
|
13
17
|
*/
|
|
18
|
+
export declare function drawRSILinesWithCanvas2D(ctx: CanvasRenderingContext2D, scrollLeft: number, rsi1Points: LinePoint[], rsi2Points: LinePoint[], rsi3Points: LinePoint[], params: {
|
|
19
|
+
showRSI1: boolean;
|
|
20
|
+
showRSI2: boolean;
|
|
21
|
+
showRSI3: boolean;
|
|
22
|
+
}): void;
|
|
14
23
|
export declare function getRSITitleInfo(index: number, period1: number, period2: number, period3: number, pluginHost: PluginHost, paneId?: string): {
|
|
15
24
|
name: string;
|
|
16
25
|
params: number[];
|
|
@@ -20,3 +29,4 @@ export declare function getRSITitleInfo(index: number, period1: number, period2:
|
|
|
20
29
|
color: string;
|
|
21
30
|
}>;
|
|
22
31
|
} | null;
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
type Rect = {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
};
|
|
7
|
+
type LineStrip = {
|
|
8
|
+
points: Array<{
|
|
9
|
+
x: number;
|
|
10
|
+
y: number;
|
|
11
|
+
}>;
|
|
12
|
+
width: number;
|
|
13
|
+
};
|
|
14
|
+
export declare class CandleWebGLSurface {
|
|
15
|
+
private canvas;
|
|
16
|
+
private handles;
|
|
17
|
+
private logicalWidth;
|
|
18
|
+
private logicalHeight;
|
|
19
|
+
private available;
|
|
20
|
+
private rectCapacity;
|
|
21
|
+
private rectScratch;
|
|
22
|
+
constructor(canvas?: HTMLCanvasElement);
|
|
23
|
+
isAvailable(): boolean;
|
|
24
|
+
getCanvas(): HTMLCanvasElement;
|
|
25
|
+
resize(width: number, height: number, dpr: number): void;
|
|
26
|
+
clear(): void;
|
|
27
|
+
drawRects(rects: Rect[], color: string, scrollLeft: number): boolean;
|
|
28
|
+
destroy(): void;
|
|
29
|
+
private initRectHandles;
|
|
30
|
+
}
|
|
31
|
+
export declare class LineWebGLSurface {
|
|
32
|
+
private canvas;
|
|
33
|
+
private handles;
|
|
34
|
+
private logicalWidth;
|
|
35
|
+
private logicalHeight;
|
|
36
|
+
private dpr;
|
|
37
|
+
private available;
|
|
38
|
+
private vertexCapacity;
|
|
39
|
+
constructor(canvas?: HTMLCanvasElement);
|
|
40
|
+
isAvailable(): boolean;
|
|
41
|
+
getCanvas(): HTMLCanvasElement;
|
|
42
|
+
resize(width: number, height: number, dpr: number): void;
|
|
43
|
+
clear(): void;
|
|
44
|
+
drawLineStrip(line: LineStrip, color: string, scrollLeft: number): boolean;
|
|
45
|
+
destroy(): void;
|
|
46
|
+
private initLineHandles;
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { KLineData } from '../types/price';
|
|
2
|
+
import { CandleWebGLSurface, LineWebGLSurface } from '../core/renderers/webgl/candleSurface';
|
|
2
3
|
/** 插件生命周期状态 */
|
|
3
4
|
export declare enum PluginState {
|
|
4
5
|
Registered = "registered",
|
|
@@ -228,6 +229,10 @@ export interface RenderContext {
|
|
|
228
229
|
borderCtx?: CanvasRenderingContext2D;
|
|
229
230
|
/** 覆盖层 Canvas 上下文(用于十字线、Tooltip 等动态内容) */
|
|
230
231
|
overlayCtx?: CanvasRenderingContext2D;
|
|
232
|
+
/** price pane 可选的 WebGL candle surface */
|
|
233
|
+
candleWebGLSurface?: CandleWebGLSurface;
|
|
234
|
+
/** line indicator 可选的 WebGL line surface */
|
|
235
|
+
lineWebGLSurface?: LineWebGLSurface;
|
|
231
236
|
/** 当前缩放级别(1 ~ zoomLevels) */
|
|
232
237
|
zoomLevel?: number;
|
|
233
238
|
/** 总缩放级别数 */
|
|
@@ -238,7 +243,7 @@ export interface RenderContext {
|
|
|
238
243
|
plotHeight: number;
|
|
239
244
|
};
|
|
240
245
|
/** 用户设置配置(渲染器只读) */
|
|
241
|
-
settings?:
|
|
246
|
+
settings?: import('../config/chartSettings').ChartSettings;
|
|
242
247
|
/** 需要在Y轴上绘制的标签列表(由各类标记渲染器填充) */
|
|
243
248
|
yAxisLabels?: YAxisLabel[];
|
|
244
249
|
/** 需要在X轴上绘制的标签列表(由各类标记渲染器填充) */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@363045841yyt/klinechart",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.5",
|
|
4
4
|
"description": "A lightweight financial K-line charting library with first-class AI Agent support, crisp ResizeObserver-driven rendering, and plugin-based architecture. Focused on quantitative trading scenarios with TradingView-level interaction experience.",
|
|
5
5
|
"author": "363045841 <slslswbsy@qq.com>",
|
|
6
6
|
"license": "MIT",
|