@invinite-org/chartlang-runtime 1.1.0 → 1.2.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/CHANGELOG.md +245 -0
- package/README.md +1 -2
- package/dist/barPoint.d.ts +20 -0
- package/dist/barPoint.d.ts.map +1 -0
- package/dist/barPoint.js +72 -0
- package/dist/barPoint.js.map +1 -0
- package/dist/bufferSnapshot.d.ts +102 -0
- package/dist/bufferSnapshot.d.ts.map +1 -0
- package/dist/bufferSnapshot.js +119 -0
- package/dist/bufferSnapshot.js.map +1 -0
- package/dist/buildComputeContext.js.map +1 -1
- package/dist/createScriptRunner.d.ts +6 -3
- package/dist/createScriptRunner.d.ts.map +1 -1
- package/dist/createScriptRunner.js +29 -5
- package/dist/createScriptRunner.js.map +1 -1
- package/dist/dep/DepOutputStore.js.map +1 -1
- package/dist/dep/DepRunner.d.ts.map +1 -1
- package/dist/dep/DepRunner.js +1 -0
- package/dist/dep/DepRunner.js.map +1 -1
- package/dist/dep/depOutput.js.map +1 -1
- package/dist/dep/emissionFilter.js.map +1 -1
- package/dist/dep/index.js.map +1 -1
- package/dist/emit/alert.js.map +1 -1
- package/dist/emit/alertConditionEmission.js.map +1 -1
- package/dist/emit/applyPlotOverride.js.map +1 -1
- package/dist/emit/draw/annotations/arrow.js +1 -1
- package/dist/emit/draw/annotations/arrow.js.map +1 -1
- package/dist/emit/draw/annotations/arrowMarkDown.js +1 -1
- package/dist/emit/draw/annotations/arrowMarkDown.js.map +1 -1
- package/dist/emit/draw/annotations/arrowMarkUp.js +1 -1
- package/dist/emit/draw/annotations/arrowMarkUp.js.map +1 -1
- package/dist/emit/draw/annotations/arrowMarker.js +1 -1
- package/dist/emit/draw/annotations/arrowMarker.js.map +1 -1
- package/dist/emit/draw/annotations/text.js +1 -1
- package/dist/emit/draw/annotations/text.js.map +1 -1
- package/dist/emit/draw/boxes/circle.js +1 -1
- package/dist/emit/draw/boxes/circle.js.map +1 -1
- package/dist/emit/draw/boxes/ellipse.d.ts +1 -1
- package/dist/emit/draw/boxes/ellipse.js +1 -1
- package/dist/emit/draw/boxes/ellipse.js.map +1 -1
- package/dist/emit/draw/boxes/fillBetween.d.ts +45 -0
- package/dist/emit/draw/boxes/fillBetween.d.ts.map +1 -0
- package/dist/emit/draw/boxes/fillBetween.js +36 -0
- package/dist/emit/draw/boxes/fillBetween.js.map +1 -0
- package/dist/emit/draw/boxes/marker.js +1 -1
- package/dist/emit/draw/boxes/marker.js.map +1 -1
- package/dist/emit/draw/boxes/path.d.ts +1 -1
- package/dist/emit/draw/boxes/path.js +1 -1
- package/dist/emit/draw/boxes/path.js.map +1 -1
- package/dist/emit/draw/boxes/polyline.d.ts +1 -1
- package/dist/emit/draw/boxes/polyline.js +1 -1
- package/dist/emit/draw/boxes/polyline.js.map +1 -1
- package/dist/emit/draw/boxes/rectangle.js +1 -1
- package/dist/emit/draw/boxes/rectangle.js.map +1 -1
- package/dist/emit/draw/boxes/rotatedRectangle.js +1 -1
- package/dist/emit/draw/boxes/rotatedRectangle.js.map +1 -1
- package/dist/emit/draw/boxes/triangle.d.ts +1 -1
- package/dist/emit/draw/boxes/triangle.js +1 -1
- package/dist/emit/draw/boxes/triangle.js.map +1 -1
- package/dist/emit/draw/channels/disjointChannel.js +1 -1
- package/dist/emit/draw/channels/disjointChannel.js.map +1 -1
- package/dist/emit/draw/channels/flatTopBottom.d.ts +1 -2
- package/dist/emit/draw/channels/flatTopBottom.d.ts.map +1 -1
- package/dist/emit/draw/channels/flatTopBottom.js +1 -1
- package/dist/emit/draw/channels/flatTopBottom.js.map +1 -1
- package/dist/emit/draw/channels/regressionTrend.d.ts +3 -4
- package/dist/emit/draw/channels/regressionTrend.d.ts.map +1 -1
- package/dist/emit/draw/channels/regressionTrend.js +1 -1
- package/dist/emit/draw/channels/regressionTrend.js.map +1 -1
- package/dist/emit/draw/channels/trendChannel.js +1 -1
- package/dist/emit/draw/channels/trendChannel.js.map +1 -1
- package/dist/emit/draw/containers/frame.d.ts +1 -1
- package/dist/emit/draw/containers/frame.js +2 -2
- package/dist/emit/draw/containers/frame.js.map +1 -1
- package/dist/emit/draw/containers/group.d.ts +1 -2
- package/dist/emit/draw/containers/group.d.ts.map +1 -1
- package/dist/emit/draw/containers/group.js +2 -2
- package/dist/emit/draw/containers/group.js.map +1 -1
- package/dist/emit/draw/curves/arc.js +1 -1
- package/dist/emit/draw/curves/arc.js.map +1 -1
- package/dist/emit/draw/curves/brush.js +1 -1
- package/dist/emit/draw/curves/brush.js.map +1 -1
- package/dist/emit/draw/curves/curve.js +1 -1
- package/dist/emit/draw/curves/curve.js.map +1 -1
- package/dist/emit/draw/curves/doubleCurve.js +1 -1
- package/dist/emit/draw/curves/doubleCurve.js.map +1 -1
- package/dist/emit/draw/curves/highlighter.js +1 -1
- package/dist/emit/draw/curves/highlighter.js.map +1 -1
- package/dist/emit/draw/curves/pen.js +1 -1
- package/dist/emit/draw/curves/pen.js.map +1 -1
- package/dist/emit/draw/cycles/cyclicLines.js +1 -1
- package/dist/emit/draw/cycles/cyclicLines.js.map +1 -1
- package/dist/emit/draw/cycles/sineLine.js +1 -1
- package/dist/emit/draw/cycles/sineLine.js.map +1 -1
- package/dist/emit/draw/cycles/timeCycles.js +1 -1
- package/dist/emit/draw/cycles/timeCycles.js.map +1 -1
- package/dist/emit/draw/elliott/elliottCorrectionWave.js +1 -1
- package/dist/emit/draw/elliott/elliottCorrectionWave.js.map +1 -1
- package/dist/emit/draw/elliott/elliottDoubleCombo.js +1 -1
- package/dist/emit/draw/elliott/elliottDoubleCombo.js.map +1 -1
- package/dist/emit/draw/elliott/elliottImpulseWave.js +1 -1
- package/dist/emit/draw/elliott/elliottImpulseWave.js.map +1 -1
- package/dist/emit/draw/elliott/elliottTriangleWave.js +1 -1
- package/dist/emit/draw/elliott/elliottTriangleWave.js.map +1 -1
- package/dist/emit/draw/elliott/elliottTripleCombo.js +1 -1
- package/dist/emit/draw/elliott/elliottTripleCombo.js.map +1 -1
- package/dist/emit/draw/fibA/fibChannel.js +1 -1
- package/dist/emit/draw/fibA/fibChannel.js.map +1 -1
- package/dist/emit/draw/fibA/fibRetracement.js +1 -1
- package/dist/emit/draw/fibA/fibRetracement.js.map +1 -1
- package/dist/emit/draw/fibA/fibTimeZone.d.ts +1 -2
- package/dist/emit/draw/fibA/fibTimeZone.d.ts.map +1 -1
- package/dist/emit/draw/fibA/fibTimeZone.js +1 -1
- package/dist/emit/draw/fibA/fibTimeZone.js.map +1 -1
- package/dist/emit/draw/fibA/fibTrendExtension.js +1 -1
- package/dist/emit/draw/fibA/fibTrendExtension.js.map +1 -1
- package/dist/emit/draw/fibA/fibWedge.js +1 -1
- package/dist/emit/draw/fibA/fibWedge.js.map +1 -1
- package/dist/emit/draw/fibB/fibCircles.d.ts +1 -2
- package/dist/emit/draw/fibB/fibCircles.d.ts.map +1 -1
- package/dist/emit/draw/fibB/fibCircles.js +1 -1
- package/dist/emit/draw/fibB/fibCircles.js.map +1 -1
- package/dist/emit/draw/fibB/fibSpeedArcs.js +1 -1
- package/dist/emit/draw/fibB/fibSpeedArcs.js.map +1 -1
- package/dist/emit/draw/fibB/fibSpeedFan.js +1 -1
- package/dist/emit/draw/fibB/fibSpeedFan.js.map +1 -1
- package/dist/emit/draw/fibB/fibSpiral.d.ts +1 -2
- package/dist/emit/draw/fibB/fibSpiral.d.ts.map +1 -1
- package/dist/emit/draw/fibB/fibSpiral.js +1 -1
- package/dist/emit/draw/fibB/fibSpiral.js.map +1 -1
- package/dist/emit/draw/fibB/fibTrendTime.d.ts +1 -2
- package/dist/emit/draw/fibB/fibTrendTime.d.ts.map +1 -1
- package/dist/emit/draw/fibB/fibTrendTime.js +1 -1
- package/dist/emit/draw/fibB/fibTrendTime.js.map +1 -1
- package/dist/emit/draw/gann/gannBox.js +1 -1
- package/dist/emit/draw/gann/gannBox.js.map +1 -1
- package/dist/emit/draw/gann/gannFan.js +1 -1
- package/dist/emit/draw/gann/gannFan.js.map +1 -1
- package/dist/emit/draw/gann/gannSquare.js +1 -1
- package/dist/emit/draw/gann/gannSquare.js.map +1 -1
- package/dist/emit/draw/gann/gannSquareFixed.js +1 -1
- package/dist/emit/draw/gann/gannSquareFixed.js.map +1 -1
- package/dist/emit/draw/handle.d.ts +11 -2
- package/dist/emit/draw/handle.d.ts.map +1 -1
- package/dist/emit/draw/handle.js +67 -12
- package/dist/emit/draw/handle.js.map +1 -1
- package/dist/emit/draw/index.js.map +1 -1
- package/dist/emit/draw/lines/crossLine.js +1 -1
- package/dist/emit/draw/lines/crossLine.js.map +1 -1
- package/dist/emit/draw/lines/horizontalLine.d.ts +1 -1
- package/dist/emit/draw/lines/horizontalLine.js +1 -1
- package/dist/emit/draw/lines/horizontalLine.js.map +1 -1
- package/dist/emit/draw/lines/horizontalRay.js +1 -1
- package/dist/emit/draw/lines/horizontalRay.js.map +1 -1
- package/dist/emit/draw/lines/line.d.ts +1 -1
- package/dist/emit/draw/lines/line.d.ts.map +1 -1
- package/dist/emit/draw/lines/line.js +2 -3
- package/dist/emit/draw/lines/line.js.map +1 -1
- package/dist/emit/draw/lines/trendAngle.js +1 -1
- package/dist/emit/draw/lines/trendAngle.js.map +1 -1
- package/dist/emit/draw/lines/verticalLine.js +1 -1
- package/dist/emit/draw/lines/verticalLine.js.map +1 -1
- package/dist/emit/draw/namespace.d.ts +5 -4
- package/dist/emit/draw/namespace.d.ts.map +1 -1
- package/dist/emit/draw/namespace.js +7 -4
- package/dist/emit/draw/namespace.js.map +1 -1
- package/dist/emit/draw/patterns/abcdPattern.js +1 -1
- package/dist/emit/draw/patterns/abcdPattern.js.map +1 -1
- package/dist/emit/draw/patterns/cypherPattern.d.ts +1 -2
- package/dist/emit/draw/patterns/cypherPattern.d.ts.map +1 -1
- package/dist/emit/draw/patterns/cypherPattern.js +1 -1
- package/dist/emit/draw/patterns/cypherPattern.js.map +1 -1
- package/dist/emit/draw/patterns/headAndShoulders.js +1 -1
- package/dist/emit/draw/patterns/headAndShoulders.js.map +1 -1
- package/dist/emit/draw/patterns/threeDrivesPattern.js +1 -1
- package/dist/emit/draw/patterns/threeDrivesPattern.js.map +1 -1
- package/dist/emit/draw/patterns/trianglePattern.d.ts +1 -1
- package/dist/emit/draw/patterns/trianglePattern.js +1 -1
- package/dist/emit/draw/patterns/trianglePattern.js.map +1 -1
- package/dist/emit/draw/patterns/xabcdPattern.js +1 -1
- package/dist/emit/draw/patterns/xabcdPattern.js.map +1 -1
- package/dist/emit/draw/pitchforks/pitchfan.js +1 -1
- package/dist/emit/draw/pitchforks/pitchfan.js.map +1 -1
- package/dist/emit/draw/pitchforks/pitchfork.d.ts +1 -1
- package/dist/emit/draw/pitchforks/pitchfork.js +2 -2
- package/dist/emit/draw/pitchforks/pitchfork.js.map +1 -1
- package/dist/emit/draw/pushDrawing.js.map +1 -1
- package/dist/emit/draw/subIdAllocator.d.ts +1 -1
- package/dist/emit/draw/subIdAllocator.js +1 -1
- package/dist/emit/draw/subIdAllocator.js.map +1 -1
- package/dist/emit/draw/table/table.d.ts +1 -1
- package/dist/emit/draw/table/table.js.map +1 -1
- package/dist/emit/emissionsQueue.js.map +1 -1
- package/dist/emit/hash.js.map +1 -1
- package/dist/emit/hline.js.map +1 -1
- package/dist/emit/index.js.map +1 -1
- package/dist/emit/logEmission.js.map +1 -1
- package/dist/emit/paneResolver.js.map +1 -1
- package/dist/emit/plot.d.ts +7 -0
- package/dist/emit/plot.d.ts.map +1 -1
- package/dist/emit/plot.js +13 -0
- package/dist/emit/plot.js.map +1 -1
- package/dist/emit/runtimeError.js.map +1 -1
- package/dist/execution/dispose.d.ts.map +1 -1
- package/dist/execution/dispose.js +16 -0
- package/dist/execution/dispose.js.map +1 -1
- package/dist/execution/drain.js.map +1 -1
- package/dist/execution/index.js.map +1 -1
- package/dist/execution/onBarClose.js.map +1 -1
- package/dist/execution/onBarTick.js.map +1 -1
- package/dist/execution/onHistory.js.map +1 -1
- package/dist/execution/runComputeStep.d.ts.map +1 -1
- package/dist/execution/runComputeStep.js +10 -1
- package/dist/execution/runComputeStep.js.map +1 -1
- package/dist/execution/secondaryStream.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/inputs/index.js.map +1 -1
- package/dist/inputs/resolveInputs.js.map +1 -1
- package/dist/internal.js.map +1 -1
- package/dist/persistentStateStore.js.map +1 -1
- package/dist/persistentStateStore.runtime.d.ts.map +1 -1
- package/dist/persistentStateStore.runtime.js +21 -7
- package/dist/persistentStateStore.runtime.js.map +1 -1
- package/dist/persistentStateStore.validate.js.map +1 -1
- package/dist/primitives.js.map +1 -1
- package/dist/request/alignHtfSeriesCache.js.map +1 -1
- package/dist/request/alignHtfSeriesToLtf.d.ts +2 -2
- package/dist/request/alignHtfSeriesToLtf.js +2 -2
- package/dist/request/alignHtfSeriesToLtf.js.map +1 -1
- package/dist/request/bucketLtfBarsByMainContainment.js.map +1 -1
- package/dist/request/bucketLtfBarsCache.js.map +1 -1
- package/dist/request/index.d.ts +2 -1
- package/dist/request/index.d.ts.map +1 -1
- package/dist/request/index.js +2 -1
- package/dist/request/index.js.map +1 -1
- package/dist/request/lowerTf.js.map +1 -1
- package/dist/request/pushOnce.js.map +1 -1
- package/dist/request/requestNamespace.d.ts.map +1 -1
- package/dist/request/requestNamespace.js +16 -3
- package/dist/request/requestNamespace.js.map +1 -1
- package/dist/request/security.d.ts +20 -1
- package/dist/request/security.d.ts.map +1 -1
- package/dist/request/security.js +62 -23
- package/dist/request/security.js.map +1 -1
- package/dist/request/securityExprRunner.d.ts +133 -0
- package/dist/request/securityExprRunner.d.ts.map +1 -0
- package/dist/request/securityExprRunner.js +235 -0
- package/dist/request/securityExprRunner.js.map +1 -0
- package/dist/request/streamBars.d.ts +14 -1
- package/dist/request/streamBars.d.ts.map +1 -1
- package/dist/request/streamBars.js +39 -1
- package/dist/request/streamBars.js.map +1 -1
- package/dist/ringBuffer.d.ts +2 -2
- package/dist/ringBuffer.js +1 -1
- package/dist/ringBuffer.js.map +1 -1
- package/dist/runtimeContext.d.ts +51 -3
- package/dist/runtimeContext.d.ts.map +1 -1
- package/dist/runtimeContext.js.map +1 -1
- package/dist/seriesView.d.ts +43 -18
- package/dist/seriesView.d.ts.map +1 -1
- package/dist/seriesView.js +66 -43
- package/dist/seriesView.js.map +1 -1
- package/dist/state/index.d.ts +2 -1
- package/dist/state/index.d.ts.map +1 -1
- package/dist/state/index.js +2 -1
- package/dist/state/index.js.map +1 -1
- package/dist/state/lifecycle.d.ts +40 -0
- package/dist/state/lifecycle.d.ts.map +1 -1
- package/dist/state/lifecycle.js +53 -0
- package/dist/state/lifecycle.js.map +1 -1
- package/dist/state/seriesPersistence.d.ts +48 -0
- package/dist/state/seriesPersistence.d.ts.map +1 -0
- package/dist/state/seriesPersistence.js +87 -0
- package/dist/state/seriesPersistence.js.map +1 -0
- package/dist/state/seriesSlot.d.ts +105 -0
- package/dist/state/seriesSlot.d.ts.map +1 -0
- package/dist/state/seriesSlot.js +123 -0
- package/dist/state/seriesSlot.js.map +1 -0
- package/dist/state/stateNamespace.d.ts.map +1 -1
- package/dist/state/stateNamespace.js +28 -0
- package/dist/state/stateNamespace.js.map +1 -1
- package/dist/state/stateSlot.js.map +1 -1
- package/dist/stateStore.d.ts +2 -2
- package/dist/stateStore.js.map +1 -1
- package/dist/streamState.d.ts +26 -20
- package/dist/streamState.d.ts.map +1 -1
- package/dist/streamState.js +41 -67
- package/dist/streamState.js.map +1 -1
- package/dist/ta/adl.js +2 -2
- package/dist/ta/adl.js.map +1 -1
- package/dist/ta/adr.d.ts +3 -3
- package/dist/ta/adr.js +5 -5
- package/dist/ta/adr.js.map +1 -1
- package/dist/ta/adx.d.ts +3 -2
- package/dist/ta/adx.d.ts.map +1 -1
- package/dist/ta/adx.js +5 -4
- package/dist/ta/adx.js.map +1 -1
- package/dist/ta/alma.d.ts +6 -4
- package/dist/ta/alma.d.ts.map +1 -1
- package/dist/ta/alma.js +21 -8
- package/dist/ta/alma.js.map +1 -1
- package/dist/ta/anchoredVolumeProfile.js.map +1 -1
- package/dist/ta/anchoredVwap.d.ts +1 -1
- package/dist/ta/anchoredVwap.js +3 -3
- package/dist/ta/anchoredVwap.js.map +1 -1
- package/dist/ta/ao.js +2 -2
- package/dist/ta/ao.js.map +1 -1
- package/dist/ta/aroon.js +2 -2
- package/dist/ta/aroon.js.map +1 -1
- package/dist/ta/aroonOsc.js +2 -2
- package/dist/ta/aroonOsc.js.map +1 -1
- package/dist/ta/atr.d.ts +3 -2
- package/dist/ta/atr.d.ts.map +1 -1
- package/dist/ta/atr.js +5 -4
- package/dist/ta/atr.js.map +1 -1
- package/dist/ta/barssince.js +1 -1
- package/dist/ta/barssince.js.map +1 -1
- package/dist/ta/bb.d.ts +3 -2
- package/dist/ta/bb.d.ts.map +1 -1
- package/dist/ta/bb.js +5 -4
- package/dist/ta/bb.js.map +1 -1
- package/dist/ta/bbPercentB.js +2 -2
- package/dist/ta/bbPercentB.js.map +1 -1
- package/dist/ta/bbw.js +2 -2
- package/dist/ta/bbw.js.map +1 -1
- package/dist/ta/bop.js +2 -2
- package/dist/ta/bop.js.map +1 -1
- package/dist/ta/cci.js +2 -2
- package/dist/ta/cci.js.map +1 -1
- package/dist/ta/chaikinOsc.d.ts +3 -2
- package/dist/ta/chaikinOsc.d.ts.map +1 -1
- package/dist/ta/chaikinOsc.js +5 -4
- package/dist/ta/chaikinOsc.js.map +1 -1
- package/dist/ta/chandeKrollStop.d.ts +1 -1
- package/dist/ta/chandeKrollStop.js +3 -3
- package/dist/ta/chandeKrollStop.js.map +1 -1
- package/dist/ta/chandelier.d.ts +1 -1
- package/dist/ta/chandelier.js +3 -3
- package/dist/ta/chandelier.js.map +1 -1
- package/dist/ta/change.js +1 -1
- package/dist/ta/change.js.map +1 -1
- package/dist/ta/chop.js +2 -2
- package/dist/ta/chop.js.map +1 -1
- package/dist/ta/cmf.js +2 -2
- package/dist/ta/cmf.js.map +1 -1
- package/dist/ta/cmo.js +2 -2
- package/dist/ta/cmo.js.map +1 -1
- package/dist/ta/connorsRsi.d.ts +1 -1
- package/dist/ta/connorsRsi.js +3 -3
- package/dist/ta/connorsRsi.js.map +1 -1
- package/dist/ta/coppock.js +2 -2
- package/dist/ta/coppock.js.map +1 -1
- package/dist/ta/crossover.d.ts +3 -2
- package/dist/ta/crossover.d.ts.map +1 -1
- package/dist/ta/crossover.js +4 -3
- package/dist/ta/crossover.js.map +1 -1
- package/dist/ta/crossunder.d.ts +3 -2
- package/dist/ta/crossunder.d.ts.map +1 -1
- package/dist/ta/crossunder.js +4 -3
- package/dist/ta/crossunder.js.map +1 -1
- package/dist/ta/dema.js +2 -2
- package/dist/ta/dema.js.map +1 -1
- package/dist/ta/dmi.d.ts +4 -3
- package/dist/ta/dmi.d.ts.map +1 -1
- package/dist/ta/dmi.js +6 -5
- package/dist/ta/dmi.js.map +1 -1
- package/dist/ta/donchian.js +2 -2
- package/dist/ta/donchian.js.map +1 -1
- package/dist/ta/dpo.js +2 -2
- package/dist/ta/dpo.js.map +1 -1
- package/dist/ta/ema.d.ts +3 -2
- package/dist/ta/ema.d.ts.map +1 -1
- package/dist/ta/ema.js +5 -4
- package/dist/ta/ema.js.map +1 -1
- package/dist/ta/envelope.js +2 -2
- package/dist/ta/envelope.js.map +1 -1
- package/dist/ta/eom.d.ts +3 -1
- package/dist/ta/eom.d.ts.map +1 -1
- package/dist/ta/eom.js +5 -3
- package/dist/ta/eom.js.map +1 -1
- package/dist/ta/fisher.js +2 -2
- package/dist/ta/fisher.js.map +1 -1
- package/dist/ta/fixedRangeVolumeProfile.js.map +1 -1
- package/dist/ta/highest.js +1 -1
- package/dist/ta/highest.js.map +1 -1
- package/dist/ta/highestbars.d.ts +25 -0
- package/dist/ta/highestbars.d.ts.map +1 -0
- package/dist/ta/highestbars.js +106 -0
- package/dist/ta/highestbars.js.map +1 -0
- package/dist/ta/historicalVolatility.d.ts +3 -2
- package/dist/ta/historicalVolatility.d.ts.map +1 -1
- package/dist/ta/historicalVolatility.js +5 -4
- package/dist/ta/historicalVolatility.js.map +1 -1
- package/dist/ta/hma.js +2 -2
- package/dist/ta/hma.js.map +1 -1
- package/dist/ta/ichimoku.d.ts +3 -1
- package/dist/ta/ichimoku.d.ts.map +1 -1
- package/dist/ta/ichimoku.js +5 -3
- package/dist/ta/ichimoku.js.map +1 -1
- package/dist/ta/index.js.map +1 -1
- package/dist/ta/kama.js +2 -2
- package/dist/ta/kama.js.map +1 -1
- package/dist/ta/keltner.js +2 -2
- package/dist/ta/keltner.js.map +1 -1
- package/dist/ta/klinger.js +2 -2
- package/dist/ta/klinger.js.map +1 -1
- package/dist/ta/kst.js +2 -2
- package/dist/ta/kst.js.map +1 -1
- package/dist/ta/lib/adxFromDi.js +2 -2
- package/dist/ta/lib/adxFromDi.js.map +1 -1
- package/dist/ta/lib/computeMa.js +2 -2
- package/dist/ta/lib/computeMa.js.map +1 -1
- package/dist/ta/lib/computeMaOfFloat64.js +2 -2
- package/dist/ta/lib/computeMaOfFloat64.js.map +1 -1
- package/dist/ta/lib/directionalState.js +2 -2
- package/dist/ta/lib/directionalState.js.map +1 -1
- package/dist/ta/lib/donchianMid.js +2 -2
- package/dist/ta/lib/donchianMid.js.map +1 -1
- package/dist/ta/lib/emaFloat64.js +2 -2
- package/dist/ta/lib/emaFloat64.js.map +1 -1
- package/dist/ta/lib/linearRegression.js +2 -2
- package/dist/ta/lib/linearRegression.js.map +1 -1
- package/dist/ta/lib/maTypes.js.map +1 -1
- package/dist/ta/lib/pearson.js +2 -2
- package/dist/ta/lib/pearson.js.map +1 -1
- package/dist/ta/lib/pickCandleSource.js +2 -2
- package/dist/ta/lib/pickCandleSource.js.map +1 -1
- package/dist/ta/lib/readSourceField.js +2 -2
- package/dist/ta/lib/readSourceField.js.map +1 -1
- package/dist/ta/lib/rollingStddev.js +2 -2
- package/dist/ta/lib/rollingStddev.js.map +1 -1
- package/dist/ta/lib/smaFloat64.js +2 -2
- package/dist/ta/lib/smaFloat64.js.map +1 -1
- package/dist/ta/lib/smmaFloat64.js +2 -2
- package/dist/ta/lib/smmaFloat64.js.map +1 -1
- package/dist/ta/lib/sourceValue.js.map +1 -1
- package/dist/ta/lib/trSeries.js +2 -2
- package/dist/ta/lib/trSeries.js.map +1 -1
- package/dist/ta/lib/volume-profile/bucketEdges.js.map +1 -1
- package/dist/ta/lib/volume-profile/bucketizeVolume.js.map +1 -1
- package/dist/ta/lib/volume-profile/developingSeries.js.map +1 -1
- package/dist/ta/lib/volume-profile/index.js.map +1 -1
- package/dist/ta/lib/volume-profile/intercept.js.map +1 -1
- package/dist/ta/lib/volume-profile/scaffold.js.map +1 -1
- package/dist/ta/lib/volume-profile/tooHeavy.js.map +1 -1
- package/dist/ta/lib/volume-profile/types.js.map +1 -1
- package/dist/ta/lib/volume-profile/valueArea.js.map +1 -1
- package/dist/ta/lib/volume-profile/volumeProfileShared.js.map +1 -1
- package/dist/ta/lib/vwmaFloat64.js +2 -2
- package/dist/ta/lib/vwmaFloat64.js.map +1 -1
- package/dist/ta/lib/wilderDirectional.js +2 -2
- package/dist/ta/lib/wilderDirectional.js.map +1 -1
- package/dist/ta/lib/wilderSmoothing.js +2 -2
- package/dist/ta/lib/wilderSmoothing.js.map +1 -1
- package/dist/ta/lib/wmaFloat64.js +2 -2
- package/dist/ta/lib/wmaFloat64.js.map +1 -1
- package/dist/ta/lowest.js +1 -1
- package/dist/ta/lowest.js.map +1 -1
- package/dist/ta/lowestbars.d.ts +25 -0
- package/dist/ta/lowestbars.d.ts.map +1 -0
- package/dist/ta/lowestbars.js +102 -0
- package/dist/ta/lowestbars.js.map +1 -0
- package/dist/ta/lsma.js +2 -2
- package/dist/ta/lsma.js.map +1 -1
- package/dist/ta/maRibbon.js +2 -2
- package/dist/ta/maRibbon.js.map +1 -1
- package/dist/ta/macd.d.ts +3 -2
- package/dist/ta/macd.d.ts.map +1 -1
- package/dist/ta/macd.js +6 -5
- package/dist/ta/macd.js.map +1 -1
- package/dist/ta/massIndex.d.ts +3 -2
- package/dist/ta/massIndex.d.ts.map +1 -1
- package/dist/ta/massIndex.js +5 -4
- package/dist/ta/massIndex.js.map +1 -1
- package/dist/ta/mcginley.js +2 -2
- package/dist/ta/mcginley.js.map +1 -1
- package/dist/ta/median.js +2 -2
- package/dist/ta/median.js.map +1 -1
- package/dist/ta/mfi.d.ts +3 -1
- package/dist/ta/mfi.d.ts.map +1 -1
- package/dist/ta/mfi.js +5 -3
- package/dist/ta/mfi.js.map +1 -1
- package/dist/ta/momentum.js +2 -2
- package/dist/ta/momentum.js.map +1 -1
- package/dist/ta/netVolume.d.ts +3 -1
- package/dist/ta/netVolume.d.ts.map +1 -1
- package/dist/ta/netVolume.js +5 -3
- package/dist/ta/netVolume.js.map +1 -1
- package/dist/ta/nvi.d.ts +3 -1
- package/dist/ta/nvi.d.ts.map +1 -1
- package/dist/ta/nvi.js +5 -3
- package/dist/ta/nvi.js.map +1 -1
- package/dist/ta/nz.js +1 -1
- package/dist/ta/nz.js.map +1 -1
- package/dist/ta/obv.js +2 -2
- package/dist/ta/obv.js.map +1 -1
- package/dist/ta/persistence.d.ts.map +1 -1
- package/dist/ta/persistence.js +1 -40
- package/dist/ta/persistence.js.map +1 -1
- package/dist/ta/pivotsHighLow.js +2 -2
- package/dist/ta/pivotsHighLow.js.map +1 -1
- package/dist/ta/pivotsStandard.d.ts +1 -1
- package/dist/ta/pivotsStandard.js +3 -3
- package/dist/ta/pivotsStandard.js.map +1 -1
- package/dist/ta/pmo.js +2 -2
- package/dist/ta/pmo.js.map +1 -1
- package/dist/ta/ppo.d.ts +3 -2
- package/dist/ta/ppo.d.ts.map +1 -1
- package/dist/ta/ppo.js +5 -4
- package/dist/ta/ppo.js.map +1 -1
- package/dist/ta/psar.js +2 -2
- package/dist/ta/psar.js.map +1 -1
- package/dist/ta/pvi.d.ts +3 -1
- package/dist/ta/pvi.d.ts.map +1 -1
- package/dist/ta/pvi.js +5 -3
- package/dist/ta/pvi.js.map +1 -1
- package/dist/ta/pvo.d.ts +3 -1
- package/dist/ta/pvo.d.ts.map +1 -1
- package/dist/ta/pvo.js +5 -3
- package/dist/ta/pvo.js.map +1 -1
- package/dist/ta/pvt.d.ts +3 -1
- package/dist/ta/pvt.d.ts.map +1 -1
- package/dist/ta/pvt.js +5 -3
- package/dist/ta/pvt.js.map +1 -1
- package/dist/ta/registry.d.ts +7 -1
- package/dist/ta/registry.d.ts.map +1 -1
- package/dist/ta/registry.js +4 -0
- package/dist/ta/registry.js.map +1 -1
- package/dist/ta/roc.js +2 -2
- package/dist/ta/roc.js.map +1 -1
- package/dist/ta/rsi.d.ts +3 -2
- package/dist/ta/rsi.d.ts.map +1 -1
- package/dist/ta/rsi.js +5 -4
- package/dist/ta/rsi.js.map +1 -1
- package/dist/ta/rvgi.js +2 -2
- package/dist/ta/rvgi.js.map +1 -1
- package/dist/ta/rvi.d.ts +3 -2
- package/dist/ta/rvi.d.ts.map +1 -1
- package/dist/ta/rvi.js +5 -4
- package/dist/ta/rvi.js.map +1 -1
- package/dist/ta/sessionVolumeProfile.js.map +1 -1
- package/dist/ta/sma.d.ts +6 -3
- package/dist/ta/sma.d.ts.map +1 -1
- package/dist/ta/sma.js +8 -5
- package/dist/ta/sma.js.map +1 -1
- package/dist/ta/smi.js +2 -2
- package/dist/ta/smi.js.map +1 -1
- package/dist/ta/smma.js +2 -2
- package/dist/ta/smma.js.map +1 -1
- package/dist/ta/stdev.d.ts +3 -2
- package/dist/ta/stdev.d.ts.map +1 -1
- package/dist/ta/stdev.js +5 -4
- package/dist/ta/stdev.js.map +1 -1
- package/dist/ta/stoch.js +2 -2
- package/dist/ta/stoch.js.map +1 -1
- package/dist/ta/stochRsi.js +2 -2
- package/dist/ta/stochRsi.js.map +1 -1
- package/dist/ta/supertrend.d.ts +1 -1
- package/dist/ta/supertrend.js +3 -3
- package/dist/ta/supertrend.js.map +1 -1
- package/dist/ta/tema.js +2 -2
- package/dist/ta/tema.js.map +1 -1
- package/dist/ta/trendStrengthIndex.d.ts +4 -3
- package/dist/ta/trendStrengthIndex.d.ts.map +1 -1
- package/dist/ta/trendStrengthIndex.js +6 -5
- package/dist/ta/trendStrengthIndex.js.map +1 -1
- package/dist/ta/trix.d.ts +4 -3
- package/dist/ta/trix.d.ts.map +1 -1
- package/dist/ta/trix.js +6 -5
- package/dist/ta/trix.js.map +1 -1
- package/dist/ta/tsi.js +2 -2
- package/dist/ta/tsi.js.map +1 -1
- package/dist/ta/ulcerIndex.js +2 -2
- package/dist/ta/ulcerIndex.js.map +1 -1
- package/dist/ta/ultimateOsc.js +2 -2
- package/dist/ta/ultimateOsc.js.map +1 -1
- package/dist/ta/valuewhen.js +1 -1
- package/dist/ta/valuewhen.js.map +1 -1
- package/dist/ta/visibleRangeVolumeProfile.d.ts +2 -2
- package/dist/ta/visibleRangeVolumeProfile.js +2 -2
- package/dist/ta/visibleRangeVolumeProfile.js.map +1 -1
- package/dist/ta/vol.js +2 -2
- package/dist/ta/vol.js.map +1 -1
- package/dist/ta/volatilityStop.d.ts +1 -1
- package/dist/ta/volatilityStop.js +3 -3
- package/dist/ta/volatilityStop.js.map +1 -1
- package/dist/ta/vortex.d.ts +3 -2
- package/dist/ta/vortex.d.ts.map +1 -1
- package/dist/ta/vortex.js +5 -4
- package/dist/ta/vortex.js.map +1 -1
- package/dist/ta/vwap.d.ts +3 -3
- package/dist/ta/vwap.js +5 -5
- package/dist/ta/vwap.js.map +1 -1
- package/dist/ta/vwma.js +2 -2
- package/dist/ta/vwma.js.map +1 -1
- package/dist/ta/williamsFractal.js +2 -2
- package/dist/ta/williamsFractal.js.map +1 -1
- package/dist/ta/williamsR.js +2 -2
- package/dist/ta/williamsR.js.map +1 -1
- package/dist/ta/wma.js +2 -2
- package/dist/ta/wma.js.map +1 -1
- package/dist/ta/zigZag.js +2 -2
- package/dist/ta/zigZag.js.map +1 -1
- package/dist/views/barstateView.js.map +1 -1
- package/dist/views/index.js.map +1 -1
- package/dist/views/refreshRuntimeViews.js.map +1 -1
- package/dist/views/symInfoView.js.map +1 -1
- package/dist/views/timeframeView.js.map +1 -1
- package/package.json +3 -3
- package/dist/ta/lib/applyOffset.d.ts +0 -19
- package/dist/ta/lib/applyOffset.d.ts.map +0 -1
- package/dist/ta/lib/applyOffset.js +0 -38
- package/dist/ta/lib/applyOffset.js.map +0 -1
package/dist/ta/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/ta/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/ta/registry.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type {\n AdlOpts,\n AdrOpts,\n AdxOpts,\n AlmaOpts,\n AnchoredVolumeProfileOpts,\n AnchoredVolumeProfileResult,\n AnchoredVwapOpts,\n AoOpts,\n AroonOpts,\n AroonOscOpts,\n AroonResult,\n AtrOpts,\n BarssinceOpts,\n BbOpts,\n BbPercentBOpts,\n BbResult,\n BbwOpts,\n BopOpts,\n CciOpts,\n ChaikinOscOpts,\n ChandeKrollStopOpts,\n ChandeKrollStopResult,\n ChandelierOpts,\n ChandelierResult,\n ChangeOpts,\n ChopOpts,\n CmfOpts,\n CmoOpts,\n ConnorsRsiOpts,\n CoppockOpts,\n CrossoverOpts,\n CrossunderOpts,\n DemaOpts,\n DmiOpts,\n DmiResult,\n DonchianOpts,\n DonchianResult,\n DpoOpts,\n EmaOpts,\n EnvelopeOpts,\n EnvelopeResult,\n EomOpts,\n FisherOpts,\n FisherResult,\n FixedRangeVolumeProfileOpts,\n FixedRangeVolumeProfileResult,\n HighestOpts,\n HighestbarsOpts,\n HmaOpts,\n HvOpts,\n IchimokuOpts,\n IchimokuResult,\n KamaOpts,\n KeltnerOpts,\n KeltnerResult,\n KlingerOpts,\n KlingerResult,\n KstOpts,\n KstResult,\n LowestOpts,\n LowestbarsOpts,\n LsmaOpts,\n MaRibbonOpts,\n MaRibbonResult,\n MacdOpts,\n MacdResult,\n MassIndexOpts,\n McginleyOpts,\n MedianOpts,\n MfiOpts,\n MomentumOpts,\n NetVolumeOpts,\n NviOpts,\n ObvOpts,\n PivotsHighLowOpts,\n PivotsHighLowResult,\n PivotsStandardOpts,\n PivotsStandardResult,\n PmoOpts,\n PmoResult,\n PpoOpts,\n PpoResult,\n PsarOpts,\n PsarResult,\n PviOpts,\n PvoOpts,\n PvoResult,\n PvtOpts,\n RocOpts,\n RsiOpts,\n RvgiOpts,\n RvgiResult,\n RviOpts,\n Series,\n SessionVolumeProfileOpts,\n SessionVolumeProfileResult,\n SmaOpts,\n SmiOpts,\n SmiResult,\n SmmaOpts,\n StdevOpts,\n StochOpts,\n StochResult,\n StochRsiOpts,\n StochRsiResult,\n SupertrendOpts,\n SupertrendResult,\n TemaOpts,\n TrendStrengthIndexOpts,\n TrixOpts,\n TrixResult,\n TsiOpts,\n TsiResult,\n UlcerIndexOpts,\n UltimateOscOpts,\n ValuewhenOpts,\n VisibleRangeVolumeProfileOpts,\n VisibleRangeVolumeProfileResult,\n VolOpts,\n VolatilityStopOpts,\n VolatilityStopResult,\n VortexOpts,\n VortexResult,\n VwapOpts,\n VwmaOpts,\n WilliamsFractalOpts,\n WilliamsFractalResult,\n WilliamsROpts,\n WmaOpts,\n ZigZagOpts,\n ZigZagResult,\n} from \"@invinite-org/chartlang-core\";\n\nimport { adl } from \"./adl.js\";\nimport { adr } from \"./adr.js\";\nimport { adx } from \"./adx.js\";\nimport { alma } from \"./alma.js\";\nimport { anchoredVolumeProfile } from \"./anchoredVolumeProfile.js\";\nimport { anchoredVwap } from \"./anchoredVwap.js\";\nimport { ao } from \"./ao.js\";\nimport { aroon } from \"./aroon.js\";\nimport { aroonOsc } from \"./aroonOsc.js\";\nimport { atr } from \"./atr.js\";\nimport { barssince } from \"./barssince.js\";\nimport { bb } from \"./bb.js\";\nimport { bbPercentB } from \"./bbPercentB.js\";\nimport { bbw } from \"./bbw.js\";\nimport { bop } from \"./bop.js\";\nimport { cci } from \"./cci.js\";\nimport { chaikinOsc } from \"./chaikinOsc.js\";\nimport { chandeKrollStop } from \"./chandeKrollStop.js\";\nimport { chandelier } from \"./chandelier.js\";\nimport { change } from \"./change.js\";\nimport { chop } from \"./chop.js\";\nimport { cmf } from \"./cmf.js\";\nimport { cmo } from \"./cmo.js\";\nimport { connorsRsi } from \"./connorsRsi.js\";\nimport { coppock } from \"./coppock.js\";\nimport { crossover } from \"./crossover.js\";\nimport { crossunder } from \"./crossunder.js\";\nimport { dema } from \"./dema.js\";\nimport { dmi } from \"./dmi.js\";\nimport { donchian } from \"./donchian.js\";\nimport { dpo } from \"./dpo.js\";\nimport { ema } from \"./ema.js\";\nimport { envelope } from \"./envelope.js\";\nimport { eom } from \"./eom.js\";\nimport { fisher } from \"./fisher.js\";\nimport { fixedRangeVolumeProfile } from \"./fixedRangeVolumeProfile.js\";\nimport { highest } from \"./highest.js\";\nimport { highestbars } from \"./highestbars.js\";\nimport { historicalVolatility } from \"./historicalVolatility.js\";\nimport { hma } from \"./hma.js\";\nimport { ichimoku } from \"./ichimoku.js\";\nimport { kama } from \"./kama.js\";\nimport { keltner } from \"./keltner.js\";\nimport { klinger } from \"./klinger.js\";\nimport { kst } from \"./kst.js\";\nimport type { ScalarOrSeries } from \"./lib/sourceValue.js\";\nimport { lowest } from \"./lowest.js\";\nimport { lowestbars } from \"./lowestbars.js\";\nimport { lsma } from \"./lsma.js\";\nimport { maRibbon } from \"./maRibbon.js\";\nimport { macd } from \"./macd.js\";\nimport { massIndex } from \"./massIndex.js\";\nimport { mcginley } from \"./mcginley.js\";\nimport { median } from \"./median.js\";\nimport { mfi } from \"./mfi.js\";\nimport { momentum } from \"./momentum.js\";\nimport { netVolume } from \"./netVolume.js\";\nimport { nvi } from \"./nvi.js\";\nimport { nz } from \"./nz.js\";\nimport { obv } from \"./obv.js\";\nimport { pivotsHighLow } from \"./pivotsHighLow.js\";\nimport { pivotsStandard } from \"./pivotsStandard.js\";\nimport { pmo } from \"./pmo.js\";\nimport { ppo } from \"./ppo.js\";\nimport { psar } from \"./psar.js\";\nimport { pvi } from \"./pvi.js\";\nimport { pvo } from \"./pvo.js\";\nimport { pvt } from \"./pvt.js\";\nimport { roc } from \"./roc.js\";\nimport { rsi } from \"./rsi.js\";\nimport { rvgi } from \"./rvgi.js\";\nimport { rvi } from \"./rvi.js\";\nimport { sessionVolumeProfile } from \"./sessionVolumeProfile.js\";\nimport { sma } from \"./sma.js\";\nimport { smi } from \"./smi.js\";\nimport { smma } from \"./smma.js\";\nimport { stdev } from \"./stdev.js\";\nimport { stoch } from \"./stoch.js\";\nimport { stochRsi } from \"./stochRsi.js\";\nimport { supertrend } from \"./supertrend.js\";\nimport { tema } from \"./tema.js\";\nimport { trendStrengthIndex } from \"./trendStrengthIndex.js\";\nimport { trix } from \"./trix.js\";\nimport { tsi } from \"./tsi.js\";\nimport { ulcerIndex } from \"./ulcerIndex.js\";\nimport { ultimateOsc } from \"./ultimateOsc.js\";\nimport { valuewhen } from \"./valuewhen.js\";\nimport { visibleRangeVolumeProfile } from \"./visibleRangeVolumeProfile.js\";\nimport { vol } from \"./vol.js\";\nimport { volatilityStop } from \"./volatilityStop.js\";\nimport { vortex } from \"./vortex.js\";\nimport { vwap } from \"./vwap.js\";\nimport { vwma } from \"./vwma.js\";\nimport { williamsFractal } from \"./williamsFractal.js\";\nimport { williamsR } from \"./williamsR.js\";\nimport { wma } from \"./wma.js\";\nimport { zigZag } from \"./zigZag.js\";\n\n/**\n * The runtime-facing surface of the `ta` namespace. Each method takes\n * a compiler-injected `slotId` as its first argument, then the user-\n * facing arguments core's `TaNamespace` types. The compiler (Task 2)\n * inlines the slot id as a string literal at every callsite so the\n * runtime can look up its per-callsite hidden state in\n * `RuntimeContext.stream.taSlots`. Script authors never see the slot\n * arg — they import `ta` and call `ta.ema(close, 20)`; the bundled\n * output becomes `runtime.ta.ema(\"slot-id\", close, 20)`.\n *\n * @formula N/A — type surface, see per-primitive JSDoc\n * @since 0.1\n * @stable\n * @example\n * // import type { RuntimeTaNamespace } from \"@invinite-org/chartlang-runtime\";\n * // const fn: RuntimeTaNamespace[\"ema\"] = (slotId, src, length) =>\n * // ({ current: NaN, length: 0 }) as never;\n */\nexport type RuntimeTaNamespace = {\n sma(slotId: string, source: ScalarOrSeries, length: number, opts?: SmaOpts): Series<number>;\n ema(slotId: string, source: ScalarOrSeries, length: number, opts?: EmaOpts): Series<number>;\n stdev(slotId: string, source: ScalarOrSeries, length: number, opts?: StdevOpts): Series<number>;\n bb(slotId: string, source: ScalarOrSeries, length: number, opts?: BbOpts): BbResult;\n rsi(slotId: string, source: ScalarOrSeries, length: number, opts?: RsiOpts): Series<number>;\n macd(slotId: string, source: ScalarOrSeries, opts?: MacdOpts): MacdResult;\n atr(slotId: string, length: number, opts?: AtrOpts): Series<number>;\n crossover(\n slotId: string,\n a: ScalarOrSeries,\n b: ScalarOrSeries,\n opts?: CrossoverOpts,\n ): Series<boolean>;\n crossunder(\n slotId: string,\n a: ScalarOrSeries,\n b: ScalarOrSeries,\n opts?: CrossunderOpts,\n ): Series<boolean>;\n nz(value: number, replacement?: number): number;\n highest(\n slotId: string,\n source: ScalarOrSeries,\n length: number,\n opts?: HighestOpts,\n ): Series<number>;\n lowest(\n slotId: string,\n source: ScalarOrSeries,\n length: number,\n opts?: LowestOpts,\n ): Series<number>;\n highestbars(\n slotId: string,\n source: ScalarOrSeries,\n length: number,\n opts?: HighestbarsOpts,\n ): Series<number>;\n lowestbars(\n slotId: string,\n source: ScalarOrSeries,\n length: number,\n opts?: LowestbarsOpts,\n ): Series<number>;\n change(slotId: string, source: ScalarOrSeries, opts?: ChangeOpts): Series<number>;\n valuewhen(\n slotId: string,\n condition: Series<boolean>,\n source: ScalarOrSeries,\n occurrence?: number,\n opts?: ValuewhenOpts,\n ): Series<number>;\n barssince(slotId: string, condition: Series<boolean>, opts?: BarssinceOpts): Series<number>;\n wma(slotId: string, source: ScalarOrSeries, length: number, opts?: WmaOpts): Series<number>;\n vwma(slotId: string, source: ScalarOrSeries, length: number, opts?: VwmaOpts): Series<number>;\n hma(slotId: string, source: ScalarOrSeries, length: number, opts?: HmaOpts): Series<number>;\n smma(slotId: string, source: ScalarOrSeries, length: number, opts?: SmmaOpts): Series<number>;\n dema(slotId: string, source: ScalarOrSeries, length: number, opts?: DemaOpts): Series<number>;\n tema(slotId: string, source: ScalarOrSeries, length: number, opts?: TemaOpts): Series<number>;\n kama(slotId: string, source: ScalarOrSeries, opts?: KamaOpts): Series<number>;\n alma(slotId: string, source: ScalarOrSeries, length: number, opts?: AlmaOpts): Series<number>;\n lsma(slotId: string, source: ScalarOrSeries, length: number, opts?: LsmaOpts): Series<number>;\n mcginley(\n slotId: string,\n source: ScalarOrSeries,\n length: number,\n opts?: McginleyOpts,\n ): Series<number>;\n maRibbon(slotId: string, source: ScalarOrSeries, opts?: MaRibbonOpts): MaRibbonResult;\n ao(slotId: string, opts?: AoOpts): Series<number>;\n cmo(slotId: string, source: ScalarOrSeries, length: number, opts?: CmoOpts): Series<number>;\n momentum(\n slotId: string,\n source: ScalarOrSeries,\n length: number,\n opts?: MomentumOpts,\n ): Series<number>;\n roc(slotId: string, source: ScalarOrSeries, length: number, opts?: RocOpts): Series<number>;\n pmo(slotId: string, source: ScalarOrSeries, opts?: PmoOpts): PmoResult;\n smi(slotId: string, opts?: SmiOpts): SmiResult;\n tsi(slotId: string, source: ScalarOrSeries, opts?: TsiOpts): TsiResult;\n cci(slotId: string, source: ScalarOrSeries, length: number, opts?: CciOpts): Series<number>;\n stoch(slotId: string, opts?: StochOpts): StochResult;\n williamsR(slotId: string, length: number, opts?: WilliamsROpts): Series<number>;\n stochRsi(slotId: string, source: ScalarOrSeries, opts?: StochRsiOpts): StochRsiResult;\n ultimateOsc(slotId: string, opts?: UltimateOscOpts): Series<number>;\n coppock(slotId: string, source: ScalarOrSeries, opts?: CoppockOpts): Series<number>;\n ppo(slotId: string, source: ScalarOrSeries, opts?: PpoOpts): PpoResult;\n dpo(slotId: string, source: ScalarOrSeries, length: number, opts?: DpoOpts): Series<number>;\n connorsRsi(slotId: string, source: ScalarOrSeries, opts?: ConnorsRsiOpts): Series<number>;\n kst(slotId: string, source: ScalarOrSeries, opts?: KstOpts): KstResult;\n fisher(slotId: string, length: number, opts?: FisherOpts): FisherResult;\n klinger(slotId: string, opts?: KlingerOpts): KlingerResult;\n rvgi(slotId: string, opts?: RvgiOpts): RvgiResult;\n aroon(slotId: string, length: number, opts?: AroonOpts): AroonResult;\n aroonOsc(slotId: string, length: number, opts?: AroonOscOpts): Series<number>;\n vol(slotId: string, opts?: VolOpts): Series<number>;\n vwap(slotId: string, opts?: VwapOpts): Series<number>;\n anchoredVwap(slotId: string, anchorTime: number, opts?: AnchoredVwapOpts): Series<number>;\n anchoredVolumeProfile(\n slotId: string,\n opts: AnchoredVolumeProfileOpts,\n ): AnchoredVolumeProfileResult;\n fixedRangeVolumeProfile(\n slotId: string,\n opts: FixedRangeVolumeProfileOpts,\n ): FixedRangeVolumeProfileResult;\n sessionVolumeProfile(\n slotId: string,\n opts?: SessionVolumeProfileOpts,\n ): SessionVolumeProfileResult;\n visibleRangeVolumeProfile(\n slotId: string,\n opts?: VisibleRangeVolumeProfileOpts,\n ): VisibleRangeVolumeProfileResult;\n obv(slotId: string, opts?: ObvOpts): Series<number>;\n adl(slotId: string, opts?: AdlOpts): Series<number>;\n bop(slotId: string, opts?: BopOpts): Series<number>;\n cmf(slotId: string, length: number, opts?: CmfOpts): Series<number>;\n chaikinOsc(slotId: string, opts?: ChaikinOscOpts): Series<number>;\n mfi(slotId: string, length: number, opts?: MfiOpts): Series<number>;\n netVolume(slotId: string, opts?: NetVolumeOpts): Series<number>;\n pvo(slotId: string, opts?: PvoOpts): PvoResult;\n pvt(slotId: string, opts?: PvtOpts): Series<number>;\n eom(slotId: string, length: number, opts?: EomOpts): Series<number>;\n nvi(slotId: string, opts?: NviOpts): Series<number>;\n pvi(slotId: string, opts?: PviOpts): Series<number>;\n bbPercentB(\n slotId: string,\n source: ScalarOrSeries,\n length: number,\n opts?: BbPercentBOpts,\n ): Series<number>;\n bbw(slotId: string, source: ScalarOrSeries, length: number, opts?: BbwOpts): Series<number>;\n donchian(slotId: string, length: number, opts?: DonchianOpts): DonchianResult;\n keltner(slotId: string, opts?: KeltnerOpts): KeltnerResult;\n envelope(slotId: string, source: ScalarOrSeries, opts?: EnvelopeOpts): EnvelopeResult;\n chop(slotId: string, length: number, opts?: ChopOpts): Series<number>;\n median(\n slotId: string,\n source: ScalarOrSeries,\n length: number,\n opts?: MedianOpts,\n ): Series<number>;\n adr(slotId: string, opts?: AdrOpts): Series<number>;\n ulcerIndex(\n slotId: string,\n source: ScalarOrSeries,\n length: number,\n opts?: UlcerIndexOpts,\n ): Series<number>;\n historicalVolatility(\n slotId: string,\n source: ScalarOrSeries,\n length: number,\n opts?: HvOpts,\n ): Series<number>;\n rvi(slotId: string, source: ScalarOrSeries, length: number, opts?: RviOpts): Series<number>;\n massIndex(slotId: string, opts?: MassIndexOpts): Series<number>;\n psar(slotId: string, opts?: PsarOpts): PsarResult;\n supertrend(slotId: string, opts?: SupertrendOpts): SupertrendResult;\n chandelier(slotId: string, opts?: ChandelierOpts): ChandelierResult;\n chandeKrollStop(slotId: string, opts?: ChandeKrollStopOpts): ChandeKrollStopResult;\n williamsFractal(slotId: string, opts?: WilliamsFractalOpts): WilliamsFractalResult;\n zigZag(slotId: string, opts?: ZigZagOpts): ZigZagResult;\n pivotsHighLow(slotId: string, opts?: PivotsHighLowOpts): PivotsHighLowResult;\n pivotsStandard(slotId: string, opts?: PivotsStandardOpts): PivotsStandardResult;\n volatilityStop(slotId: string, opts?: VolatilityStopOpts): VolatilityStopResult;\n adx(slotId: string, length: number, opts?: AdxOpts): Series<number>;\n dmi(slotId: string, length: number, opts?: DmiOpts): DmiResult;\n trix(slotId: string, source: ScalarOrSeries, length: number, opts?: TrixOpts): TrixResult;\n vortex(slotId: string, length: number, opts?: VortexOpts): VortexResult;\n trendStrengthIndex(\n slotId: string,\n source: ScalarOrSeries,\n length: number,\n opts?: TrendStrengthIndexOpts,\n ): Series<number>;\n ichimoku(slotId: string, opts?: IchimokuOpts): IchimokuResult;\n};\n\n/**\n * Frozen registry of every Phase-1 + Phase-2 `ta.*` primitive. Wave-5\n * cardinality grows as each parallel task lands; the final Phase-2\n * count is verified at closeout (Task 30). Phase-1 ships 9; cross-\n * functional Task 5 adds 6; Task 6 adds 4 MA ports (`wma`, `vwma`,\n * `hma`, `smma`); Task 9 adds 3 oscillators; Task 13 adds 4 momentum;\n * Task 15 adds 2 trend.\n *\n * @formula N/A — frozen registry, see per-primitive JSDoc\n * @since 0.1\n * @stable\n * @example\n * // import { TA_REGISTRY } from \"@invinite-org/chartlang-runtime\";\n * // const keys = Object.keys(TA_REGISTRY);\n */\nexport const TA_REGISTRY = Object.freeze({\n sma,\n ema,\n stdev,\n bb,\n rsi,\n macd,\n atr,\n crossover,\n crossunder,\n nz,\n highest,\n lowest,\n highestbars,\n lowestbars,\n change,\n valuewhen,\n barssince,\n wma,\n vwma,\n hma,\n smma,\n dema,\n tema,\n kama,\n alma,\n lsma,\n mcginley,\n maRibbon,\n ao,\n cmo,\n momentum,\n roc,\n pmo,\n smi,\n tsi,\n cci,\n stoch,\n williamsR,\n stochRsi,\n ultimateOsc,\n coppock,\n ppo,\n dpo,\n connorsRsi,\n kst,\n fisher,\n klinger,\n rvgi,\n aroon,\n aroonOsc,\n vol,\n vwap,\n anchoredVwap,\n anchoredVolumeProfile,\n fixedRangeVolumeProfile,\n sessionVolumeProfile,\n visibleRangeVolumeProfile,\n obv,\n adl,\n bop,\n cmf,\n chaikinOsc,\n mfi,\n netVolume,\n pvo,\n pvt,\n eom,\n nvi,\n pvi,\n bbPercentB,\n bbw,\n donchian,\n keltner,\n envelope,\n chop,\n median,\n adr,\n ulcerIndex,\n historicalVolatility,\n rvi,\n massIndex,\n psar,\n supertrend,\n chandelier,\n chandeKrollStop,\n williamsFractal,\n zigZag,\n pivotsHighLow,\n pivotsStandard,\n volatilityStop,\n adx,\n dmi,\n trix,\n vortex,\n trendStrengthIndex,\n ichimoku,\n} as const);\n\n/**\n * Y-domain hint a primitive can advertise. `\"auto\"` is the default —\n * the renderer fits the visible-window data range. `\"fixed\"` pins the\n * range to a `[min, max]` interval (bounded oscillators like Stoch /\n * Williams %R).\n *\n * @formula N/A — metadata type, see consumer renderers\n * @since 0.2\n * @stable\n * @example\n * // const stochYDomain: YDomainSpec = { kind: \"fixed\", min: 0, max: 100 };\n */\nexport type YDomainSpec = Readonly<{ kind: \"auto\" } | { kind: \"fixed\"; min: number; max: number }>;\n\n/**\n * Per-primitive metadata layer the registry surfaces for renderers\n * (pane layout, legend ordering, y-axis scaling). Every field is\n * optional — primitives that don't advertise metadata default to\n * `primarySeriesKey = \"default\"` and `yDomain = { kind: \"auto\" }` in\n * the consumer. Phase-2 Task 9 introduces this surface; future\n * bounded oscillators (`stochRsi`, `ultimateOsc`) populate it\n * verbatim.\n *\n * @formula N/A — metadata type, see consumer renderers\n * @since 0.2\n * @stable\n * @example\n * // const meta: PrimitiveMetadata = {\n * // primarySeriesKey: \"k\",\n * // visibleSeriesKeys: [\"k\", \"d\"],\n * // yDomain: { kind: \"fixed\", min: 0, max: 100 },\n * // };\n */\nexport type PrimitiveMetadata = Readonly<{\n primarySeriesKey?: string;\n visibleSeriesKeys?: ReadonlyArray<string>;\n yDomain?: YDomainSpec;\n}>;\n\n/**\n * Frozen metadata table keyed by `TA_REGISTRY` id. Only primitives\n * with a non-default metadata payload appear. `ta.stoch` records its\n * `[0, 100]` range + `primarySeriesKey: \"k\"` + the visible-series\n * order for the legend. `ta.williamsR` records its `[-100, 0]` range.\n * Phase-1 entries + the cross-functional Task-5 entries are\n * unannotated.\n *\n * @formula N/A — frozen metadata table, see per-primitive `PrimitiveMetadata`\n * @since 0.2\n * @stable\n * @example\n * // import { TA_REGISTRY_METADATA } from \"@invinite-org/chartlang-runtime\";\n * // const stochMeta = TA_REGISTRY_METADATA.stoch;\n */\nexport const TA_REGISTRY_METADATA: Readonly<\n Partial<Record<keyof typeof TA_REGISTRY, PrimitiveMetadata>>\n> = Object.freeze({\n stoch: Object.freeze({\n primarySeriesKey: \"k\",\n visibleSeriesKeys: Object.freeze([\"k\", \"d\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"fixed\", min: 0, max: 100 } as const),\n }),\n williamsR: Object.freeze({\n yDomain: Object.freeze({ kind: \"fixed\", min: -100, max: 0 } as const),\n }),\n stochRsi: Object.freeze({\n primarySeriesKey: \"k\",\n visibleSeriesKeys: Object.freeze([\"k\", \"d\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"fixed\", min: 0, max: 100 } as const),\n }),\n ultimateOsc: Object.freeze({\n yDomain: Object.freeze({ kind: \"fixed\", min: 0, max: 100 } as const),\n }),\n ppo: Object.freeze({\n primarySeriesKey: \"ppo\",\n visibleSeriesKeys: Object.freeze([\"ppo\", \"signal\", \"hist\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n pvo: Object.freeze({\n primarySeriesKey: \"pvo\",\n visibleSeriesKeys: Object.freeze([\"pvo\", \"signal\", \"hist\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n sessionVolumeProfile: Object.freeze({\n primarySeriesKey: \"poc\",\n visibleSeriesKeys: Object.freeze([\"poc\", \"valHigh\", \"valLow\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n fixedRangeVolumeProfile: Object.freeze({\n primarySeriesKey: \"poc\",\n visibleSeriesKeys: Object.freeze([\"poc\", \"valHigh\", \"valLow\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n connorsRsi: Object.freeze({\n yDomain: Object.freeze({ kind: \"fixed\", min: 0, max: 100 } as const),\n }),\n pmo: Object.freeze({\n primarySeriesKey: \"pmo\",\n visibleSeriesKeys: Object.freeze([\"pmo\", \"signal\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n smi: Object.freeze({\n primarySeriesKey: \"smi\",\n visibleSeriesKeys: Object.freeze([\"smi\", \"signal\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"fixed\", min: -100, max: 100 } as const),\n }),\n tsi: Object.freeze({\n primarySeriesKey: \"tsi\",\n visibleSeriesKeys: Object.freeze([\"tsi\", \"signal\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n kst: Object.freeze({\n primarySeriesKey: \"kst\",\n visibleSeriesKeys: Object.freeze([\"kst\", \"signal\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n fisher: Object.freeze({\n primarySeriesKey: \"fisher\",\n visibleSeriesKeys: Object.freeze([\"fisher\", \"trigger\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n klinger: Object.freeze({\n primarySeriesKey: \"klinger\",\n visibleSeriesKeys: Object.freeze([\"klinger\", \"signal\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n rvgi: Object.freeze({\n primarySeriesKey: \"rvgi\",\n visibleSeriesKeys: Object.freeze([\"rvgi\", \"signal\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n anchoredVolumeProfile: Object.freeze({\n primarySeriesKey: \"poc\",\n visibleSeriesKeys: Object.freeze([\"poc\", \"valHigh\", \"valLow\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n aroon: Object.freeze({\n primarySeriesKey: \"up\",\n visibleSeriesKeys: Object.freeze([\"up\", \"down\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"fixed\", min: 0, max: 100 } as const),\n }),\n aroonOsc: Object.freeze({\n yDomain: Object.freeze({ kind: \"fixed\", min: -100, max: 100 } as const),\n }),\n donchian: Object.freeze({\n primarySeriesKey: \"middle\",\n visibleSeriesKeys: Object.freeze([\"upper\", \"middle\", \"lower\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n keltner: Object.freeze({\n primarySeriesKey: \"middle\",\n visibleSeriesKeys: Object.freeze([\"upper\", \"middle\", \"lower\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n envelope: Object.freeze({\n primarySeriesKey: \"middle\",\n visibleSeriesKeys: Object.freeze([\"upper\", \"middle\", \"lower\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n chop: Object.freeze({\n yDomain: Object.freeze({ kind: \"fixed\", min: 0, max: 100 } as const),\n }),\n psar: Object.freeze({\n primarySeriesKey: \"sar\",\n visibleSeriesKeys: Object.freeze([\"sar\", \"direction\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n supertrend: Object.freeze({\n primarySeriesKey: \"line\",\n visibleSeriesKeys: Object.freeze([\"line\", \"direction\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n chandelier: Object.freeze({\n primarySeriesKey: \"long\",\n visibleSeriesKeys: Object.freeze([\"long\", \"short\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n chandeKrollStop: Object.freeze({\n primarySeriesKey: \"long\",\n visibleSeriesKeys: Object.freeze([\"long\", \"short\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n williamsFractal: Object.freeze({\n primarySeriesKey: \"up\",\n visibleSeriesKeys: Object.freeze([\"up\", \"down\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n zigZag: Object.freeze({\n primarySeriesKey: \"value\",\n visibleSeriesKeys: Object.freeze([\"value\", \"direction\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n pivotsHighLow: Object.freeze({\n primarySeriesKey: \"high\",\n visibleSeriesKeys: Object.freeze([\"high\", \"low\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n pivotsStandard: Object.freeze({\n primarySeriesKey: \"pp\",\n visibleSeriesKeys: Object.freeze([\n \"pp\",\n \"r1\",\n \"s1\",\n \"r2\",\n \"s2\",\n \"r3\",\n \"s3\",\n ]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n volatilityStop: Object.freeze({\n primarySeriesKey: \"value\",\n visibleSeriesKeys: Object.freeze([\"value\", \"direction\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n maRibbon: Object.freeze({\n primarySeriesKey: \"ma_50\",\n visibleSeriesKeys: Object.freeze([\n \"ma_10\",\n \"ma_20\",\n \"ma_30\",\n \"ma_40\",\n \"ma_50\",\n ]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n adx: Object.freeze({\n yDomain: Object.freeze({ kind: \"fixed\", min: 0, max: 100 } as const),\n }),\n dmi: Object.freeze({\n primarySeriesKey: \"plusDi\",\n visibleSeriesKeys: Object.freeze([\"plusDi\", \"minusDi\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"fixed\", min: 0, max: 100 } as const),\n }),\n trix: Object.freeze({\n primarySeriesKey: \"trix\",\n visibleSeriesKeys: Object.freeze([\"trix\", \"signal\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n vortex: Object.freeze({\n primarySeriesKey: \"plus\",\n visibleSeriesKeys: Object.freeze([\"plus\", \"minus\"]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n trendStrengthIndex: Object.freeze({\n yDomain: Object.freeze({ kind: \"fixed\", min: -1, max: 1 } as const),\n }),\n ichimoku: Object.freeze({\n primarySeriesKey: \"tenkan\",\n visibleSeriesKeys: Object.freeze([\n \"tenkan\",\n \"kijun\",\n \"senkouA\",\n \"senkouB\",\n \"chikou\",\n ]) as ReadonlyArray<string>,\n yDomain: Object.freeze({ kind: \"auto\" } as const),\n }),\n});\n\n/**\n * The script-facing `ta` constant the compiler binds against. Equal\n * by identity to {@link TA_REGISTRY}; typed as the slot-aware\n * {@link RuntimeTaNamespace} so downstream consumers (the host-worker\n * boot, the conformance harness) get the runtime signature.\n *\n * @formula N/A — script-facing namespace, see per-primitive JSDoc\n * @since 0.1\n * @stable\n * @example\n * // import { ta } from \"@invinite-org/chartlang-runtime\";\n * // const out = ta.ema(\"slot-id\", { current: 12 }, 20);\n */\nexport const ta: RuntimeTaNamespace = TA_REGISTRY;\n"]}
|
package/dist/ta/roc.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
//
|
|
4
4
|
// Ported from invinite/src/components/trading-chart/indicators/roc.ts
|
|
5
5
|
// (commit 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite).
|
|
6
|
-
// Re-licensed MIT for chartlang.
|
|
7
|
-
//
|
|
6
|
+
// Re-licensed MIT for chartlang. The math is the reference, the code
|
|
7
|
+
// style is not.
|
|
8
8
|
import { Float64RingBuffer } from "../ringBuffer.js";
|
|
9
9
|
import { ACTIVE_RUNTIME_CONTEXT } from "../runtimeContext.js";
|
|
10
10
|
import { makeSeriesView } from "../seriesView.js";
|
package/dist/ta/roc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roc.js","sourceRoot":"","sources":["../../src/ta/roc.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,mEAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"roc.js","sourceRoot":"","sources":["../../src/ta/roc.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,mEAAmE;AACnE,qEAAqE;AACrE,gBAAgB;AAIhB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAuB,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAuB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAS5E,SAAS,MAAM;IACX,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc,EAAE,QAAgB;IAC9C,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAClD,OAAO;QACH,SAAS;QACT,MAAM,EAAE,cAAc,CAAS,SAAS,CAAC;QACzC,MAAM;QACN,YAAY,EAAE,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;KAClD,CAAC;AACN,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,GAAW;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC;IACpF,OAAO,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;AACtC,CAAC;AAED,SAAS,UAAU,CAAC,IAAa,EAAE,GAAW;IAC1C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,SAAS,CAAC,IAAa,EAAE,GAAW;IACzC,gEAAgE;IAChE,4DAA4D;IAC5D,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,GAAG,CACf,MAAc,EACd,MAAsB,EACtB,MAAc,EACd,KAAe;IAEf,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAwB,CAAC;IACjE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACrB,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzD,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACJ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n//\n// Ported from invinite/src/components/trading-chart/indicators/roc.ts\n// (commit 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite).\n// Re-licensed MIT for chartlang. The math is the reference, the code\n// style is not.\n\nimport type { RocOpts, Series } from \"@invinite-org/chartlang-core\";\n\nimport { Float64RingBuffer } from \"../ringBuffer.js\";\nimport { ACTIVE_RUNTIME_CONTEXT, type RuntimeContext } from \"../runtimeContext.js\";\nimport { makeSeriesView } from \"../seriesView.js\";\nimport { type ScalarOrSeries, readSourceValue } from \"./lib/sourceValue.js\";\n\ntype RocSlot = {\n readonly outBuffer: Float64RingBuffer;\n readonly series: Series<number>;\n readonly length: number;\n readonly sourceWindow: Float64RingBuffer;\n};\n\nfunction getCtx(): RuntimeContext {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) {\n throw new Error(\"ta.roc called outside an active script step\");\n }\n return ctx;\n}\n\nfunction initSlot(length: number, capacity: number): RocSlot {\n const outBuffer = new Float64RingBuffer(capacity);\n return {\n outBuffer,\n series: makeSeriesView<number>(outBuffer),\n length,\n sourceWindow: new Float64RingBuffer(length + 1),\n };\n}\n\nfunction rocValue(head: number, old: number): number {\n if (!Number.isFinite(head) || !Number.isFinite(old) || old === 0) return Number.NaN;\n return (100 * (head - old)) / old;\n}\n\nfunction closeValue(slot: RocSlot, src: number): number {\n slot.sourceWindow.append(src);\n if (slot.sourceWindow.length <= slot.length) return Number.NaN;\n const head = slot.sourceWindow.at(0);\n const old = slot.sourceWindow.at(slot.length);\n return rocValue(head, old);\n}\n\nfunction tickValue(slot: RocSlot, src: number): number {\n // Tick replaces the head bar's source. Warmup count is based on\n // CLOSED bars in the window — an unwarmed slot returns NaN.\n if (slot.sourceWindow.length <= slot.length) return Number.NaN;\n const old = slot.sourceWindow.at(slot.length);\n return rocValue(src, old);\n}\n\n/**\n * Rate of Change — `100 × (source[0] − source[length]) / source[length]`.\n * NaN when either operand is NaN or the lagged source is exactly `0`\n * (division-by-zero guard). Warmup is `length` bars.\n *\n * @formula out[t] = 100 · (source[t] − source[t − length]) / source[t − length]\n * @warmup length\n * @since 0.2\n * @stable\n *\n * @example\n * // import { ta } from \"@invinite-org/chartlang-runtime\";\n * // const r = ta.roc(\"slot\", bar.close, 12);\n * // const head = r.current;\n */\nexport function roc(\n slotId: string,\n source: ScalarOrSeries,\n length: number,\n _opts?: RocOpts,\n): Series<number> {\n const ctx = getCtx();\n let slot = ctx.stream.taSlots.get(slotId) as RocSlot | undefined;\n if (slot === undefined) {\n slot = initSlot(length, ctx.stream.ohlcv.close.capacity);\n ctx.stream.taSlots.set(slotId, slot);\n }\n const src = readSourceValue(source);\n if (ctx.isTick) {\n slot.outBuffer.replaceHead(tickValue(slot, src));\n } else {\n slot.outBuffer.append(closeValue(slot, src));\n }\n return slot.series;\n}\n"]}
|
package/dist/ta/rsi.d.ts
CHANGED
|
@@ -15,8 +15,9 @@ import { type ScalarOrSeries } from "./lib/sourceValue.js";
|
|
|
15
15
|
* @since 0.1
|
|
16
16
|
* @stable
|
|
17
17
|
*
|
|
18
|
-
* `opts.offset`
|
|
19
|
-
*
|
|
18
|
+
* `opts.offset` is a presentation display shift carried to the plot
|
|
19
|
+
* emission as `xShift` (`+n` right / future, `−n` left / past); the
|
|
20
|
+
* series value is unshifted.
|
|
20
21
|
*
|
|
21
22
|
* @example
|
|
22
23
|
* // import { ta } from "@invinite-org/chartlang-runtime";
|
package/dist/ta/rsi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsi.d.ts","sourceRoot":"","sources":["../../src/ta/rsi.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAMpE,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,sBAAsB,CAAC;AAsI5E
|
|
1
|
+
{"version":3,"file":"rsi.d.ts","sourceRoot":"","sources":["../../src/ta/rsi.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAMpE,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,sBAAsB,CAAC;AAsI5E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,GAAG,CACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,OAAO,GACf,MAAM,CAAC,MAAM,CAAC,CAchB"}
|
package/dist/ta/rsi.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
//
|
|
4
4
|
// Ported from invinite/src/components/trading-chart/indicators/rsi.ts
|
|
5
5
|
// (commit d2d1043c1b039f66d2f3674526d303d31cf2f1e0, © Invinite).
|
|
6
|
-
// Re-licensed MIT for chartlang.
|
|
7
|
-
//
|
|
6
|
+
// Re-licensed MIT for chartlang. The math is the reference, the code
|
|
7
|
+
// style is not.
|
|
8
8
|
// Structural choices (callsite-id slot, Series<T> proxy, replaceHead
|
|
9
9
|
// mode) follow chartlang's primitive shape — NOT invinite's
|
|
10
10
|
// IndicatorPlugin shape.
|
|
@@ -138,8 +138,9 @@ function tickValue(slot, src) {
|
|
|
138
138
|
* @since 0.1
|
|
139
139
|
* @stable
|
|
140
140
|
*
|
|
141
|
-
* `opts.offset`
|
|
142
|
-
*
|
|
141
|
+
* `opts.offset` is a presentation display shift carried to the plot
|
|
142
|
+
* emission as `xShift` (`+n` right / future, `−n` left / past); the
|
|
143
|
+
* series value is unshifted.
|
|
143
144
|
*
|
|
144
145
|
* @example
|
|
145
146
|
* // import { ta } from "@invinite-org/chartlang-runtime";
|
package/dist/ta/rsi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsi.js","sourceRoot":"","sources":["../../src/ta/rsi.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rsi.js","sourceRoot":"","sources":["../../src/ta/rsi.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n//\n// Ported from invinite/src/components/trading-chart/indicators/rsi.ts\n// (commit d2d1043c1b039f66d2f3674526d303d31cf2f1e0, © Invinite).\n// Re-licensed MIT for chartlang. The math is the reference, the code\n// style is not.\n// Structural choices (callsite-id slot, Series<T> proxy, replaceHead\n// mode) follow chartlang's primitive shape — NOT invinite's\n// IndicatorPlugin shape.\n\nimport type { RsiOpts, Series } from \"@invinite-org/chartlang-core\";\n\nimport { Float64RingBuffer } from \"../ringBuffer.js\";\nimport { ACTIVE_RUNTIME_CONTEXT, type RuntimeContext } from \"../runtimeContext.js\";\nimport { makeSeriesView, makeShiftedSeriesView } from \"../seriesView.js\";\nimport { wilderStep } from \"./lib/wilderSmoothing.js\";\nimport { type ScalarOrSeries, readSourceValue } from \"./lib/sourceValue.js\";\n\ntype RsiSlot = {\n readonly kind: \"ta.rsi\";\n readonly outBuffer: Float64RingBuffer;\n readonly series: Series<number>;\n readonly length: number;\n seedGainSum: number;\n seedLossSum: number;\n /** Number of diffs (= closed bars − 1) seen so far. */\n diffCount: number;\n avgGain: number;\n avgLoss: number;\n prevSrc: number;\n /** Source value as of the prior closed bar — used by tick-mode replay. */\n prevClosedSrc: number;\n /** Per-offset Series-view cache; see `sma.ts` for the convention. */\n readonly shiftedViews: Map<number, Series<number>>;\n};\n\nfunction getCtx(): RuntimeContext {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) {\n throw new Error(\"ta.rsi called outside an active script step\");\n }\n return ctx;\n}\n\nfunction initSlot(length: number, capacity: number): RsiSlot {\n const outBuffer = new Float64RingBuffer(capacity);\n return {\n kind: \"ta.rsi\",\n outBuffer,\n series: makeSeriesView<number>(outBuffer),\n length,\n seedGainSum: 0,\n seedLossSum: 0,\n diffCount: 0,\n avgGain: Number.NaN,\n avgLoss: Number.NaN,\n prevSrc: Number.NaN,\n prevClosedSrc: Number.NaN,\n shiftedViews: new Map(),\n };\n}\n\nfunction viewForOffset(slot: RsiSlot, offset: number): Series<number> {\n if (offset === 0) return slot.series;\n let view = slot.shiftedViews.get(offset);\n if (view === undefined) {\n view = makeShiftedSeriesView<number>(slot.outBuffer, offset);\n slot.shiftedViews.set(offset, view);\n }\n return view;\n}\n\nfunction rsiFromAvgs(avgGain: number, avgLoss: number): number {\n if (avgLoss === 0) return 100;\n return 100 - 100 / (1 + avgGain / avgLoss);\n}\n\nfunction closeValue(slot: RsiSlot, src: number): number {\n if (!Number.isFinite(src)) {\n // Skip the diff; hold prior values forward.\n if (Number.isFinite(slot.avgGain) && Number.isFinite(slot.avgLoss)) {\n return rsiFromAvgs(slot.avgGain, slot.avgLoss);\n }\n return Number.NaN;\n }\n if (!Number.isFinite(slot.prevSrc)) {\n slot.prevSrc = src;\n slot.prevClosedSrc = src;\n return Number.NaN;\n }\n const diff = src - slot.prevSrc;\n const gain = diff > 0 ? diff : 0;\n const loss = diff < 0 ? -diff : 0;\n slot.prevClosedSrc = slot.prevSrc;\n slot.prevSrc = src;\n slot.diffCount += 1;\n\n if (slot.diffCount < slot.length) {\n slot.seedGainSum += gain;\n slot.seedLossSum += loss;\n return Number.NaN;\n }\n if (slot.diffCount === slot.length) {\n slot.seedGainSum += gain;\n slot.seedLossSum += loss;\n slot.avgGain = slot.seedGainSum / slot.length;\n slot.avgLoss = slot.seedLossSum / slot.length;\n return rsiFromAvgs(slot.avgGain, slot.avgLoss);\n }\n slot.avgGain = wilderStep(slot.avgGain, gain, slot.length);\n slot.avgLoss = wilderStep(slot.avgLoss, loss, slot.length);\n return rsiFromAvgs(slot.avgGain, slot.avgLoss);\n}\n\nfunction tickValue(slot: RsiSlot, src: number): number {\n if (!Number.isFinite(src) || !Number.isFinite(slot.prevClosedSrc)) {\n if (Number.isFinite(slot.avgGain) && Number.isFinite(slot.avgLoss)) {\n return rsiFromAvgs(slot.avgGain, slot.avgLoss);\n }\n return Number.NaN;\n }\n // Replay the most recent diff using the (frozen) prior closed avgs.\n // We need pre-update avgs: at close we already overwrote `avgGain` /\n // `avgLoss`. So we reverse the Wilder step to recover them.\n if (slot.diffCount < slot.length) {\n // During seeding: simulate the seed completing with this tick.\n const diff = src - slot.prevClosedSrc;\n const gain = diff > 0 ? diff : 0;\n const loss = diff < 0 ? -diff : 0;\n const provisionalCount = slot.diffCount + 1;\n if (provisionalCount < slot.length) return Number.NaN;\n const provGain = (slot.seedGainSum + gain) / slot.length;\n const provLoss = (slot.seedLossSum + loss) / slot.length;\n return rsiFromAvgs(provGain, provLoss);\n }\n // Post-warmup: reverse the most recent Wilder step to get the prior-\n // close avgs, then apply this tick's diff against those.\n const diffClosed = slot.prevSrc - slot.prevClosedSrc;\n const closedGain = diffClosed > 0 ? diffClosed : 0;\n const closedLoss = diffClosed < 0 ? -diffClosed : 0;\n const priorAvgGain = (slot.avgGain * slot.length - closedGain) / (slot.length - 1);\n const priorAvgLoss = (slot.avgLoss * slot.length - closedLoss) / (slot.length - 1);\n const diff = src - slot.prevClosedSrc;\n const gain = diff > 0 ? diff : 0;\n const loss = diff < 0 ? -diff : 0;\n const provGain = wilderStep(priorAvgGain, gain, slot.length);\n const provLoss = wilderStep(priorAvgLoss, loss, slot.length);\n return rsiFromAvgs(provGain, provLoss);\n}\n\n/**\n * Wilder's Relative Strength Index. Output range `[0, 100]`. First\n * `length` bars NaN (no diff for bar 0, then a seed window of\n * `length` diffs). Output is `100 − 100 / (1 + RS)` with\n * `RS = avgGain / avgLoss`; `avgLoss = 0` → RSI = 100.\n *\n * @formula diff[t] = source[t] − source[t − 1] ;\n * seed at bar `length` = simple mean of first `length` diffs ;\n * avgGain[t] = (avgGain[t − 1] · (length − 1) + gain[t]) / length ;\n * same for avgLoss ;\n * RSI = 100 − 100 / (1 + avgGain / avgLoss)\n * @warmup length\n * @since 0.1\n * @stable\n *\n * `opts.offset` is a presentation display shift carried to the plot\n * emission as `xShift` (`+n` right / future, `−n` left / past); the\n * series value is unshifted.\n *\n * @example\n * // import { ta } from \"@invinite-org/chartlang-runtime\";\n * // const r = ta.rsi(\"slot\", bar.close, 14);\n * // const head = r.current;\n * // const lagged = ta.rsi(\"slot2\", bar.close, 14, { offset: 5 });\n */\nexport function rsi(\n slotId: string,\n source: ScalarOrSeries,\n length: number,\n opts?: RsiOpts,\n): Series<number> {\n const ctx = getCtx();\n let slot = ctx.stream.taSlots.get(slotId) as RsiSlot | undefined;\n if (slot === undefined) {\n slot = initSlot(length, ctx.stream.ohlcv.close.capacity);\n ctx.stream.taSlots.set(slotId, slot);\n }\n const src = readSourceValue(source);\n if (ctx.isTick) {\n slot.outBuffer.replaceHead(tickValue(slot, src));\n } else {\n slot.outBuffer.append(closeValue(slot, src));\n }\n return viewForOffset(slot, opts?.offset ?? 0);\n}\n"]}
|
package/dist/ta/rvgi.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
//
|
|
4
4
|
// Ported from invinite/src/components/trading-chart/indicators/rvgi.ts
|
|
5
5
|
// (commit 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite).
|
|
6
|
-
// Re-licensed MIT for chartlang.
|
|
7
|
-
//
|
|
6
|
+
// Re-licensed MIT for chartlang. The math is the reference, the code
|
|
7
|
+
// style is not.
|
|
8
8
|
// Structural choices (callsite-id slot, Series<T> proxy, replaceHead
|
|
9
9
|
// mode) follow chartlang's primitive shape — NOT invinite's
|
|
10
10
|
// IndicatorPlugin shape. Composition: two `ta.sma` sub-slots
|
package/dist/ta/rvgi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rvgi.js","sourceRoot":"","sources":["../../src/ta/rvgi.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,uEAAuE;AACvE,mEAAmE;AACnE,0DAA0D;AAC1D,yEAAyE;AACzE,qEAAqE;AACrE,4DAA4D;AAC5D,6DAA6D;AAC7D,+DAA+D;AAC/D,8DAA8D;AAC9D,+DAA+D;AAC/D,uDAAuD;AAIvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAuB,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,cAAc,GAAG,EAAE,CAAC;AAiB1B,SAAS,MAAM;IACX,MAAM,GAAG,GAAG,sBAAsB,CAAC,OAAO,CAAC;IAC3C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc,EAAE,QAAgB;IAC9C,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAClD,OAAO;QACH,MAAM,EAAE,IAAI;QACZ,OAAO;QACP,SAAS;QACT,UAAU,EAAE,cAAc,CAAS,OAAO,CAAC;QAC3C,YAAY,EAAE,cAAc,CAAS,SAAS,CAAC;QAC/C,MAAM;QACN,QAAQ,EAAE,IAAI,iBAAiB,CAAC,CAAC,CAAC;QAClC,QAAQ,EAAE,IAAI,iBAAiB,CAAC,CAAC,CAAC;QAClC,UAAU,EAAE,IAAI,iBAAiB,CAAC,CAAC,CAAC;KACvC,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,IAAuB;IACtC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC;IACvC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtB,IACI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EACtB,CAAC;QACC,OAAO,MAAM,CAAC,GAAG,CAAC;IACtB,CAAC;IACD,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,IAAI,CAAC,MAAc,EAAE,IAAe;IAChD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,cAAc,CAAC;IAE9C,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAyB,CAAC;IAClE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACrB,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzD,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;IAClD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IACvF,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IAEnF,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACJ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE7C,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,MAAM,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,MAAM,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;IACjC,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;IACjC,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACvE,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;IAC3B,CAAC;SAAM,CAAC;QACJ,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IAChC,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACb,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACJ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE/C,IAAI,GAAG,CAAC,MAAM;QAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;;QACnD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAExC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACxB,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,MAAM,EAAE,IAAI,CAAC,YAAY;SAC5B,CAAC,CAAC;IACP,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,CAAC"}
|
|
1
|
+
{"version":3,"file":"rvgi.js","sourceRoot":"","sources":["../../src/ta/rvgi.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n//\n// Ported from invinite/src/components/trading-chart/indicators/rvgi.ts\n// (commit 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite).\n// Re-licensed MIT for chartlang. The math is the reference, the code\n// style is not.\n// Structural choices (callsite-id slot, Series<T> proxy, replaceHead\n// mode) follow chartlang's primitive shape — NOT invinite's\n// IndicatorPlugin shape. Composition: two `ta.sma` sub-slots\n// (`${slotId}/numSma`, `${slotId}/denSma`) for the numerator /\n// denominator smoothing. The per-bar 4-bar `(1, 2, 2, 1) / 6`\n// weighted sum + the 4-bar signal weighted sum are bespoke (no\n// registry helper exposes that exact weighted window).\n\nimport type { RvgiOpts, RvgiResult, Series } from \"@invinite-org/chartlang-core\";\n\nimport { Float64RingBuffer } from \"../ringBuffer.js\";\nimport { ACTIVE_RUNTIME_CONTEXT, type RuntimeContext } from \"../runtimeContext.js\";\nimport { makeSeriesView } from \"../seriesView.js\";\nimport { sma } from \"./sma.js\";\n\nconst DEFAULT_LENGTH = 10;\n\ntype RvgiSlot = {\n result: RvgiResult | null;\n readonly rvgiBuf: Float64RingBuffer;\n readonly signalBuf: Float64RingBuffer;\n readonly rvgiSeries: Series<number>;\n readonly signalSeries: Series<number>;\n readonly length: number;\n /** Last 4 bars' `(close − open)` deltas; `at(0)` is the head. */\n readonly coWindow: Float64RingBuffer;\n /** Last 4 bars' `(high − low)` ranges; `at(0)` is the head. */\n readonly hlWindow: Float64RingBuffer;\n /** Last 4 rvgi outputs; `at(0)` is the head — feeds the signal. */\n readonly rvgiWindow: Float64RingBuffer;\n};\n\nfunction getCtx(): RuntimeContext {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) {\n throw new Error(\"ta.rvgi called outside an active script step\");\n }\n return ctx;\n}\n\nfunction initSlot(length: number, capacity: number): RvgiSlot {\n const rvgiBuf = new Float64RingBuffer(capacity);\n const signalBuf = new Float64RingBuffer(capacity);\n return {\n result: null,\n rvgiBuf,\n signalBuf,\n rvgiSeries: makeSeriesView<number>(rvgiBuf),\n signalSeries: makeSeriesView<number>(signalBuf),\n length,\n coWindow: new Float64RingBuffer(4),\n hlWindow: new Float64RingBuffer(4),\n rvgiWindow: new Float64RingBuffer(4),\n };\n}\n\n/**\n * 4-bar `(1, 2, 2, 1) / 6` weighted sum over a `Float64RingBuffer`\n * with `at(0)` = head. Returns NaN if the ring isn't full or any\n * value is non-finite.\n */\nfunction weighted4(ring: Float64RingBuffer): number {\n if (ring.length < 4) return Number.NaN;\n const v0 = ring.at(0);\n const v1 = ring.at(1);\n const v2 = ring.at(2);\n const v3 = ring.at(3);\n if (\n !Number.isFinite(v0) ||\n !Number.isFinite(v1) ||\n !Number.isFinite(v2) ||\n !Number.isFinite(v3)\n ) {\n return Number.NaN;\n }\n return (v0 + 2 * v1 + 2 * v2 + v3) / 6;\n}\n\n/**\n * Relative Vigor Index (John Ehlers, 2002). Per-bar 4-bar weighted\n * sum of `(close − open)` (numerator) and `(high − low)` (denominator),\n * each smoothed via an SMA over `length` bars; `rvgi = numSma /\n * denSma`. The signal line is a 4-bar `(1, 2, 2, 1) / 6` weighted sum\n * of the rvgi line. Defaults `length = 10`. Composes 2 `ta.sma`\n * sub-slots (`${slotId}/numSma`, `${slotId}/denSma`).\n *\n * Flat-range bars (denominator SMA = 0) emit NaN at `rvgi`; that NaN\n * propagates into the signal's 4-bar window.\n *\n * @formula coN = closes[t − N] − opens[t − N] ; hlN = highs[t − N] − lows[t − N] ;\n * num = (co0 + 2·co1 + 2·co2 + co3) / 6 ; den = (hl0 + 2·hl1 + 2·hl2 + hl3) / 6 ;\n * rvgi = sma(num, length) / sma(den, length) ; NaN on den === 0 ;\n * signal = (rvgi[0] + 2·rvgi[1] + 2·rvgi[2] + rvgi[3]) / 6\n * @warmup length + 3 (numerator / denominator defined at bar 3 ; sma defined `length − 1` bars later ; signal needs another 3)\n * @since 0.2\n * @stable\n *\n * @example\n * // import { ta } from \"@invinite-org/chartlang-runtime\";\n * // const r = ta.rvgi(\"slot\");\n * // plot(r.rvgi); plot(r.signal);\n */\nexport function rvgi(slotId: string, opts?: RvgiOpts): RvgiResult {\n const ctx = getCtx();\n const length = opts?.length ?? DEFAULT_LENGTH;\n\n let slot = ctx.stream.taSlots.get(slotId) as RvgiSlot | undefined;\n if (slot === undefined) {\n slot = initSlot(length, ctx.stream.ohlcv.close.capacity);\n ctx.stream.taSlots.set(slotId, slot);\n }\n\n const { open, high, low, close } = ctx.stream.bar;\n const co = Number.isFinite(close) && Number.isFinite(open) ? close - open : Number.NaN;\n const hl = Number.isFinite(high) && Number.isFinite(low) ? high - low : Number.NaN;\n\n if (ctx.isTick) {\n slot.coWindow.replaceHead(co);\n slot.hlWindow.replaceHead(hl);\n } else {\n slot.coWindow.append(co);\n slot.hlWindow.append(hl);\n }\n\n const numerator = weighted4(slot.coWindow);\n const denominator = weighted4(slot.hlWindow);\n\n const numSeries = sma(`${slotId}/numSma`, numerator, length);\n const denSeries = sma(`${slotId}/denSma`, denominator, length);\n const numSma = numSeries.current;\n const denSma = denSeries.current;\n let rvgiValue: number;\n if (!Number.isFinite(numSma) || !Number.isFinite(denSma) || denSma === 0) {\n rvgiValue = Number.NaN;\n } else {\n rvgiValue = numSma / denSma;\n }\n\n if (ctx.isTick) {\n slot.rvgiWindow.replaceHead(rvgiValue);\n slot.rvgiBuf.replaceHead(rvgiValue);\n } else {\n slot.rvgiWindow.append(rvgiValue);\n slot.rvgiBuf.append(rvgiValue);\n }\n\n const signalValue = weighted4(slot.rvgiWindow);\n\n if (ctx.isTick) slot.signalBuf.replaceHead(signalValue);\n else slot.signalBuf.append(signalValue);\n\n if (slot.result === null) {\n slot.result = Object.freeze({\n rvgi: slot.rvgiSeries,\n signal: slot.signalSeries,\n });\n }\n return slot.result;\n}\n"]}
|
package/dist/ta/rvi.d.ts
CHANGED
|
@@ -19,8 +19,9 @@ import { type ScalarOrSeries } from "./lib/sourceValue.js";
|
|
|
19
19
|
* @since 0.2
|
|
20
20
|
* @stable
|
|
21
21
|
*
|
|
22
|
-
* `opts.offset`
|
|
23
|
-
*
|
|
22
|
+
* `opts.offset` is a presentation display shift carried to the plot
|
|
23
|
+
* emission as `xShift` (`+n` right / future, `−n` left / past); the
|
|
24
|
+
* series value is unshifted.
|
|
24
25
|
*
|
|
25
26
|
* @example
|
|
26
27
|
* // import { ta } from "@invinite-org/chartlang-core";
|
package/dist/ta/rvi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rvi.d.ts","sourceRoot":"","sources":["../../src/ta/rvi.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAMpE,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,sBAAsB,CAAC;AA8H5E
|
|
1
|
+
{"version":3,"file":"rvi.d.ts","sourceRoot":"","sources":["../../src/ta/rvi.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAMpE,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,sBAAsB,CAAC;AA8H5E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,GAAG,CACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,OAAO,GACf,MAAM,CAAC,MAAM,CAAC,CAoChB"}
|
package/dist/ta/rvi.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
//
|
|
4
4
|
// Ported from invinite/src/components/trading-chart/indicators/rvi.ts
|
|
5
5
|
// (commit 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite).
|
|
6
|
-
// Re-licensed MIT for chartlang.
|
|
7
|
-
//
|
|
6
|
+
// Re-licensed MIT for chartlang. The math is the reference, the code
|
|
7
|
+
// style is not.
|
|
8
8
|
// Structural choices (callsite-id slot, Series<T> proxy, replaceHead
|
|
9
9
|
// mode) follow chartlang's primitive shape — NOT invinite's
|
|
10
10
|
// IndicatorPlugin shape. The up/down EMA arms compose `ta.ema` via
|
|
@@ -146,8 +146,9 @@ function rviValue(upEma, downEma) {
|
|
|
146
146
|
* @since 0.2
|
|
147
147
|
* @stable
|
|
148
148
|
*
|
|
149
|
-
* `opts.offset`
|
|
150
|
-
*
|
|
149
|
+
* `opts.offset` is a presentation display shift carried to the plot
|
|
150
|
+
* emission as `xShift` (`+n` right / future, `−n` left / past); the
|
|
151
|
+
* series value is unshifted.
|
|
151
152
|
*
|
|
152
153
|
* @example
|
|
153
154
|
* // import { ta } from "@invinite-org/chartlang-core";
|
package/dist/ta/rvi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rvi.js","sourceRoot":"","sources":["../../src/ta/rvi.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rvi.js","sourceRoot":"","sources":["../../src/ta/rvi.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n//\n// Ported from invinite/src/components/trading-chart/indicators/rvi.ts\n// (commit 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite).\n// Re-licensed MIT for chartlang. The math is the reference, the code\n// style is not.\n// Structural choices (callsite-id slot, Series<T> proxy, replaceHead\n// mode) follow chartlang's primitive shape — NOT invinite's\n// IndicatorPlugin shape. The up/down EMA arms compose `ta.ema` via\n// sub-slots `${slotId}/upEma` / `${slotId}/downEma` so the EMA\n// recurrence + warmup semantics flow in by reference.\n\nimport type { RviOpts, Series } from \"@invinite-org/chartlang-core\";\n\nimport { Float64RingBuffer } from \"../ringBuffer.js\";\nimport { ACTIVE_RUNTIME_CONTEXT, type RuntimeContext } from \"../runtimeContext.js\";\nimport { makeSeriesView, makeShiftedSeriesView } from \"../seriesView.js\";\nimport { ema } from \"./ema.js\";\nimport { type ScalarOrSeries, readSourceValue } from \"./lib/sourceValue.js\";\n\ntype RviSlot = {\n readonly outBuffer: Float64RingBuffer;\n readonly series: Series<number>;\n readonly length: number;\n readonly sigmaWindow: Float64RingBuffer;\n sumX: number;\n sumX2: number;\n /** Last closed source value (basis of next bar's up/down classification). */\n prevSrc: number;\n /** Per-offset Series-view cache; see `sma.ts` for the convention. */\n readonly shiftedViews: Map<number, Series<number>>;\n};\n\nfunction getCtx(): RuntimeContext {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) {\n throw new Error(\"ta.rvi called outside an active script step\");\n }\n return ctx;\n}\n\nfunction initSlot(length: number, capacity: number): RviSlot {\n const outBuffer = new Float64RingBuffer(capacity);\n return {\n outBuffer,\n series: makeSeriesView<number>(outBuffer),\n length,\n sigmaWindow: new Float64RingBuffer(length),\n sumX: 0,\n sumX2: 0,\n prevSrc: Number.NaN,\n shiftedViews: new Map(),\n };\n}\n\nfunction viewForOffset(slot: RviSlot, offset: number): Series<number> {\n if (offset === 0) return slot.series;\n let view = slot.shiftedViews.get(offset);\n if (view === undefined) {\n view = makeShiftedSeriesView<number>(slot.outBuffer, offset);\n slot.shiftedViews.set(offset, view);\n }\n return view;\n}\n\nfunction windowStdDev(n: number, sumX: number, sumX2: number): number {\n const mean = sumX / n;\n const variance = sumX2 / n - mean * mean;\n return Math.sqrt(Math.max(0, variance));\n}\n\n/** Fold a new source value into the sigma-window running sums. */\nfunction appendToSigmaWindow(slot: RviSlot, src: number): number {\n if (slot.sigmaWindow.length < slot.sigmaWindow.capacity) {\n slot.sigmaWindow.append(src);\n if (Number.isFinite(src)) {\n slot.sumX += src;\n slot.sumX2 += src * src;\n } else {\n slot.sumX = Number.NaN;\n slot.sumX2 = Number.NaN;\n }\n if (slot.sigmaWindow.length < slot.sigmaWindow.capacity) return Number.NaN;\n if (!Number.isFinite(slot.sumX)) return Number.NaN;\n return windowStdDev(slot.sigmaWindow.length, slot.sumX, slot.sumX2);\n }\n const outgoing = slot.sigmaWindow.at(slot.sigmaWindow.length - 1);\n slot.sigmaWindow.append(src);\n if (!Number.isFinite(src)) {\n slot.sumX = Number.NaN;\n slot.sumX2 = Number.NaN;\n return Number.NaN;\n }\n if (!Number.isFinite(slot.sumX) || !Number.isFinite(outgoing)) {\n // A previous NaN poisoned the running sums; rebuild from the\n // live window (NaN values short-circuit the result to NaN).\n let sumX = 0;\n let sumX2 = 0;\n for (let i = 0; i < slot.sigmaWindow.length; i += 1) {\n const v = slot.sigmaWindow.at(i);\n if (!Number.isFinite(v)) {\n slot.sumX = Number.NaN;\n slot.sumX2 = Number.NaN;\n return Number.NaN;\n }\n sumX += v;\n sumX2 += v * v;\n }\n slot.sumX = sumX;\n slot.sumX2 = sumX2;\n } else {\n slot.sumX = slot.sumX - outgoing + src;\n slot.sumX2 = slot.sumX2 - outgoing * outgoing + src * src;\n }\n return windowStdDev(slot.sigmaWindow.length, slot.sumX, slot.sumX2);\n}\n\n/** Sigma at the tick boundary against the closed sigma-window state. */\nfunction tickSigma(slot: RviSlot, src: number): number {\n if (slot.sigmaWindow.length < slot.sigmaWindow.capacity) return Number.NaN;\n if (!Number.isFinite(src)) return Number.NaN;\n const oldestInHead = slot.sigmaWindow.at(0);\n const sumX = slot.sumX - oldestInHead + src;\n const sumX2 = slot.sumX2 - oldestInHead * oldestInHead + src * src;\n return windowStdDev(slot.sigmaWindow.length, sumX, sumX2);\n}\n\nfunction classify(sigma: number, diff: number): { up: number; down: number } {\n if (!Number.isFinite(sigma) || !Number.isFinite(diff)) {\n return { up: Number.NaN, down: Number.NaN };\n }\n return {\n up: diff > 0 ? sigma : 0,\n down: diff < 0 ? sigma : 0,\n };\n}\n\nfunction rviValue(upEma: number, downEma: number): number {\n if (!Number.isFinite(upEma) || !Number.isFinite(downEma)) return Number.NaN;\n const total = upEma + downEma;\n if (total === 0) return Number.NaN;\n return (100 * upEma) / total;\n}\n\n/**\n * Relative Volatility Index — sub-pane oscillator bounded `[0, 100]`.\n * Like RSI but uses rolling stddev of the source instead of absolute\n * close changes for the magnitude, EMA-smoothed per TradingView's\n * `ta.rvi` reference. Composes `ta.ema` via two sub-slots\n * (`${slotId}/upEma`, `${slotId}/downEma`) — a fix to EMA's\n * recurrence flows in for free. NaN when either EMA arm is NaN or\n * when both arms are zero (zero-denominator).\n *\n * @formula sigma[t] = stddev(source[t − length + 1..= t]) ;\n * upRaw[t] = source[t] > source[t − 1] ? sigma[t] : 0 ;\n * downRaw[t] = source[t] < source[t − 1] ? sigma[t] : 0 ;\n * upEma = EMA(length)(upRaw) ;\n * downEma = EMA(length)(downRaw) ;\n * rvi[t] = 100 · upEma[t] / (upEma[t] + downEma[t])\n * @warmup 2 · length − 1\n * @since 0.2\n * @stable\n *\n * `opts.offset` is a presentation display shift carried to the plot\n * emission as `xShift` (`+n` right / future, `−n` left / past); the\n * series value is unshifted.\n *\n * @example\n * // import { ta } from \"@invinite-org/chartlang-core\";\n * // const r = ta.rvi(bar.close, 10);\n * // plot(r);\n */\nexport function rvi(\n slotId: string,\n source: ScalarOrSeries,\n length: number,\n opts?: RviOpts,\n): Series<number> {\n const ctx = getCtx();\n let slot = ctx.stream.taSlots.get(slotId) as RviSlot | undefined;\n if (slot === undefined) {\n slot = initSlot(length, ctx.stream.ohlcv.close.capacity);\n ctx.stream.taSlots.set(slotId, slot);\n }\n const src = readSourceValue(source);\n if (ctx.isTick) {\n const sigma = tickSigma(slot, src);\n const diff = src - slot.prevSrc;\n const { up, down } = classify(sigma, diff);\n // Still drive the sub-slot EMAs so their tick-mode head stays\n // consistent with the closed state on a subsequent close.\n const upSeries = ema(`${slotId}/upEma`, up, slot.length);\n const downSeries = ema(`${slotId}/downEma`, down, slot.length);\n // NaN source short-circuits to NaN output regardless of how the\n // EMA arms forward-fill internally — RVI is undefined when the\n // current sample isn't measurable.\n const value = Number.isFinite(src)\n ? rviValue(upSeries.current, downSeries.current)\n : Number.NaN;\n slot.outBuffer.replaceHead(value);\n } else {\n const sigma = appendToSigmaWindow(slot, src);\n const diff = src - slot.prevSrc;\n const { up, down } = classify(sigma, diff);\n const upSeries = ema(`${slotId}/upEma`, up, slot.length);\n const downSeries = ema(`${slotId}/downEma`, down, slot.length);\n const value = Number.isFinite(src)\n ? rviValue(upSeries.current, downSeries.current)\n : Number.NaN;\n slot.outBuffer.append(value);\n slot.prevSrc = src;\n }\n return viewForOffset(slot, opts?.offset ?? 0);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionVolumeProfile.js","sourceRoot":"","sources":["../../src/ta/sessionVolumeProfile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sessionVolumeProfile.js","sourceRoot":"","sources":["../../src/ta/sessionVolumeProfile.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// Ported from ../invinite/src/components/trading-chart/indicators/session-volume-profile.ts\n// @ 3234c8c0c3f9880d9d1e3a3ee63ebd55ddd535f4.\n// Translated, not transcribed — Series<T> shape, opts.offset, JSDoc.\n// See packages/runtime/src/ta/CLAUDE.md for the port convention.\n\nimport type {\n SessionVolumeProfileOpts,\n SessionVolumeProfileResult,\n} from \"@invinite-org/chartlang-core\";\n\nimport { pushDiagnostic } from \"../emit/index.js\";\nimport { ACTIVE_RUNTIME_CONTEXT, type RuntimeContext } from \"../runtimeContext.js\";\nimport { makeSeriesView, makeShiftedSeriesView } from \"../seriesView.js\";\nimport {\n type VolumeProfileBar,\n type VolumeProfileCore,\n commitVolumeProfileSnapshot,\n createVolumeProfileCore,\n emitVolumeProfileHistogram,\n resolveVolumeProfileSnapshot,\n volumeProfileConfigFromOpts,\n} from \"./lib/volume-profile/index.js\";\n\nconst DAY_MS = 86_400_000;\n\ntype SessionVolumeProfileSlot = VolumeProfileCore & {\n readonly result: SessionVolumeProfileResult;\n readonly shiftedResults: Map<number, SessionVolumeProfileResult>;\n};\n\ntype MutableSessionVolumeProfileSlot = Omit<SessionVolumeProfileSlot, \"result\"> & {\n result: SessionVolumeProfileResult;\n};\n\nfunction getCtx(): RuntimeContext {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) {\n throw new Error(\"ta.sessionVolumeProfile called outside an active script step\");\n }\n return ctx;\n}\n\nfunction initSlot(capacity: number): SessionVolumeProfileSlot {\n const core = createVolumeProfileCore(capacity);\n const slot: MutableSessionVolumeProfileSlot = {\n ...core,\n result: Object.freeze({\n get buckets() {\n return slot.buckets;\n },\n poc: makeSeriesView<number>(core.pocBuffer),\n valHigh: makeSeriesView<number>(core.valHighBuffer),\n valLow: makeSeriesView<number>(core.valLowBuffer),\n }),\n shiftedResults: new Map(),\n };\n return slot;\n}\n\nfunction resultForOffset(\n slot: SessionVolumeProfileSlot,\n offset: number,\n): SessionVolumeProfileResult {\n if (offset === 0) return slot.result;\n let cached = slot.shiftedResults.get(offset);\n if (cached === undefined) {\n cached = Object.freeze({\n get buckets() {\n return slot.buckets;\n },\n poc: makeShiftedSeriesView<number>(slot.pocBuffer, offset),\n valHigh: makeShiftedSeriesView<number>(slot.valHighBuffer, offset),\n valLow: makeShiftedSeriesView<number>(slot.valLowBuffer, offset),\n });\n slot.shiftedResults.set(offset, cached);\n }\n return cached;\n}\n\nfunction utcDayStart(time: number): number {\n return Math.floor(time / DAY_MS) * DAY_MS;\n}\n\nfunction parseSessionWindowMinutes(\n session: string,\n): { startMinutes: number; endMinutes: number } | null {\n const match = /^(\\d{1,2})(?::?(\\d{2}))?\\s*-\\s*(\\d{1,2})(?::?(\\d{2}))?$/.exec(session.trim());\n if (match === null) return null;\n const startHour = Number(match[1]);\n const startMinute = match[2] === undefined ? 0 : Number(match[2]);\n const endHour = Number(match[3]);\n const endMinute = match[4] === undefined ? 0 : Number(match[4]);\n if (startHour < 0 || startHour > 23 || startMinute < 0 || startMinute > 59) return null;\n if (endHour < 0 || endHour > 23 || endMinute < 0 || endMinute > 59) return null;\n return {\n startMinutes: startHour * 60 + startMinute,\n endMinutes: endHour * 60 + endMinute,\n };\n}\n\nfunction sessionBoundaryFromDescriptor(time: number, session: string): number | null {\n const parsed = parseSessionWindowMinutes(session);\n if (parsed === null) return null;\n const dayStart = utcDayStart(time);\n const boundary = dayStart + parsed.startMinutes * 60_000;\n return time >= boundary ? boundary : boundary - DAY_MS;\n}\n\nfunction diagnoseMissingSession(ctx: RuntimeContext, slotId: string): void {\n const key = `session-info-missing|${slotId}`;\n if (ctx.diagnosedRequestKeys.has(key)) return;\n ctx.diagnosedRequestKeys.add(key);\n pushDiagnostic(ctx.emissions, {\n kind: \"diagnostic\",\n severity: \"warning\",\n code: \"session-info-missing\",\n message:\n \"Adapter did not provide syminfo.session; ta.sessionVolumeProfile used UTC-day boundaries.\",\n slotId,\n bar: ctx.barIndex(),\n });\n}\n\nfunction resolveSessionStart(\n ctx: RuntimeContext,\n slotId: string,\n opts: SessionVolumeProfileOpts | undefined,\n): number {\n if (opts?.sessionStart !== undefined) return opts.sessionStart;\n const session = ctx.views.syminfo.session;\n if (!ctx.capabilities.symInfoFields.has(\"session\") || session === \"\") {\n diagnoseMissingSession(ctx, slotId);\n return utcDayStart(ctx.stream.bar.time);\n }\n const boundary = sessionBoundaryFromDescriptor(ctx.stream.bar.time, session);\n if (boundary === null) {\n diagnoseMissingSession(ctx, slotId);\n return utcDayStart(ctx.stream.bar.time);\n }\n return boundary;\n}\n\nfunction collectBars(ctx: RuntimeContext, sessionStart: number): ReadonlyArray<VolumeProfileBar> {\n const { ohlcv } = ctx.stream;\n const bars: VolumeProfileBar[] = [];\n for (let lookback = ohlcv.close.length - 1; lookback >= 0; lookback -= 1) {\n const time = ohlcv.time.at(lookback);\n if (time <= sessionStart) continue;\n bars.push({\n close: ohlcv.close.at(lookback),\n high: ohlcv.high.at(lookback),\n low: ohlcv.low.at(lookback),\n open: ohlcv.open.at(lookback),\n time,\n volume: ohlcv.volume.at(lookback),\n });\n }\n return bars;\n}\n\n/**\n * Session Volume Profile — bucketizes the current session's volume\n * by price, resetting when `bar.time` crosses the active session\n * boundary.\n *\n * @formula Port of invinite session-vp: find the current session\n * window, bucket volume by price, then derive POC / value-\n * area high / value-area low via the shared volume-profile\n * pipeline.\n * @anchors `syminfo.session` descriptor, or `opts.sessionStart`\n * override when provided.\n * @warmup NaN until a session window has positive volume; missing\n * `syminfo.session` falls back to UTC-day boundaries.\n * @since 0.5\n * @stable\n * @example\n * // import { plot, ta } from \"@invinite-org/chartlang-core\";\n * // const vp = ta.sessionVolumeProfile({ rowSize: 24 });\n * // plot(vp.poc, { style: { kind: \"horizontal-histogram\", buckets: vp.buckets } });\n */\nexport function sessionVolumeProfile(\n slotId: string,\n opts?: SessionVolumeProfileOpts,\n): SessionVolumeProfileResult {\n const ctx = getCtx();\n let slot = ctx.stream.taSlots.get(slotId) as SessionVolumeProfileSlot | undefined;\n if (slot === undefined) {\n slot = initSlot(ctx.stream.ohlcv.close.capacity);\n ctx.stream.taSlots.set(slotId, slot);\n }\n\n const sessionStart = resolveSessionStart(ctx, slotId, opts);\n const bars = ctx.stream.bar.time <= sessionStart ? [] : collectBars(ctx, sessionStart);\n const snapshot = resolveVolumeProfileSnapshot({\n bars,\n bucketColor: opts?.bucketColor,\n config: volumeProfileConfigFromOpts(opts ?? {}),\n });\n commitVolumeProfileSnapshot(slot, ctx.isTick, snapshot);\n emitVolumeProfileHistogram(\n ctx,\n slotId,\n \"Session Volume Profile\",\n snapshot.poc,\n snapshot.buckets,\n );\n return resultForOffset(slot, opts?.offset ?? 0);\n}\n"]}
|
package/dist/ta/sma.d.ts
CHANGED
|
@@ -5,8 +5,11 @@ import { type ScalarOrSeries } from "./lib/sourceValue.js";
|
|
|
5
5
|
* values. Warmup of `length − 1` bars returns `NaN`. Tick-mode replays
|
|
6
6
|
* the head as `(window_sum − window_head + tick_value) / length` so a
|
|
7
7
|
* partial-bar tick doesn't pollute the next close's running sum.
|
|
8
|
-
* `opts.offset`
|
|
9
|
-
* the
|
|
8
|
+
* `opts.offset` is a presentation display shift carried to the plot
|
|
9
|
+
* emission as `xShift` (`+n` renders the series `n` bars right / future,
|
|
10
|
+
* `−n` `n` bars left / past); it does NOT transform the value —
|
|
11
|
+
* `series.current` is unshifted, so alerts and `state.*` see the value
|
|
12
|
+
* computed at the current bar.
|
|
10
13
|
*
|
|
11
14
|
* @formula out[t] = (source[t] + source[t − 1] + … + source[t − length + 1]) / length
|
|
12
15
|
* @warmup length − 1
|
|
@@ -17,7 +20,7 @@ import { type ScalarOrSeries } from "./lib/sourceValue.js";
|
|
|
17
20
|
* // import { ta } from "@invinite-org/chartlang-runtime";
|
|
18
21
|
* // const s = ta.sma("slot", bar.close, 20);
|
|
19
22
|
* // const head = s.current; // NaN until bar length-1
|
|
20
|
-
* // const
|
|
23
|
+
* // const shifted = ta.sma("slot2", bar.close, 20, { offset: 5 }); // renders 5 bars right
|
|
21
24
|
*/
|
|
22
25
|
export declare function sma(slotId: string, source: ScalarOrSeries, length: number, opts?: SmaOpts): Series<number>;
|
|
23
26
|
//# sourceMappingURL=sma.d.ts.map
|
package/dist/ta/sma.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sma.d.ts","sourceRoot":"","sources":["../../src/ta/sma.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAKpE,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,sBAAsB,CAAC;AAqF5E
|
|
1
|
+
{"version":3,"file":"sma.d.ts","sourceRoot":"","sources":["../../src/ta/sma.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAKpE,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,sBAAsB,CAAC;AAqF5E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,GAAG,CACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,OAAO,GACf,MAAM,CAAC,MAAM,CAAC,CAchB"}
|
package/dist/ta/sma.js
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
// Ported from invinite/src/components/trading-chart/indicators/sma.ts
|
|
5
5
|
// plus lib/sma-of-float64.ts
|
|
6
6
|
// (commit d2d1043c1b039f66d2f3674526d303d31cf2f1e0, © Invinite).
|
|
7
|
-
// Re-licensed MIT for chartlang.
|
|
8
|
-
//
|
|
7
|
+
// Re-licensed MIT for chartlang. The math is the reference, the code
|
|
8
|
+
// style is not.
|
|
9
9
|
// Structural choices (callsite-id slot, Series<T> proxy, replaceHead
|
|
10
10
|
// mode) follow chartlang's primitive shape — NOT invinite's
|
|
11
11
|
// IndicatorPlugin shape.
|
|
@@ -79,8 +79,11 @@ function closeValue(slot, src) {
|
|
|
79
79
|
* values. Warmup of `length − 1` bars returns `NaN`. Tick-mode replays
|
|
80
80
|
* the head as `(window_sum − window_head + tick_value) / length` so a
|
|
81
81
|
* partial-bar tick doesn't pollute the next close's running sum.
|
|
82
|
-
* `opts.offset`
|
|
83
|
-
* the
|
|
82
|
+
* `opts.offset` is a presentation display shift carried to the plot
|
|
83
|
+
* emission as `xShift` (`+n` renders the series `n` bars right / future,
|
|
84
|
+
* `−n` `n` bars left / past); it does NOT transform the value —
|
|
85
|
+
* `series.current` is unshifted, so alerts and `state.*` see the value
|
|
86
|
+
* computed at the current bar.
|
|
84
87
|
*
|
|
85
88
|
* @formula out[t] = (source[t] + source[t − 1] + … + source[t − length + 1]) / length
|
|
86
89
|
* @warmup length − 1
|
|
@@ -91,7 +94,7 @@ function closeValue(slot, src) {
|
|
|
91
94
|
* // import { ta } from "@invinite-org/chartlang-runtime";
|
|
92
95
|
* // const s = ta.sma("slot", bar.close, 20);
|
|
93
96
|
* // const head = s.current; // NaN until bar length-1
|
|
94
|
-
* // const
|
|
97
|
+
* // const shifted = ta.sma("slot2", bar.close, 20, { offset: 5 }); // renders 5 bars right
|
|
95
98
|
*/
|
|
96
99
|
export function sma(slotId, source, length, opts) {
|
|
97
100
|
const ctx = getCtx();
|
package/dist/ta/sma.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sma.js","sourceRoot":"","sources":["../../src/ta/sma.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,+BAA+B;AAC/B,mEAAmE;AACnE,
|
|
1
|
+
{"version":3,"file":"sma.js","sourceRoot":"","sources":["../../src/ta/sma.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n//\n// Ported from invinite/src/components/trading-chart/indicators/sma.ts\n// plus lib/sma-of-float64.ts\n// (commit d2d1043c1b039f66d2f3674526d303d31cf2f1e0, © Invinite).\n// Re-licensed MIT for chartlang. The math is the reference, the code\n// style is not.\n// Structural choices (callsite-id slot, Series<T> proxy, replaceHead\n// mode) follow chartlang's primitive shape — NOT invinite's\n// IndicatorPlugin shape.\n\nimport type { Series, SmaOpts } from \"@invinite-org/chartlang-core\";\n\nimport { Float64RingBuffer } from \"../ringBuffer.js\";\nimport { ACTIVE_RUNTIME_CONTEXT, type RuntimeContext } from \"../runtimeContext.js\";\nimport { makeSeriesView, makeShiftedSeriesView } from \"../seriesView.js\";\nimport { type ScalarOrSeries, readSourceValue } from \"./lib/sourceValue.js\";\n\ntype SmaSlot = {\n readonly kind: \"ta.sma\";\n readonly outBuffer: Float64RingBuffer;\n readonly series: Series<number>;\n readonly length: number;\n /**\n * Window of the **closed** source values across the last `length` bars.\n * Holds bars `[t-length+1 .. t]` for the latest closed bar t. Ticks\n * compute a hypothetical \"head replaced\" mean from `windowSum -\n * window.at(0) + tickValue`; closes pop the oldest and push the new.\n */\n readonly window: Float64RingBuffer;\n sum: number;\n /**\n * Lazy cache of offset-shifted Series views keyed by `opts.offset`.\n * `offset === 0` callers bypass this map and return `series`\n * directly — identity-preserving. Populated on first call per\n * non-zero offset; identity is stable per offset thereafter.\n */\n readonly shiftedViews: Map<number, Series<number>>;\n};\n\nfunction getCtx(): RuntimeContext {\n const ctx = ACTIVE_RUNTIME_CONTEXT.current;\n if (ctx === null) {\n throw new Error(\"ta.sma called outside an active script step\");\n }\n return ctx;\n}\n\nfunction initSlot(length: number, capacity: number): SmaSlot {\n const outBuffer = new Float64RingBuffer(capacity);\n return {\n kind: \"ta.sma\",\n outBuffer,\n series: makeSeriesView<number>(outBuffer),\n length,\n window: new Float64RingBuffer(length),\n sum: 0,\n shiftedViews: new Map(),\n };\n}\n\nfunction viewForOffset(slot: SmaSlot, offset: number): Series<number> {\n if (offset === 0) return slot.series;\n let view = slot.shiftedViews.get(offset);\n if (view === undefined) {\n view = makeShiftedSeriesView<number>(slot.outBuffer, offset);\n slot.shiftedViews.set(offset, view);\n }\n return view;\n}\n\nfunction tickValue(slot: SmaSlot, src: number): number {\n // `window` currently holds the close-side values `[t-length+1 .. t]` for\n // the most-recent closed bar. The tick replaces bar `t`'s value with\n // `src`, so the hypothetical mean is `(sum - window.at(0)) + src`.\n if (!Number.isFinite(src)) return Number.NaN;\n if (slot.window.length < slot.length) return Number.NaN;\n const oldestInHead = slot.window.at(0);\n return (slot.sum - oldestInHead + src) / slot.length;\n}\n\nfunction closeValue(slot: SmaSlot, src: number): number {\n if (!Number.isFinite(src)) {\n // Skip the window update; emit the prior closed mean (or NaN when\n // unwarmed). The window's contents are unchanged so future closes\n // continue against the last valid set.\n if (slot.window.length < slot.length) return Number.NaN;\n return slot.sum / slot.length;\n }\n if (slot.window.length < slot.length) {\n slot.window.append(src);\n slot.sum += src;\n if (slot.window.length < slot.length) return Number.NaN;\n return slot.sum / slot.length;\n }\n const outgoing = slot.window.at(slot.length - 1);\n slot.window.append(src);\n slot.sum = slot.sum + src - outgoing;\n return slot.sum / slot.length;\n}\n\n/**\n * Simple moving average — rolling mean of the last `length` source\n * values. Warmup of `length − 1` bars returns `NaN`. Tick-mode replays\n * the head as `(window_sum − window_head + tick_value) / length` so a\n * partial-bar tick doesn't pollute the next close's running sum.\n * `opts.offset` is a presentation display shift carried to the plot\n * emission as `xShift` (`+n` renders the series `n` bars right / future,\n * `−n` `n` bars left / past); it does NOT transform the value —\n * `series.current` is unshifted, so alerts and `state.*` see the value\n * computed at the current bar.\n *\n * @formula out[t] = (source[t] + source[t − 1] + … + source[t − length + 1]) / length\n * @warmup length − 1\n * @since 0.1\n * @stable\n *\n * @example\n * // import { ta } from \"@invinite-org/chartlang-runtime\";\n * // const s = ta.sma(\"slot\", bar.close, 20);\n * // const head = s.current; // NaN until bar length-1\n * // const shifted = ta.sma(\"slot2\", bar.close, 20, { offset: 5 }); // renders 5 bars right\n */\nexport function sma(\n slotId: string,\n source: ScalarOrSeries,\n length: number,\n opts?: SmaOpts,\n): Series<number> {\n const ctx = getCtx();\n let slot = ctx.stream.taSlots.get(slotId) as SmaSlot | undefined;\n if (slot === undefined) {\n slot = initSlot(length, ctx.stream.ohlcv.close.capacity);\n ctx.stream.taSlots.set(slotId, slot);\n }\n const src = readSourceValue(source);\n if (ctx.isTick) {\n slot.outBuffer.replaceHead(tickValue(slot, src));\n } else {\n slot.outBuffer.append(closeValue(slot, src));\n }\n return viewForOffset(slot, opts?.offset ?? 0);\n}\n"]}
|
package/dist/ta/smi.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
//
|
|
4
4
|
// Ported from invinite/src/components/trading-chart/indicators/smi.ts
|
|
5
5
|
// (commit 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite).
|
|
6
|
-
// Re-licensed MIT for chartlang.
|
|
7
|
-
//
|
|
6
|
+
// Re-licensed MIT for chartlang. The math is the reference, the code
|
|
7
|
+
// style is not.
|
|
8
8
|
import { Float64RingBuffer } from "../ringBuffer.js";
|
|
9
9
|
import { ACTIVE_RUNTIME_CONTEXT } from "../runtimeContext.js";
|
|
10
10
|
import { makeSeriesView, makeShiftedSeriesView } from "../seriesView.js";
|