react-klinecharts-ui 0.1.0 → 0.3.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 +528 -29
- package/dist/chunk-PIFLJKYF.cjs +2512 -0
- package/dist/chunk-PIFLJKYF.cjs.map +1 -0
- package/dist/chunk-U325AHHX.js +2468 -0
- package/dist/chunk-U325AHHX.js.map +1 -0
- package/dist/extensions.cjs +12 -4
- package/dist/extensions.d.cts +22 -1
- package/dist/extensions.d.ts +22 -1
- package/dist/extensions.js +1 -1
- package/dist/index.cjs +1936 -49
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +441 -3
- package/dist/index.d.ts +441 -3
- package/dist/index.js +1815 -31
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-PUULIBFN.js +0 -911
- package/dist/chunk-PUULIBFN.js.map +0 -1
- package/dist/chunk-SLTXNLKN.cjs +0 -932
- package/dist/chunk-SLTXNLKN.cjs.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { Dispatch, RefObject, ReactNode, ReactElement } from 'react';
|
|
3
|
-
import { Period, SymbolInfo, KLineData, Chart, DeepPartial, Styles, OverlayTemplate, DataLoader } from 'react-klinecharts';
|
|
3
|
+
import { Period, SymbolInfo, KLineData, Chart, DeepPartial, Styles, OverlayTemplate, DataLoader, IndicatorTemplate } from 'react-klinecharts';
|
|
4
4
|
import { OrderLineExtendData } from './extensions.cjs';
|
|
5
|
-
export { OrderLineFontStyle, OrderLineLabelStyle, OrderLineLineStyle, OrderLineMarkStyle, OrderLinePadding, orderLine, overlays, registerExtensions } from './extensions.cjs';
|
|
5
|
+
export { DepthOverlayExtendData, DepthOverlayRow, OrderLineFontStyle, OrderLineLabelStyle, OrderLineLineStyle, OrderLineMarkStyle, OrderLinePadding, depthOverlay, indicators, orderLine, overlays, registerExtensions } from './extensions.cjs';
|
|
6
6
|
|
|
7
7
|
interface TerminalPeriod extends Period {
|
|
8
8
|
label: string;
|
|
@@ -102,12 +102,19 @@ type KlinechartsUIAction = {
|
|
|
102
102
|
type: "SET_SCREENSHOT_URL";
|
|
103
103
|
url: string | null;
|
|
104
104
|
};
|
|
105
|
+
/** Callback pushed by useUndoRedo so other hooks can record actions. */
|
|
106
|
+
type UndoRedoListener = (action: {
|
|
107
|
+
type: string;
|
|
108
|
+
data: unknown;
|
|
109
|
+
}) => void;
|
|
105
110
|
/** The stable, dispatch-only slice of the context (never changes after mount). */
|
|
106
111
|
interface KlinechartsUIDispatchValue {
|
|
107
112
|
dispatch: Dispatch<KlinechartsUIAction>;
|
|
108
113
|
datafeed: Datafeed;
|
|
109
114
|
onSettingsChange?: (settings: Record<string, unknown>) => void;
|
|
110
115
|
fullscreenContainerRef: RefObject<HTMLElement | null>;
|
|
116
|
+
/** Ref populated by useUndoRedo; other hooks call it to record actions. */
|
|
117
|
+
undoRedoListenerRef: RefObject<UndoRedoListener | null>;
|
|
111
118
|
}
|
|
112
119
|
/** Combined context value returned by `useKlinechartsUI()`. */
|
|
113
120
|
interface KlinechartsUIContextValue extends KlinechartsUIDispatchValue {
|
|
@@ -192,6 +199,14 @@ interface UseIndicatorsReturn {
|
|
|
192
199
|
}[];
|
|
193
200
|
isMainIndicatorActive: (name: string) => boolean;
|
|
194
201
|
isSubIndicatorActive: (name: string) => boolean;
|
|
202
|
+
/** Collapse a sub-indicator pane to minimal height (30px). */
|
|
203
|
+
collapseSubIndicator: (name: string) => void;
|
|
204
|
+
/** Expand a previously collapsed sub-indicator pane to its prior height. */
|
|
205
|
+
expandSubIndicator: (name: string) => void;
|
|
206
|
+
/** Whether the given sub-indicator pane is currently collapsed. */
|
|
207
|
+
isSubIndicatorCollapsed: (name: string) => boolean;
|
|
208
|
+
/** Reorder a sub-indicator pane up or down relative to other sub-indicators. */
|
|
209
|
+
reorderSubIndicator: (name: string, direction: "up" | "down") => void;
|
|
195
210
|
}
|
|
196
211
|
declare function useIndicators(): UseIndicatorsReturn;
|
|
197
212
|
|
|
@@ -220,12 +235,16 @@ interface UseDrawingToolsReturn {
|
|
|
220
235
|
magnetMode: MagnetMode;
|
|
221
236
|
isLocked: boolean;
|
|
222
237
|
isVisible: boolean;
|
|
238
|
+
/** Whether drawing tools auto-retrigger after completing a shape. Default: true. */
|
|
239
|
+
autoRetrigger: boolean;
|
|
223
240
|
selectTool: (name: string) => void;
|
|
224
241
|
clearActiveTool: () => void;
|
|
225
242
|
setMagnetMode: (mode: MagnetMode) => void;
|
|
226
243
|
toggleLock: () => void;
|
|
227
244
|
toggleVisibility: () => void;
|
|
228
245
|
removeAllDrawings: () => void;
|
|
246
|
+
/** Enable/disable auto-retrigger mode. */
|
|
247
|
+
setAutoRetrigger: (enabled: boolean) => void;
|
|
229
248
|
}
|
|
230
249
|
declare function useDrawingTools(): UseDrawingToolsReturn;
|
|
231
250
|
|
|
@@ -358,6 +377,311 @@ interface UseOrderLinesReturn {
|
|
|
358
377
|
}
|
|
359
378
|
declare function useOrderLines(): UseOrderLinesReturn;
|
|
360
379
|
|
|
380
|
+
type UndoRedoActionType = "overlay_added" | "overlays_removed" | "indicator_toggled";
|
|
381
|
+
interface UndoRedoAction {
|
|
382
|
+
type: UndoRedoActionType;
|
|
383
|
+
/** Snapshot data needed to undo/redo this action */
|
|
384
|
+
data: any;
|
|
385
|
+
}
|
|
386
|
+
interface UseUndoRedoReturn {
|
|
387
|
+
/** Whether there are actions to undo */
|
|
388
|
+
canUndo: boolean;
|
|
389
|
+
/** Whether there are actions to redo */
|
|
390
|
+
canRedo: boolean;
|
|
391
|
+
/** Undo the last action */
|
|
392
|
+
undo: () => void;
|
|
393
|
+
/** Redo the last undone action */
|
|
394
|
+
redo: () => void;
|
|
395
|
+
/** Push a new action onto the undo stack (clears redo stack) */
|
|
396
|
+
pushAction: (action: UndoRedoAction) => void;
|
|
397
|
+
/** Clear all undo/redo history */
|
|
398
|
+
clear: () => void;
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Headless hook for undo/redo of drawing overlays and indicator toggles.
|
|
402
|
+
*
|
|
403
|
+
* Supports keyboard shortcuts: Ctrl+Z (undo), Ctrl+Y / Ctrl+Shift+Z (redo).
|
|
404
|
+
*/
|
|
405
|
+
declare function useUndoRedo(): UseUndoRedoReturn;
|
|
406
|
+
|
|
407
|
+
interface ChartLayoutState {
|
|
408
|
+
version: string;
|
|
409
|
+
meta: {
|
|
410
|
+
symbol: string;
|
|
411
|
+
period: string;
|
|
412
|
+
timestamp: number;
|
|
413
|
+
lastModified: number;
|
|
414
|
+
};
|
|
415
|
+
indicators: Array<{
|
|
416
|
+
paneId: string;
|
|
417
|
+
name: string;
|
|
418
|
+
calcParams: any[];
|
|
419
|
+
visible: boolean;
|
|
420
|
+
styles?: any;
|
|
421
|
+
}>;
|
|
422
|
+
drawings: Array<{
|
|
423
|
+
name: string;
|
|
424
|
+
points: any[];
|
|
425
|
+
styles?: any;
|
|
426
|
+
extendData?: any;
|
|
427
|
+
}>;
|
|
428
|
+
}
|
|
429
|
+
interface LayoutEntry {
|
|
430
|
+
id: string;
|
|
431
|
+
name: string;
|
|
432
|
+
symbol: string;
|
|
433
|
+
period: string;
|
|
434
|
+
timestamp: number;
|
|
435
|
+
lastModified: number;
|
|
436
|
+
state: ChartLayoutState;
|
|
437
|
+
}
|
|
438
|
+
interface UseLayoutManagerReturn {
|
|
439
|
+
/** List of saved layout entries */
|
|
440
|
+
layouts: LayoutEntry[];
|
|
441
|
+
/** Save current chart state as a named layout */
|
|
442
|
+
saveLayout: (name: string) => string | null;
|
|
443
|
+
/** Load a layout by ID and apply to the chart */
|
|
444
|
+
loadLayout: (id: string) => boolean;
|
|
445
|
+
/** Delete a layout by ID */
|
|
446
|
+
deleteLayout: (id: string) => void;
|
|
447
|
+
/** Rename a layout */
|
|
448
|
+
renameLayout: (id: string, name: string) => boolean;
|
|
449
|
+
/** Refresh the layouts list from localStorage */
|
|
450
|
+
refreshLayouts: () => void;
|
|
451
|
+
/** Whether auto-save is enabled */
|
|
452
|
+
autoSaveEnabled: boolean;
|
|
453
|
+
/** Toggle auto-save on/off */
|
|
454
|
+
setAutoSaveEnabled: (enabled: boolean) => void;
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Headless hook for saving, loading, and managing named chart layouts
|
|
458
|
+
* via localStorage. Supports auto-save with 5-second debounce.
|
|
459
|
+
*/
|
|
460
|
+
declare function useLayoutManager(): UseLayoutManagerReturn;
|
|
461
|
+
|
|
462
|
+
type ScriptPlacement = "main" | "sub";
|
|
463
|
+
interface UseScriptEditorReturn {
|
|
464
|
+
/** Current script source code */
|
|
465
|
+
code: string;
|
|
466
|
+
setCode: (code: string) => void;
|
|
467
|
+
/** Display name of the script */
|
|
468
|
+
scriptName: string;
|
|
469
|
+
setScriptName: (name: string) => void;
|
|
470
|
+
/** Comma-separated numeric params (e.g. "14, 26, 9") */
|
|
471
|
+
params: string;
|
|
472
|
+
setParams: (params: string) => void;
|
|
473
|
+
/** Where to place the indicator */
|
|
474
|
+
placement: ScriptPlacement;
|
|
475
|
+
setPlacement: (p: ScriptPlacement) => void;
|
|
476
|
+
/** Last error message (empty = no error) */
|
|
477
|
+
error: string;
|
|
478
|
+
/** Last status message */
|
|
479
|
+
status: string;
|
|
480
|
+
/** Whether the script is currently running */
|
|
481
|
+
isRunning: boolean;
|
|
482
|
+
/** Whether there is a script indicator currently on the chart */
|
|
483
|
+
hasActiveScript: boolean;
|
|
484
|
+
/** Execute the script and register the indicator */
|
|
485
|
+
runScript: () => void;
|
|
486
|
+
/** Remove the current script indicator from the chart */
|
|
487
|
+
removeScript: () => void;
|
|
488
|
+
/** Reset code to the default template */
|
|
489
|
+
resetCode: () => void;
|
|
490
|
+
/** Export the current code as a downloadable .js file */
|
|
491
|
+
exportScript: () => void;
|
|
492
|
+
/** Import a script from a File object */
|
|
493
|
+
importScript: (file: File) => void;
|
|
494
|
+
/** The default template code */
|
|
495
|
+
defaultScript: string;
|
|
496
|
+
}
|
|
497
|
+
/**
|
|
498
|
+
* Headless hook for a Pine Script-style custom indicator editor.
|
|
499
|
+
*
|
|
500
|
+
* Scripts are plain JavaScript function bodies that receive:
|
|
501
|
+
* - `TA` — technical analysis math library
|
|
502
|
+
* - `dataList` — KLineData[] (open, high, low, close, volume, timestamp)
|
|
503
|
+
* - `params` — number[] from the params input
|
|
504
|
+
*
|
|
505
|
+
* Must return an array of objects, one per candle. Each key = one chart series.
|
|
506
|
+
*/
|
|
507
|
+
declare function useScriptEditor(): UseScriptEditorReturn;
|
|
508
|
+
|
|
509
|
+
interface CrosshairBarData {
|
|
510
|
+
open: number;
|
|
511
|
+
high: number;
|
|
512
|
+
low: number;
|
|
513
|
+
close: number;
|
|
514
|
+
volume: number;
|
|
515
|
+
timestamp: number;
|
|
516
|
+
change: number;
|
|
517
|
+
changePercent: number;
|
|
518
|
+
}
|
|
519
|
+
interface UseCrosshairReturn {
|
|
520
|
+
/** OHLCV data of the bar under the crosshair. Null when cursor is off-chart. */
|
|
521
|
+
barData: CrosshairBarData | null;
|
|
522
|
+
}
|
|
523
|
+
declare function useCrosshair(): UseCrosshairReturn;
|
|
524
|
+
|
|
525
|
+
type AlertCondition = "crossing_up" | "crossing_down" | "crossing";
|
|
526
|
+
interface Alert {
|
|
527
|
+
id: string;
|
|
528
|
+
price: number;
|
|
529
|
+
condition: AlertCondition;
|
|
530
|
+
message?: string;
|
|
531
|
+
triggered: boolean;
|
|
532
|
+
}
|
|
533
|
+
interface UseAlertsReturn {
|
|
534
|
+
alerts: Alert[];
|
|
535
|
+
addAlert: (price: number, condition: AlertCondition, message?: string) => string;
|
|
536
|
+
removeAlert: (id: string) => void;
|
|
537
|
+
clearAlerts: () => void;
|
|
538
|
+
onAlertTriggered: (callback: (alert: Alert) => void) => void;
|
|
539
|
+
}
|
|
540
|
+
declare function useAlerts(): UseAlertsReturn;
|
|
541
|
+
|
|
542
|
+
type ExportFormat = "csv" | "json";
|
|
543
|
+
interface UseDataExportReturn {
|
|
544
|
+
/** Export all chart data */
|
|
545
|
+
exportAll: (format: ExportFormat) => void;
|
|
546
|
+
/** Export only the visible range */
|
|
547
|
+
exportVisible: (format: ExportFormat) => void;
|
|
548
|
+
}
|
|
549
|
+
declare function useDataExport(): UseDataExportReturn;
|
|
550
|
+
|
|
551
|
+
interface WatchlistItem {
|
|
552
|
+
ticker: string;
|
|
553
|
+
lastPrice: number | null;
|
|
554
|
+
change: number | null;
|
|
555
|
+
changePercent: number | null;
|
|
556
|
+
}
|
|
557
|
+
interface UseWatchlistReturn {
|
|
558
|
+
items: WatchlistItem[];
|
|
559
|
+
addSymbol: (ticker: string) => void;
|
|
560
|
+
removeSymbol: (ticker: string) => void;
|
|
561
|
+
switchSymbol: (ticker: string) => void;
|
|
562
|
+
activeSymbol: string | null;
|
|
563
|
+
}
|
|
564
|
+
declare function useWatchlist(): UseWatchlistReturn;
|
|
565
|
+
|
|
566
|
+
type ReplaySpeed = 1 | 2 | 5 | 10;
|
|
567
|
+
interface UseReplayReturn {
|
|
568
|
+
/** Whether a replay session is active */
|
|
569
|
+
isReplaying: boolean;
|
|
570
|
+
/** Whether the replay is currently paused */
|
|
571
|
+
isPaused: boolean;
|
|
572
|
+
/** Current playback speed multiplier */
|
|
573
|
+
speed: ReplaySpeed;
|
|
574
|
+
/** Current bar index in the replay */
|
|
575
|
+
barIndex: number;
|
|
576
|
+
/** Total number of bars in the saved data */
|
|
577
|
+
totalBars: number;
|
|
578
|
+
/** Start replaying from the beginning */
|
|
579
|
+
startReplay: () => void;
|
|
580
|
+
/** Stop replay and restore original data */
|
|
581
|
+
stopReplay: () => void;
|
|
582
|
+
/** Toggle play/pause */
|
|
583
|
+
togglePause: () => void;
|
|
584
|
+
/** Advance one bar while paused */
|
|
585
|
+
stepForward: () => void;
|
|
586
|
+
/** Go back one bar while paused */
|
|
587
|
+
stepBackward: () => void;
|
|
588
|
+
/** Seek to a specific bar index (0-based). Pauses playback. */
|
|
589
|
+
seekTo: (index: number) => void;
|
|
590
|
+
/** Change the playback speed */
|
|
591
|
+
setSpeed: (speed: ReplaySpeed) => void;
|
|
592
|
+
}
|
|
593
|
+
/**
|
|
594
|
+
* Headless hook for historical data replay (bar-by-bar playback).
|
|
595
|
+
*
|
|
596
|
+
* Loads the current chart data, clears the chart, then progressively adds
|
|
597
|
+
* bars back one at a time at the configured speed. Useful for backtesting
|
|
598
|
+
* and reviewing price action.
|
|
599
|
+
*/
|
|
600
|
+
declare function useReplay(): UseReplayReturn;
|
|
601
|
+
|
|
602
|
+
interface CompareSymbol {
|
|
603
|
+
ticker: string;
|
|
604
|
+
/** Base price (first bar close) used for percentage normalization */
|
|
605
|
+
basePrice: number | null;
|
|
606
|
+
color: string;
|
|
607
|
+
visible: boolean;
|
|
608
|
+
}
|
|
609
|
+
interface UseCompareReturn {
|
|
610
|
+
/** Currently compared symbols */
|
|
611
|
+
symbols: CompareSymbol[];
|
|
612
|
+
/** Add a symbol — fetches data, normalizes to %, renders as indicator line */
|
|
613
|
+
addSymbol: (ticker: string, color?: string) => Promise<void>;
|
|
614
|
+
/** Remove a symbol overlay */
|
|
615
|
+
removeSymbol: (ticker: string) => void;
|
|
616
|
+
/** Toggle visibility of a compared symbol */
|
|
617
|
+
toggleSymbol: (ticker: string) => void;
|
|
618
|
+
/** Clear all comparisons */
|
|
619
|
+
clearAll: () => void;
|
|
620
|
+
}
|
|
621
|
+
/**
|
|
622
|
+
* Headless hook for comparing multiple symbols on the same chart.
|
|
623
|
+
*
|
|
624
|
+
* Fetches historical data for each added symbol via the datafeed,
|
|
625
|
+
* normalizes prices to percentage change from the first bar,
|
|
626
|
+
* and renders each as a custom indicator line on the main pane.
|
|
627
|
+
*/
|
|
628
|
+
declare function useCompare(): UseCompareReturn;
|
|
629
|
+
|
|
630
|
+
interface MeasurePoint {
|
|
631
|
+
price: number;
|
|
632
|
+
timestamp: number;
|
|
633
|
+
barIndex: number;
|
|
634
|
+
}
|
|
635
|
+
interface MeasureResult {
|
|
636
|
+
from: MeasurePoint;
|
|
637
|
+
to: MeasurePoint;
|
|
638
|
+
/** Absolute price difference */
|
|
639
|
+
priceDiff: number;
|
|
640
|
+
/** Percentage change from → to */
|
|
641
|
+
pricePercent: number;
|
|
642
|
+
/** Number of bars between the two points */
|
|
643
|
+
bars: number;
|
|
644
|
+
/** Time difference in milliseconds */
|
|
645
|
+
timeDiff: number;
|
|
646
|
+
}
|
|
647
|
+
interface UseMeasureReturn {
|
|
648
|
+
/** Whether measure mode is active (waiting for clicks) */
|
|
649
|
+
isActive: boolean;
|
|
650
|
+
/** Start measure mode — next two clicks on chart set from/to */
|
|
651
|
+
startMeasure: () => void;
|
|
652
|
+
/** Cancel measure mode */
|
|
653
|
+
cancelMeasure: () => void;
|
|
654
|
+
/** Current measurement result (null until both points are set) */
|
|
655
|
+
result: MeasureResult | null;
|
|
656
|
+
/** Clear the current measurement */
|
|
657
|
+
clearResult: () => void;
|
|
658
|
+
/** First point (set after first click) */
|
|
659
|
+
fromPoint: MeasurePoint | null;
|
|
660
|
+
}
|
|
661
|
+
/**
|
|
662
|
+
* Headless hook for measuring distance/time/percentage between two points.
|
|
663
|
+
*
|
|
664
|
+
* Activates measure mode, captures two clicks on the chart via overlay
|
|
665
|
+
* interaction, then computes price diff, %, bar count, and time diff.
|
|
666
|
+
*/
|
|
667
|
+
declare function useMeasure(): UseMeasureReturn;
|
|
668
|
+
|
|
669
|
+
interface Annotation {
|
|
670
|
+
id: string;
|
|
671
|
+
text: string;
|
|
672
|
+
price: number;
|
|
673
|
+
timestamp: number;
|
|
674
|
+
color?: string;
|
|
675
|
+
}
|
|
676
|
+
interface UseAnnotationsReturn {
|
|
677
|
+
annotations: Annotation[];
|
|
678
|
+
addAnnotation: (text: string, price: number, timestamp: number, color?: string) => string;
|
|
679
|
+
removeAnnotation: (id: string) => void;
|
|
680
|
+
updateAnnotation: (id: string, updates: Partial<Pick<Annotation, "text" | "color">>) => void;
|
|
681
|
+
clearAnnotations: () => void;
|
|
682
|
+
}
|
|
683
|
+
declare function useAnnotations(): UseAnnotationsReturn;
|
|
684
|
+
|
|
361
685
|
interface TimezoneOption {
|
|
362
686
|
key: string;
|
|
363
687
|
localeKey: string;
|
|
@@ -389,6 +713,76 @@ declare const INDICATOR_PARAMS: Record<string, IndicatorDefinition>;
|
|
|
389
713
|
*/
|
|
390
714
|
declare function createDataLoader(datafeed: Datafeed, dispatch: Dispatch<KlinechartsUIAction>): DataLoader;
|
|
391
715
|
|
|
716
|
+
/**
|
|
717
|
+
* Technical Analysis (TA) Utility Library
|
|
718
|
+
* Ported logic to match TradingView / Pine Script calculations.
|
|
719
|
+
*/
|
|
720
|
+
declare const TA: {
|
|
721
|
+
/**
|
|
722
|
+
* Simple Moving Average (SMA)
|
|
723
|
+
* Optimized with running sum.
|
|
724
|
+
*/
|
|
725
|
+
sma: (data: number[], period: number) => (number | null)[];
|
|
726
|
+
/**
|
|
727
|
+
* Exponential Moving Average (EMA)
|
|
728
|
+
* alpha = 2 / (period + 1)
|
|
729
|
+
*/
|
|
730
|
+
ema: (data: number[], period: number) => (number | null)[];
|
|
731
|
+
/**
|
|
732
|
+
* Running Moving Average (RMA / Wilder's MA)
|
|
733
|
+
* Used in RSI, alpha = 1 / period
|
|
734
|
+
*/
|
|
735
|
+
rma: (data: number[], period: number) => (number | null)[];
|
|
736
|
+
/**
|
|
737
|
+
* Standard Deviation
|
|
738
|
+
*/
|
|
739
|
+
stdev: (data: number[], period: number) => (number | null)[];
|
|
740
|
+
/**
|
|
741
|
+
* Relative Strength Index (RSI)
|
|
742
|
+
*/
|
|
743
|
+
rsi: (data: number[], period: number) => (number | null)[];
|
|
744
|
+
/**
|
|
745
|
+
* Moving Average Convergence Divergence (MACD)
|
|
746
|
+
*/
|
|
747
|
+
macd: (data: number[], fastPeriod: number, slowPeriod: number, signalPeriod: number) => {
|
|
748
|
+
dif: (number | null)[];
|
|
749
|
+
dea: (number | null)[];
|
|
750
|
+
macd: (number | null)[];
|
|
751
|
+
};
|
|
752
|
+
/**
|
|
753
|
+
* Bollinger Bands (BOLL)
|
|
754
|
+
*/
|
|
755
|
+
bollinger: (data: number[], period: number, multiplier: number) => {
|
|
756
|
+
mid: (number | null)[];
|
|
757
|
+
upper: (number | null)[];
|
|
758
|
+
lower: (number | null)[];
|
|
759
|
+
};
|
|
760
|
+
/**
|
|
761
|
+
* Weighted Moving Average (WMA)
|
|
762
|
+
*/
|
|
763
|
+
wma: (data: number[], period: number) => (number | null)[];
|
|
764
|
+
/**
|
|
765
|
+
* True Range (TR)
|
|
766
|
+
*/
|
|
767
|
+
tr: (highs: number[], lows: number[], closes: number[]) => number[];
|
|
768
|
+
/**
|
|
769
|
+
* Average True Range (ATR)
|
|
770
|
+
*/
|
|
771
|
+
atr: (highs: number[], lows: number[], closes: number[], period: number) => (number | null)[];
|
|
772
|
+
/**
|
|
773
|
+
* Volume Weighted Average Price (VWAP)
|
|
774
|
+
*/
|
|
775
|
+
vwap: (highs: number[], lows: number[], closes: number[], volumes: number[]) => (number | null)[];
|
|
776
|
+
/**
|
|
777
|
+
* Commodity Channel Index (CCI)
|
|
778
|
+
*/
|
|
779
|
+
cci: (highs: number[], lows: number[], closes: number[], period: number) => (number | null)[];
|
|
780
|
+
/**
|
|
781
|
+
* Hull Moving Average (HMA)
|
|
782
|
+
*/
|
|
783
|
+
hma: (data: number[], period: number) => (number | null)[];
|
|
784
|
+
};
|
|
785
|
+
|
|
392
786
|
declare const arrow: OverlayTemplate;
|
|
393
787
|
|
|
394
788
|
declare const circle: OverlayTemplate;
|
|
@@ -409,8 +803,12 @@ declare const fibonacciSpeedResistanceFan: OverlayTemplate;
|
|
|
409
803
|
|
|
410
804
|
declare const fibonacciExtension: OverlayTemplate;
|
|
411
805
|
|
|
806
|
+
declare const fibRetracement: OverlayTemplate;
|
|
807
|
+
|
|
412
808
|
declare const gannBox: OverlayTemplate;
|
|
413
809
|
|
|
810
|
+
declare const gannFan: OverlayTemplate;
|
|
811
|
+
|
|
414
812
|
declare const threeWaves: OverlayTemplate;
|
|
415
813
|
|
|
416
814
|
declare const fiveWaves: OverlayTemplate;
|
|
@@ -419,8 +817,48 @@ declare const eightWaves: OverlayTemplate;
|
|
|
419
817
|
|
|
420
818
|
declare const anyWaves: OverlayTemplate;
|
|
421
819
|
|
|
820
|
+
declare const elliottWave: OverlayTemplate;
|
|
821
|
+
|
|
422
822
|
declare const abcd: OverlayTemplate;
|
|
423
823
|
|
|
424
824
|
declare const xabcd: OverlayTemplate;
|
|
425
825
|
|
|
426
|
-
|
|
826
|
+
declare const ray: OverlayTemplate;
|
|
827
|
+
|
|
828
|
+
declare const parallelChannel: OverlayTemplate;
|
|
829
|
+
|
|
830
|
+
declare const longPosition: OverlayTemplate;
|
|
831
|
+
|
|
832
|
+
declare const shortPosition: OverlayTemplate;
|
|
833
|
+
|
|
834
|
+
declare const measure: OverlayTemplate;
|
|
835
|
+
|
|
836
|
+
declare const brush: OverlayTemplate;
|
|
837
|
+
|
|
838
|
+
declare const bollTv: IndicatorTemplate;
|
|
839
|
+
|
|
840
|
+
declare const cci: IndicatorTemplate;
|
|
841
|
+
|
|
842
|
+
declare const hma: IndicatorTemplate;
|
|
843
|
+
|
|
844
|
+
declare const ichimoku: IndicatorTemplate;
|
|
845
|
+
|
|
846
|
+
declare const maRibbon: IndicatorTemplate;
|
|
847
|
+
|
|
848
|
+
declare const macdTv: IndicatorTemplate;
|
|
849
|
+
|
|
850
|
+
declare const pivotPoints: IndicatorTemplate;
|
|
851
|
+
|
|
852
|
+
/**
|
|
853
|
+
* TradingView-style RSI with RMA-based calculation,
|
|
854
|
+
* dashed level lines at 70/50/30, and gradient fills.
|
|
855
|
+
*/
|
|
856
|
+
declare const rsiTv: IndicatorTemplate;
|
|
857
|
+
|
|
858
|
+
declare const stochastic: IndicatorTemplate;
|
|
859
|
+
|
|
860
|
+
declare const superTrend: IndicatorTemplate;
|
|
861
|
+
|
|
862
|
+
declare const vwap: IndicatorTemplate;
|
|
863
|
+
|
|
864
|
+
export { type Alert, type AlertCondition, type Annotation, CANDLE_TYPES, COMPARE_RULES, type CandleTypeItem, type CandleTypeOption, type ChartLayoutState, type CompareRule, type CompareSymbol, type CrosshairBarData, DEFAULT_PERIODS, DRAWING_CATEGORIES, type Datafeed, type DrawingCategoryItem, type DrawingTool, type DrawingToolCategory, type DrawingToolItem, type ExportFormat, INDICATOR_PARAMS, type IndicatorDefinition, type IndicatorInfo, type IndicatorParamConfig, type KlinechartsUIAction, type KlinechartsUIContextValue, KlinechartsUIDispatchContext, type KlinechartsUIDispatchValue, type KlinechartsUIOptions, KlinechartsUIProvider, type KlinechartsUISettingsState, type KlinechartsUIState, KlinechartsUIStateContext, type LayoutEntry, MAIN_INDICATORS, type MagnetMode, type MeasurePoint, type MeasureResult, OrderLineExtendData, type OrderLineOptions, PRICE_AXIS_TYPES, type PartialSymbolInfo, type PriceAxisType, type ReplaySpeed, SUB_INDICATORS, type ScriptPlacement, TA, TIMEZONES, TOOLTIP_SHOW_RULES, type TerminalPeriod, type TimezoneItem, type TimezoneOption, type TooltipShowRule, type UndoRedoAction, type UndoRedoActionType, type UseAlertsReturn, type UseAnnotationsReturn, type UseCompareReturn, type UseCrosshairReturn, type UseDataExportReturn, type UseDrawingToolsReturn, type UseFullscreenReturn, type UseIndicatorsReturn, type UseKlinechartsUILoadingReturn, type UseKlinechartsUISettingsReturn, type UseKlinechartsUIThemeReturn, type UseLayoutManagerReturn, type UseMeasureReturn, type UseOrderLinesReturn, type UsePeriodsReturn, type UseReplayReturn, type UseScreenshotReturn, type UseScriptEditorReturn, type UseSymbolSearchReturn, type UseTimezoneReturn, type UseUndoRedoReturn, type UseWatchlistReturn, type WatchlistItem, YAXIS_POSITIONS, type YAxisPosition, abcd, anyWaves, arrow, bollTv, brush, cci, circle, createDataLoader, eightWaves, elliottWave, fibRetracement, fibonacciCircle, fibonacciExtension, fibonacciSegment, fibonacciSpeedResistanceFan, fibonacciSpiral, fiveWaves, gannBox, gannFan, hma, ichimoku, longPosition, maRibbon, macdTv, measure, parallelChannel, parallelogram, pivotPoints, ray, rect, rsiTv, shortPosition, stochastic, superTrend, threeWaves, triangle, useAlerts, useAnnotations, useCompare, useCrosshair, useDataExport, useDrawingTools, useFullscreen, useIndicators, useKlinechartsUI, useKlinechartsUILoading, useKlinechartsUISettings, useKlinechartsUITheme, useLayoutManager, useMeasure, useOrderLines, usePeriods, useReplay, useScreenshot, useScriptEditor, useSymbolSearch, useTimezone, useUndoRedo, useWatchlist, vwap, xabcd };
|