@363045841yyt/klinechart-core 0.8.8 → 0.8.10-alpha.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/dist/controllers/index.d.ts +1 -1
- package/dist/controllers/index.d.ts.map +1 -1
- package/dist/controllers/types.d.ts +2 -2
- package/dist/controllers/types.d.ts.map +1 -1
- package/dist/data-fetchers/dataBuffer.d.ts +6 -0
- package/dist/data-fetchers/dataBuffer.d.ts.map +1 -1
- package/dist/data-fetchers/dataBuffer.js +50 -3
- package/dist/data-fetchers/dataBuffer.js.map +1 -1
- package/dist/engine/chart.d.ts +0 -1
- package/dist/engine/chart.d.ts.map +1 -1
- package/dist/engine/chart.js +0 -42
- package/dist/engine/chart.js.map +1 -1
- package/dist/engine/controller/interaction.d.ts +62 -0
- package/dist/engine/controller/interaction.d.ts.map +1 -1
- package/dist/engine/controller/interaction.js +158 -74
- package/dist/engine/controller/interaction.js.map +1 -1
- package/dist/engine/data/chartDataManager.d.ts +3 -0
- package/dist/engine/data/chartDataManager.d.ts.map +1 -1
- package/dist/engine/data/chartDataManager.js +13 -4
- package/dist/engine/data/chartDataManager.js.map +1 -1
- package/dist/engine/drawing/index.d.ts +2 -5
- package/dist/engine/drawing/index.d.ts.map +1 -1
- package/dist/engine/drawing/index.js +2 -33
- package/dist/engine/drawing/index.js.map +1 -1
- package/dist/engine/drawing/interaction.js +1 -1
- package/dist/engine/drawing/interaction.js.map +1 -1
- package/dist/engine/drawing/linearRegression.d.ts +6 -0
- package/dist/engine/drawing/linearRegression.d.ts.map +1 -0
- package/dist/engine/drawing/linearRegression.js +34 -0
- package/dist/engine/drawing/linearRegression.js.map +1 -0
- package/dist/engine/drawing/plugin.d.ts.map +1 -1
- package/dist/engine/drawing/plugin.js +104 -94
- package/dist/engine/drawing/plugin.js.map +1 -1
- package/dist/engine/indicators/calculators/_shared.d.ts +3 -0
- package/dist/engine/indicators/calculators/_shared.d.ts.map +1 -0
- package/dist/engine/indicators/calculators/_shared.js +45 -0
- package/dist/engine/indicators/calculators/_shared.js.map +1 -0
- package/dist/engine/indicators/calculators/bands.d.ts +44 -0
- package/dist/engine/indicators/calculators/bands.d.ts.map +1 -0
- package/dist/engine/indicators/calculators/bands.js +268 -0
- package/dist/engine/indicators/calculators/bands.js.map +1 -0
- package/dist/engine/indicators/calculators/index.d.ts +33 -0
- package/dist/engine/indicators/calculators/index.d.ts.map +1 -0
- package/dist/engine/indicators/calculators/index.js +19 -0
- package/dist/engine/indicators/calculators/index.js.map +1 -0
- package/dist/engine/indicators/calculators/movingAverages.d.ts +21 -0
- package/dist/engine/indicators/calculators/movingAverages.d.ts.map +1 -0
- package/dist/engine/indicators/calculators/movingAverages.js +143 -0
- package/dist/engine/indicators/calculators/movingAverages.js.map +1 -0
- package/dist/engine/indicators/calculators/oscillators.d.ts +29 -0
- package/dist/engine/indicators/calculators/oscillators.d.ts.map +1 -0
- package/dist/engine/indicators/calculators/oscillators.js +349 -0
- package/dist/engine/indicators/calculators/oscillators.js.map +1 -0
- package/dist/engine/indicators/calculators/patterns.d.ts +54 -0
- package/dist/engine/indicators/calculators/patterns.d.ts.map +1 -0
- package/dist/engine/indicators/calculators/patterns.js +214 -0
- package/dist/engine/indicators/calculators/patterns.js.map +1 -0
- package/dist/engine/indicators/calculators/volatility.d.ts +6 -0
- package/dist/engine/indicators/calculators/volatility.d.ts.map +1 -0
- package/dist/engine/indicators/calculators/volatility.js +114 -0
- package/dist/engine/indicators/calculators/volatility.js.map +1 -0
- package/dist/engine/indicators/calculators/volume.d.ts +21 -0
- package/dist/engine/indicators/calculators/volume.d.ts.map +1 -0
- package/dist/engine/indicators/calculators/volume.js +218 -0
- package/dist/engine/indicators/calculators/volume.js.map +1 -0
- package/dist/engine/indicators/calculators.d.ts +1 -361
- package/dist/engine/indicators/calculators.d.ts.map +1 -1
- package/dist/engine/indicators/calculators.js +1 -1787
- 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 -44
- package/dist/engine/indicators/chartIndicatorManager.js.map +1 -1
- package/dist/engine/indicators/indicatorRegistry.d.ts +8 -0
- package/dist/engine/indicators/indicatorRegistry.d.ts.map +1 -1
- package/dist/engine/indicators/indicatorRegistry.js +16 -0
- package/dist/engine/indicators/indicatorRegistry.js.map +1 -1
- package/dist/engine/indicators/indicatorRuntime.js +2 -2
- package/dist/engine/indicators/indicatorRuntime.js.map +1 -1
- package/dist/engine/indicators/scheduler.d.ts +2 -2
- package/dist/engine/indicators/scheduler.d.ts.map +1 -1
- package/dist/engine/indicators/scheduler.js +15 -155
- package/dist/engine/indicators/scheduler.js.map +1 -1
- package/dist/engine/indicators/{atrState.d.ts → state/atrState.d.ts} +1 -1
- package/dist/engine/indicators/state/atrState.d.ts.map +1 -0
- package/dist/engine/indicators/{atrState.js → state/atrState.js} +1 -1
- package/dist/engine/indicators/state/atrState.js.map +1 -0
- package/dist/engine/indicators/{bollState.d.ts → state/bollState.d.ts} +4 -2
- package/dist/engine/indicators/state/bollState.d.ts.map +1 -0
- package/dist/engine/indicators/{bollState.js → state/bollState.js} +5 -3
- package/dist/engine/indicators/state/bollState.js.map +1 -0
- package/dist/engine/indicators/{cciState.d.ts → state/cciState.d.ts} +1 -1
- package/dist/engine/indicators/state/cciState.d.ts.map +1 -0
- package/dist/engine/indicators/{cciState.js → state/cciState.js} +1 -1
- package/dist/engine/indicators/state/cciState.js.map +1 -0
- package/dist/engine/indicators/{chaikinVolState.d.ts → state/chaikinVolState.d.ts} +1 -1
- package/dist/engine/indicators/state/chaikinVolState.d.ts.map +1 -0
- package/dist/engine/indicators/{chaikinVolState.js → state/chaikinVolState.js} +1 -1
- package/dist/engine/indicators/state/chaikinVolState.js.map +1 -0
- package/dist/engine/indicators/{cmfState.d.ts → state/cmfState.d.ts} +1 -1
- package/dist/engine/indicators/state/cmfState.d.ts.map +1 -0
- package/dist/engine/indicators/{cmfState.js → state/cmfState.js} +1 -1
- package/dist/engine/indicators/state/cmfState.js.map +1 -0
- package/dist/engine/indicators/{demaState.d.ts → state/demaState.d.ts} +1 -1
- package/dist/engine/indicators/state/demaState.d.ts.map +1 -0
- package/dist/engine/indicators/{demaState.js → state/demaState.js} +1 -1
- package/dist/engine/indicators/state/demaState.js.map +1 -0
- package/dist/engine/indicators/{donchianState.d.ts → state/donchianState.d.ts} +1 -1
- package/dist/engine/indicators/state/donchianState.d.ts.map +1 -0
- package/dist/engine/indicators/{donchianState.js → state/donchianState.js} +1 -1
- package/dist/engine/indicators/state/donchianState.js.map +1 -0
- package/dist/engine/indicators/{eneState.d.ts → state/eneState.d.ts} +4 -2
- package/dist/engine/indicators/state/eneState.d.ts.map +1 -0
- package/dist/engine/indicators/{eneState.js → state/eneState.js} +5 -3
- package/dist/engine/indicators/state/eneState.js.map +1 -0
- package/dist/engine/indicators/{expmaState.d.ts → state/expmaState.d.ts} +4 -2
- package/dist/engine/indicators/state/expmaState.d.ts.map +1 -0
- package/dist/engine/indicators/{expmaState.js → state/expmaState.js} +5 -3
- package/dist/engine/indicators/state/expmaState.js.map +1 -0
- package/dist/engine/indicators/{fastkState.d.ts → state/fastkState.d.ts} +1 -1
- package/dist/engine/indicators/state/fastkState.d.ts.map +1 -0
- package/dist/engine/indicators/{fastkState.js → state/fastkState.js} +1 -1
- package/dist/engine/indicators/state/fastkState.js.map +1 -0
- package/dist/engine/indicators/{fibState.d.ts → state/fibState.d.ts} +1 -1
- package/dist/engine/indicators/state/fibState.d.ts.map +1 -0
- package/dist/engine/indicators/{fibState.js → state/fibState.js} +1 -1
- package/dist/engine/indicators/state/fibState.js.map +1 -0
- package/dist/engine/indicators/{hmaState.d.ts → state/hmaState.d.ts} +1 -1
- package/dist/engine/indicators/state/hmaState.d.ts.map +1 -0
- package/dist/engine/indicators/{hmaState.js → state/hmaState.js} +1 -1
- package/dist/engine/indicators/state/hmaState.js.map +1 -0
- package/dist/engine/indicators/{hvState.d.ts → state/hvState.d.ts} +1 -1
- package/dist/engine/indicators/state/hvState.d.ts.map +1 -0
- package/dist/engine/indicators/{hvState.js → state/hvState.js} +1 -1
- package/dist/engine/indicators/state/hvState.js.map +1 -0
- package/dist/engine/indicators/{ichimokuState.d.ts → state/ichimokuState.d.ts} +1 -1
- package/dist/engine/indicators/state/ichimokuState.d.ts.map +1 -0
- package/dist/engine/indicators/{ichimokuState.js → state/ichimokuState.js} +1 -1
- package/dist/engine/indicators/state/ichimokuState.js.map +1 -0
- package/dist/engine/indicators/{kamaState.d.ts → state/kamaState.d.ts} +1 -1
- package/dist/engine/indicators/state/kamaState.d.ts.map +1 -0
- package/dist/engine/indicators/{kamaState.js → state/kamaState.js} +1 -1
- package/dist/engine/indicators/state/kamaState.js.map +1 -0
- package/dist/engine/indicators/{keltnerState.d.ts → state/keltnerState.d.ts} +1 -1
- package/dist/engine/indicators/state/keltnerState.d.ts.map +1 -0
- package/dist/engine/indicators/{keltnerState.js → state/keltnerState.js} +1 -1
- package/dist/engine/indicators/state/keltnerState.js.map +1 -0
- package/dist/engine/indicators/{kstState.d.ts → state/kstState.d.ts} +2 -2
- package/dist/engine/indicators/state/kstState.d.ts.map +1 -0
- package/dist/engine/indicators/{kstState.js → state/kstState.js} +1 -1
- package/dist/engine/indicators/state/kstState.js.map +1 -0
- package/dist/engine/indicators/{maState.d.ts → state/maState.d.ts} +1 -1
- package/dist/engine/indicators/state/maState.d.ts.map +1 -0
- package/dist/engine/indicators/{maState.js → state/maState.js} +1 -1
- package/dist/engine/indicators/state/maState.js.map +1 -0
- package/dist/engine/indicators/{macdState.d.ts → state/macdState.d.ts} +3 -19
- package/dist/engine/indicators/state/macdState.d.ts.map +1 -0
- package/dist/engine/indicators/state/macdState.js.map +1 -0
- package/dist/engine/indicators/{mfiState.d.ts → state/mfiState.d.ts} +1 -1
- package/dist/engine/indicators/state/mfiState.d.ts.map +1 -0
- package/dist/engine/indicators/{mfiState.js → state/mfiState.js} +1 -1
- package/dist/engine/indicators/state/mfiState.js.map +1 -0
- package/dist/engine/indicators/{momState.d.ts → state/momState.d.ts} +1 -1
- package/dist/engine/indicators/state/momState.d.ts.map +1 -0
- package/dist/engine/indicators/{momState.js → state/momState.js} +1 -1
- package/dist/engine/indicators/state/momState.js.map +1 -0
- package/dist/engine/indicators/{obvState.d.ts → state/obvState.d.ts} +1 -1
- package/dist/engine/indicators/state/obvState.d.ts.map +1 -0
- package/dist/engine/indicators/{obvState.js → state/obvState.js} +1 -1
- package/dist/engine/indicators/state/obvState.js.map +1 -0
- package/dist/engine/indicators/{parkinsonState.d.ts → state/parkinsonState.d.ts} +1 -1
- package/dist/engine/indicators/state/parkinsonState.d.ts.map +1 -0
- package/dist/engine/indicators/{parkinsonState.js → state/parkinsonState.js} +1 -1
- package/dist/engine/indicators/state/parkinsonState.js.map +1 -0
- package/dist/engine/indicators/{pivotState.d.ts → state/pivotState.d.ts} +1 -1
- package/dist/engine/indicators/state/pivotState.d.ts.map +1 -0
- package/dist/engine/indicators/{pivotState.js → state/pivotState.js} +1 -1
- package/dist/engine/indicators/state/pivotState.js.map +1 -0
- package/dist/engine/indicators/{pvtState.d.ts → state/pvtState.d.ts} +1 -1
- package/dist/engine/indicators/state/pvtState.d.ts.map +1 -0
- package/dist/engine/indicators/{pvtState.js → state/pvtState.js} +1 -1
- package/dist/engine/indicators/state/pvtState.js.map +1 -0
- package/dist/engine/indicators/{rocState.d.ts → state/rocState.d.ts} +1 -1
- package/dist/engine/indicators/state/rocState.d.ts.map +1 -0
- package/dist/engine/indicators/{rocState.js → state/rocState.js} +1 -1
- package/dist/engine/indicators/state/rocState.js.map +1 -0
- package/dist/engine/indicators/{rsiState.d.ts → state/rsiState.d.ts} +4 -1
- package/dist/engine/indicators/state/rsiState.d.ts.map +1 -0
- package/dist/engine/indicators/{rsiState.js → state/rsiState.js} +7 -4
- package/dist/engine/indicators/state/rsiState.js.map +1 -0
- package/dist/engine/indicators/{sarState.d.ts → state/sarState.d.ts} +1 -1
- package/dist/engine/indicators/state/sarState.d.ts.map +1 -0
- package/dist/engine/indicators/{sarState.js → state/sarState.js} +1 -1
- package/dist/engine/indicators/state/sarState.js.map +1 -0
- package/dist/engine/indicators/{stochState.d.ts → state/stochState.d.ts} +2 -2
- package/dist/engine/indicators/state/stochState.d.ts.map +1 -0
- package/dist/engine/indicators/{stochState.js → state/stochState.js} +1 -1
- package/dist/engine/indicators/state/stochState.js.map +1 -0
- package/dist/engine/indicators/{structureState.d.ts → state/structureState.d.ts} +1 -1
- package/dist/engine/indicators/state/structureState.d.ts.map +1 -0
- package/dist/engine/indicators/{structureState.js → state/structureState.js} +1 -1
- package/dist/engine/indicators/state/structureState.js.map +1 -0
- package/dist/engine/indicators/{supertrendState.d.ts → state/supertrendState.d.ts} +1 -1
- package/dist/engine/indicators/state/supertrendState.d.ts.map +1 -0
- package/dist/engine/indicators/{supertrendState.js → state/supertrendState.js} +1 -1
- package/dist/engine/indicators/state/supertrendState.js.map +1 -0
- package/dist/engine/indicators/{temaState.d.ts → state/temaState.d.ts} +1 -1
- package/dist/engine/indicators/state/temaState.d.ts.map +1 -0
- package/dist/engine/indicators/{temaState.js → state/temaState.js} +1 -1
- package/dist/engine/indicators/state/temaState.js.map +1 -0
- package/dist/engine/indicators/{trixState.d.ts → state/trixState.d.ts} +1 -1
- package/dist/engine/indicators/state/trixState.d.ts.map +1 -0
- package/dist/engine/indicators/{trixState.js → state/trixState.js} +1 -1
- package/dist/engine/indicators/state/trixState.js.map +1 -0
- package/dist/engine/indicators/{vmaState.d.ts → state/vmaState.d.ts} +1 -1
- package/dist/engine/indicators/state/vmaState.d.ts.map +1 -0
- package/dist/engine/indicators/{vmaState.js → state/vmaState.js} +1 -1
- package/dist/engine/indicators/state/vmaState.js.map +1 -0
- package/dist/engine/indicators/{volumeProfileState.d.ts → state/volumeProfileState.d.ts} +1 -1
- package/dist/engine/indicators/state/volumeProfileState.d.ts.map +1 -0
- package/dist/engine/indicators/{volumeProfileState.js → state/volumeProfileState.js} +1 -1
- package/dist/engine/indicators/state/volumeProfileState.js.map +1 -0
- package/dist/engine/indicators/{vwapState.d.ts → state/vwapState.d.ts} +1 -1
- package/dist/engine/indicators/state/vwapState.d.ts.map +1 -0
- package/dist/engine/indicators/{vwapState.js → state/vwapState.js} +1 -1
- package/dist/engine/indicators/state/vwapState.js.map +1 -0
- package/dist/engine/indicators/{wmaState.d.ts → state/wmaState.d.ts} +1 -1
- package/dist/engine/indicators/state/wmaState.d.ts.map +1 -0
- package/dist/engine/indicators/{wmaState.js → state/wmaState.js} +1 -1
- package/dist/engine/indicators/state/wmaState.js.map +1 -0
- package/dist/engine/indicators/{wmsrState.d.ts → state/wmsrState.d.ts} +1 -1
- package/dist/engine/indicators/state/wmsrState.d.ts.map +1 -0
- package/dist/engine/indicators/{wmsrState.js → state/wmsrState.js} +1 -1
- package/dist/engine/indicators/state/wmsrState.js.map +1 -0
- package/dist/engine/indicators/{zonesState.d.ts → state/zonesState.d.ts} +1 -1
- package/dist/engine/indicators/state/zonesState.d.ts.map +1 -0
- package/dist/engine/indicators/{zonesState.js → state/zonesState.js} +1 -1
- package/dist/engine/indicators/state/zonesState.js.map +1 -0
- package/dist/engine/indicators/stateComposer.d.ts +39 -39
- package/dist/engine/indicators/stateComposer.d.ts.map +1 -1
- package/dist/engine/indicators/visibleStateComposers.d.ts.map +1 -1
- package/dist/engine/indicators/visibleStateComposers.js +192 -31
- package/dist/engine/indicators/visibleStateComposers.js.map +1 -1
- package/dist/engine/layout/pane.js +2 -2
- package/dist/engine/layout/pane.js.map +1 -1
- package/dist/engine/paneRenderer.d.ts +2 -6
- package/dist/engine/paneRenderer.d.ts.map +1 -1
- package/dist/engine/paneRenderer.js.map +1 -1
- package/dist/engine/render/chartRenderer.d.ts.map +1 -1
- package/dist/engine/render/chartRenderer.js +7 -2
- package/dist/engine/render/chartRenderer.js.map +1 -1
- package/dist/engine/renderers/Indicator/atr.js +2 -2
- package/dist/engine/renderers/Indicator/atr.js.map +1 -1
- package/dist/engine/renderers/Indicator/cci.js +1 -1
- package/dist/engine/renderers/Indicator/cci.js.map +1 -1
- package/dist/engine/renderers/Indicator/chaikinVol.js +1 -1
- package/dist/engine/renderers/Indicator/chaikinVol.js.map +1 -1
- package/dist/engine/renderers/Indicator/cmf.js +1 -1
- package/dist/engine/renderers/Indicator/cmf.js.map +1 -1
- package/dist/engine/renderers/Indicator/dema.js +1 -1
- package/dist/engine/renderers/Indicator/dema.js.map +1 -1
- package/dist/engine/renderers/Indicator/donchian.js +1 -1
- package/dist/engine/renderers/Indicator/donchian.js.map +1 -1
- package/dist/engine/renderers/Indicator/fastk.js +1 -1
- package/dist/engine/renderers/Indicator/fastk.js.map +1 -1
- package/dist/engine/renderers/Indicator/fib.js +1 -1
- package/dist/engine/renderers/Indicator/fib.js.map +1 -1
- package/dist/engine/renderers/Indicator/hma.js +1 -1
- package/dist/engine/renderers/Indicator/hma.js.map +1 -1
- package/dist/engine/renderers/Indicator/hv.js +2 -2
- package/dist/engine/renderers/Indicator/hv.js.map +1 -1
- package/dist/engine/renderers/Indicator/ichimoku.js +95 -92
- package/dist/engine/renderers/Indicator/ichimoku.js.map +1 -1
- package/dist/engine/renderers/Indicator/kama.js +1 -1
- package/dist/engine/renderers/Indicator/kama.js.map +1 -1
- package/dist/engine/renderers/Indicator/keltner.js +1 -1
- package/dist/engine/renderers/Indicator/keltner.js.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.js.map +1 -1
- package/dist/engine/renderers/Indicator/macd.js +1 -1
- package/dist/engine/renderers/Indicator/macd.js.map +1 -1
- package/dist/engine/renderers/Indicator/mfi.js +1 -1
- package/dist/engine/renderers/Indicator/mfi.js.map +1 -1
- package/dist/engine/renderers/Indicator/mom.js +2 -2
- package/dist/engine/renderers/Indicator/mom.js.map +1 -1
- package/dist/engine/renderers/Indicator/obv.js +1 -1
- package/dist/engine/renderers/Indicator/obv.js.map +1 -1
- package/dist/engine/renderers/Indicator/parkinson.js +2 -2
- package/dist/engine/renderers/Indicator/parkinson.js.map +1 -1
- package/dist/engine/renderers/Indicator/pivot.js +1 -1
- package/dist/engine/renderers/Indicator/pivot.js.map +1 -1
- package/dist/engine/renderers/Indicator/pvt.js +1 -1
- package/dist/engine/renderers/Indicator/pvt.js.map +1 -1
- package/dist/engine/renderers/Indicator/roc.js +1 -1
- package/dist/engine/renderers/Indicator/roc.js.map +1 -1
- package/dist/engine/renderers/Indicator/rsi.js +1 -1
- package/dist/engine/renderers/Indicator/rsi.js.map +1 -1
- package/dist/engine/renderers/Indicator/sar.js +1 -1
- package/dist/engine/renderers/Indicator/sar.js.map +1 -1
- package/dist/engine/renderers/Indicator/stoch.js +1 -1
- package/dist/engine/renderers/Indicator/stoch.js.map +1 -1
- package/dist/engine/renderers/Indicator/structure.js +1 -1
- package/dist/engine/renderers/Indicator/structure.js.map +1 -1
- package/dist/engine/renderers/Indicator/supertrend.js +1 -1
- package/dist/engine/renderers/Indicator/supertrend.js.map +1 -1
- package/dist/engine/renderers/Indicator/tema.js +1 -1
- package/dist/engine/renderers/Indicator/tema.js.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.js +2 -2
- package/dist/engine/renderers/Indicator/vma.js.map +1 -1
- package/dist/engine/renderers/Indicator/volumeProfile.js +1 -1
- package/dist/engine/renderers/Indicator/volumeProfile.js.map +1 -1
- package/dist/engine/renderers/Indicator/vwap.js +1 -1
- package/dist/engine/renderers/Indicator/vwap.js.map +1 -1
- package/dist/engine/renderers/Indicator/wma.js +1 -1
- package/dist/engine/renderers/Indicator/wma.js.map +1 -1
- package/dist/engine/renderers/Indicator/wmsr.js +1 -1
- package/dist/engine/renderers/Indicator/wmsr.js.map +1 -1
- package/dist/engine/renderers/Indicator/zones.js +1 -1
- package/dist/engine/renderers/Indicator/zones.js.map +1 -1
- package/dist/engine/renderers/candle.d.ts.map +1 -1
- package/dist/engine/renderers/candle.js +94 -60
- package/dist/engine/renderers/candle.js.map +1 -1
- package/dist/engine/renderers/extremaMarkers.d.ts.map +1 -1
- package/dist/engine/renderers/extremaMarkers.js +5 -6
- package/dist/engine/renderers/extremaMarkers.js.map +1 -1
- package/dist/engine/renderers/gridLines.js +1 -1
- package/dist/engine/renderers/gridLines.js.map +1 -1
- package/dist/engine/renderers/leftYAxis.d.ts.map +1 -1
- package/dist/engine/renderers/leftYAxis.js +24 -3
- package/dist/engine/renderers/leftYAxis.js.map +1 -1
- package/dist/engine/renderers/timeAxis.d.ts.map +1 -1
- package/dist/engine/renderers/timeAxis.js +2 -0
- package/dist/engine/renderers/timeAxis.js.map +1 -1
- package/dist/engine/renderers/timeShare.js +1 -1
- package/dist/engine/renderers/timeShare.js.map +1 -1
- package/dist/engine/viewport/chartViewportManager.d.ts +34 -1
- package/dist/engine/viewport/chartViewportManager.d.ts.map +1 -1
- package/dist/engine/viewport/chartViewportManager.js +57 -22
- package/dist/engine/viewport/chartViewportManager.js.map +1 -1
- package/dist/mcp/chartBridge.js +1 -1
- package/dist/mcp/chartBridge.js.map +1 -1
- package/dist/plugin/types.d.ts +4 -0
- package/dist/plugin/types.d.ts.map +1 -1
- package/dist/plugin/types.js.map +1 -1
- package/dist/utils/dateFormat.d.ts +2 -2
- package/dist/utils/dateFormat.d.ts.map +1 -1
- package/dist/utils/dateFormat.js +6 -6
- package/dist/utils/dateFormat.js.map +1 -1
- package/dist/utils/kLineDraw/axis.d.ts +4 -0
- package/dist/utils/kLineDraw/axis.d.ts.map +1 -1
- package/dist/utils/kLineDraw/axis.js +2 -2
- package/dist/utils/kLineDraw/axis.js.map +1 -1
- package/dist/utils/volumePrice.d.ts.map +1 -1
- package/dist/utils/volumePrice.js +20 -3
- package/dist/utils/volumePrice.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
- package/src/controllers/createChartController.ts +2 -2
- package/src/controllers/index.ts +1 -1
- package/src/controllers/types.ts +2 -2
- package/src/data-fetchers/__tests__/dataBuffer.test.ts +135 -0
- package/src/data-fetchers/dataBuffer.ts +61 -9
- package/src/engine/chart.ts +0 -43
- package/src/engine/controller/interaction.ts +186 -76
- package/src/engine/data/chartDataManager.ts +16 -4
- package/src/engine/drawing/index.ts +2 -36
- package/src/engine/drawing/interaction.ts +1 -1
- package/src/engine/drawing/linearRegression.ts +36 -0
- package/src/engine/drawing/plugin.ts +160 -97
- package/src/engine/indicators/__tests__/calculators.test.ts +9 -1
- package/src/engine/indicators/__tests__/indicatorRegistry.test.ts +10 -5
- package/src/engine/indicators/__tests__/scheduler.test.ts +12 -12
- package/src/engine/indicators/__tests__/soa.test.ts +46 -12
- package/src/engine/indicators/calculators/_shared.ts +44 -0
- package/src/engine/indicators/calculators/bands.ts +365 -0
- package/src/engine/indicators/calculators/index.ts +37 -0
- package/src/engine/indicators/calculators/movingAverages.ts +189 -0
- package/src/engine/indicators/calculators/oscillators.ts +446 -0
- package/src/engine/indicators/calculators/patterns.ts +287 -0
- package/src/engine/indicators/calculators/volatility.ts +150 -0
- package/src/engine/indicators/calculators/volume.ts +248 -0
- package/src/engine/indicators/calculators.ts +1 -2460
- package/src/engine/indicators/chartIndicatorManager.ts +3 -44
- package/src/engine/indicators/indicatorRegistry.ts +15 -0
- package/src/engine/indicators/indicatorRuntime.ts +2 -2
- package/src/engine/indicators/scheduler.ts +39 -154
- package/src/engine/indicators/{atrState.ts → state/atrState.ts} +2 -2
- package/src/engine/indicators/{bollState.ts → state/bollState.ts} +8 -5
- package/src/engine/indicators/{cciState.ts → state/cciState.ts} +2 -2
- package/src/engine/indicators/{chaikinVolState.ts → state/chaikinVolState.ts} +2 -2
- package/src/engine/indicators/{cmfState.ts → state/cmfState.ts} +2 -2
- package/src/engine/indicators/{demaState.ts → state/demaState.ts} +2 -2
- package/src/engine/indicators/{donchianState.ts → state/donchianState.ts} +2 -2
- package/src/engine/indicators/{eneState.ts → state/eneState.ts} +8 -5
- package/src/engine/indicators/{expmaState.ts → state/expmaState.ts} +8 -5
- package/src/engine/indicators/{fastkState.ts → state/fastkState.ts} +2 -2
- package/src/engine/indicators/{fibState.ts → state/fibState.ts} +2 -2
- package/src/engine/indicators/{hmaState.ts → state/hmaState.ts} +2 -2
- package/src/engine/indicators/{hvState.ts → state/hvState.ts} +2 -2
- package/src/engine/indicators/{ichimokuState.ts → state/ichimokuState.ts} +2 -2
- package/src/engine/indicators/{kamaState.ts → state/kamaState.ts} +2 -2
- package/src/engine/indicators/{keltnerState.ts → state/keltnerState.ts} +2 -2
- package/src/engine/indicators/{kstState.ts → state/kstState.ts} +3 -3
- package/src/engine/indicators/{maState.ts → state/maState.ts} +2 -2
- package/src/engine/indicators/{macdState.ts → state/macdState.ts} +3 -20
- package/src/engine/indicators/{mfiState.ts → state/mfiState.ts} +2 -2
- package/src/engine/indicators/{momState.ts → state/momState.ts} +2 -2
- package/src/engine/indicators/{obvState.ts → state/obvState.ts} +2 -2
- package/src/engine/indicators/{parkinsonState.ts → state/parkinsonState.ts} +2 -2
- package/src/engine/indicators/{pivotState.ts → state/pivotState.ts} +2 -2
- package/src/engine/indicators/{pvtState.ts → state/pvtState.ts} +2 -2
- package/src/engine/indicators/{rocState.ts → state/rocState.ts} +2 -2
- package/src/engine/indicators/{rsiState.ts → state/rsiState.ts} +9 -5
- package/src/engine/indicators/{sarState.ts → state/sarState.ts} +2 -2
- package/src/engine/indicators/{stochState.ts → state/stochState.ts} +3 -3
- package/src/engine/indicators/{structureState.ts → state/structureState.ts} +2 -2
- package/src/engine/indicators/{supertrendState.ts → state/supertrendState.ts} +2 -2
- package/src/engine/indicators/{temaState.ts → state/temaState.ts} +2 -2
- package/src/engine/indicators/{trixState.ts → state/trixState.ts} +2 -2
- package/src/engine/indicators/{vmaState.ts → state/vmaState.ts} +2 -2
- package/src/engine/indicators/{volumeProfileState.ts → state/volumeProfileState.ts} +2 -2
- package/src/engine/indicators/{vwapState.ts → state/vwapState.ts} +2 -2
- package/src/engine/indicators/{wmaState.ts → state/wmaState.ts} +2 -2
- package/src/engine/indicators/{wmsrState.ts → state/wmsrState.ts} +2 -2
- package/src/engine/indicators/{zonesState.ts → state/zonesState.ts} +2 -2
- package/src/engine/indicators/stateComposer.ts +39 -39
- package/src/engine/indicators/visibleStateComposers.ts +203 -30
- package/src/engine/layout/pane.ts +2 -2
- package/src/engine/paneRenderer.ts +2 -6
- package/src/engine/render/chartRenderer.ts +7 -2
- package/src/engine/renderers/Indicator/__tests__/createSubIndicatorRenderer.test.ts +1 -1
- package/src/engine/renderers/Indicator/atr.ts +3 -3
- package/src/engine/renderers/Indicator/boll.ts +1 -1
- package/src/engine/renderers/Indicator/cci.ts +2 -2
- package/src/engine/renderers/Indicator/chaikinVol.ts +2 -2
- package/src/engine/renderers/Indicator/cmf.ts +2 -2
- package/src/engine/renderers/Indicator/dema.ts +2 -2
- package/src/engine/renderers/Indicator/donchian.ts +2 -2
- package/src/engine/renderers/Indicator/ene.ts +1 -1
- package/src/engine/renderers/Indicator/expma.ts +1 -1
- package/src/engine/renderers/Indicator/fastk.ts +2 -2
- package/src/engine/renderers/Indicator/fib.ts +2 -2
- package/src/engine/renderers/Indicator/hma.ts +2 -2
- package/src/engine/renderers/Indicator/hv.ts +3 -3
- package/src/engine/renderers/Indicator/ichimoku.ts +111 -85
- package/src/engine/renderers/Indicator/kama.ts +3 -3
- package/src/engine/renderers/Indicator/keltner.ts +4 -4
- package/src/engine/renderers/Indicator/kst.ts +5 -5
- package/src/engine/renderers/Indicator/ma.ts +2 -2
- package/src/engine/renderers/Indicator/macd.ts +40 -40
- package/src/engine/renderers/Indicator/mfi.ts +3 -3
- package/src/engine/renderers/Indicator/mom.ts +4 -4
- package/src/engine/renderers/Indicator/obv.ts +3 -3
- package/src/engine/renderers/Indicator/parkinson.ts +5 -5
- package/src/engine/renderers/Indicator/pivot.ts +4 -4
- package/src/engine/renderers/Indicator/pvt.ts +3 -3
- package/src/engine/renderers/Indicator/roc.ts +3 -3
- package/src/engine/renderers/Indicator/rsi.ts +4 -4
- package/src/engine/renderers/Indicator/sar.ts +3 -3
- package/src/engine/renderers/Indicator/stoch.ts +4 -4
- package/src/engine/renderers/Indicator/structure.ts +24 -24
- package/src/engine/renderers/Indicator/supertrend.ts +4 -4
- package/src/engine/renderers/Indicator/tema.ts +3 -3
- package/src/engine/renderers/Indicator/trix.ts +34 -34
- package/src/engine/renderers/Indicator/vma.ts +3 -3
- package/src/engine/renderers/Indicator/volumeProfile.ts +28 -28
- package/src/engine/renderers/Indicator/vwap.ts +3 -3
- package/src/engine/renderers/Indicator/wma.ts +3 -3
- package/src/engine/renderers/Indicator/wmsr.ts +3 -3
- package/src/engine/renderers/Indicator/zones.ts +6 -6
- package/src/engine/renderers/__tests__/boll.renderer.test.ts +1 -1
- package/src/engine/renderers/__tests__/ene.renderer.test.ts +1 -1
- package/src/engine/renderers/__tests__/expma.renderer.test.ts +1 -1
- package/src/engine/renderers/__tests__/ma.renderer.test.ts +1 -1
- package/src/engine/renderers/__tests__/mainIndicatorLegend.renderer.test.ts +4 -4
- package/src/engine/renderers/candle.ts +112 -70
- package/src/engine/renderers/extremaMarkers.ts +5 -3
- package/src/engine/renderers/gridLines.ts +1 -1
- package/src/engine/renderers/leftYAxis.ts +26 -3
- package/src/engine/renderers/timeAxis.ts +2 -0
- package/src/engine/renderers/timeShare.ts +10 -10
- package/src/engine/viewport/chartViewportManager.ts +61 -26
- package/src/mcp/chartBridge.ts +1 -1
- package/src/plugin/types.ts +4 -0
- package/src/utils/__tests__/dateFormat.test.ts +164 -0
- package/src/utils/dateFormat.ts +12 -6
- package/src/utils/kLineDraw/axis.ts +6 -2
- package/src/utils/volumePrice.ts +19 -3
- package/src/version.ts +1 -1
- package/dist/engine/indicators/atrState.d.ts.map +0 -1
- package/dist/engine/indicators/atrState.js.map +0 -1
- package/dist/engine/indicators/bollState.d.ts.map +0 -1
- package/dist/engine/indicators/bollState.js.map +0 -1
- package/dist/engine/indicators/cciState.d.ts.map +0 -1
- package/dist/engine/indicators/cciState.js.map +0 -1
- package/dist/engine/indicators/chaikinVolState.d.ts.map +0 -1
- package/dist/engine/indicators/chaikinVolState.js.map +0 -1
- package/dist/engine/indicators/cmfState.d.ts.map +0 -1
- package/dist/engine/indicators/cmfState.js.map +0 -1
- package/dist/engine/indicators/demaState.d.ts.map +0 -1
- package/dist/engine/indicators/demaState.js.map +0 -1
- package/dist/engine/indicators/donchianState.d.ts.map +0 -1
- package/dist/engine/indicators/donchianState.js.map +0 -1
- package/dist/engine/indicators/eneState.d.ts.map +0 -1
- package/dist/engine/indicators/eneState.js.map +0 -1
- package/dist/engine/indicators/expmaState.d.ts.map +0 -1
- package/dist/engine/indicators/expmaState.js.map +0 -1
- package/dist/engine/indicators/fastkState.d.ts.map +0 -1
- package/dist/engine/indicators/fastkState.js.map +0 -1
- package/dist/engine/indicators/fibState.d.ts.map +0 -1
- package/dist/engine/indicators/fibState.js.map +0 -1
- package/dist/engine/indicators/hmaState.d.ts.map +0 -1
- package/dist/engine/indicators/hmaState.js.map +0 -1
- package/dist/engine/indicators/hvState.d.ts.map +0 -1
- package/dist/engine/indicators/hvState.js.map +0 -1
- package/dist/engine/indicators/ichimokuState.d.ts.map +0 -1
- package/dist/engine/indicators/ichimokuState.js.map +0 -1
- package/dist/engine/indicators/kamaState.d.ts.map +0 -1
- package/dist/engine/indicators/kamaState.js.map +0 -1
- package/dist/engine/indicators/keltnerState.d.ts.map +0 -1
- package/dist/engine/indicators/keltnerState.js.map +0 -1
- package/dist/engine/indicators/kstState.d.ts.map +0 -1
- package/dist/engine/indicators/kstState.js.map +0 -1
- package/dist/engine/indicators/maState.d.ts.map +0 -1
- package/dist/engine/indicators/maState.js.map +0 -1
- package/dist/engine/indicators/macdState.d.ts.map +0 -1
- package/dist/engine/indicators/macdState.js.map +0 -1
- package/dist/engine/indicators/mfiState.d.ts.map +0 -1
- package/dist/engine/indicators/mfiState.js.map +0 -1
- package/dist/engine/indicators/momState.d.ts.map +0 -1
- package/dist/engine/indicators/momState.js.map +0 -1
- package/dist/engine/indicators/obvState.d.ts.map +0 -1
- package/dist/engine/indicators/obvState.js.map +0 -1
- package/dist/engine/indicators/parkinsonState.d.ts.map +0 -1
- package/dist/engine/indicators/parkinsonState.js.map +0 -1
- package/dist/engine/indicators/pivotState.d.ts.map +0 -1
- package/dist/engine/indicators/pivotState.js.map +0 -1
- package/dist/engine/indicators/pvtState.d.ts.map +0 -1
- package/dist/engine/indicators/pvtState.js.map +0 -1
- package/dist/engine/indicators/rocState.d.ts.map +0 -1
- package/dist/engine/indicators/rocState.js.map +0 -1
- package/dist/engine/indicators/rsiState.d.ts.map +0 -1
- package/dist/engine/indicators/rsiState.js.map +0 -1
- package/dist/engine/indicators/sarState.d.ts.map +0 -1
- package/dist/engine/indicators/sarState.js.map +0 -1
- package/dist/engine/indicators/stochState.d.ts.map +0 -1
- package/dist/engine/indicators/stochState.js.map +0 -1
- package/dist/engine/indicators/structureState.d.ts.map +0 -1
- package/dist/engine/indicators/structureState.js.map +0 -1
- package/dist/engine/indicators/supertrendState.d.ts.map +0 -1
- package/dist/engine/indicators/supertrendState.js.map +0 -1
- package/dist/engine/indicators/temaState.d.ts.map +0 -1
- package/dist/engine/indicators/temaState.js.map +0 -1
- package/dist/engine/indicators/trixState.d.ts.map +0 -1
- package/dist/engine/indicators/trixState.js.map +0 -1
- package/dist/engine/indicators/vmaState.d.ts.map +0 -1
- package/dist/engine/indicators/vmaState.js.map +0 -1
- package/dist/engine/indicators/volumeProfileState.d.ts.map +0 -1
- package/dist/engine/indicators/volumeProfileState.js.map +0 -1
- package/dist/engine/indicators/vwapState.d.ts.map +0 -1
- package/dist/engine/indicators/vwapState.js.map +0 -1
- package/dist/engine/indicators/wmaState.d.ts.map +0 -1
- package/dist/engine/indicators/wmaState.js.map +0 -1
- package/dist/engine/indicators/wmsrState.d.ts.map +0 -1
- package/dist/engine/indicators/wmsrState.js.map +0 -1
- package/dist/engine/indicators/zonesState.d.ts.map +0 -1
- package/dist/engine/indicators/zonesState.js.map +0 -1
- /package/dist/engine/indicators/{macdState.js → state/macdState.js} +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
|
|
2
2
|
import { RENDERER_PRIORITY } from '../../../plugin'
|
|
3
3
|
import { resolveThemeColors } from '../../../tokens'
|
|
4
|
-
import type { ParkinsonRenderState } from '../../indicators/parkinsonState'
|
|
5
|
-
import { createParkinsonStateKey } from '../../indicators/parkinsonState'
|
|
6
|
-
import { EMPTY_PARKINSON_STATE } from '../../indicators/parkinsonState'
|
|
4
|
+
import type { ParkinsonRenderState } from '../../indicators/state/parkinsonState'
|
|
5
|
+
import { createParkinsonStateKey } from '../../indicators/state/parkinsonState'
|
|
6
|
+
import { EMPTY_PARKINSON_STATE } from '../../indicators/state/parkinsonState'
|
|
7
7
|
import { createNonNegativeSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
|
|
8
8
|
import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
9
9
|
import { resolveStateKey } from '../../indicators/indicatorMetadata'
|
|
@@ -109,7 +109,7 @@ function createParkinsonRendererPlugin(options: { paneId?: string } = {}): Rende
|
|
|
109
109
|
const state = pluginHost?.getSharedState<ParkinsonRenderState>(stateKey)
|
|
110
110
|
return state?.params ?? {}
|
|
111
111
|
},
|
|
112
|
-
setConfig() {},
|
|
112
|
+
setConfig() { },
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
|
|
@@ -123,7 +123,7 @@ const getParkinsonTitleInfo = createSingleLineTitleInfo({ createStateKey: create
|
|
|
123
123
|
scale: { indicatorKey: 'parkinson', label: 'Parkinson', decimals: 2 },
|
|
124
124
|
getTitleInfo: getParkinsonTitleInfo,
|
|
125
125
|
visibleState: { compose: createNonNegativeSparseVisibleStateComposer('parkinson', EMPTY_PARKINSON_STATE) },
|
|
126
|
-
runtime: { defaultConfig:{period:20,annualizationFactor:252,showParkinson:true}, computeKey:'calcParkinsonData', compute:(data,c)=>calcParkinsonData(data,c.period,c.annualizationFactor) },
|
|
126
|
+
runtime: { defaultConfig: { period: 20, annualizationFactor: 252, showParkinson: true }, computeKey: 'calcParkinsonData', compute: (data, c) => calcParkinsonData(data, c.period, c.annualizationFactor) },
|
|
127
127
|
})
|
|
128
128
|
class ParkinsonIndicatorDefinition {
|
|
129
129
|
static rendererFactory = createParkinsonRendererPlugin
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
|
|
2
2
|
import { RENDERER_PRIORITY } from '../../../plugin'
|
|
3
|
-
import type { PivotRenderState } from '../../indicators/pivotState'
|
|
4
|
-
import { createPivotStateKey, EMPTY_PIVOT_STATE } from '../../indicators/pivotState'
|
|
3
|
+
import type { PivotRenderState } from '../../indicators/state/pivotState'
|
|
4
|
+
import { createPivotStateKey, EMPTY_PIVOT_STATE } from '../../indicators/state/pivotState'
|
|
5
5
|
import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
6
6
|
import { resolveStateKey, type TitleInfo, type TitleValueItem, type GetTitleInfoFn } from '../../indicators/indicatorMetadata'
|
|
7
7
|
import type { IndicatorScheduler, PivotSchedulerConfig } from '../../indicators/scheduler'
|
|
@@ -99,7 +99,7 @@ function createPivotRendererPlugin(options: { paneId?: string } = {}): RendererP
|
|
|
99
99
|
if (!stateKey) return {}
|
|
100
100
|
return pluginHost?.getSharedState<PivotRenderState>(stateKey)?.params ?? {}
|
|
101
101
|
},
|
|
102
|
-
setConfig() {},
|
|
102
|
+
setConfig() { },
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
|
|
@@ -169,7 +169,7 @@ const getPivotTitleInfo: GetTitleInfoFn = (_data, index, _params, host, paneId)
|
|
|
169
169
|
mainPane: { rendererName: 'pivot_main', toActiveConfig: (params, active) => ({ ...params, showPP: active, showR1: active, showR2: active, showR3: active, showS1: active, showS2: active, showS3: active }) },
|
|
170
170
|
scale: { indicatorKey: 'pivot', label: 'Pivot', decimals: 2 },
|
|
171
171
|
visibleState: { compose: createExactRangePointVisibleStateComposer('pivot', EMPTY_PIVOT_STATE, ['pp', 'r1', 'r2', 'r3', 's1', 's2', 's3']) },
|
|
172
|
-
runtime: { defaultConfig:{showPP:true,showR1:true,showR2:true,showR3:true,showS1:true,showS2:true,showS3:true}, computeKey:'calcPivotData', compute:(data,c)=>calcPivotData(data) },
|
|
172
|
+
runtime: { defaultConfig: { showPP: true, showR1: true, showR2: true, showR3: true, showS1: true, showS2: true, showS3: true }, computeKey: 'calcPivotData', compute: (data, c) => calcPivotData(data) },
|
|
173
173
|
})
|
|
174
174
|
class PivotDefinition {
|
|
175
175
|
static rendererFactory = createPivotRendererPlugin
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
|
|
2
2
|
import { RENDERER_PRIORITY } from '../../../plugin'
|
|
3
|
-
import type { PVTRenderState } from '../../indicators/pvtState'
|
|
4
|
-
import { createPVTStateKey, EMPTY_PVT_STATE } from '../../indicators/pvtState'
|
|
3
|
+
import type { PVTRenderState } from '../../indicators/state/pvtState'
|
|
4
|
+
import { createPVTStateKey, EMPTY_PVT_STATE } from '../../indicators/state/pvtState'
|
|
5
5
|
import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
6
6
|
import { resolveStateKey } from '../../indicators/indicatorMetadata'
|
|
7
7
|
import { createSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
|
|
@@ -106,7 +106,7 @@ function createPVTRendererPlugin(options: { paneId?: string } = {}): RendererPlu
|
|
|
106
106
|
const state = pluginHost?.getSharedState<PVTRenderState>(stateKey)
|
|
107
107
|
return state?.params ?? {}
|
|
108
108
|
},
|
|
109
|
-
setConfig() {},
|
|
109
|
+
setConfig() { },
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
|
|
2
2
|
import { RENDERER_PRIORITY } from '../../../plugin'
|
|
3
3
|
import { resolveThemeColors } from '../../../tokens'
|
|
4
|
-
import type { ROCRenderState } from '../../indicators/rocState'
|
|
5
|
-
import { createROCStateKey, EMPTY_ROC_STATE } from '../../indicators/rocState'
|
|
4
|
+
import type { ROCRenderState } from '../../indicators/state/rocState'
|
|
5
|
+
import { createROCStateKey, EMPTY_ROC_STATE } from '../../indicators/state/rocState'
|
|
6
6
|
import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
7
7
|
import { resolveStateKey } from '../../indicators/indicatorMetadata'
|
|
8
8
|
import { createSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
|
|
@@ -127,7 +127,7 @@ function createROCRendererPlugin(options: ROCRendererOptions = {}): RendererPlug
|
|
|
127
127
|
const state = pluginHost?.getSharedState<ROCRenderState>(stateKey)
|
|
128
128
|
return state?.params ?? {}
|
|
129
129
|
},
|
|
130
|
-
setConfig() {},
|
|
130
|
+
setConfig() { },
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
|
|
@@ -2,8 +2,8 @@ import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../..
|
|
|
2
2
|
import { RENDERER_PRIORITY } from '../../../plugin'
|
|
3
3
|
import { resolveThemeColors } from '../../../tokens'
|
|
4
4
|
import { alignToPhysicalPixelCenter } from '../../draw/pixelAlign'
|
|
5
|
-
import type { RSIRenderState } from '../../indicators/rsiState'
|
|
6
|
-
import { createRSIStateKey, EMPTY_RSI_STATE } from '../../indicators/rsiState'
|
|
5
|
+
import type { RSIRenderState } from '../../indicators/state/rsiState'
|
|
6
|
+
import { createRSIStateKey, EMPTY_RSI_STATE } from '../../indicators/state/rsiState'
|
|
7
7
|
import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
8
8
|
import { createFixedRangeRecordVisibleStateComposer } from '../../indicators/visibleStateComposers'
|
|
9
9
|
import { resolveStateKey } from '../../indicators/indicatorMetadata'
|
|
@@ -171,7 +171,7 @@ function createRSIRendererPlugin(options: RSIRendererOptions = {}): RendererPlug
|
|
|
171
171
|
},
|
|
172
172
|
|
|
173
173
|
draw(context: RenderContext) {
|
|
174
|
-
const { ctx, pane, range, scrollLeft, dpr, kLineCenters, lineWebGLSurface } = context
|
|
174
|
+
const { ctx, pane, range, scrollLeft, dpr, kLineCenters, lineWebGLSurface } = context
|
|
175
175
|
const colors = resolveThemeColors(context.theme, context.isAsiaMarket, context.colorPresetSettings)
|
|
176
176
|
|
|
177
177
|
// 从 StateStore 读取 RSI 状态
|
|
@@ -394,7 +394,7 @@ function getRSITitleInfo(
|
|
|
394
394
|
visibleState: { compose: createFixedRangeRecordVisibleStateComposer('rsi', EMPTY_RSI_STATE) },
|
|
395
395
|
scaleRendererFactory: createRsiScaleRendererPlugin,
|
|
396
396
|
getTitleInfo: getRSITitleInfo,
|
|
397
|
-
runtime: { defaultConfig:{period1:6,period2:12,period3:24,showRSI1:true,showRSI2:true,showRSI3:true}, computeKey:'calcRSIData', compute:(data,c)=>{const p=[c.period1,c.period2,c.period3];const s=[c.showRSI1,c.showRSI2,c.showRSI3];const r:Record<number,(number|undefined)[]
|
|
397
|
+
runtime: { defaultConfig: { period1: 6, period2: 12, period3: 24, showRSI1: true, showRSI2: true, showRSI3: true }, computeKey: 'calcRSIData', compute: (data, c) => { const p = [c.period1, c.period2, c.period3]; const s = [c.showRSI1, c.showRSI2, c.showRSI3]; const r: Record<number, (number | undefined)[]> = {}; for (let i = 0; i < 3; i++) { if (s[i]) r[p[i]] = calcRSIData(data, p[i]) } return r } },
|
|
398
398
|
})
|
|
399
399
|
class RSIIndicatorDefinition {
|
|
400
400
|
static rendererFactory = createRSIRendererPlugin
|
|
@@ -2,8 +2,8 @@ import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../..
|
|
|
2
2
|
import { RENDERER_PRIORITY } from '../../../plugin'
|
|
3
3
|
import { resolveThemeColors } from '../../../tokens'
|
|
4
4
|
import type { KLineData } from '../../../types/price'
|
|
5
|
-
import type { SARRenderState } from '../../indicators/sarState'
|
|
6
|
-
import { createSARStateKey, EMPTY_SAR_STATE } from '../../indicators/sarState'
|
|
5
|
+
import type { SARRenderState } from '../../indicators/state/sarState'
|
|
6
|
+
import { createSARStateKey, EMPTY_SAR_STATE } from '../../indicators/state/sarState'
|
|
7
7
|
import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
8
8
|
import { resolveStateKey, type TitleInfo, type GetTitleInfoFn } from '../../indicators/indicatorMetadata'
|
|
9
9
|
import type { IndicatorScheduler, SARSchedulerConfig } from '../../indicators/scheduler'
|
|
@@ -130,7 +130,7 @@ function getSARTitleInfo(
|
|
|
130
130
|
mainPane: { rendererName: 'sar_main', toActiveConfig: (params, active) => ({ ...params, showSAR: active }) },
|
|
131
131
|
scale: { indicatorKey: 'sar', label: 'SAR', decimals: 4 },
|
|
132
132
|
visibleState: { compose: createValuePointVisibleStateComposer('sar', EMPTY_SAR_STATE, ['value']) },
|
|
133
|
-
runtime: { defaultConfig:{step:0.02,maxStep:0.2,showSAR:true}, computeKey:'calcSARData', compute:(data,c)=>calcSARData(data,c.step,c.maxStep) },
|
|
133
|
+
runtime: { defaultConfig: { step: 0.02, maxStep: 0.2, showSAR: true }, computeKey: 'calcSARData', compute: (data, c) => calcSARData(data, c.step, c.maxStep) },
|
|
134
134
|
})
|
|
135
135
|
class SARDefinition {
|
|
136
136
|
static rendererFactory = createSARRendererPlugin
|
|
@@ -2,8 +2,8 @@ import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../..
|
|
|
2
2
|
import { RENDERER_PRIORITY } from '../../../plugin'
|
|
3
3
|
import { resolveThemeColors } from '../../../tokens'
|
|
4
4
|
import { createDashedLineRenderer } from './shared/dashedLines'
|
|
5
|
-
import type { STOCHRenderState } from '../../indicators/stochState'
|
|
6
|
-
import { createSTOCHStateKey, EMPTY_STOCH_STATE } from '../../indicators/stochState'
|
|
5
|
+
import type { STOCHRenderState } from '../../indicators/state/stochState'
|
|
6
|
+
import { createSTOCHStateKey, EMPTY_STOCH_STATE } from '../../indicators/state/stochState'
|
|
7
7
|
import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
8
8
|
import { createFixedRangePointVisibleStateComposer } from '../../indicators/visibleStateComposers'
|
|
9
9
|
import { resolveStateKey } from '../../indicators/indicatorMetadata'
|
|
@@ -103,7 +103,7 @@ function createSTOCHRendererPlugin(options: STOCHRendererOptions = {}): Renderer
|
|
|
103
103
|
},
|
|
104
104
|
|
|
105
105
|
draw(context: RenderContext) {
|
|
106
|
-
const { ctx, pane, range, scrollLeft, dpr, kLineCenters, lineWebGLSurface } = context
|
|
106
|
+
const { ctx, pane, range, scrollLeft, dpr, kLineCenters, lineWebGLSurface } = context
|
|
107
107
|
const colors = resolveThemeColors(context.theme, context.isAsiaMarket, context.colorPresetSettings)
|
|
108
108
|
|
|
109
109
|
const stateKey = resolveKey()
|
|
@@ -292,7 +292,7 @@ function getSTOCHTitleInfo(
|
|
|
292
292
|
visibleState: { compose: createFixedRangePointVisibleStateComposer('stoch', EMPTY_STOCH_STATE, ['k', 'd'] as const) },
|
|
293
293
|
scaleRendererFactory: createStochScaleRendererPlugin,
|
|
294
294
|
getTitleInfo: getSTOCHTitleInfo,
|
|
295
|
-
runtime: { defaultConfig:{n:9,m:3,showK:true,showD:true}, computeKey:'calcSTOCHData', compute:(data,c)=>calcSTOCHData(data,c.n,c.m) },
|
|
295
|
+
runtime: { defaultConfig: { n: 9, m: 3, showK: true, showD: true }, computeKey: 'calcSTOCHData', compute: (data, c) => calcSTOCHData(data, c.n, c.m) },
|
|
296
296
|
})
|
|
297
297
|
class STOCHIndicatorDefinition {
|
|
298
298
|
static rendererFactory = createSTOCHRendererPlugin
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { resolveThemeColors } from '../../../tokens'
|
|
2
2
|
import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
|
|
3
3
|
import { RENDERER_PRIORITY } from '../../../plugin'
|
|
4
|
-
import type { StructureRenderState } from '../../indicators/structureState'
|
|
5
|
-
import { createStructureStateKey, EMPTY_STRUCTURE_STATE } from '../../indicators/structureState'
|
|
4
|
+
import type { StructureRenderState } from '../../indicators/state/structureState'
|
|
5
|
+
import { createStructureStateKey, EMPTY_STRUCTURE_STATE } from '../../indicators/state/structureState'
|
|
6
6
|
import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
7
7
|
import { createFixedUnitVisibleStateComposer } from '../../indicators/visibleStateComposers'
|
|
8
8
|
import { resolveStateKey } from '../../indicators/indicatorMetadata'
|
|
@@ -109,34 +109,34 @@ function createStructureRendererPlugin(options: { paneId?: string } = {}): Rende
|
|
|
109
109
|
const state = pluginHost?.getSharedState<StructureRenderState>(stateKey)
|
|
110
110
|
return state?.params ?? {}
|
|
111
111
|
},
|
|
112
|
-
setConfig() {},
|
|
112
|
+
setConfig() { },
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
function getStructureTitleInfo(
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
117
|
+
_data: KLineData[],
|
|
118
|
+
index: number | null,
|
|
119
|
+
params: Record<string, number | boolean | string>,
|
|
120
|
+
host: PluginHost,
|
|
121
|
+
paneId: string,
|
|
122
122
|
): TitleInfo | null {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
123
|
+
if (index === null) return null
|
|
124
|
+
const leftWindow = (params.leftWindow as number) ?? 5
|
|
125
|
+
const rightWindow = (params.rightWindow as number) ?? 2
|
|
126
|
+
const colors = resolveThemeColors('light')
|
|
127
|
+
const state = host.getSharedState<StructureRenderState>(createStructureStateKey(paneId))
|
|
128
128
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
129
|
+
const values: Array<{ label: string; value: number; color: string }> = []
|
|
130
|
+
if (state && state.series.swings.length > 0) {
|
|
131
|
+
values.push({ label: 'Swings', value: state.series.swings.length, color: colors.structure.hh })
|
|
132
|
+
values.push({ label: 'Events', value: state.series.events.length, color: colors.structure.choch })
|
|
133
|
+
}
|
|
134
134
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
135
|
+
return {
|
|
136
|
+
name: 'Structure',
|
|
137
|
+
params: [leftWindow, rightWindow],
|
|
138
|
+
values,
|
|
139
|
+
}
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
@Indicator({
|
|
@@ -149,7 +149,7 @@ function getStructureTitleInfo(
|
|
|
149
149
|
scale: { indicatorKey: 'structure', label: 'Structure', decimals: 2 },
|
|
150
150
|
getTitleInfo: getStructureTitleInfo,
|
|
151
151
|
visibleState: { compose: createFixedUnitVisibleStateComposer('structure', EMPTY_STRUCTURE_STATE) },
|
|
152
|
-
runtime: { defaultConfig:{leftWindow:5,rightWindow:2,breakoutSource:'close',showSwingLabels:true,showBOS:true,showCHOCH:true,showProvisional:true}, computeKey:'calcStructureData', compute:(data,c)=>calcStructureData(data,c.leftWindow,c.rightWindow,c.breakoutSource) },
|
|
152
|
+
runtime: { defaultConfig: { leftWindow: 5, rightWindow: 2, breakoutSource: 'close', showSwingLabels: true, showBOS: true, showCHOCH: true, showProvisional: true }, computeKey: 'calcStructureData', compute: (data, c) => calcStructureData(data, c.leftWindow, c.rightWindow, c.breakoutSource) },
|
|
153
153
|
})
|
|
154
154
|
class StructureIndicatorDefinition {
|
|
155
155
|
static rendererFactory = createStructureRendererPlugin
|
|
@@ -2,8 +2,8 @@ import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../..
|
|
|
2
2
|
import { RENDERER_PRIORITY } from '../../../plugin'
|
|
3
3
|
import { resolveThemeColors } from '../../../tokens'
|
|
4
4
|
import type { KLineData } from '../../../types/price'
|
|
5
|
-
import type { SuperTrendRenderState } from '../../indicators/supertrendState'
|
|
6
|
-
import { createSuperTrendStateKey, EMPTY_SUPERTREND_STATE } from '../../indicators/supertrendState'
|
|
5
|
+
import type { SuperTrendRenderState } from '../../indicators/state/supertrendState'
|
|
6
|
+
import { createSuperTrendStateKey, EMPTY_SUPERTREND_STATE } from '../../indicators/state/supertrendState'
|
|
7
7
|
import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
8
8
|
import { resolveStateKey, type TitleInfo, type GetTitleInfoFn } from '../../indicators/indicatorMetadata'
|
|
9
9
|
import type { IndicatorScheduler, SuperTrendSchedulerConfig } from '../../indicators/scheduler'
|
|
@@ -96,7 +96,7 @@ function createSuperTrendRendererPlugin(options: SuperTrendRendererOptions = {})
|
|
|
96
96
|
const state = pluginHost?.getSharedState<SuperTrendRenderState>(stateKey)
|
|
97
97
|
return state?.params ?? {}
|
|
98
98
|
},
|
|
99
|
-
setConfig() {},
|
|
99
|
+
setConfig() { },
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
|
|
@@ -131,7 +131,7 @@ function getSuperTrendTitleInfo(
|
|
|
131
131
|
mainPane: { rendererName: 'supertrend_main', toActiveConfig: (params, active) => ({ ...params, showSuperTrend: active }) },
|
|
132
132
|
scale: { indicatorKey: 'supertrend', label: 'SuperTrend', decimals: 2 },
|
|
133
133
|
visibleState: { compose: createValuePointVisibleStateComposer('supertrend', EMPTY_SUPERTREND_STATE, ['value']) },
|
|
134
|
-
runtime: { defaultConfig:{atrPeriod:10,multiplier:3,showSuperTrend:true}, computeKey:'calcSuperTrendData', compute:(data,c)=>calcSuperTrendData(data,c.atrPeriod,c.multiplier) },
|
|
134
|
+
runtime: { defaultConfig: { atrPeriod: 10, multiplier: 3, showSuperTrend: true }, computeKey: 'calcSuperTrendData', compute: (data, c) => calcSuperTrendData(data, c.atrPeriod, c.multiplier) },
|
|
135
135
|
})
|
|
136
136
|
class SuperTrendIndicatorDefinition {
|
|
137
137
|
static rendererFactory = createSuperTrendRendererPlugin
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
|
|
2
2
|
import { createSingleLineTitleInfo } from './shared/titleInfo'
|
|
3
3
|
import { RENDERER_PRIORITY } from '../../../plugin'
|
|
4
|
-
import type { TEMARenderState } from '../../indicators/temaState'
|
|
5
|
-
import { createTEMAStateKey, EMPTY_TEMA_STATE } from '../../indicators/temaState'
|
|
4
|
+
import type { TEMARenderState } from '../../indicators/state/temaState'
|
|
5
|
+
import { createTEMAStateKey, EMPTY_TEMA_STATE } from '../../indicators/state/temaState'
|
|
6
6
|
import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
7
7
|
import { resolveStateKey } from '../../indicators/indicatorMetadata'
|
|
8
8
|
import { createSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
|
|
@@ -134,7 +134,7 @@ const getTEMATitleInfo = createSingleLineTitleInfo({ createStateKey: createTEMAS
|
|
|
134
134
|
mainPane: { rendererName: 'tema_main', toActiveConfig: (params, active) => ({ ...params, showTEMA: active }) },
|
|
135
135
|
visibleState: { compose: createSparseVisibleStateComposer('tema', EMPTY_TEMA_STATE) },
|
|
136
136
|
scale: { indicatorKey: 'tema', label: 'TEMA', decimals: 2 },
|
|
137
|
-
runtime: { defaultConfig:{period:14,showTEMA:true}, computeKey:'calcTEMAData', compute:(data,c)=>calcTEMAData(data,c.period) },
|
|
137
|
+
runtime: { defaultConfig: { period: 14, showTEMA: true }, computeKey: 'calcTEMAData', compute: (data, c) => calcTEMAData(data, c.period) },
|
|
138
138
|
})
|
|
139
139
|
class TEMADefinition {
|
|
140
140
|
static rendererFactory = createTEMARendererPlugin
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
|
|
2
2
|
import { RENDERER_PRIORITY } from '../../../plugin'
|
|
3
3
|
import { resolveThemeColors } from '../../../tokens'
|
|
4
|
-
import type { TRIXRenderState } from '../../indicators/trixState'
|
|
5
|
-
import { createTRIXStateKey } from '../../indicators/trixState'
|
|
6
|
-
import { EMPTY_TRIX_STATE } from '../../indicators/trixState'
|
|
4
|
+
import type { TRIXRenderState } from '../../indicators/state/trixState'
|
|
5
|
+
import { createTRIXStateKey } from '../../indicators/state/trixState'
|
|
6
|
+
import { EMPTY_TRIX_STATE } from '../../indicators/state/trixState'
|
|
7
7
|
import { createDualSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
|
|
8
8
|
import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
9
9
|
import { resolveStateKey } from '../../indicators/indicatorMetadata'
|
|
@@ -135,7 +135,7 @@ function createTRIXRendererPlugin(options: TRIXRendererOptions = {}): RendererPl
|
|
|
135
135
|
const state = pluginHost?.getSharedState<TRIXRenderState>(stateKey)
|
|
136
136
|
return state?.params ?? {}
|
|
137
137
|
},
|
|
138
|
-
setConfig() {},
|
|
138
|
+
setConfig() { },
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
|
|
@@ -149,36 +149,36 @@ function drawLine(ctx: CanvasRenderingContext2D, pts: Point[], color: string): v
|
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
function getTRIXTitleInfo(
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
152
|
+
_data: KLineData[],
|
|
153
|
+
index: number | null,
|
|
154
|
+
params: Record<string, number | boolean | string>,
|
|
155
|
+
pluginHost: PluginHost,
|
|
156
|
+
paneId: string,
|
|
157
157
|
): TitleInfo | null {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
158
|
+
if (index === null) return null
|
|
159
|
+
const period = (params.period as number) ?? 15
|
|
160
|
+
const signalPeriod = (params.signalPeriod as number) ?? 9
|
|
161
|
+
const state = pluginHost.getSharedState<TRIXRenderState>(createTRIXStateKey(paneId))
|
|
162
|
+
if (!state) return null
|
|
163
|
+
|
|
164
|
+
const values: Array<{ label: string; value: number; color: string }> = []
|
|
165
|
+
|
|
166
|
+
if (state.params.showTRIX) {
|
|
167
|
+
const v = state.series[index]
|
|
168
|
+
if (v !== undefined) values.push({ label: 'TRIX', value: v, color: TRIX_COLOR })
|
|
169
|
+
}
|
|
170
|
+
if (state.params.showSignal) {
|
|
171
|
+
const v = state.signalSeries[index]
|
|
172
|
+
if (v !== undefined) values.push({ label: 'Signal', value: v, color: SIGNAL_COLOR })
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
if (values.length === 0) return null
|
|
176
|
+
|
|
177
|
+
return {
|
|
178
|
+
name: 'TRIX',
|
|
179
|
+
params: [period, signalPeriod],
|
|
180
|
+
values,
|
|
181
|
+
}
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
@Indicator({
|
|
@@ -189,7 +189,7 @@ function getTRIXTitleInfo(
|
|
|
189
189
|
scale: { indicatorKey: 'trix', label: 'TRIX', decimals: 6 },
|
|
190
190
|
visibleState: { compose: createDualSparseVisibleStateComposer('trix', EMPTY_TRIX_STATE) },
|
|
191
191
|
getTitleInfo: getTRIXTitleInfo,
|
|
192
|
-
runtime: { defaultConfig:{period:15,signalPeriod:9,showTRIX:true,showSignal:true}, computeKey:'calcTRIXData', compute:(data,c)=>calcTRIXData(data,c.period,c.signalPeriod) },
|
|
192
|
+
runtime: { defaultConfig: { period: 15, signalPeriod: 9, showTRIX: true, showSignal: true }, computeKey: 'calcTRIXData', compute: (data, c) => calcTRIXData(data, c.period, c.signalPeriod) },
|
|
193
193
|
})
|
|
194
194
|
class TRIXIndicatorDefinition {
|
|
195
195
|
static rendererFactory = createTRIXRendererPlugin
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
|
|
2
2
|
import { RENDERER_PRIORITY } from '../../../plugin'
|
|
3
|
-
import type { VMARenderState } from '../../indicators/vmaState'
|
|
4
|
-
import { createVMAStateKey } from '../../indicators/vmaState'
|
|
5
|
-
import { EMPTY_VMA_STATE } from '../../indicators/vmaState'
|
|
3
|
+
import type { VMARenderState } from '../../indicators/state/vmaState'
|
|
4
|
+
import { createVMAStateKey } from '../../indicators/state/vmaState'
|
|
5
|
+
import { EMPTY_VMA_STATE } from '../../indicators/state/vmaState'
|
|
6
6
|
import { createSingleLineTitleInfo } from './shared/titleInfo'
|
|
7
7
|
import { createNonNegativeSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
|
|
8
8
|
import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
|
|
2
2
|
import { RENDERER_PRIORITY } from '../../../plugin'
|
|
3
|
-
import type { VolumeProfileRenderState } from '../../indicators/volumeProfileState'
|
|
4
|
-
import { createVolumeProfileStateKey, EMPTY_VOLUME_PROFILE_STATE } from '../../indicators/volumeProfileState'
|
|
3
|
+
import type { VolumeProfileRenderState } from '../../indicators/state/volumeProfileState'
|
|
4
|
+
import { createVolumeProfileStateKey, EMPTY_VOLUME_PROFILE_STATE } from '../../indicators/state/volumeProfileState'
|
|
5
5
|
import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
6
6
|
import { createVolumeProfileVisibleStateComposer } from '../../indicators/visibleStateComposers'
|
|
7
7
|
import { resolveStateKey } from '../../indicators/indicatorMetadata'
|
|
@@ -110,7 +110,7 @@ function createVolumeProfileRendererPlugin(options: { paneId?: string } = {}): R
|
|
|
110
110
|
const state = pluginHost?.getSharedState<VolumeProfileRenderState>(stateKey)
|
|
111
111
|
return state?.params ?? {}
|
|
112
112
|
},
|
|
113
|
-
setConfig() {},
|
|
113
|
+
setConfig() { },
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
|
|
@@ -119,33 +119,33 @@ const VP_VAH_COLOR = '#6366f1'
|
|
|
119
119
|
const VP_VAL_COLOR = '#818cf8'
|
|
120
120
|
|
|
121
121
|
function getVolumeProfileTitleInfo(
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
122
|
+
_data: KLineData[],
|
|
123
|
+
index: number | null,
|
|
124
|
+
params: Record<string, number | boolean | string>,
|
|
125
|
+
host: PluginHost,
|
|
126
|
+
paneId: string,
|
|
127
127
|
): TitleInfo | null {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
128
|
+
if (index === null) return null
|
|
129
|
+
const bins = (params.bins as number) ?? 24
|
|
130
|
+
const state = host.getSharedState<VolumeProfileRenderState>(createVolumeProfileStateKey(paneId))
|
|
131
|
+
const vp = state?.series
|
|
132
|
+
|
|
133
|
+
const values: Array<{ label: string; value: number; color: string }> = []
|
|
134
|
+
if (vp && vp.bins.length > 0) {
|
|
135
|
+
if (state.params.showPOC) {
|
|
136
|
+
values.push({ label: 'POC', value: vp.poc, color: VP_POC_COLOR })
|
|
137
|
+
}
|
|
138
|
+
if (state.params.showValueArea) {
|
|
139
|
+
values.push({ label: 'VAH', value: vp.vah, color: VP_VAH_COLOR })
|
|
140
|
+
values.push({ label: 'VAL', value: vp.val, color: VP_VAL_COLOR })
|
|
141
|
+
}
|
|
137
142
|
}
|
|
138
|
-
if (state.params.showValueArea) {
|
|
139
|
-
values.push({ label: 'VAH', value: vp.vah, color: VP_VAH_COLOR })
|
|
140
|
-
values.push({ label: 'VAL', value: vp.val, color: VP_VAL_COLOR })
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
143
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
144
|
+
return {
|
|
145
|
+
name: 'VP',
|
|
146
|
+
params: [bins],
|
|
147
|
+
values,
|
|
148
|
+
}
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
@Indicator({
|
|
@@ -156,7 +156,7 @@ function getVolumeProfileTitleInfo(
|
|
|
156
156
|
scale: { indicatorKey: 'volumeProfile', label: 'VP', decimals: 0 },
|
|
157
157
|
getTitleInfo: getVolumeProfileTitleInfo,
|
|
158
158
|
visibleState: { compose: createVolumeProfileVisibleStateComposer('volumeProfile', EMPTY_VOLUME_PROFILE_STATE) },
|
|
159
|
-
runtime: { defaultConfig:{bins:24,lookback:100,valueAreaPercent:70,showPOC:true,showValueArea:true}, computeKey:'calcVolumeProfileData', compute:(data,c)=>calcVolumeProfileData(data,c.bins,c.lookback,c.valueAreaPercent) },
|
|
159
|
+
runtime: { defaultConfig: { bins: 24, lookback: 100, valueAreaPercent: 70, showPOC: true, showValueArea: true }, computeKey: 'calcVolumeProfileData', compute: (data, c) => calcVolumeProfileData(data, c.bins, c.lookback, c.valueAreaPercent) },
|
|
160
160
|
})
|
|
161
161
|
class VolumeProfileIndicatorDefinition {
|
|
162
162
|
static rendererFactory = createVolumeProfileRendererPlugin
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
|
|
2
2
|
import { RENDERER_PRIORITY } from '../../../plugin'
|
|
3
|
-
import type { VWAPRenderState } from '../../indicators/vwapState'
|
|
4
|
-
import { createVWAPStateKey, EMPTY_VWAP_STATE } from '../../indicators/vwapState'
|
|
3
|
+
import type { VWAPRenderState } from '../../indicators/state/vwapState'
|
|
4
|
+
import { createVWAPStateKey, EMPTY_VWAP_STATE } from '../../indicators/state/vwapState'
|
|
5
5
|
import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
6
6
|
import { resolveStateKey } from '../../indicators/indicatorMetadata'
|
|
7
7
|
import { createSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
|
|
@@ -106,7 +106,7 @@ function createVWAPRendererPlugin(options: { paneId?: string } = {}): RendererPl
|
|
|
106
106
|
const state = pluginHost?.getSharedState<VWAPRenderState>(stateKey)
|
|
107
107
|
return state?.params ?? {}
|
|
108
108
|
},
|
|
109
|
-
setConfig() {},
|
|
109
|
+
setConfig() { },
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
|
|
2
2
|
import { createSingleLineTitleInfo } from './shared/titleInfo'
|
|
3
3
|
import { RENDERER_PRIORITY } from '../../../plugin'
|
|
4
|
-
import type { WMARenderState } from '../../indicators/wmaState'
|
|
5
|
-
import { createWMAStateKey, EMPTY_WMA_STATE } from '../../indicators/wmaState'
|
|
4
|
+
import type { WMARenderState } from '../../indicators/state/wmaState'
|
|
5
|
+
import { createWMAStateKey, EMPTY_WMA_STATE } from '../../indicators/state/wmaState'
|
|
6
6
|
import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
7
7
|
import { resolveStateKey } from '../../indicators/indicatorMetadata'
|
|
8
8
|
import { createSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
|
|
@@ -134,7 +134,7 @@ const getWMATitleInfo = createSingleLineTitleInfo({ createStateKey: createWMASta
|
|
|
134
134
|
mainPane: { rendererName: 'wma_main', toActiveConfig: (params, active) => ({ ...params, showWMA: active }) },
|
|
135
135
|
visibleState: { compose: createSparseVisibleStateComposer('wma', EMPTY_WMA_STATE) },
|
|
136
136
|
scale: { indicatorKey: 'wma', label: 'WMA', decimals: 2 },
|
|
137
|
-
runtime: { defaultConfig:{period:10,showWMA:true}, computeKey:'calcWMAData', compute:(data,c)=>calcWMAData(data,c.period) },
|
|
137
|
+
runtime: { defaultConfig: { period: 10, showWMA: true }, computeKey: 'calcWMAData', compute: (data, c) => calcWMAData(data, c.period) },
|
|
138
138
|
})
|
|
139
139
|
class WMADefinition {
|
|
140
140
|
static rendererFactory = createWMARendererPlugin
|
|
@@ -2,8 +2,8 @@ import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../..
|
|
|
2
2
|
import { RENDERER_PRIORITY } from '../../../plugin'
|
|
3
3
|
import { resolveThemeColors } from '../../../tokens'
|
|
4
4
|
import { alignToPhysicalPixelCenter } from '../../draw/pixelAlign'
|
|
5
|
-
import type { WMSRRenderState } from '../../indicators/wmsrState'
|
|
6
|
-
import { createWMSRStateKey, EMPTY_WMSR_STATE } from '../../indicators/wmsrState'
|
|
5
|
+
import type { WMSRRenderState } from '../../indicators/state/wmsrState'
|
|
6
|
+
import { createWMSRStateKey, EMPTY_WMSR_STATE } from '../../indicators/state/wmsrState'
|
|
7
7
|
import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
8
8
|
import { createFixedRangeSparseVisibleStateComposer } from '../../indicators/visibleStateComposers'
|
|
9
9
|
import { resolveStateKey } from '../../indicators/indicatorMetadata'
|
|
@@ -163,7 +163,7 @@ function createWMSRRendererPlugin(options: WMSRRendererOptions = {}): RendererPl
|
|
|
163
163
|
},
|
|
164
164
|
|
|
165
165
|
draw(context: RenderContext) {
|
|
166
|
-
const { ctx, pane, range, scrollLeft, dpr, kLineCenters, lineWebGLSurface } = context
|
|
166
|
+
const { ctx, pane, range, scrollLeft, dpr, kLineCenters, lineWebGLSurface } = context
|
|
167
167
|
const colors = resolveThemeColors(context.theme, context.isAsiaMarket, context.colorPresetSettings)
|
|
168
168
|
|
|
169
169
|
const stateKey = resolveKey()
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { resolveThemeColors } from '../../../tokens'
|
|
2
2
|
import type { RendererPluginWithHost, RenderContext, PluginHost } from '../../../plugin'
|
|
3
3
|
import { RENDERER_PRIORITY } from '../../../plugin'
|
|
4
|
-
import type { ZonesRenderState } from '../../indicators/zonesState'
|
|
5
|
-
import { createZonesStateKey, EMPTY_ZONES_STATE } from '../../indicators/zonesState'
|
|
4
|
+
import type { ZonesRenderState } from '../../indicators/state/zonesState'
|
|
5
|
+
import { createZonesStateKey, EMPTY_ZONES_STATE } from '../../indicators/state/zonesState'
|
|
6
6
|
import { Indicator } from '../../indicators/indicatorDefinitionRegistry'
|
|
7
7
|
import { createFixedUnitVisibleStateComposer } from '../../indicators/visibleStateComposers'
|
|
8
8
|
import { resolveStateKey, type TitleInfo, type TitleValueItem, type GetTitleInfoFn } from '../../indicators/indicatorMetadata'
|
|
@@ -73,8 +73,8 @@ function createZonesRendererPlugin(options: { paneId?: string } = {}): RendererP
|
|
|
73
73
|
const yLow = toY(zone.low)
|
|
74
74
|
const fill = zone.kind === 'FVG_BULL' ? colors.zones.fvgBullFill
|
|
75
75
|
: zone.kind === 'FVG_BEAR' ? colors.zones.fvgBearFill
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
: zone.kind === 'OB_BULL' ? colors.zones.obBullFill
|
|
77
|
+
: colors.zones.obBearFill
|
|
78
78
|
ctx.fillStyle = fill
|
|
79
79
|
ctx.fillRect(startX, yHigh, endX - startX, yLow - yHigh)
|
|
80
80
|
}
|
|
@@ -86,7 +86,7 @@ function createZonesRendererPlugin(options: { paneId?: string } = {}): RendererP
|
|
|
86
86
|
if (!stateKey) return {}
|
|
87
87
|
return pluginHost?.getSharedState<ZonesRenderState>(stateKey)?.params ?? {}
|
|
88
88
|
},
|
|
89
|
-
setConfig() {},
|
|
89
|
+
setConfig() { },
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
|
|
@@ -125,7 +125,7 @@ const getZonesTitleInfo: GetTitleInfoFn = (_data, index, _params, host, paneId)
|
|
|
125
125
|
mainPane: { rendererName: 'zones_main', toActiveConfig: (params, active) => ({ ...params, showFVG: active, showOB: active, showFilledZones: active }) },
|
|
126
126
|
scale: { indicatorKey: 'zones', label: 'Zones', decimals: 2 },
|
|
127
127
|
visibleState: { compose: createFixedUnitVisibleStateComposer('zones', EMPTY_ZONES_STATE) },
|
|
128
|
-
runtime: { defaultConfig:{showFVG:true,showOB:true,showFilledZones:true,obLookback:20}, computeKey:'calcZonesData', compute:(data,c)=>calcZonesData(data,c.obLookback,5,2,'close') },
|
|
128
|
+
runtime: { defaultConfig: { showFVG: true, showOB: true, showFilledZones: true, obLookback: 20 }, computeKey: 'calcZonesData', compute: (data, c) => calcZonesData(data, c.obLookback, 5, 2, 'close') },
|
|
129
129
|
})
|
|
130
130
|
class ZonesDefinition {
|
|
131
131
|
static rendererFactory = createZonesRendererPlugin
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @ts-nocheck - Test file with intentional type relaxations for mocking
|
|
2
2
|
import { describe, it, expect, vi, beforeEach } from 'vitest'
|
|
3
3
|
import { createBOLLRendererPlugin } from '../Indicator/boll'
|
|
4
|
-
import { BOLL_STATE_KEY, type BOLLRenderState } from '@/core/indicators/bollState'
|
|
4
|
+
import { BOLL_STATE_KEY, type BOLLRenderState } from '@/core/indicators/state/bollState'
|
|
5
5
|
import type { PluginHost, RenderContext, RendererPluginWithHost } from '@/plugin'
|
|
6
6
|
import type { KLineData } from '@/types/price'
|
|
7
7
|
import type { Pane } from '@/core/layout/pane'
|