@363045841yyt/klinechart-core 0.8.5 → 0.8.7
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/dist/config/chartSettings.d.ts +21 -2
- package/dist/config/chartSettings.d.ts.map +1 -1
- package/dist/config/chartSettings.js +9 -1
- package/dist/config/chartSettings.js.map +1 -1
- package/dist/controllers/createChartController.d.ts.map +1 -1
- package/dist/controllers/createChartController.js +50 -3
- package/dist/controllers/createChartController.js.map +1 -1
- package/dist/controllers/types.d.ts +34 -23
- package/dist/controllers/types.d.ts.map +1 -1
- package/dist/data-fetchers/baostock.d.ts +0 -3
- package/dist/data-fetchers/baostock.d.ts.map +1 -1
- package/dist/data-fetchers/baostock.js +0 -1
- package/dist/data-fetchers/baostock.js.map +1 -1
- package/dist/data-fetchers/dataBuffer.d.ts +13 -2
- package/dist/data-fetchers/dataBuffer.d.ts.map +1 -1
- package/dist/data-fetchers/dataBuffer.js +41 -7
- package/dist/data-fetchers/dataBuffer.js.map +1 -1
- package/dist/data-fetchers/dataBufferTypes.d.ts +11 -0
- package/dist/data-fetchers/dataBufferTypes.d.ts.map +1 -0
- package/dist/data-fetchers/dataBufferTypes.js +2 -0
- package/dist/data-fetchers/dataBufferTypes.js.map +1 -0
- package/dist/data-fetchers/fetcherDefinitionRegistry.d.ts +4 -3
- package/dist/data-fetchers/fetcherDefinitionRegistry.d.ts.map +1 -1
- package/dist/data-fetchers/fetcherDefinitionRegistry.js +9 -2
- package/dist/data-fetchers/fetcherDefinitionRegistry.js.map +1 -1
- package/dist/data-fetchers/gotdx/gotdx.d.ts +7 -0
- package/dist/data-fetchers/gotdx/gotdx.d.ts.map +1 -0
- package/dist/data-fetchers/gotdx/gotdx.js +7 -0
- package/dist/data-fetchers/gotdx/gotdx.js.map +1 -0
- package/dist/data-fetchers/gotdx.d.ts +0 -8
- package/dist/data-fetchers/gotdx.d.ts.map +1 -1
- package/dist/data-fetchers/gotdx.js +40 -3
- package/dist/data-fetchers/gotdx.js.map +1 -1
- package/dist/data-fetchers/hundred-mock.d.ts +0 -3
- package/dist/data-fetchers/hundred-mock.d.ts.map +1 -1
- package/dist/data-fetchers/hundred-mock.js +0 -1
- package/dist/data-fetchers/hundred-mock.js.map +1 -1
- package/dist/data-fetchers/index.d.ts +10 -8
- package/dist/data-fetchers/index.d.ts.map +1 -1
- package/dist/data-fetchers/index.js +8 -7
- package/dist/data-fetchers/index.js.map +1 -1
- package/dist/data-fetchers/router.d.ts +2 -0
- package/dist/data-fetchers/router.d.ts.map +1 -1
- package/dist/data-fetchers/router.js +8 -1
- package/dist/data-fetchers/router.js.map +1 -1
- package/dist/data-fetchers/thousand-mock.d.ts +0 -3
- package/dist/data-fetchers/thousand-mock.d.ts.map +1 -1
- package/dist/data-fetchers/thousand-mock.js +0 -1
- package/dist/data-fetchers/thousand-mock.js.map +1 -1
- package/dist/data-fetchers/timeShareBuffer.d.ts +27 -0
- package/dist/data-fetchers/timeShareBuffer.d.ts.map +1 -0
- package/dist/data-fetchers/timeShareBuffer.js +79 -0
- package/dist/data-fetchers/timeShareBuffer.js.map +1 -0
- package/dist/data-fetchers/tradingview.d.ts +0 -8
- package/dist/data-fetchers/tradingview.d.ts.map +1 -1
- package/dist/data-fetchers/tradingview.js +1 -2
- package/dist/data-fetchers/tradingview.js.map +1 -1
- package/dist/data-fetchers/types.d.ts +9 -1
- package/dist/data-fetchers/types.d.ts.map +1 -1
- package/dist/engine/chart.d.ts +29 -1
- package/dist/engine/chart.d.ts.map +1 -1
- package/dist/engine/chart.js +140 -5
- package/dist/engine/chart.js.map +1 -1
- package/dist/engine/chartTypes.d.ts +3 -0
- package/dist/engine/chartTypes.d.ts.map +1 -1
- package/dist/engine/controller/interaction.d.ts +12 -1
- package/dist/engine/controller/interaction.d.ts.map +1 -1
- package/dist/engine/controller/interaction.js +105 -14
- package/dist/engine/controller/interaction.js.map +1 -1
- package/dist/engine/data/chartDataManager.d.ts +38 -11
- package/dist/engine/data/chartDataManager.d.ts.map +1 -1
- package/dist/engine/data/chartDataManager.js +491 -188
- package/dist/engine/data/chartDataManager.js.map +1 -1
- package/dist/engine/draw/pixelAlign.d.ts +0 -27
- package/dist/engine/draw/pixelAlign.d.ts.map +1 -1
- package/dist/engine/draw/pixelAlign.js +1 -1
- package/dist/engine/draw/pixelAlign.js.map +1 -1
- package/dist/engine/indicators/calculators.d.ts +0 -104
- package/dist/engine/indicators/calculators.d.ts.map +1 -1
- package/dist/engine/indicators/calculators.js +77 -171
- package/dist/engine/indicators/calculators.js.map +1 -1
- package/dist/engine/indicators/chartIndicatorManager.d.ts.map +1 -1
- package/dist/engine/indicators/chartIndicatorManager.js +3 -2
- package/dist/engine/indicators/chartIndicatorManager.js.map +1 -1
- package/dist/engine/indicators/ichimokuState.d.ts +2 -0
- package/dist/engine/indicators/ichimokuState.d.ts.map +1 -1
- package/dist/engine/indicators/ichimokuState.js.map +1 -1
- package/dist/engine/indicators/macdState.d.ts +0 -5
- package/dist/engine/indicators/macdState.d.ts.map +1 -1
- package/dist/engine/indicators/macdState.js +1 -1
- package/dist/engine/indicators/macdState.js.map +1 -1
- package/dist/engine/indicators/registerBuiltins.d.ts.map +1 -1
- package/dist/engine/indicators/registerBuiltins.js +1 -0
- package/dist/engine/indicators/registerBuiltins.js.map +1 -1
- package/dist/engine/indicators/rsiState.d.ts +0 -4
- package/dist/engine/indicators/rsiState.d.ts.map +1 -1
- package/dist/engine/indicators/rsiState.js +1 -1
- package/dist/engine/indicators/rsiState.js.map +1 -1
- package/dist/engine/indicators/scheduler.d.ts.map +1 -1
- package/dist/engine/indicators/scheduler.js +1 -7
- package/dist/engine/indicators/scheduler.js.map +1 -1
- package/dist/engine/indicators/visibleStateComposers.d.ts +14 -0
- package/dist/engine/indicators/visibleStateComposers.d.ts.map +1 -1
- package/dist/engine/indicators/visibleStateComposers.js +34 -0
- package/dist/engine/indicators/visibleStateComposers.js.map +1 -1
- package/dist/engine/layout/chartPaneLayout.d.ts +2 -0
- package/dist/engine/layout/chartPaneLayout.d.ts.map +1 -1
- package/dist/engine/layout/chartPaneLayout.js +24 -6
- package/dist/engine/layout/chartPaneLayout.js.map +1 -1
- package/dist/engine/modes/kLineMode.d.ts +37 -0
- package/dist/engine/modes/kLineMode.d.ts.map +1 -0
- package/dist/engine/modes/kLineMode.js +22 -0
- package/dist/engine/modes/kLineMode.js.map +1 -0
- package/dist/engine/modes/timeShareMode.d.ts +37 -0
- package/dist/engine/modes/timeShareMode.d.ts.map +1 -0
- package/dist/engine/modes/timeShareMode.js +59 -0
- package/dist/engine/modes/timeShareMode.js.map +1 -0
- package/dist/engine/modes/types.d.ts +47 -0
- package/dist/engine/modes/types.d.ts.map +1 -0
- package/dist/engine/modes/types.js +2 -0
- package/dist/engine/modes/types.js.map +1 -0
- package/dist/engine/paneRenderer.d.ts +4 -0
- package/dist/engine/paneRenderer.d.ts.map +1 -1
- package/dist/engine/paneRenderer.js +27 -40
- package/dist/engine/paneRenderer.js.map +1 -1
- package/dist/engine/render/chartRenderer.d.ts +4 -23
- package/dist/engine/render/chartRenderer.d.ts.map +1 -1
- package/dist/engine/render/chartRenderer.js +87 -17
- package/dist/engine/render/chartRenderer.js.map +1 -1
- package/dist/engine/renderers/Indicator/atr.d.ts +1 -18
- package/dist/engine/renderers/Indicator/atr.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/atr.js +3 -22
- package/dist/engine/renderers/Indicator/atr.js.map +1 -1
- package/dist/engine/renderers/Indicator/boll.d.ts +1 -4
- package/dist/engine/renderers/Indicator/boll.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/boll.js +3 -18
- package/dist/engine/renderers/Indicator/boll.js.map +1 -1
- package/dist/engine/renderers/Indicator/cci.d.ts +1 -22
- package/dist/engine/renderers/Indicator/cci.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/cci.js +8 -20
- package/dist/engine/renderers/Indicator/cci.js.map +1 -1
- package/dist/engine/renderers/Indicator/chaikinVol.d.ts +1 -7
- package/dist/engine/renderers/Indicator/chaikinVol.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/chaikinVol.js +3 -16
- package/dist/engine/renderers/Indicator/chaikinVol.js.map +1 -1
- package/dist/engine/renderers/Indicator/cmf.d.ts +1 -7
- package/dist/engine/renderers/Indicator/cmf.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/cmf.js +3 -15
- package/dist/engine/renderers/Indicator/cmf.js.map +1 -1
- package/dist/engine/renderers/Indicator/dema.d.ts +1 -7
- package/dist/engine/renderers/Indicator/dema.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/dema.js +3 -17
- package/dist/engine/renderers/Indicator/dema.js.map +1 -1
- package/dist/engine/renderers/Indicator/donchian.d.ts +1 -8
- package/dist/engine/renderers/Indicator/donchian.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/donchian.js +2 -2
- package/dist/engine/renderers/Indicator/donchian.js.map +1 -1
- package/dist/engine/renderers/Indicator/ene.d.ts +1 -12
- package/dist/engine/renderers/Indicator/ene.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/ene.js +3 -18
- package/dist/engine/renderers/Indicator/ene.js.map +1 -1
- package/dist/engine/renderers/Indicator/expma.d.ts +1 -4
- package/dist/engine/renderers/Indicator/expma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/expma.js +2 -2
- package/dist/engine/renderers/Indicator/expma.js.map +1 -1
- package/dist/engine/renderers/Indicator/fastk.d.ts +1 -22
- package/dist/engine/renderers/Indicator/fastk.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/fastk.js +11 -64
- package/dist/engine/renderers/Indicator/fastk.js.map +1 -1
- package/dist/engine/renderers/Indicator/fib.d.ts +1 -6
- package/dist/engine/renderers/Indicator/fib.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/fib.js +2 -2
- package/dist/engine/renderers/Indicator/fib.js.map +1 -1
- package/dist/engine/renderers/Indicator/hma.d.ts +1 -7
- package/dist/engine/renderers/Indicator/hma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/hma.js +3 -17
- package/dist/engine/renderers/Indicator/hma.js.map +1 -1
- package/dist/engine/renderers/Indicator/hv.d.ts +1 -7
- package/dist/engine/renderers/Indicator/hv.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/hv.js +3 -16
- package/dist/engine/renderers/Indicator/hv.js.map +1 -1
- package/dist/engine/renderers/Indicator/ichimoku.d.ts +1 -8
- package/dist/engine/renderers/Indicator/ichimoku.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/ichimoku.js +27 -5
- package/dist/engine/renderers/Indicator/ichimoku.js.map +1 -1
- package/dist/engine/renderers/Indicator/kama.d.ts +1 -7
- package/dist/engine/renderers/Indicator/kama.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/kama.js +3 -17
- package/dist/engine/renderers/Indicator/kama.js.map +1 -1
- package/dist/engine/renderers/Indicator/keltner.d.ts +1 -8
- package/dist/engine/renderers/Indicator/keltner.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/keltner.js +2 -2
- package/dist/engine/renderers/Indicator/keltner.js.map +1 -1
- package/dist/engine/renderers/Indicator/kst.d.ts +1 -22
- package/dist/engine/renderers/Indicator/kst.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/kst.js +2 -2
- package/dist/engine/renderers/Indicator/kst.js.map +1 -1
- package/dist/engine/renderers/Indicator/ma.d.ts +1 -4
- package/dist/engine/renderers/Indicator/ma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/ma.js +1 -1
- package/dist/engine/renderers/Indicator/ma.js.map +1 -1
- package/dist/engine/renderers/Indicator/macd.d.ts +1 -49
- package/dist/engine/renderers/Indicator/macd.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/macd.js +2 -12
- package/dist/engine/renderers/Indicator/macd.js.map +1 -1
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.js +205 -0
- package/dist/engine/renderers/Indicator/mainIndicatorLegend.js.map +1 -1
- package/dist/engine/renderers/Indicator/mfi.d.ts +1 -7
- package/dist/engine/renderers/Indicator/mfi.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/mfi.js +3 -15
- package/dist/engine/renderers/Indicator/mfi.js.map +1 -1
- package/dist/engine/renderers/Indicator/mom.d.ts +1 -22
- package/dist/engine/renderers/Indicator/mom.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/mom.js +8 -23
- package/dist/engine/renderers/Indicator/mom.js.map +1 -1
- package/dist/engine/renderers/Indicator/obv.d.ts +1 -7
- package/dist/engine/renderers/Indicator/obv.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/obv.js +3 -14
- package/dist/engine/renderers/Indicator/obv.js.map +1 -1
- package/dist/engine/renderers/Indicator/parkinson.d.ts +1 -7
- package/dist/engine/renderers/Indicator/parkinson.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/parkinson.js +3 -16
- package/dist/engine/renderers/Indicator/parkinson.js.map +1 -1
- package/dist/engine/renderers/Indicator/pivot.d.ts +1 -6
- package/dist/engine/renderers/Indicator/pivot.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/pivot.js +2 -2
- package/dist/engine/renderers/Indicator/pivot.js.map +1 -1
- package/dist/engine/renderers/Indicator/pvt.d.ts +1 -7
- package/dist/engine/renderers/Indicator/pvt.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/pvt.js +3 -14
- package/dist/engine/renderers/Indicator/pvt.js.map +1 -1
- package/dist/engine/renderers/Indicator/roc.d.ts +1 -8
- package/dist/engine/renderers/Indicator/roc.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/roc.js +3 -15
- package/dist/engine/renderers/Indicator/roc.js.map +1 -1
- package/dist/engine/renderers/Indicator/rsi.d.ts +0 -32
- package/dist/engine/renderers/Indicator/rsi.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/rsi.js +3 -3
- package/dist/engine/renderers/Indicator/rsi.js.map +1 -1
- package/dist/engine/renderers/Indicator/sar.d.ts +1 -8
- package/dist/engine/renderers/Indicator/sar.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/sar.js +2 -2
- package/dist/engine/renderers/Indicator/sar.js.map +1 -1
- package/dist/engine/renderers/Indicator/scale/indicator_scale.d.ts +2 -0
- package/dist/engine/renderers/Indicator/scale/indicator_scale.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/scale/indicator_scale.js +10 -6
- package/dist/engine/renderers/Indicator/scale/indicator_scale.js.map +1 -1
- package/dist/engine/renderers/Indicator/shared/dashedLines.d.ts +4 -0
- package/dist/engine/renderers/Indicator/shared/dashedLines.d.ts.map +1 -0
- package/dist/engine/renderers/Indicator/shared/dashedLines.js +50 -0
- package/dist/engine/renderers/Indicator/shared/dashedLines.js.map +1 -0
- package/dist/engine/renderers/Indicator/shared/titleInfo.d.ts +14 -0
- package/dist/engine/renderers/Indicator/shared/titleInfo.d.ts.map +1 -0
- package/dist/engine/renderers/Indicator/shared/titleInfo.js +25 -0
- package/dist/engine/renderers/Indicator/shared/titleInfo.js.map +1 -0
- package/dist/engine/renderers/Indicator/shared/webglBand.d.ts +5 -0
- package/dist/engine/renderers/Indicator/shared/webglBand.d.ts.map +1 -0
- package/dist/engine/renderers/Indicator/shared/webglBand.js +17 -0
- package/dist/engine/renderers/Indicator/shared/webglBand.js.map +1 -0
- package/dist/engine/renderers/Indicator/stoch.d.ts +1 -22
- package/dist/engine/renderers/Indicator/stoch.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/stoch.js +5 -46
- package/dist/engine/renderers/Indicator/stoch.js.map +1 -1
- package/dist/engine/renderers/Indicator/structure.d.ts +1 -7
- package/dist/engine/renderers/Indicator/structure.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/structure.js +2 -2
- package/dist/engine/renderers/Indicator/structure.js.map +1 -1
- package/dist/engine/renderers/Indicator/supertrend.d.ts +1 -8
- package/dist/engine/renderers/Indicator/supertrend.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/supertrend.js +2 -2
- package/dist/engine/renderers/Indicator/supertrend.js.map +1 -1
- package/dist/engine/renderers/Indicator/tema.d.ts +1 -7
- package/dist/engine/renderers/Indicator/tema.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/tema.js +3 -17
- package/dist/engine/renderers/Indicator/tema.js.map +1 -1
- package/dist/engine/renderers/Indicator/trix.d.ts +1 -8
- package/dist/engine/renderers/Indicator/trix.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/trix.js +2 -2
- package/dist/engine/renderers/Indicator/trix.js.map +1 -1
- package/dist/engine/renderers/Indicator/vma.d.ts +1 -7
- package/dist/engine/renderers/Indicator/vma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/vma.js +3 -15
- package/dist/engine/renderers/Indicator/vma.js.map +1 -1
- package/dist/engine/renderers/Indicator/volumeProfile.d.ts +1 -7
- package/dist/engine/renderers/Indicator/volumeProfile.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/volumeProfile.js +2 -2
- package/dist/engine/renderers/Indicator/volumeProfile.js.map +1 -1
- package/dist/engine/renderers/Indicator/vwap.d.ts +1 -7
- package/dist/engine/renderers/Indicator/vwap.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/vwap.js +3 -14
- package/dist/engine/renderers/Indicator/vwap.js.map +1 -1
- package/dist/engine/renderers/Indicator/wma.d.ts +1 -7
- package/dist/engine/renderers/Indicator/wma.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/wma.js +3 -17
- package/dist/engine/renderers/Indicator/wma.js.map +1 -1
- package/dist/engine/renderers/Indicator/wmsr.d.ts +1 -22
- package/dist/engine/renderers/Indicator/wmsr.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/wmsr.js +8 -23
- package/dist/engine/renderers/Indicator/wmsr.js.map +1 -1
- package/dist/engine/renderers/Indicator/zones.d.ts +1 -6
- package/dist/engine/renderers/Indicator/zones.d.ts.map +1 -1
- package/dist/engine/renderers/Indicator/zones.js +2 -2
- package/dist/engine/renderers/Indicator/zones.js.map +1 -1
- package/dist/engine/renderers/candle.d.ts +0 -16
- package/dist/engine/renderers/candle.d.ts.map +1 -1
- package/dist/engine/renderers/candle.js +1 -1
- package/dist/engine/renderers/candle.js.map +1 -1
- package/dist/engine/renderers/comparisonLine.d.ts.map +1 -1
- package/dist/engine/renderers/comparisonLine.js +2 -0
- package/dist/engine/renderers/comparisonLine.js.map +1 -1
- package/dist/engine/renderers/crosshair.js +1 -1
- package/dist/engine/renderers/crosshair.js.map +1 -1
- package/dist/engine/renderers/extremaMarkers.d.ts.map +1 -1
- package/dist/engine/renderers/extremaMarkers.js +2 -0
- package/dist/engine/renderers/extremaMarkers.js.map +1 -1
- package/dist/engine/renderers/lastPrice.d.ts.map +1 -1
- package/dist/engine/renderers/lastPrice.js +7 -2
- package/dist/engine/renderers/lastPrice.js.map +1 -1
- package/dist/engine/renderers/leftYAxis.d.ts +11 -0
- package/dist/engine/renderers/leftYAxis.d.ts.map +1 -0
- package/dist/engine/renderers/leftYAxis.js +67 -0
- package/dist/engine/renderers/leftYAxis.js.map +1 -0
- package/dist/engine/renderers/subVolume.d.ts +1 -13
- package/dist/engine/renderers/subVolume.d.ts.map +1 -1
- package/dist/engine/renderers/subVolume.js +1 -1
- package/dist/engine/renderers/subVolume.js.map +1 -1
- package/dist/engine/renderers/timeAxis.d.ts +0 -2
- package/dist/engine/renderers/timeAxis.d.ts.map +1 -1
- package/dist/engine/renderers/timeAxis.js +4 -1
- package/dist/engine/renderers/timeAxis.js.map +1 -1
- package/dist/engine/renderers/timeShare.d.ts +3 -0
- package/dist/engine/renderers/timeShare.d.ts.map +1 -0
- package/dist/engine/renderers/timeShare.js +260 -0
- package/dist/engine/renderers/timeShare.js.map +1 -0
- package/dist/engine/renderers/yAxis.d.ts.map +1 -1
- package/dist/engine/renderers/yAxis.js +9 -1
- package/dist/engine/renderers/yAxis.js.map +1 -1
- package/dist/engine/scale/price.d.ts +0 -7
- package/dist/engine/scale/price.d.ts.map +1 -1
- package/dist/engine/scale/price.js +3 -2
- package/dist/engine/scale/price.js.map +1 -1
- package/dist/engine/theme/fonts.d.ts +0 -2
- package/dist/engine/theme/fonts.d.ts.map +1 -1
- package/dist/engine/theme/fonts.js +1 -1
- package/dist/engine/theme/fonts.js.map +1 -1
- package/dist/engine/utils/klineConfig.d.ts.map +1 -1
- package/dist/engine/utils/klineConfig.js +1 -5
- package/dist/engine/utils/klineConfig.js.map +1 -1
- package/dist/engine/viewport/chartViewportManager.d.ts.map +1 -1
- package/dist/engine/viewport/chartViewportManager.js +6 -5
- package/dist/engine/viewport/chartViewportManager.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/chartBridge.d.ts.map +1 -1
- package/dist/mcp/chartBridge.js +2 -1
- package/dist/mcp/chartBridge.js.map +1 -1
- package/dist/plugin/types.d.ts +1 -0
- package/dist/plugin/types.d.ts.map +1 -1
- package/dist/plugin/types.js.map +1 -1
- package/dist/semantic/types.d.ts +1 -1
- package/dist/semantic/types.d.ts.map +1 -1
- package/dist/tokens/theme-base.d.ts +5 -0
- package/dist/tokens/theme-base.d.ts.map +1 -0
- package/dist/tokens/theme-base.js +31 -0
- package/dist/tokens/theme-base.js.map +1 -0
- package/dist/tokens/theme-china.d.ts.map +1 -1
- package/dist/tokens/theme-china.js +3 -0
- package/dist/tokens/theme-china.js.map +1 -1
- package/dist/tokens/theme-dark.d.ts.map +1 -1
- package/dist/tokens/theme-dark.js +12 -31
- package/dist/tokens/theme-dark.js.map +1 -1
- package/dist/tokens/theme-light.d.ts.map +1 -1
- package/dist/tokens/theme-light.js +11 -30
- package/dist/tokens/theme-light.js.map +1 -1
- package/dist/tokens/types.d.ts +7 -0
- package/dist/tokens/types.d.ts.map +1 -1
- package/dist/types/price.d.ts +8 -0
- package/dist/types/price.d.ts.map +1 -1
- package/dist/types/price.js +4 -0
- package/dist/types/price.js.map +1 -1
- package/dist/utils/dateFormat.d.ts +5 -42
- package/dist/utils/dateFormat.d.ts.map +1 -1
- package/dist/utils/dateFormat.js +24 -4
- package/dist/utils/dateFormat.js.map +1 -1
- package/dist/utils/kLineDraw/axis.d.ts +9 -28
- package/dist/utils/kLineDraw/axis.d.ts.map +1 -1
- package/dist/utils/kLineDraw/axis.js +33 -58
- package/dist/utils/kLineDraw/axis.js.map +1 -1
- package/dist/utils/uuid.d.ts +2 -0
- package/dist/utils/uuid.d.ts.map +1 -0
- package/dist/utils/uuid.js +10 -0
- package/dist/utils/uuid.js.map +1 -0
- package/dist/utils/volumePrice.d.ts +0 -40
- package/dist/utils/volumePrice.d.ts.map +1 -1
- package/dist/utils/volumePrice.js +2 -2
- package/dist/utils/volumePrice.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/src/config/chartSettings.ts +9 -1
- package/src/controllers/createChartController.ts +53 -3
- package/src/controllers/types.ts +36 -17
- package/src/data-fetchers/__tests__/dataBuffer.test.ts +39 -5
- package/src/data-fetchers/baostock.ts +1 -1
- package/src/data-fetchers/dataBuffer.ts +48 -11
- package/src/data-fetchers/dataBufferTypes.ts +11 -0
- package/src/data-fetchers/fetcherDefinitionRegistry.ts +14 -4
- package/src/data-fetchers/gotdx/gotdx.ts +6 -0
- package/src/data-fetchers/gotdx.ts +45 -7
- package/src/data-fetchers/hundred-mock.ts +1 -1
- package/src/data-fetchers/index.ts +10 -20
- package/src/data-fetchers/router.ts +12 -1
- package/src/data-fetchers/thousand-mock.ts +1 -1
- package/src/data-fetchers/timeShareBuffer.ts +92 -0
- package/src/data-fetchers/tradingview.ts +2 -2
- package/src/data-fetchers/types.ts +15 -2
- package/src/engine/__tests__/chart.dpr.test.ts +1 -0
- package/src/engine/chart.ts +157 -7
- package/src/engine/chartTypes.ts +3 -0
- package/src/engine/controller/__tests__/interaction.dpr.test.ts +2 -0
- package/src/engine/controller/interaction.ts +115 -16
- package/src/engine/data/chartDataManager.ts +557 -214
- package/src/engine/draw/pixelAlign.ts +1 -1
- package/src/engine/indicators/__tests__/_propertyAssertions.ts +2 -2
- package/src/engine/indicators/__tests__/ichimoku.test.ts +3 -3
- package/src/engine/indicators/__tests__/registerBuiltins.test.ts +1 -1
- package/src/engine/indicators/calculators.ts +105 -236
- package/src/engine/indicators/chartIndicatorManager.ts +3 -2
- package/src/engine/indicators/ichimokuState.ts +2 -0
- package/src/engine/indicators/macdState.ts +1 -1
- package/src/engine/indicators/registerBuiltins.ts +1 -0
- package/src/engine/indicators/rsiState.ts +1 -1
- package/src/engine/indicators/scheduler.ts +1 -7
- package/src/engine/indicators/visibleStateComposers.ts +51 -0
- package/src/engine/layout/chartPaneLayout.ts +26 -6
- package/src/engine/modes/kLineMode.ts +57 -0
- package/src/engine/modes/timeShareMode.ts +95 -0
- package/src/engine/modes/types.ts +63 -0
- package/src/engine/paneRenderer.ts +37 -46
- package/src/engine/render/chartRenderer.ts +93 -20
- package/src/engine/renderers/Indicator/atr.ts +4 -29
- package/src/engine/renderers/Indicator/boll.ts +3 -24
- package/src/engine/renderers/Indicator/cci.ts +9 -27
- package/src/engine/renderers/Indicator/chaikinVol.ts +3 -23
- package/src/engine/renderers/Indicator/cmf.ts +3 -22
- package/src/engine/renderers/Indicator/dema.ts +5 -26
- package/src/engine/renderers/Indicator/donchian.ts +3 -3
- package/src/engine/renderers/Indicator/ene.ts +3 -24
- package/src/engine/renderers/Indicator/expma.ts +2 -2
- package/src/engine/renderers/Indicator/fastk.ts +12 -95
- package/src/engine/renderers/Indicator/fib.ts +2 -2
- package/src/engine/renderers/Indicator/hma.ts +5 -26
- package/src/engine/renderers/Indicator/hv.ts +3 -23
- package/src/engine/renderers/Indicator/ichimoku.ts +26 -6
- package/src/engine/renderers/Indicator/kama.ts +5 -26
- package/src/engine/renderers/Indicator/keltner.ts +3 -3
- package/src/engine/renderers/Indicator/kst.ts +3 -3
- package/src/engine/renderers/Indicator/ma.ts +1 -1
- package/src/engine/renderers/Indicator/macd.ts +4 -21
- package/src/engine/renderers/Indicator/mainIndicatorLegend.ts +228 -1
- package/src/engine/renderers/Indicator/mfi.ts +3 -22
- package/src/engine/renderers/Indicator/mom.ts +9 -30
- package/src/engine/renderers/Indicator/obv.ts +3 -21
- package/src/engine/renderers/Indicator/parkinson.ts +3 -23
- package/src/engine/renderers/Indicator/pivot.ts +2 -2
- package/src/engine/renderers/Indicator/pvt.ts +3 -21
- package/src/engine/renderers/Indicator/roc.ts +4 -23
- package/src/engine/renderers/Indicator/rsi.ts +4 -4
- package/src/engine/renderers/Indicator/sar.ts +3 -3
- package/src/engine/renderers/Indicator/scale/indicator_scale.ts +11 -4
- package/src/engine/renderers/Indicator/shared/dashedLines.ts +81 -0
- package/src/engine/renderers/Indicator/shared/titleInfo.ts +52 -0
- package/src/engine/renderers/Indicator/shared/webglBand.ts +23 -0
- package/src/engine/renderers/Indicator/stoch.ts +6 -71
- package/src/engine/renderers/Indicator/structure.ts +2 -2
- package/src/engine/renderers/Indicator/supertrend.ts +3 -3
- package/src/engine/renderers/Indicator/tema.ts +5 -26
- package/src/engine/renderers/Indicator/trix.ts +3 -3
- package/src/engine/renderers/Indicator/vma.ts +3 -22
- package/src/engine/renderers/Indicator/volumeProfile.ts +2 -2
- package/src/engine/renderers/Indicator/vwap.ts +3 -21
- package/src/engine/renderers/Indicator/wma.ts +5 -26
- package/src/engine/renderers/Indicator/wmsr.ts +9 -30
- package/src/engine/renderers/Indicator/zones.ts +2 -2
- package/src/engine/renderers/candle.ts +1 -1
- package/src/engine/renderers/comparisonLine.ts +1 -0
- package/src/engine/renderers/crosshair.ts +1 -1
- package/src/engine/renderers/extremaMarkers.ts +1 -0
- package/src/engine/renderers/lastPrice.ts +5 -2
- package/src/engine/renderers/leftYAxis.ts +77 -0
- package/src/engine/renderers/subVolume.ts +3 -3
- package/src/engine/renderers/timeAxis.ts +16 -13
- package/src/engine/renderers/timeShare.ts +271 -0
- package/src/engine/renderers/yAxis.ts +9 -1
- package/src/engine/scale/price.ts +2 -2
- package/src/engine/theme/fonts.ts +1 -1
- package/src/engine/utils/klineConfig.ts +1 -5
- package/src/engine/viewport/chartViewportManager.ts +6 -5
- package/src/index.ts +1 -0
- package/src/mcp/chartBridge.ts +2 -1
- package/src/plugin/types.ts +1 -0
- package/src/semantic/types.ts +1 -1
- package/src/tokens/__tests__/__snapshots__/baseline.test.ts.snap +15 -1
- package/src/tokens/theme-base.ts +36 -0
- package/src/tokens/theme-china.ts +4 -0
- package/src/tokens/theme-dark.ts +13 -33
- package/src/tokens/theme-light.ts +13 -33
- package/src/tokens/types.ts +9 -0
- package/src/types/price.ts +13 -0
- package/src/utils/dateFormat.ts +27 -4
- package/src/utils/kLineDraw/axis.ts +40 -107
- package/src/utils/uuid.ts +8 -0
- package/src/utils/volumePrice.ts +2 -2
- package/src/version.ts +1 -1
|
@@ -188,7 +188,7 @@ export function calcMAData(data, period) {
|
|
|
188
188
|
export const DEFAULT_RSI_PERIOD1 = 6;
|
|
189
189
|
export const DEFAULT_RSI_PERIOD2 = 12;
|
|
190
190
|
export const DEFAULT_RSI_PERIOD3 = 24;
|
|
191
|
-
|
|
191
|
+
const DEFAULT_RSI_PERIODS = [6, 12, 24];
|
|
192
192
|
/**
|
|
193
193
|
* 计算 RSI 数据
|
|
194
194
|
* RSI = 100 - 100 / (1 + RS)
|
|
@@ -254,7 +254,7 @@ export function calcRSIData(data, period) {
|
|
|
254
254
|
// ============================================================================
|
|
255
255
|
// CCI 顺势指标
|
|
256
256
|
// ============================================================================
|
|
257
|
-
|
|
257
|
+
const DEFAULT_CCI_PERIOD = 14;
|
|
258
258
|
export function calcCCIData(data, period) {
|
|
259
259
|
const result = new Array(data.length);
|
|
260
260
|
if (data.length < period)
|
|
@@ -292,8 +292,8 @@ export function calcCCIData(data, period) {
|
|
|
292
292
|
// ============================================================================
|
|
293
293
|
// STOCH 随机指标
|
|
294
294
|
// ============================================================================
|
|
295
|
-
|
|
296
|
-
|
|
295
|
+
const DEFAULT_STOCH_N = 9;
|
|
296
|
+
const DEFAULT_STOCH_M = 3;
|
|
297
297
|
export function calcSTOCHData(data, n, m) {
|
|
298
298
|
const result = new Array(data.length);
|
|
299
299
|
if (data.length < n)
|
|
@@ -341,7 +341,7 @@ export function calcSTOCHData(data, n, m) {
|
|
|
341
341
|
// ============================================================================
|
|
342
342
|
// MOM 动量指标
|
|
343
343
|
// ============================================================================
|
|
344
|
-
|
|
344
|
+
const DEFAULT_MOM_PERIOD = 10;
|
|
345
345
|
export function calcMOMData(data, period) {
|
|
346
346
|
const result = new Array(data.length);
|
|
347
347
|
if (data.length < period + 1)
|
|
@@ -358,7 +358,7 @@ export function calcMOMData(data, period) {
|
|
|
358
358
|
// ============================================================================
|
|
359
359
|
// WMSR 威廉指标
|
|
360
360
|
// ============================================================================
|
|
361
|
-
|
|
361
|
+
const DEFAULT_WMSR_PERIOD = 14;
|
|
362
362
|
export function calcWMSRData(data, period) {
|
|
363
363
|
const result = new Array(data.length);
|
|
364
364
|
if (data.length < period)
|
|
@@ -386,11 +386,11 @@ export function calcWMSRData(data, period) {
|
|
|
386
386
|
// ============================================================================
|
|
387
387
|
// KST 确知指标
|
|
388
388
|
// ============================================================================
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
389
|
+
const DEFAULT_KST_ROC1 = 10;
|
|
390
|
+
const DEFAULT_KST_ROC2 = 15;
|
|
391
|
+
const DEFAULT_KST_ROC3 = 20;
|
|
392
|
+
const DEFAULT_KST_ROC4 = 30;
|
|
393
|
+
const DEFAULT_KST_SIGNAL = 9;
|
|
394
394
|
function calcROCInternal(data, period) {
|
|
395
395
|
const result = new Array(data.length);
|
|
396
396
|
if (data.length < period + 1)
|
|
@@ -460,7 +460,7 @@ export function calcKSTData(data, roc1, roc2, roc3, roc4, signalPeriod) {
|
|
|
460
460
|
// ============================================================================
|
|
461
461
|
// FASTK 快速随机指标
|
|
462
462
|
// ============================================================================
|
|
463
|
-
|
|
463
|
+
const DEFAULT_FASTK_PERIOD = 9;
|
|
464
464
|
export function calcFASTKData(data, period) {
|
|
465
465
|
const result = new Array(data.length);
|
|
466
466
|
if (data.length < period)
|
|
@@ -488,9 +488,9 @@ export function calcFASTKData(data, period) {
|
|
|
488
488
|
/**
|
|
489
489
|
* 默认 MACD 参数
|
|
490
490
|
*/
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
491
|
+
const DEFAULT_MACD_FAST_PERIOD = 12;
|
|
492
|
+
const DEFAULT_MACD_SLOW_PERIOD = 26;
|
|
493
|
+
const DEFAULT_MACD_SIGNAL_PERIOD = 9;
|
|
494
494
|
/**
|
|
495
495
|
* 计算 EMA(指数移动平均)值
|
|
496
496
|
* EMA(today) = close × K + EMA(yesterday) × (1 - K)
|
|
@@ -499,7 +499,7 @@ export const DEFAULT_MACD_SIGNAL_PERIOD = 9;
|
|
|
499
499
|
* @param period 周期
|
|
500
500
|
* @returns EMA 值数组,第一个值使用第一个收盘价
|
|
501
501
|
*/
|
|
502
|
-
|
|
502
|
+
function calcEMA(data, period) {
|
|
503
503
|
const result = new Array(data.length);
|
|
504
504
|
const k = 2 / (period + 1);
|
|
505
505
|
if (data.length === 0)
|
|
@@ -520,7 +520,7 @@ export function calcEMA(data, period) {
|
|
|
520
520
|
* @param period 周期
|
|
521
521
|
* @returns EMA 值数组
|
|
522
522
|
*/
|
|
523
|
-
|
|
523
|
+
function calcEMAFromArray(values, period) {
|
|
524
524
|
const result = new Array(values.length);
|
|
525
525
|
const k = 2 / (period + 1);
|
|
526
526
|
const firstValid = values.findIndex(v => v !== undefined);
|
|
@@ -713,7 +713,7 @@ export function calcMACDDataSoA(layout, fastPeriod, slowPeriod, signalPeriod) {
|
|
|
713
713
|
// ============================================================================
|
|
714
714
|
// ATR — Wilder's Average True Range
|
|
715
715
|
// ============================================================================
|
|
716
|
-
|
|
716
|
+
const DEFAULT_ATR_PERIOD = 14;
|
|
717
717
|
/**
|
|
718
718
|
* 计算 Wilder ATR。
|
|
719
719
|
* TR(0) = H(0) - L(0)
|
|
@@ -763,19 +763,12 @@ export function calcATRData(data, period) {
|
|
|
763
763
|
}
|
|
764
764
|
return result;
|
|
765
765
|
}
|
|
766
|
-
/**
|
|
767
|
-
* 从 SoA 布局计算 ATR(包装函数,对齐其他指标的 SoA 入口)
|
|
768
|
-
*/
|
|
769
|
-
export function calcATRDataSoA(layout, period) {
|
|
770
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
771
|
-
return calcATRData(data, period);
|
|
772
|
-
}
|
|
773
766
|
// ============================================================================
|
|
774
767
|
// WMA — Weighted Moving Average (linear weights)
|
|
775
768
|
// 权重: w_i = i (i=1..period),分母 = period*(period+1)/2
|
|
776
769
|
// 滞后 = (period-1)/3 (相比 SMA 更快响应)
|
|
777
770
|
// ============================================================================
|
|
778
|
-
|
|
771
|
+
const DEFAULT_WMA_PERIOD = 9;
|
|
779
772
|
function _computeWMAOnNumbers(values, period) {
|
|
780
773
|
const n = values.length;
|
|
781
774
|
const result = new Array(n).fill(undefined);
|
|
@@ -807,10 +800,6 @@ export function calcWMAData(data, period) {
|
|
|
807
800
|
closes[i] = data[i].close;
|
|
808
801
|
return _computeWMAOnNumbers(closes, period);
|
|
809
802
|
}
|
|
810
|
-
export function calcWMADataSoA(layout, period) {
|
|
811
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
812
|
-
return calcWMAData(data, period);
|
|
813
|
-
}
|
|
814
803
|
// ============================================================================
|
|
815
804
|
// EMA helper(DEMA / TEMA 复用,沿用 EXPMA 的 first-close seed 习惯)
|
|
816
805
|
// alpha = 2 / (period + 1)
|
|
@@ -842,7 +831,7 @@ function _computeEMASeries(values, period) {
|
|
|
842
831
|
// 公式: DEMA(t) = 2*EMA(t) - EMA(EMA)(t)
|
|
843
832
|
// 性质: 对线性输入零滞后(稳态),warmup ~ 2*(period-1)
|
|
844
833
|
// ============================================================================
|
|
845
|
-
|
|
834
|
+
const DEFAULT_DEMA_PERIOD = 20;
|
|
846
835
|
export function calcDEMAData(data, period) {
|
|
847
836
|
const n = data.length;
|
|
848
837
|
const result = new Array(n).fill(undefined);
|
|
@@ -862,16 +851,12 @@ export function calcDEMAData(data, period) {
|
|
|
862
851
|
}
|
|
863
852
|
return result;
|
|
864
853
|
}
|
|
865
|
-
export function calcDEMADataSoA(layout, period) {
|
|
866
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
867
|
-
return calcDEMAData(data, period);
|
|
868
|
-
}
|
|
869
854
|
// ============================================================================
|
|
870
855
|
// TEMA — Triple Exponential Moving Average
|
|
871
856
|
// 公式: TEMA(t) = 3*EMA(t) - 3*EMA(EMA)(t) + EMA(EMA(EMA))(t)
|
|
872
857
|
// 性质: 对二次多项式输入零滞后(稳态),warmup ~ 3*(period-1)
|
|
873
858
|
// ============================================================================
|
|
874
|
-
|
|
859
|
+
const DEFAULT_TEMA_PERIOD = 20;
|
|
875
860
|
export function calcTEMAData(data, period) {
|
|
876
861
|
const n = data.length;
|
|
877
862
|
const result = new Array(n).fill(undefined);
|
|
@@ -893,17 +878,13 @@ export function calcTEMAData(data, period) {
|
|
|
893
878
|
}
|
|
894
879
|
return result;
|
|
895
880
|
}
|
|
896
|
-
export function calcTEMADataSoA(layout, period) {
|
|
897
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
898
|
-
return calcTEMAData(data, period);
|
|
899
|
-
}
|
|
900
881
|
// ============================================================================
|
|
901
882
|
// HMA — Hull Moving Average
|
|
902
883
|
// 公式: HMA(n) = WMA( 2*WMA(close, n/2) - WMA(close, n), sqrt(n) )
|
|
903
884
|
// 性质: 平滑性高于 WMA,滞后远低于同期 SMA
|
|
904
885
|
// warmup ≈ period - 1 + round(sqrt(period)) - 1
|
|
905
886
|
// ============================================================================
|
|
906
|
-
|
|
887
|
+
const DEFAULT_HMA_PERIOD = 9;
|
|
907
888
|
export function calcHMAData(data, period) {
|
|
908
889
|
const n = data.length;
|
|
909
890
|
const result = new Array(n).fill(undefined);
|
|
@@ -926,10 +907,6 @@ export function calcHMAData(data, period) {
|
|
|
926
907
|
}
|
|
927
908
|
return _computeWMAOnNumbers(raw, sqrtPeriod);
|
|
928
909
|
}
|
|
929
|
-
export function calcHMADataSoA(layout, period) {
|
|
930
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
931
|
-
return calcHMAData(data, period);
|
|
932
|
-
}
|
|
933
910
|
// ============================================================================
|
|
934
911
|
// KAMA — Kaufman's Adaptive Moving Average
|
|
935
912
|
// 自适应:在趋势强时跟得紧(接近 fast EMA),在震荡时跟得慢(接近 slow EMA)。
|
|
@@ -938,9 +915,9 @@ export function calcHMADataSoA(layout, period) {
|
|
|
938
915
|
// KAMA(t) = KAMA(t-1) + SC * (close[t] - KAMA(t-1))
|
|
939
916
|
// 种子 KAMA(n-1) = close[n-1](或 SMA(n);这里采用 close 种子以保持与项目内 EMA 系列一致)
|
|
940
917
|
// ============================================================================
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
918
|
+
const DEFAULT_KAMA_PERIOD = 10;
|
|
919
|
+
const DEFAULT_KAMA_FAST_PERIOD = 2;
|
|
920
|
+
const DEFAULT_KAMA_SLOW_PERIOD = 30;
|
|
944
921
|
export function calcKAMAData(data, period, fastPeriod, slowPeriod) {
|
|
945
922
|
const n = data.length;
|
|
946
923
|
const result = new Array(n).fill(undefined);
|
|
@@ -972,12 +949,8 @@ export function calcKAMAData(data, period, fastPeriod, slowPeriod) {
|
|
|
972
949
|
}
|
|
973
950
|
return result;
|
|
974
951
|
}
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
return calcKAMAData(data, period, fastPeriod, slowPeriod);
|
|
978
|
-
}
|
|
979
|
-
export const DEFAULT_SAR_STEP = 0.02;
|
|
980
|
-
export const DEFAULT_SAR_MAX_STEP = 0.2;
|
|
952
|
+
const DEFAULT_SAR_STEP = 0.02;
|
|
953
|
+
const DEFAULT_SAR_MAX_STEP = 0.2;
|
|
981
954
|
export function calcSARData(data, step, maxStep) {
|
|
982
955
|
const n = data.length;
|
|
983
956
|
const result = new Array(n).fill(undefined);
|
|
@@ -1031,12 +1004,8 @@ export function calcSARData(data, step, maxStep) {
|
|
|
1031
1004
|
}
|
|
1032
1005
|
return result;
|
|
1033
1006
|
}
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
return calcSARData(data, step, maxStep);
|
|
1037
|
-
}
|
|
1038
|
-
export const DEFAULT_SUPERTREND_ATR_PERIOD = 10;
|
|
1039
|
-
export const DEFAULT_SUPERTREND_MULTIPLIER = 3;
|
|
1007
|
+
const DEFAULT_SUPERTREND_ATR_PERIOD = 10;
|
|
1008
|
+
const DEFAULT_SUPERTREND_MULTIPLIER = 3;
|
|
1040
1009
|
export function calcSuperTrendData(data, atrPeriod, multiplier) {
|
|
1041
1010
|
const n = data.length;
|
|
1042
1011
|
const result = new Array(n).fill(undefined);
|
|
@@ -1071,13 +1040,9 @@ export function calcSuperTrendData(data, atrPeriod, multiplier) {
|
|
|
1071
1040
|
}
|
|
1072
1041
|
return result;
|
|
1073
1042
|
}
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
}
|
|
1078
|
-
export const DEFAULT_KELTNER_EMA_PERIOD = 20;
|
|
1079
|
-
export const DEFAULT_KELTNER_ATR_PERIOD = 10;
|
|
1080
|
-
export const DEFAULT_KELTNER_MULTIPLIER = 2;
|
|
1043
|
+
const DEFAULT_KELTNER_EMA_PERIOD = 20;
|
|
1044
|
+
const DEFAULT_KELTNER_ATR_PERIOD = 10;
|
|
1045
|
+
const DEFAULT_KELTNER_MULTIPLIER = 2;
|
|
1081
1046
|
export function calcKeltnerData(data, emaPeriod, atrPeriod, multiplier) {
|
|
1082
1047
|
const n = data.length;
|
|
1083
1048
|
const result = new Array(n).fill(undefined);
|
|
@@ -1101,11 +1066,7 @@ export function calcKeltnerData(data, emaPeriod, atrPeriod, multiplier) {
|
|
|
1101
1066
|
}
|
|
1102
1067
|
return result;
|
|
1103
1068
|
}
|
|
1104
|
-
|
|
1105
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
1106
|
-
return calcKeltnerData(data, emaPeriod, atrPeriod, multiplier);
|
|
1107
|
-
}
|
|
1108
|
-
export const DEFAULT_DONCHIAN_PERIOD = 20;
|
|
1069
|
+
const DEFAULT_DONCHIAN_PERIOD = 20;
|
|
1109
1070
|
export function calcDonchianData(data, period) {
|
|
1110
1071
|
const n = data.length;
|
|
1111
1072
|
const result = new Array(n).fill(undefined);
|
|
@@ -1125,14 +1086,10 @@ export function calcDonchianData(data, period) {
|
|
|
1125
1086
|
}
|
|
1126
1087
|
return result;
|
|
1127
1088
|
}
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
export const DEFAULT_ICHIMOKU_TENKAN = 9;
|
|
1133
|
-
export const DEFAULT_ICHIMOKU_KIJUN = 26;
|
|
1134
|
-
export const DEFAULT_ICHIMOKU_SPAN_B = 52;
|
|
1135
|
-
export const DEFAULT_ICHIMOKU_DISPLACEMENT = 26;
|
|
1089
|
+
const DEFAULT_ICHIMOKU_TENKAN = 9;
|
|
1090
|
+
const DEFAULT_ICHIMOKU_KIJUN = 26;
|
|
1091
|
+
const DEFAULT_ICHIMOKU_SPAN_B = 52;
|
|
1092
|
+
const DEFAULT_ICHIMOKU_DISPLACEMENT = 26;
|
|
1136
1093
|
function _rollingMidline(data, period) {
|
|
1137
1094
|
const n = data.length;
|
|
1138
1095
|
const result = new Array(n).fill(undefined);
|
|
@@ -1154,9 +1111,11 @@ function _rollingMidline(data, period) {
|
|
|
1154
1111
|
}
|
|
1155
1112
|
export function calcIchimokuData(data, tenkanPeriod, kijunPeriod, spanBPeriod, displacement) {
|
|
1156
1113
|
const n = data.length;
|
|
1157
|
-
const
|
|
1158
|
-
|
|
1159
|
-
|
|
1114
|
+
const totalLen = n + displacement;
|
|
1115
|
+
const result = new Array(totalLen).fill(undefined);
|
|
1116
|
+
if (n === 0 || tenkanPeriod <= 0 || kijunPeriod <= 0 || spanBPeriod <= 0) {
|
|
1117
|
+
return result.slice(0, n);
|
|
1118
|
+
}
|
|
1160
1119
|
const tenkan = _rollingMidline(data, tenkanPeriod);
|
|
1161
1120
|
const kijun = _rollingMidline(data, kijunPeriod);
|
|
1162
1121
|
const spanBSource = _rollingMidline(data, spanBPeriod);
|
|
@@ -1183,17 +1142,28 @@ export function calcIchimokuData(data, tenkanPeriod, kijunPeriod, spanBPeriod, d
|
|
|
1183
1142
|
point.chikou = data[future].close;
|
|
1184
1143
|
result[t] = point;
|
|
1185
1144
|
}
|
|
1145
|
+
// 未来云:在 data 末尾延伸 displacement 根,仅含 spanA/spanB
|
|
1146
|
+
for (let f = 0; f < displacement; f++) {
|
|
1147
|
+
const t = n + f;
|
|
1148
|
+
const src = t - displacement;
|
|
1149
|
+
const point = {};
|
|
1150
|
+
if (src >= 0 && src < n) {
|
|
1151
|
+
if (tenkan[src] !== undefined && kijun[src] !== undefined) {
|
|
1152
|
+
point.spanA = (tenkan[src] + kijun[src]) / 2;
|
|
1153
|
+
}
|
|
1154
|
+
if (spanBSource[src] !== undefined) {
|
|
1155
|
+
point.spanB = spanBSource[src];
|
|
1156
|
+
}
|
|
1157
|
+
}
|
|
1158
|
+
result[t] = point;
|
|
1159
|
+
}
|
|
1186
1160
|
return result;
|
|
1187
1161
|
}
|
|
1188
|
-
export function calcIchimokuDataSoA(layout, tenkanPeriod, kijunPeriod, spanBPeriod, displacement) {
|
|
1189
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
1190
|
-
return calcIchimokuData(data, tenkanPeriod, kijunPeriod, spanBPeriod, displacement);
|
|
1191
|
-
}
|
|
1192
1162
|
// ============================================================================
|
|
1193
1163
|
// ROC — Rate of Change
|
|
1194
1164
|
// ROC(t) = (close[t] - close[t-period]) / close[t-period] * 100
|
|
1195
1165
|
// ============================================================================
|
|
1196
|
-
|
|
1166
|
+
const DEFAULT_ROC_PERIOD = 12;
|
|
1197
1167
|
export function calcROCData(data, period) {
|
|
1198
1168
|
const n = data.length;
|
|
1199
1169
|
const result = new Array(n).fill(undefined);
|
|
@@ -1207,12 +1177,8 @@ export function calcROCData(data, period) {
|
|
|
1207
1177
|
}
|
|
1208
1178
|
return result;
|
|
1209
1179
|
}
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
return calcROCData(data, period);
|
|
1213
|
-
}
|
|
1214
|
-
export const DEFAULT_TRIX_PERIOD = 15;
|
|
1215
|
-
export const DEFAULT_TRIX_SIGNAL_PERIOD = 9;
|
|
1180
|
+
const DEFAULT_TRIX_PERIOD = 15;
|
|
1181
|
+
const DEFAULT_TRIX_SIGNAL_PERIOD = 9;
|
|
1216
1182
|
export function calcTRIXData(data, period, signalPeriod) {
|
|
1217
1183
|
const n = data.length;
|
|
1218
1184
|
const series = new Array(n).fill(undefined);
|
|
@@ -1239,17 +1205,13 @@ export function calcTRIXData(data, period, signalPeriod) {
|
|
|
1239
1205
|
}
|
|
1240
1206
|
return { series, signalSeries };
|
|
1241
1207
|
}
|
|
1242
|
-
export function calcTRIXDataSoA(layout, period, signalPeriod) {
|
|
1243
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
1244
|
-
return calcTRIXData(data, period, signalPeriod);
|
|
1245
|
-
}
|
|
1246
1208
|
// ============================================================================
|
|
1247
1209
|
// HV — Historical Volatility (close-to-close log returns)
|
|
1248
1210
|
// HV(t) = stdDev(log(close[i]/close[i-1]), i=t-period+1..t) * sqrt(annualization)
|
|
1249
1211
|
// 输出年化波动率(百分比形式 × 100)
|
|
1250
1212
|
// ============================================================================
|
|
1251
|
-
|
|
1252
|
-
|
|
1213
|
+
const DEFAULT_HV_PERIOD = 20;
|
|
1214
|
+
const DEFAULT_HV_ANNUALIZATION = 252;
|
|
1253
1215
|
export function calcHVData(data, period, annualizationFactor) {
|
|
1254
1216
|
const n = data.length;
|
|
1255
1217
|
const result = new Array(n).fill(undefined);
|
|
@@ -1278,16 +1240,12 @@ export function calcHVData(data, period, annualizationFactor) {
|
|
|
1278
1240
|
}
|
|
1279
1241
|
return result;
|
|
1280
1242
|
}
|
|
1281
|
-
export function calcHVDataSoA(layout, period, annualizationFactor) {
|
|
1282
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
1283
|
-
return calcHVData(data, period, annualizationFactor);
|
|
1284
|
-
}
|
|
1285
1243
|
// ============================================================================
|
|
1286
1244
|
// Parkinson Volatility — high-low range volatility
|
|
1287
1245
|
// PV(t) = sqrt( (1/(4*ln(2))) * mean(ln(high[i]/low[i])^2) * annualization ) * 100
|
|
1288
1246
|
// ============================================================================
|
|
1289
|
-
|
|
1290
|
-
|
|
1247
|
+
const DEFAULT_PARKINSON_PERIOD = 20;
|
|
1248
|
+
const DEFAULT_PARKINSON_ANNUALIZATION = 252;
|
|
1291
1249
|
export function calcParkinsonData(data, period, annualizationFactor) {
|
|
1292
1250
|
const n = data.length;
|
|
1293
1251
|
const result = new Array(n).fill(undefined);
|
|
@@ -1315,16 +1273,12 @@ export function calcParkinsonData(data, period, annualizationFactor) {
|
|
|
1315
1273
|
}
|
|
1316
1274
|
return result;
|
|
1317
1275
|
}
|
|
1318
|
-
export function calcParkinsonDataSoA(layout, period, annualizationFactor) {
|
|
1319
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
1320
|
-
return calcParkinsonData(data, period, annualizationFactor);
|
|
1321
|
-
}
|
|
1322
1276
|
// ============================================================================
|
|
1323
1277
|
// Chaikin Volatility — EMA(high-low) 的 ROC
|
|
1324
1278
|
// ChaikinVol(t) = (EMA(H-L, p)[t] - EMA(H-L, p)[t-rocPeriod]) / EMA(H-L, p)[t-rocPeriod] * 100
|
|
1325
1279
|
// ============================================================================
|
|
1326
|
-
|
|
1327
|
-
|
|
1280
|
+
const DEFAULT_CHAIKIN_VOL_EMA_PERIOD = 10;
|
|
1281
|
+
const DEFAULT_CHAIKIN_VOL_ROC_PERIOD = 10;
|
|
1328
1282
|
export function calcChaikinVolData(data, emaPeriod, rocPeriod) {
|
|
1329
1283
|
const n = data.length;
|
|
1330
1284
|
const result = new Array(n).fill(undefined);
|
|
@@ -1343,14 +1297,10 @@ export function calcChaikinVolData(data, emaPeriod, rocPeriod) {
|
|
|
1343
1297
|
}
|
|
1344
1298
|
return result;
|
|
1345
1299
|
}
|
|
1346
|
-
export function calcChaikinVolDataSoA(layout, emaPeriod, rocPeriod) {
|
|
1347
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
1348
|
-
return calcChaikinVolData(data, emaPeriod, rocPeriod);
|
|
1349
|
-
}
|
|
1350
1300
|
// ============================================================================
|
|
1351
1301
|
// VMA — Volume Moving Average (SMA of volume)
|
|
1352
1302
|
// ============================================================================
|
|
1353
|
-
|
|
1303
|
+
const DEFAULT_VMA_PERIOD = 5;
|
|
1354
1304
|
export function calcVMAData(data, period) {
|
|
1355
1305
|
const n = data.length;
|
|
1356
1306
|
const result = new Array(n).fill(undefined);
|
|
@@ -1366,10 +1316,6 @@ export function calcVMAData(data, period) {
|
|
|
1366
1316
|
}
|
|
1367
1317
|
return result;
|
|
1368
1318
|
}
|
|
1369
|
-
export function calcVMADataSoA(layout, period) {
|
|
1370
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
1371
|
-
return calcVMAData(data, period);
|
|
1372
|
-
}
|
|
1373
1319
|
// ============================================================================
|
|
1374
1320
|
// OBV — On Balance Volume (cumulative)
|
|
1375
1321
|
// close[t] > close[t-1] → OBV += volume[t]
|
|
@@ -1394,10 +1340,6 @@ export function calcOBVData(data) {
|
|
|
1394
1340
|
}
|
|
1395
1341
|
return result;
|
|
1396
1342
|
}
|
|
1397
|
-
export function calcOBVDataSoA(layout) {
|
|
1398
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
1399
|
-
return calcOBVData(data);
|
|
1400
|
-
}
|
|
1401
1343
|
// ============================================================================
|
|
1402
1344
|
// PVT — Price Volume Trend (cumulative)
|
|
1403
1345
|
// PVT(t) = PVT(t-1) + ((close[t] - close[t-1]) / close[t-1]) * volume[t]
|
|
@@ -1420,10 +1362,6 @@ export function calcPVTData(data) {
|
|
|
1420
1362
|
}
|
|
1421
1363
|
return result;
|
|
1422
1364
|
}
|
|
1423
|
-
export function calcPVTDataSoA(layout) {
|
|
1424
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
1425
|
-
return calcPVTData(data);
|
|
1426
|
-
}
|
|
1427
1365
|
// ============================================================================
|
|
1428
1366
|
// VWAP — Volume-Weighted Average Price
|
|
1429
1367
|
// VWAP(t) = sum_{i in session} TP(i) * V(i) / sum_{i in session} V(i)
|
|
@@ -1431,7 +1369,7 @@ export function calcPVTDataSoA(layout) {
|
|
|
1431
1369
|
// Session reset: if sessionResetGapMs > 0, reset cumulative sums when the gap
|
|
1432
1370
|
// between consecutive bar timestamps exceeds this value (e.g., overnight)
|
|
1433
1371
|
// ============================================================================
|
|
1434
|
-
|
|
1372
|
+
const DEFAULT_VWAP_SESSION_GAP_MS = 0;
|
|
1435
1373
|
export function calcVWAPData(data, sessionResetGapMs) {
|
|
1436
1374
|
const n = data.length;
|
|
1437
1375
|
const result = new Array(n).fill(undefined);
|
|
@@ -1454,17 +1392,13 @@ export function calcVWAPData(data, sessionResetGapMs) {
|
|
|
1454
1392
|
}
|
|
1455
1393
|
return result;
|
|
1456
1394
|
}
|
|
1457
|
-
export function calcVWAPDataSoA(layout, sessionResetGapMs) {
|
|
1458
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
1459
|
-
return calcVWAPData(data, sessionResetGapMs);
|
|
1460
|
-
}
|
|
1461
1395
|
// ============================================================================
|
|
1462
1396
|
// CMF — Chaikin Money Flow
|
|
1463
1397
|
// MFM = ((C-L) - (H-C)) / (H-L) ∈ [-1, 1]
|
|
1464
1398
|
// MFV = MFM * Volume
|
|
1465
1399
|
// CMF(t) = sum(MFV[t-period+1..t]) / sum(Volume[t-period+1..t]) ∈ [-1, 1]
|
|
1466
1400
|
// ============================================================================
|
|
1467
|
-
|
|
1401
|
+
const DEFAULT_CMF_PERIOD = 20;
|
|
1468
1402
|
export function calcCMFData(data, period) {
|
|
1469
1403
|
const n = data.length;
|
|
1470
1404
|
const result = new Array(n).fill(undefined);
|
|
@@ -1491,17 +1425,13 @@ export function calcCMFData(data, period) {
|
|
|
1491
1425
|
}
|
|
1492
1426
|
return result;
|
|
1493
1427
|
}
|
|
1494
|
-
export function calcCMFDataSoA(layout, period) {
|
|
1495
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
1496
|
-
return calcCMFData(data, period);
|
|
1497
|
-
}
|
|
1498
1428
|
// ============================================================================
|
|
1499
1429
|
// MFI — Money Flow Index
|
|
1500
1430
|
// TP = (H+L+C)/3, RMF = TP * Volume
|
|
1501
1431
|
// PMF = sum of RMF where TP > TP[-1]; NMF = sum where TP < TP[-1]
|
|
1502
1432
|
// MFR = PMF / NMF; MFI = 100 - 100 / (1 + MFR) ∈ [0, 100]
|
|
1503
1433
|
// ============================================================================
|
|
1504
|
-
|
|
1434
|
+
const DEFAULT_MFI_PERIOD = 14;
|
|
1505
1435
|
export function calcMFIData(data, period) {
|
|
1506
1436
|
const n = data.length;
|
|
1507
1437
|
const result = new Array(n).fill(undefined);
|
|
@@ -1544,10 +1474,6 @@ export function calcMFIData(data, period) {
|
|
|
1544
1474
|
}
|
|
1545
1475
|
return result;
|
|
1546
1476
|
}
|
|
1547
|
-
export function calcMFIDataSoA(layout, period) {
|
|
1548
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
1549
|
-
return calcMFIData(data, period);
|
|
1550
|
-
}
|
|
1551
1477
|
export function calcPivotData(data) {
|
|
1552
1478
|
const n = data.length;
|
|
1553
1479
|
const result = new Array(n).fill(undefined);
|
|
@@ -1569,11 +1495,7 @@ export function calcPivotData(data) {
|
|
|
1569
1495
|
}
|
|
1570
1496
|
return result;
|
|
1571
1497
|
}
|
|
1572
|
-
|
|
1573
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
1574
|
-
return calcPivotData(data);
|
|
1575
|
-
}
|
|
1576
|
-
export const DEFAULT_FIB_PERIOD = 50;
|
|
1498
|
+
const DEFAULT_FIB_PERIOD = 50;
|
|
1577
1499
|
export function calcFibData(data, period) {
|
|
1578
1500
|
const n = data.length;
|
|
1579
1501
|
const result = new Array(n).fill(undefined);
|
|
@@ -1613,12 +1535,8 @@ export function calcFibData(data, period) {
|
|
|
1613
1535
|
}
|
|
1614
1536
|
return result;
|
|
1615
1537
|
}
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
return calcFibData(data, period);
|
|
1619
|
-
}
|
|
1620
|
-
export const DEFAULT_STRUCTURE_LEFT = 2;
|
|
1621
|
-
export const DEFAULT_STRUCTURE_RIGHT = 2;
|
|
1538
|
+
const DEFAULT_STRUCTURE_LEFT = 2;
|
|
1539
|
+
const DEFAULT_STRUCTURE_RIGHT = 2;
|
|
1622
1540
|
export function calcStructureData(data, leftWindow, rightWindow, breakoutSource) {
|
|
1623
1541
|
const n = data.length;
|
|
1624
1542
|
if (n === 0 || leftWindow < 0 || rightWindow < 0) {
|
|
@@ -1714,11 +1632,7 @@ function isExtremum(data, i, left, right, kind) {
|
|
|
1714
1632
|
}
|
|
1715
1633
|
return true;
|
|
1716
1634
|
}
|
|
1717
|
-
|
|
1718
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
1719
|
-
return calcStructureData(data, leftWindow, rightWindow, breakoutSource);
|
|
1720
|
-
}
|
|
1721
|
-
export const DEFAULT_ZONES_OB_LOOKBACK = 5;
|
|
1635
|
+
const DEFAULT_ZONES_OB_LOOKBACK = 5;
|
|
1722
1636
|
export function calcZonesData(data, obLookback, structureLeftWindow, structureRightWindow, breakoutSource) {
|
|
1723
1637
|
const n = data.length;
|
|
1724
1638
|
if (n < 3)
|
|
@@ -1788,13 +1702,9 @@ export function calcZonesData(data, obLookback, structureLeftWindow, structureRi
|
|
|
1788
1702
|
}
|
|
1789
1703
|
return zones;
|
|
1790
1704
|
}
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
}
|
|
1795
|
-
export const DEFAULT_VP_BINS = 24;
|
|
1796
|
-
export const DEFAULT_VP_LOOKBACK = 0;
|
|
1797
|
-
export const DEFAULT_VP_VALUE_AREA = 0.7;
|
|
1705
|
+
const DEFAULT_VP_BINS = 24;
|
|
1706
|
+
const DEFAULT_VP_LOOKBACK = 0;
|
|
1707
|
+
const DEFAULT_VP_VALUE_AREA = 0.7;
|
|
1798
1708
|
export function calcVolumeProfileData(data, bins, lookback, valueAreaPercent) {
|
|
1799
1709
|
const n = data.length;
|
|
1800
1710
|
if (n === 0 || bins <= 0) {
|
|
@@ -1875,8 +1785,4 @@ export function calcVolumeProfileData(data, bins, lookback, valueAreaPercent) {
|
|
|
1875
1785
|
const vah = binsArr[hi].priceHigh;
|
|
1876
1786
|
return { bins: binsArr, poc, vah, val, totalVolume };
|
|
1877
1787
|
}
|
|
1878
|
-
export function calcVolumeProfileDataSoA(layout, bins, lookback, valueAreaPercent) {
|
|
1879
|
-
const data = SharedKLineBuffer.toKLineData(layout);
|
|
1880
|
-
return calcVolumeProfileData(data, bins, lookback, valueAreaPercent);
|
|
1881
|
-
}
|
|
1882
1788
|
//# sourceMappingURL=calculators.js.map
|