@invinite-org/chartlang-runtime 1.0.2
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 +2690 -0
- package/LICENSE +21 -0
- package/README.md +57 -0
- package/dist/buildComputeContext.d.ts +21 -0
- package/dist/buildComputeContext.d.ts.map +1 -0
- package/dist/buildComputeContext.js +48 -0
- package/dist/buildComputeContext.js.map +1 -0
- package/dist/createScriptRunner.d.ts +111 -0
- package/dist/createScriptRunner.d.ts.map +1 -0
- package/dist/createScriptRunner.js +234 -0
- package/dist/createScriptRunner.js.map +1 -0
- package/dist/emit/alert.d.ts +46 -0
- package/dist/emit/alert.d.ts.map +1 -0
- package/dist/emit/alert.js +71 -0
- package/dist/emit/alert.js.map +1 -0
- package/dist/emit/alertConditionEmission.d.ts +15 -0
- package/dist/emit/alertConditionEmission.d.ts.map +1 -0
- package/dist/emit/alertConditionEmission.js +53 -0
- package/dist/emit/alertConditionEmission.js.map +1 -0
- package/dist/emit/draw/annotations/arrow.d.ts +42 -0
- package/dist/emit/draw/annotations/arrow.d.ts.map +1 -0
- package/dist/emit/draw/annotations/arrow.js +40 -0
- package/dist/emit/draw/annotations/arrow.js.map +1 -0
- package/dist/emit/draw/annotations/arrowMarkDown.d.ts +36 -0
- package/dist/emit/draw/annotations/arrowMarkDown.d.ts.map +1 -0
- package/dist/emit/draw/annotations/arrowMarkDown.js +40 -0
- package/dist/emit/draw/annotations/arrowMarkDown.js.map +1 -0
- package/dist/emit/draw/annotations/arrowMarkUp.d.ts +36 -0
- package/dist/emit/draw/annotations/arrowMarkUp.d.ts.map +1 -0
- package/dist/emit/draw/annotations/arrowMarkUp.js +40 -0
- package/dist/emit/draw/annotations/arrowMarkUp.js.map +1 -0
- package/dist/emit/draw/annotations/arrowMarker.d.ts +40 -0
- package/dist/emit/draw/annotations/arrowMarker.d.ts.map +1 -0
- package/dist/emit/draw/annotations/arrowMarker.js +40 -0
- package/dist/emit/draw/annotations/arrowMarker.js.map +1 -0
- package/dist/emit/draw/annotations/text.d.ts +41 -0
- package/dist/emit/draw/annotations/text.d.ts.map +1 -0
- package/dist/emit/draw/annotations/text.js +44 -0
- package/dist/emit/draw/annotations/text.js.map +1 -0
- package/dist/emit/draw/boxes/circle.d.ts +42 -0
- package/dist/emit/draw/boxes/circle.d.ts.map +1 -0
- package/dist/emit/draw/boxes/circle.js +44 -0
- package/dist/emit/draw/boxes/circle.js.map +1 -0
- package/dist/emit/draw/boxes/ellipse.d.ts +42 -0
- package/dist/emit/draw/boxes/ellipse.d.ts.map +1 -0
- package/dist/emit/draw/boxes/ellipse.js +40 -0
- package/dist/emit/draw/boxes/ellipse.js.map +1 -0
- package/dist/emit/draw/boxes/marker.d.ts +43 -0
- package/dist/emit/draw/boxes/marker.d.ts.map +1 -0
- package/dist/emit/draw/boxes/marker.js +49 -0
- package/dist/emit/draw/boxes/marker.js.map +1 -0
- package/dist/emit/draw/boxes/path.d.ts +43 -0
- package/dist/emit/draw/boxes/path.d.ts.map +1 -0
- package/dist/emit/draw/boxes/path.js +40 -0
- package/dist/emit/draw/boxes/path.js.map +1 -0
- package/dist/emit/draw/boxes/polyline.d.ts +43 -0
- package/dist/emit/draw/boxes/polyline.d.ts.map +1 -0
- package/dist/emit/draw/boxes/polyline.js +40 -0
- package/dist/emit/draw/boxes/polyline.js.map +1 -0
- package/dist/emit/draw/boxes/rectangle.d.ts +40 -0
- package/dist/emit/draw/boxes/rectangle.d.ts.map +1 -0
- package/dist/emit/draw/boxes/rectangle.js +40 -0
- package/dist/emit/draw/boxes/rectangle.js.map +1 -0
- package/dist/emit/draw/boxes/rotatedRectangle.d.ts +45 -0
- package/dist/emit/draw/boxes/rotatedRectangle.d.ts.map +1 -0
- package/dist/emit/draw/boxes/rotatedRectangle.js +40 -0
- package/dist/emit/draw/boxes/rotatedRectangle.js.map +1 -0
- package/dist/emit/draw/boxes/triangle.d.ts +42 -0
- package/dist/emit/draw/boxes/triangle.d.ts.map +1 -0
- package/dist/emit/draw/boxes/triangle.js +40 -0
- package/dist/emit/draw/boxes/triangle.js.map +1 -0
- package/dist/emit/draw/channels/disjointChannel.d.ts +43 -0
- package/dist/emit/draw/channels/disjointChannel.d.ts.map +1 -0
- package/dist/emit/draw/channels/disjointChannel.js +40 -0
- package/dist/emit/draw/channels/disjointChannel.js.map +1 -0
- package/dist/emit/draw/channels/flatTopBottom.d.ts +44 -0
- package/dist/emit/draw/channels/flatTopBottom.d.ts.map +1 -0
- package/dist/emit/draw/channels/flatTopBottom.js +40 -0
- package/dist/emit/draw/channels/flatTopBottom.js.map +1 -0
- package/dist/emit/draw/channels/regressionTrend.d.ts +49 -0
- package/dist/emit/draw/channels/regressionTrend.d.ts.map +1 -0
- package/dist/emit/draw/channels/regressionTrend.js +44 -0
- package/dist/emit/draw/channels/regressionTrend.js.map +1 -0
- package/dist/emit/draw/channels/trendChannel.d.ts +43 -0
- package/dist/emit/draw/channels/trendChannel.d.ts.map +1 -0
- package/dist/emit/draw/channels/trendChannel.js +40 -0
- package/dist/emit/draw/channels/trendChannel.js.map +1 -0
- package/dist/emit/draw/containers/frame.d.ts +42 -0
- package/dist/emit/draw/containers/frame.d.ts.map +1 -0
- package/dist/emit/draw/containers/frame.js +47 -0
- package/dist/emit/draw/containers/frame.js.map +1 -0
- package/dist/emit/draw/containers/group.d.ts +47 -0
- package/dist/emit/draw/containers/group.d.ts.map +1 -0
- package/dist/emit/draw/containers/group.js +44 -0
- package/dist/emit/draw/containers/group.js.map +1 -0
- package/dist/emit/draw/curves/arc.d.ts +44 -0
- package/dist/emit/draw/curves/arc.d.ts.map +1 -0
- package/dist/emit/draw/curves/arc.js +40 -0
- package/dist/emit/draw/curves/arc.js.map +1 -0
- package/dist/emit/draw/curves/brush.d.ts +44 -0
- package/dist/emit/draw/curves/brush.d.ts.map +1 -0
- package/dist/emit/draw/curves/brush.js +43 -0
- package/dist/emit/draw/curves/brush.js.map +1 -0
- package/dist/emit/draw/curves/curve.d.ts +43 -0
- package/dist/emit/draw/curves/curve.d.ts.map +1 -0
- package/dist/emit/draw/curves/curve.js +40 -0
- package/dist/emit/draw/curves/curve.js.map +1 -0
- package/dist/emit/draw/curves/doubleCurve.d.ts +46 -0
- package/dist/emit/draw/curves/doubleCurve.d.ts.map +1 -0
- package/dist/emit/draw/curves/doubleCurve.js +40 -0
- package/dist/emit/draw/curves/doubleCurve.js.map +1 -0
- package/dist/emit/draw/curves/highlighter.d.ts +43 -0
- package/dist/emit/draw/curves/highlighter.d.ts.map +1 -0
- package/dist/emit/draw/curves/highlighter.js +43 -0
- package/dist/emit/draw/curves/highlighter.js.map +1 -0
- package/dist/emit/draw/curves/pen.d.ts +41 -0
- package/dist/emit/draw/curves/pen.d.ts.map +1 -0
- package/dist/emit/draw/curves/pen.js +40 -0
- package/dist/emit/draw/curves/pen.js.map +1 -0
- package/dist/emit/draw/cycles/cyclicLines.d.ts +41 -0
- package/dist/emit/draw/cycles/cyclicLines.d.ts.map +1 -0
- package/dist/emit/draw/cycles/cyclicLines.js +44 -0
- package/dist/emit/draw/cycles/cyclicLines.js.map +1 -0
- package/dist/emit/draw/cycles/sineLine.d.ts +40 -0
- package/dist/emit/draw/cycles/sineLine.d.ts.map +1 -0
- package/dist/emit/draw/cycles/sineLine.js +44 -0
- package/dist/emit/draw/cycles/sineLine.js.map +1 -0
- package/dist/emit/draw/cycles/timeCycles.d.ts +40 -0
- package/dist/emit/draw/cycles/timeCycles.d.ts.map +1 -0
- package/dist/emit/draw/cycles/timeCycles.js +44 -0
- package/dist/emit/draw/cycles/timeCycles.js.map +1 -0
- package/dist/emit/draw/elliott/elliottCorrectionWave.d.ts +39 -0
- package/dist/emit/draw/elliott/elliottCorrectionWave.d.ts.map +1 -0
- package/dist/emit/draw/elliott/elliottCorrectionWave.js +43 -0
- package/dist/emit/draw/elliott/elliottCorrectionWave.js.map +1 -0
- package/dist/emit/draw/elliott/elliottDoubleCombo.d.ts +44 -0
- package/dist/emit/draw/elliott/elliottDoubleCombo.d.ts.map +1 -0
- package/dist/emit/draw/elliott/elliottDoubleCombo.js +43 -0
- package/dist/emit/draw/elliott/elliottDoubleCombo.js.map +1 -0
- package/dist/emit/draw/elliott/elliottImpulseWave.d.ts +42 -0
- package/dist/emit/draw/elliott/elliottImpulseWave.d.ts.map +1 -0
- package/dist/emit/draw/elliott/elliottImpulseWave.js +43 -0
- package/dist/emit/draw/elliott/elliottImpulseWave.js.map +1 -0
- package/dist/emit/draw/elliott/elliottTriangleWave.d.ts +41 -0
- package/dist/emit/draw/elliott/elliottTriangleWave.d.ts.map +1 -0
- package/dist/emit/draw/elliott/elliottTriangleWave.js +43 -0
- package/dist/emit/draw/elliott/elliottTriangleWave.js.map +1 -0
- package/dist/emit/draw/elliott/elliottTripleCombo.d.ts +44 -0
- package/dist/emit/draw/elliott/elliottTripleCombo.d.ts.map +1 -0
- package/dist/emit/draw/elliott/elliottTripleCombo.js +47 -0
- package/dist/emit/draw/elliott/elliottTripleCombo.js.map +1 -0
- package/dist/emit/draw/fibA/fibChannel.d.ts +41 -0
- package/dist/emit/draw/fibA/fibChannel.d.ts.map +1 -0
- package/dist/emit/draw/fibA/fibChannel.js +40 -0
- package/dist/emit/draw/fibA/fibChannel.js.map +1 -0
- package/dist/emit/draw/fibA/fibRetracement.d.ts +40 -0
- package/dist/emit/draw/fibA/fibRetracement.d.ts.map +1 -0
- package/dist/emit/draw/fibA/fibRetracement.js +44 -0
- package/dist/emit/draw/fibA/fibRetracement.js.map +1 -0
- package/dist/emit/draw/fibA/fibTimeZone.d.ts +41 -0
- package/dist/emit/draw/fibA/fibTimeZone.d.ts.map +1 -0
- package/dist/emit/draw/fibA/fibTimeZone.js +44 -0
- package/dist/emit/draw/fibA/fibTimeZone.js.map +1 -0
- package/dist/emit/draw/fibA/fibTrendExtension.d.ts +42 -0
- package/dist/emit/draw/fibA/fibTrendExtension.d.ts.map +1 -0
- package/dist/emit/draw/fibA/fibTrendExtension.js +44 -0
- package/dist/emit/draw/fibA/fibTrendExtension.js.map +1 -0
- package/dist/emit/draw/fibA/fibWedge.d.ts +42 -0
- package/dist/emit/draw/fibA/fibWedge.d.ts.map +1 -0
- package/dist/emit/draw/fibA/fibWedge.js +40 -0
- package/dist/emit/draw/fibA/fibWedge.js.map +1 -0
- package/dist/emit/draw/fibB/fibCircles.d.ts +41 -0
- package/dist/emit/draw/fibB/fibCircles.d.ts.map +1 -0
- package/dist/emit/draw/fibB/fibCircles.js +44 -0
- package/dist/emit/draw/fibB/fibCircles.js.map +1 -0
- package/dist/emit/draw/fibB/fibSpeedArcs.d.ts +39 -0
- package/dist/emit/draw/fibB/fibSpeedArcs.d.ts.map +1 -0
- package/dist/emit/draw/fibB/fibSpeedArcs.js +44 -0
- package/dist/emit/draw/fibB/fibSpeedArcs.js.map +1 -0
- package/dist/emit/draw/fibB/fibSpeedFan.d.ts +39 -0
- package/dist/emit/draw/fibB/fibSpeedFan.d.ts.map +1 -0
- package/dist/emit/draw/fibB/fibSpeedFan.js +44 -0
- package/dist/emit/draw/fibB/fibSpeedFan.js.map +1 -0
- package/dist/emit/draw/fibB/fibSpiral.d.ts +41 -0
- package/dist/emit/draw/fibB/fibSpiral.d.ts.map +1 -0
- package/dist/emit/draw/fibB/fibSpiral.js +44 -0
- package/dist/emit/draw/fibB/fibSpiral.js.map +1 -0
- package/dist/emit/draw/fibB/fibTrendTime.d.ts +45 -0
- package/dist/emit/draw/fibB/fibTrendTime.d.ts.map +1 -0
- package/dist/emit/draw/fibB/fibTrendTime.js +44 -0
- package/dist/emit/draw/fibB/fibTrendTime.js.map +1 -0
- package/dist/emit/draw/gann/gannBox.d.ts +39 -0
- package/dist/emit/draw/gann/gannBox.d.ts.map +1 -0
- package/dist/emit/draw/gann/gannBox.js +44 -0
- package/dist/emit/draw/gann/gannBox.js.map +1 -0
- package/dist/emit/draw/gann/gannFan.d.ts +39 -0
- package/dist/emit/draw/gann/gannFan.d.ts.map +1 -0
- package/dist/emit/draw/gann/gannFan.js +44 -0
- package/dist/emit/draw/gann/gannFan.js.map +1 -0
- package/dist/emit/draw/gann/gannSquare.d.ts +38 -0
- package/dist/emit/draw/gann/gannSquare.d.ts.map +1 -0
- package/dist/emit/draw/gann/gannSquare.js +44 -0
- package/dist/emit/draw/gann/gannSquare.js.map +1 -0
- package/dist/emit/draw/gann/gannSquareFixed.d.ts +35 -0
- package/dist/emit/draw/gann/gannSquareFixed.d.ts.map +1 -0
- package/dist/emit/draw/gann/gannSquareFixed.js +44 -0
- package/dist/emit/draw/gann/gannSquareFixed.js.map +1 -0
- package/dist/emit/draw/handle.d.ts +37 -0
- package/dist/emit/draw/handle.d.ts.map +1 -0
- package/dist/emit/draw/handle.js +118 -0
- package/dist/emit/draw/handle.js.map +1 -0
- package/dist/emit/draw/index.d.ts +5 -0
- package/dist/emit/draw/index.d.ts.map +1 -0
- package/dist/emit/draw/index.js +13 -0
- package/dist/emit/draw/index.js.map +1 -0
- package/dist/emit/draw/lines/crossLine.d.ts +37 -0
- package/dist/emit/draw/lines/crossLine.d.ts.map +1 -0
- package/dist/emit/draw/lines/crossLine.js +40 -0
- package/dist/emit/draw/lines/crossLine.js.map +1 -0
- package/dist/emit/draw/lines/horizontalLine.d.ts +33 -0
- package/dist/emit/draw/lines/horizontalLine.d.ts.map +1 -0
- package/dist/emit/draw/lines/horizontalLine.js +40 -0
- package/dist/emit/draw/lines/horizontalLine.js.map +1 -0
- package/dist/emit/draw/lines/horizontalRay.d.ts +36 -0
- package/dist/emit/draw/lines/horizontalRay.d.ts.map +1 -0
- package/dist/emit/draw/lines/horizontalRay.js +40 -0
- package/dist/emit/draw/lines/horizontalRay.js.map +1 -0
- package/dist/emit/draw/lines/line.d.ts +43 -0
- package/dist/emit/draw/lines/line.d.ts.map +1 -0
- package/dist/emit/draw/lines/line.js +43 -0
- package/dist/emit/draw/lines/line.js.map +1 -0
- package/dist/emit/draw/lines/trendAngle.d.ts +38 -0
- package/dist/emit/draw/lines/trendAngle.d.ts.map +1 -0
- package/dist/emit/draw/lines/trendAngle.js +40 -0
- package/dist/emit/draw/lines/trendAngle.js.map +1 -0
- package/dist/emit/draw/lines/verticalLine.d.ts +33 -0
- package/dist/emit/draw/lines/verticalLine.d.ts.map +1 -0
- package/dist/emit/draw/lines/verticalLine.js +40 -0
- package/dist/emit/draw/lines/verticalLine.js.map +1 -0
- package/dist/emit/draw/namespace.d.ts +26 -0
- package/dist/emit/draw/namespace.d.ts.map +1 -0
- package/dist/emit/draw/namespace.js +186 -0
- package/dist/emit/draw/namespace.js.map +1 -0
- package/dist/emit/draw/patterns/abcdPattern.d.ts +40 -0
- package/dist/emit/draw/patterns/abcdPattern.d.ts.map +1 -0
- package/dist/emit/draw/patterns/abcdPattern.js +40 -0
- package/dist/emit/draw/patterns/abcdPattern.js.map +1 -0
- package/dist/emit/draw/patterns/cypherPattern.d.ts +43 -0
- package/dist/emit/draw/patterns/cypherPattern.d.ts.map +1 -0
- package/dist/emit/draw/patterns/cypherPattern.js +41 -0
- package/dist/emit/draw/patterns/cypherPattern.js.map +1 -0
- package/dist/emit/draw/patterns/headAndShoulders.d.ts +42 -0
- package/dist/emit/draw/patterns/headAndShoulders.d.ts.map +1 -0
- package/dist/emit/draw/patterns/headAndShoulders.js +49 -0
- package/dist/emit/draw/patterns/headAndShoulders.js.map +1 -0
- package/dist/emit/draw/patterns/threeDrivesPattern.d.ts +43 -0
- package/dist/emit/draw/patterns/threeDrivesPattern.d.ts.map +1 -0
- package/dist/emit/draw/patterns/threeDrivesPattern.js +44 -0
- package/dist/emit/draw/patterns/threeDrivesPattern.js.map +1 -0
- package/dist/emit/draw/patterns/trianglePattern.d.ts +41 -0
- package/dist/emit/draw/patterns/trianglePattern.d.ts.map +1 -0
- package/dist/emit/draw/patterns/trianglePattern.js +50 -0
- package/dist/emit/draw/patterns/trianglePattern.js.map +1 -0
- package/dist/emit/draw/patterns/xabcdPattern.d.ts +41 -0
- package/dist/emit/draw/patterns/xabcdPattern.d.ts.map +1 -0
- package/dist/emit/draw/patterns/xabcdPattern.js +40 -0
- package/dist/emit/draw/patterns/xabcdPattern.js.map +1 -0
- package/dist/emit/draw/pitchforks/pitchfan.d.ts +39 -0
- package/dist/emit/draw/pitchforks/pitchfan.d.ts.map +1 -0
- package/dist/emit/draw/pitchforks/pitchfan.js +40 -0
- package/dist/emit/draw/pitchforks/pitchfan.js.map +1 -0
- package/dist/emit/draw/pitchforks/pitchfork.d.ts +51 -0
- package/dist/emit/draw/pitchforks/pitchfork.d.ts.map +1 -0
- package/dist/emit/draw/pitchforks/pitchfork.js +50 -0
- package/dist/emit/draw/pitchforks/pitchfork.js.map +1 -0
- package/dist/emit/draw/pushDrawing.d.ts +45 -0
- package/dist/emit/draw/pushDrawing.d.ts.map +1 -0
- package/dist/emit/draw/pushDrawing.js +107 -0
- package/dist/emit/draw/pushDrawing.js.map +1 -0
- package/dist/emit/draw/subIdAllocator.d.ts +34 -0
- package/dist/emit/draw/subIdAllocator.d.ts.map +1 -0
- package/dist/emit/draw/subIdAllocator.js +42 -0
- package/dist/emit/draw/subIdAllocator.js.map +1 -0
- package/dist/emit/draw/table/table.d.ts +39 -0
- package/dist/emit/draw/table/table.d.ts.map +1 -0
- package/dist/emit/draw/table/table.js +39 -0
- package/dist/emit/draw/table/table.js.map +1 -0
- package/dist/emit/emissionsQueue.d.ts +65 -0
- package/dist/emit/emissionsQueue.d.ts.map +1 -0
- package/dist/emit/emissionsQueue.js +140 -0
- package/dist/emit/emissionsQueue.js.map +1 -0
- package/dist/emit/hash.d.ts +13 -0
- package/dist/emit/hash.d.ts.map +1 -0
- package/dist/emit/hash.js +24 -0
- package/dist/emit/hash.js.map +1 -0
- package/dist/emit/hline.d.ts +42 -0
- package/dist/emit/hline.d.ts.map +1 -0
- package/dist/emit/hline.js +59 -0
- package/dist/emit/hline.js.map +1 -0
- package/dist/emit/index.d.ts +11 -0
- package/dist/emit/index.d.ts.map +1 -0
- package/dist/emit/index.js +13 -0
- package/dist/emit/index.js.map +1 -0
- package/dist/emit/logEmission.d.ts +25 -0
- package/dist/emit/logEmission.d.ts.map +1 -0
- package/dist/emit/logEmission.js +127 -0
- package/dist/emit/logEmission.js.map +1 -0
- package/dist/emit/paneResolver.d.ts +19 -0
- package/dist/emit/paneResolver.d.ts.map +1 -0
- package/dist/emit/paneResolver.js +45 -0
- package/dist/emit/paneResolver.js.map +1 -0
- package/dist/emit/plot.d.ts +45 -0
- package/dist/emit/plot.d.ts.map +1 -0
- package/dist/emit/plot.js +126 -0
- package/dist/emit/plot.js.map +1 -0
- package/dist/emit/runtimeError.d.ts +27 -0
- package/dist/emit/runtimeError.d.ts.map +1 -0
- package/dist/emit/runtimeError.js +33 -0
- package/dist/emit/runtimeError.js.map +1 -0
- package/dist/execution/dispose.d.ts +23 -0
- package/dist/execution/dispose.d.ts.map +1 -0
- package/dist/execution/dispose.js +57 -0
- package/dist/execution/dispose.js.map +1 -0
- package/dist/execution/drain.d.ts +22 -0
- package/dist/execution/drain.d.ts.map +1 -0
- package/dist/execution/drain.js +40 -0
- package/dist/execution/drain.js.map +1 -0
- package/dist/execution/index.d.ts +6 -0
- package/dist/execution/index.d.ts.map +1 -0
- package/dist/execution/index.js +8 -0
- package/dist/execution/index.js.map +1 -0
- package/dist/execution/onBarClose.d.ts +25 -0
- package/dist/execution/onBarClose.d.ts.map +1 -0
- package/dist/execution/onBarClose.js +78 -0
- package/dist/execution/onBarClose.js.map +1 -0
- package/dist/execution/onBarTick.d.ts +24 -0
- package/dist/execution/onBarTick.d.ts.map +1 -0
- package/dist/execution/onBarTick.js +77 -0
- package/dist/execution/onBarTick.js.map +1 -0
- package/dist/execution/onHistory.d.ts +31 -0
- package/dist/execution/onHistory.d.ts.map +1 -0
- package/dist/execution/onHistory.js +59 -0
- package/dist/execution/onHistory.js.map +1 -0
- package/dist/execution/secondaryStream.d.ts +36 -0
- package/dist/execution/secondaryStream.d.ts.map +1 -0
- package/dist/execution/secondaryStream.js +45 -0
- package/dist/execution/secondaryStream.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/inputs/index.d.ts +2 -0
- package/dist/inputs/index.d.ts.map +1 -0
- package/dist/inputs/index.js +4 -0
- package/dist/inputs/index.js.map +1 -0
- package/dist/inputs/resolveInputs.d.ts +18 -0
- package/dist/inputs/resolveInputs.d.ts.map +1 -0
- package/dist/inputs/resolveInputs.js +93 -0
- package/dist/inputs/resolveInputs.js.map +1 -0
- package/dist/persistentStateStore.d.ts +40 -0
- package/dist/persistentStateStore.d.ts.map +1 -0
- package/dist/persistentStateStore.js +30 -0
- package/dist/persistentStateStore.js.map +1 -0
- package/dist/persistentStateStore.runtime.d.ts +57 -0
- package/dist/persistentStateStore.runtime.d.ts.map +1 -0
- package/dist/persistentStateStore.runtime.js +163 -0
- package/dist/persistentStateStore.runtime.js.map +1 -0
- package/dist/persistentStateStore.validate.d.ts +14 -0
- package/dist/persistentStateStore.validate.d.ts.map +1 -0
- package/dist/persistentStateStore.validate.js +63 -0
- package/dist/persistentStateStore.validate.js.map +1 -0
- package/dist/primitives.d.ts +23 -0
- package/dist/primitives.d.ts.map +1 -0
- package/dist/primitives.js +25 -0
- package/dist/primitives.js.map +1 -0
- package/dist/request/alignHtfSeriesCache.d.ts +20 -0
- package/dist/request/alignHtfSeriesCache.d.ts.map +1 -0
- package/dist/request/alignHtfSeriesCache.js +50 -0
- package/dist/request/alignHtfSeriesCache.js.map +1 -0
- package/dist/request/alignHtfSeriesToLtf.d.ts +26 -0
- package/dist/request/alignHtfSeriesToLtf.d.ts.map +1 -0
- package/dist/request/alignHtfSeriesToLtf.js +47 -0
- package/dist/request/alignHtfSeriesToLtf.js.map +1 -0
- package/dist/request/bucketLtfBarsByMainContainment.d.ts +22 -0
- package/dist/request/bucketLtfBarsByMainContainment.d.ts.map +1 -0
- package/dist/request/bucketLtfBarsByMainContainment.js +41 -0
- package/dist/request/bucketLtfBarsByMainContainment.js.map +1 -0
- package/dist/request/bucketLtfBarsCache.d.ts +14 -0
- package/dist/request/bucketLtfBarsCache.d.ts.map +1 -0
- package/dist/request/bucketLtfBarsCache.js +30 -0
- package/dist/request/bucketLtfBarsCache.js.map +1 -0
- package/dist/request/index.d.ts +4 -0
- package/dist/request/index.d.ts.map +1 -0
- package/dist/request/index.js +6 -0
- package/dist/request/index.js.map +1 -0
- package/dist/request/lowerTf.d.ts +14 -0
- package/dist/request/lowerTf.d.ts.map +1 -0
- package/dist/request/lowerTf.js +65 -0
- package/dist/request/lowerTf.js.map +1 -0
- package/dist/request/pushOnce.d.ts +13 -0
- package/dist/request/pushOnce.d.ts.map +1 -0
- package/dist/request/pushOnce.js +26 -0
- package/dist/request/pushOnce.js.map +1 -0
- package/dist/request/requestNamespace.d.ts +17 -0
- package/dist/request/requestNamespace.d.ts.map +1 -0
- package/dist/request/requestNamespace.js +39 -0
- package/dist/request/requestNamespace.js.map +1 -0
- package/dist/request/security.d.ts +25 -0
- package/dist/request/security.d.ts.map +1 -0
- package/dist/request/security.js +172 -0
- package/dist/request/security.js.map +1 -0
- package/dist/request/streamBars.d.ts +27 -0
- package/dist/request/streamBars.d.ts.map +1 -0
- package/dist/request/streamBars.js +55 -0
- package/dist/request/streamBars.js.map +1 -0
- package/dist/ringBuffer.d.ts +95 -0
- package/dist/ringBuffer.d.ts.map +1 -0
- package/dist/ringBuffer.js +146 -0
- package/dist/ringBuffer.js.map +1 -0
- package/dist/runtimeContext.d.ts +238 -0
- package/dist/runtimeContext.d.ts.map +1 -0
- package/dist/runtimeContext.js +24 -0
- package/dist/runtimeContext.js.map +1 -0
- package/dist/seriesView.d.ts +59 -0
- package/dist/seriesView.d.ts.map +1 -0
- package/dist/seriesView.js +109 -0
- package/dist/seriesView.js.map +1 -0
- package/dist/state/index.d.ts +6 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +6 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/lifecycle.d.ts +75 -0
- package/dist/state/lifecycle.d.ts.map +1 -0
- package/dist/state/lifecycle.js +87 -0
- package/dist/state/lifecycle.js.map +1 -0
- package/dist/state/stateNamespace.d.ts +14 -0
- package/dist/state/stateNamespace.d.ts.map +1 -0
- package/dist/state/stateNamespace.js +56 -0
- package/dist/state/stateNamespace.js.map +1 -0
- package/dist/state/stateSlot.d.ts +59 -0
- package/dist/state/stateSlot.d.ts.map +1 -0
- package/dist/state/stateSlot.js +74 -0
- package/dist/state/stateSlot.js.map +1 -0
- package/dist/stateStore.d.ts +40 -0
- package/dist/stateStore.d.ts.map +1 -0
- package/dist/stateStore.js +34 -0
- package/dist/stateStore.js.map +1 -0
- package/dist/streamState.d.ts +178 -0
- package/dist/streamState.d.ts.map +1 -0
- package/dist/streamState.js +313 -0
- package/dist/streamState.js.map +1 -0
- package/dist/ta/adl.d.ts +27 -0
- package/dist/ta/adl.d.ts.map +1 -0
- package/dist/ta/adl.js +92 -0
- package/dist/ta/adl.js.map +1 -0
- package/dist/ta/adr.d.ts +38 -0
- package/dist/ta/adr.d.ts.map +1 -0
- package/dist/ta/adr.js +143 -0
- package/dist/ta/adr.js.map +1 -0
- package/dist/ta/adx.d.ts +31 -0
- package/dist/ta/adx.d.ts.map +1 -0
- package/dist/ta/adx.js +167 -0
- package/dist/ta/adx.js.map +1 -0
- package/dist/ta/alma.d.ts +35 -0
- package/dist/ta/alma.d.ts.map +1 -0
- package/dist/ta/alma.js +121 -0
- package/dist/ta/alma.js.map +1 -0
- package/dist/ta/anchoredVolumeProfile.d.ts +22 -0
- package/dist/ta/anchoredVolumeProfile.d.ts.map +1 -0
- package/dist/ta/anchoredVolumeProfile.js +104 -0
- package/dist/ta/anchoredVolumeProfile.js.map +1 -0
- package/dist/ta/anchoredVwap.d.ts +36 -0
- package/dist/ta/anchoredVwap.d.ts.map +1 -0
- package/dist/ta/anchoredVwap.js +134 -0
- package/dist/ta/anchoredVwap.js.map +1 -0
- package/dist/ta/ao.d.ts +21 -0
- package/dist/ta/ao.d.ts.map +1 -0
- package/dist/ta/ao.js +74 -0
- package/dist/ta/ao.js.map +1 -0
- package/dist/ta/aroon.d.ts +26 -0
- package/dist/ta/aroon.d.ts.map +1 -0
- package/dist/ta/aroon.js +166 -0
- package/dist/ta/aroon.js.map +1 -0
- package/dist/ta/aroonOsc.d.ts +19 -0
- package/dist/ta/aroonOsc.d.ts.map +1 -0
- package/dist/ta/aroonOsc.js +68 -0
- package/dist/ta/aroonOsc.js.map +1 -0
- package/dist/ta/atr.d.ts +25 -0
- package/dist/ta/atr.d.ts.map +1 -0
- package/dist/ta/atr.js +132 -0
- package/dist/ta/atr.js.map +1 -0
- package/dist/ta/barssince.d.ts +21 -0
- package/dist/ta/barssince.d.ts.map +1 -0
- package/dist/ta/barssince.js +96 -0
- package/dist/ta/barssince.js.map +1 -0
- package/dist/ta/bb.d.ts +28 -0
- package/dist/ta/bb.d.ts.map +1 -0
- package/dist/ta/bb.js +123 -0
- package/dist/ta/bb.js.map +1 -0
- package/dist/ta/bbPercentB.d.ts +23 -0
- package/dist/ta/bbPercentB.d.ts.map +1 -0
- package/dist/ta/bbPercentB.js +84 -0
- package/dist/ta/bbPercentB.js.map +1 -0
- package/dist/ta/bbw.d.ts +23 -0
- package/dist/ta/bbw.d.ts.map +1 -0
- package/dist/ta/bbw.js +84 -0
- package/dist/ta/bbw.js.map +1 -0
- package/dist/ta/bop.d.ts +22 -0
- package/dist/ta/bop.d.ts.map +1 -0
- package/dist/ta/bop.js +75 -0
- package/dist/ta/bop.js.map +1 -0
- package/dist/ta/cci.d.ts +25 -0
- package/dist/ta/cci.d.ts.map +1 -0
- package/dist/ta/cci.js +149 -0
- package/dist/ta/cci.js.map +1 -0
- package/dist/ta/chaikinOsc.d.ts +33 -0
- package/dist/ta/chaikinOsc.d.ts.map +1 -0
- package/dist/ta/chaikinOsc.js +100 -0
- package/dist/ta/chaikinOsc.js.map +1 -0
- package/dist/ta/chandeKrollStop.d.ts +36 -0
- package/dist/ta/chandeKrollStop.d.ts.map +1 -0
- package/dist/ta/chandeKrollStop.js +185 -0
- package/dist/ta/chandeKrollStop.js.map +1 -0
- package/dist/ta/chandelier.d.ts +36 -0
- package/dist/ta/chandelier.d.ts.map +1 -0
- package/dist/ta/chandelier.js +114 -0
- package/dist/ta/chandelier.js.map +1 -0
- package/dist/ta/change.d.ts +19 -0
- package/dist/ta/change.d.ts.map +1 -0
- package/dist/ta/change.js +83 -0
- package/dist/ta/change.js.map +1 -0
- package/dist/ta/chop.d.ts +29 -0
- package/dist/ta/chop.d.ts.map +1 -0
- package/dist/ta/chop.js +167 -0
- package/dist/ta/chop.js.map +1 -0
- package/dist/ta/cmf.d.ts +26 -0
- package/dist/ta/cmf.d.ts.map +1 -0
- package/dist/ta/cmf.js +126 -0
- package/dist/ta/cmf.js.map +1 -0
- package/dist/ta/cmo.d.ts +23 -0
- package/dist/ta/cmo.d.ts.map +1 -0
- package/dist/ta/cmo.js +130 -0
- package/dist/ta/cmo.js.map +1 -0
- package/dist/ta/connorsRsi.d.ts +31 -0
- package/dist/ta/connorsRsi.d.ts.map +1 -0
- package/dist/ta/connorsRsi.js +207 -0
- package/dist/ta/connorsRsi.js.map +1 -0
- package/dist/ta/coppock.d.ts +25 -0
- package/dist/ta/coppock.d.ts.map +1 -0
- package/dist/ta/coppock.js +151 -0
- package/dist/ta/coppock.js.map +1 -0
- package/dist/ta/crossover.d.ts +29 -0
- package/dist/ta/crossover.d.ts.map +1 -0
- package/dist/ta/crossover.js +108 -0
- package/dist/ta/crossover.js.map +1 -0
- package/dist/ta/crossunder.d.ts +23 -0
- package/dist/ta/crossunder.d.ts.map +1 -0
- package/dist/ta/crossunder.js +101 -0
- package/dist/ta/crossunder.js.map +1 -0
- package/dist/ta/dema.d.ts +25 -0
- package/dist/ta/dema.d.ts.map +1 -0
- package/dist/ta/dema.js +72 -0
- package/dist/ta/dema.js.map +1 -0
- package/dist/ta/dmi.d.ts +36 -0
- package/dist/ta/dmi.d.ts.map +1 -0
- package/dist/ta/dmi.js +107 -0
- package/dist/ta/dmi.js.map +1 -0
- package/dist/ta/donchian.d.ts +29 -0
- package/dist/ta/donchian.d.ts.map +1 -0
- package/dist/ta/donchian.js +93 -0
- package/dist/ta/donchian.js.map +1 -0
- package/dist/ta/dpo.d.ts +25 -0
- package/dist/ta/dpo.d.ts.map +1 -0
- package/dist/ta/dpo.js +111 -0
- package/dist/ta/dpo.js.map +1 -0
- package/dist/ta/ema.d.ts +27 -0
- package/dist/ta/ema.d.ts.map +1 -0
- package/dist/ta/ema.js +116 -0
- package/dist/ta/ema.js.map +1 -0
- package/dist/ta/envelope.d.ts +29 -0
- package/dist/ta/envelope.d.ts.map +1 -0
- package/dist/ta/envelope.js +119 -0
- package/dist/ta/envelope.js.map +1 -0
- package/dist/ta/eom.d.ts +35 -0
- package/dist/ta/eom.d.ts.map +1 -0
- package/dist/ta/eom.js +185 -0
- package/dist/ta/eom.js.map +1 -0
- package/dist/ta/fisher.d.ts +33 -0
- package/dist/ta/fisher.d.ts.map +1 -0
- package/dist/ta/fisher.js +174 -0
- package/dist/ta/fisher.js.map +1 -0
- package/dist/ta/fixedRangeVolumeProfile.d.ts +30 -0
- package/dist/ta/fixedRangeVolumeProfile.d.ts.map +1 -0
- package/dist/ta/fixedRangeVolumeProfile.js +141 -0
- package/dist/ta/fixedRangeVolumeProfile.js.map +1 -0
- package/dist/ta/highest.d.ts +21 -0
- package/dist/ta/highest.d.ts.map +1 -0
- package/dist/ta/highest.js +131 -0
- package/dist/ta/highest.js.map +1 -0
- package/dist/ta/historicalVolatility.d.ts +28 -0
- package/dist/ta/historicalVolatility.d.ts.map +1 -0
- package/dist/ta/historicalVolatility.js +199 -0
- package/dist/ta/historicalVolatility.js.map +1 -0
- package/dist/ta/hma.d.ts +28 -0
- package/dist/ta/hma.d.ts.map +1 -0
- package/dist/ta/hma.js +64 -0
- package/dist/ta/hma.js.map +1 -0
- package/dist/ta/ichimoku.d.ts +42 -0
- package/dist/ta/ichimoku.d.ts.map +1 -0
- package/dist/ta/ichimoku.js +188 -0
- package/dist/ta/ichimoku.js.map +1 -0
- package/dist/ta/index.d.ts +5 -0
- package/dist/ta/index.d.ts.map +1 -0
- package/dist/ta/index.js +5 -0
- package/dist/ta/index.js.map +1 -0
- package/dist/ta/kama.d.ts +35 -0
- package/dist/ta/kama.d.ts.map +1 -0
- package/dist/ta/kama.js +141 -0
- package/dist/ta/kama.js.map +1 -0
- package/dist/ta/keltner.d.ts +31 -0
- package/dist/ta/keltner.d.ts.map +1 -0
- package/dist/ta/keltner.js +125 -0
- package/dist/ta/keltner.js.map +1 -0
- package/dist/ta/klinger.d.ts +32 -0
- package/dist/ta/klinger.d.ts.map +1 -0
- package/dist/ta/klinger.js +165 -0
- package/dist/ta/klinger.js.map +1 -0
- package/dist/ta/kst.d.ts +31 -0
- package/dist/ta/kst.d.ts.map +1 -0
- package/dist/ta/kst.js +139 -0
- package/dist/ta/kst.js.map +1 -0
- package/dist/ta/lib/adxFromDi.d.ts +29 -0
- package/dist/ta/lib/adxFromDi.d.ts.map +1 -0
- package/dist/ta/lib/adxFromDi.js +72 -0
- package/dist/ta/lib/adxFromDi.js.map +1 -0
- package/dist/ta/lib/applyOffset.d.ts +19 -0
- package/dist/ta/lib/applyOffset.d.ts.map +1 -0
- package/dist/ta/lib/applyOffset.js +38 -0
- package/dist/ta/lib/applyOffset.js.map +1 -0
- package/dist/ta/lib/computeMa.d.ts +25 -0
- package/dist/ta/lib/computeMa.d.ts.map +1 -0
- package/dist/ta/lib/computeMa.js +43 -0
- package/dist/ta/lib/computeMa.js.map +1 -0
- package/dist/ta/lib/computeMaOfFloat64.d.ts +24 -0
- package/dist/ta/lib/computeMaOfFloat64.d.ts.map +1 -0
- package/dist/ta/lib/computeMaOfFloat64.js +45 -0
- package/dist/ta/lib/computeMaOfFloat64.js.map +1 -0
- package/dist/ta/lib/directionalState.d.ts +90 -0
- package/dist/ta/lib/directionalState.d.ts.map +1 -0
- package/dist/ta/lib/directionalState.js +204 -0
- package/dist/ta/lib/directionalState.js.map +1 -0
- package/dist/ta/lib/donchianMid.d.ts +21 -0
- package/dist/ta/lib/donchianMid.d.ts.map +1 -0
- package/dist/ta/lib/donchianMid.js +56 -0
- package/dist/ta/lib/donchianMid.js.map +1 -0
- package/dist/ta/lib/emaFloat64.d.ts +22 -0
- package/dist/ta/lib/emaFloat64.d.ts.map +1 -0
- package/dist/ta/lib/emaFloat64.js +60 -0
- package/dist/ta/lib/emaFloat64.js.map +1 -0
- package/dist/ta/lib/linearRegression.d.ts +50 -0
- package/dist/ta/lib/linearRegression.d.ts.map +1 -0
- package/dist/ta/lib/linearRegression.js +86 -0
- package/dist/ta/lib/linearRegression.js.map +1 -0
- package/dist/ta/lib/maTypes.d.ts +37 -0
- package/dist/ta/lib/maTypes.d.ts.map +1 -0
- package/dist/ta/lib/maTypes.js +4 -0
- package/dist/ta/lib/maTypes.js.map +1 -0
- package/dist/ta/lib/pearson.d.ts +31 -0
- package/dist/ta/lib/pearson.d.ts.map +1 -0
- package/dist/ta/lib/pearson.js +79 -0
- package/dist/ta/lib/pearson.js.map +1 -0
- package/dist/ta/lib/pickCandleSource.d.ts +24 -0
- package/dist/ta/lib/pickCandleSource.d.ts.map +1 -0
- package/dist/ta/lib/pickCandleSource.js +45 -0
- package/dist/ta/lib/pickCandleSource.js.map +1 -0
- package/dist/ta/lib/readSourceField.d.ts +29 -0
- package/dist/ta/lib/readSourceField.d.ts.map +1 -0
- package/dist/ta/lib/readSourceField.js +37 -0
- package/dist/ta/lib/readSourceField.js.map +1 -0
- package/dist/ta/lib/rollingStddev.d.ts +22 -0
- package/dist/ta/lib/rollingStddev.d.ts.map +1 -0
- package/dist/ta/lib/rollingStddev.js +60 -0
- package/dist/ta/lib/rollingStddev.js.map +1 -0
- package/dist/ta/lib/smaFloat64.d.ts +20 -0
- package/dist/ta/lib/smaFloat64.d.ts.map +1 -0
- package/dist/ta/lib/smaFloat64.js +59 -0
- package/dist/ta/lib/smaFloat64.js.map +1 -0
- package/dist/ta/lib/smmaFloat64.d.ts +23 -0
- package/dist/ta/lib/smmaFloat64.d.ts.map +1 -0
- package/dist/ta/lib/smmaFloat64.js +60 -0
- package/dist/ta/lib/smmaFloat64.js.map +1 -0
- package/dist/ta/lib/sourceValue.d.ts +31 -0
- package/dist/ta/lib/sourceValue.d.ts.map +1 -0
- package/dist/ta/lib/sourceValue.js +21 -0
- package/dist/ta/lib/sourceValue.js.map +1 -0
- package/dist/ta/lib/trSeries.d.ts +48 -0
- package/dist/ta/lib/trSeries.d.ts.map +1 -0
- package/dist/ta/lib/trSeries.js +81 -0
- package/dist/ta/lib/trSeries.js.map +1 -0
- package/dist/ta/lib/volume-profile/bucketEdges.d.ts +14 -0
- package/dist/ta/lib/volume-profile/bucketEdges.d.ts.map +1 -0
- package/dist/ta/lib/volume-profile/bucketEdges.js +42 -0
- package/dist/ta/lib/volume-profile/bucketEdges.js.map +1 -0
- package/dist/ta/lib/volume-profile/bucketizeVolume.d.ts +26 -0
- package/dist/ta/lib/volume-profile/bucketizeVolume.d.ts.map +1 -0
- package/dist/ta/lib/volume-profile/bucketizeVolume.js +115 -0
- package/dist/ta/lib/volume-profile/bucketizeVolume.js.map +1 -0
- package/dist/ta/lib/volume-profile/developingSeries.d.ts +35 -0
- package/dist/ta/lib/volume-profile/developingSeries.d.ts.map +1 -0
- package/dist/ta/lib/volume-profile/developingSeries.js +97 -0
- package/dist/ta/lib/volume-profile/developingSeries.js.map +1 -0
- package/dist/ta/lib/volume-profile/index.d.ts +11 -0
- package/dist/ta/lib/volume-profile/index.d.ts.map +1 -0
- package/dist/ta/lib/volume-profile/index.js +15 -0
- package/dist/ta/lib/volume-profile/index.js.map +1 -0
- package/dist/ta/lib/volume-profile/intercept.d.ts +15 -0
- package/dist/ta/lib/volume-profile/intercept.d.ts.map +1 -0
- package/dist/ta/lib/volume-profile/intercept.js +31 -0
- package/dist/ta/lib/volume-profile/intercept.js.map +1 -0
- package/dist/ta/lib/volume-profile/scaffold.d.ts +165 -0
- package/dist/ta/lib/volume-profile/scaffold.d.ts.map +1 -0
- package/dist/ta/lib/volume-profile/scaffold.js +209 -0
- package/dist/ta/lib/volume-profile/scaffold.js.map +1 -0
- package/dist/ta/lib/volume-profile/tooHeavy.d.ts +45 -0
- package/dist/ta/lib/volume-profile/tooHeavy.d.ts.map +1 -0
- package/dist/ta/lib/volume-profile/tooHeavy.js +92 -0
- package/dist/ta/lib/volume-profile/tooHeavy.js.map +1 -0
- package/dist/ta/lib/volume-profile/types.d.ts +188 -0
- package/dist/ta/lib/volume-profile/types.d.ts.map +1 -0
- package/dist/ta/lib/volume-profile/types.js +17 -0
- package/dist/ta/lib/volume-profile/types.js.map +1 -0
- package/dist/ta/lib/volume-profile/valueArea.d.ts +14 -0
- package/dist/ta/lib/volume-profile/valueArea.d.ts.map +1 -0
- package/dist/ta/lib/volume-profile/valueArea.js +90 -0
- package/dist/ta/lib/volume-profile/valueArea.js.map +1 -0
- package/dist/ta/lib/volume-profile/volumeProfileShared.d.ts +35 -0
- package/dist/ta/lib/volume-profile/volumeProfileShared.d.ts.map +1 -0
- package/dist/ta/lib/volume-profile/volumeProfileShared.js +136 -0
- package/dist/ta/lib/volume-profile/volumeProfileShared.js.map +1 -0
- package/dist/ta/lib/vwmaFloat64.d.ts +28 -0
- package/dist/ta/lib/vwmaFloat64.d.ts.map +1 -0
- package/dist/ta/lib/vwmaFloat64.js +70 -0
- package/dist/ta/lib/vwmaFloat64.js.map +1 -0
- package/dist/ta/lib/wilderDirectional.d.ts +53 -0
- package/dist/ta/lib/wilderDirectional.d.ts.map +1 -0
- package/dist/ta/lib/wilderDirectional.js +121 -0
- package/dist/ta/lib/wilderDirectional.js.map +1 -0
- package/dist/ta/lib/wilderSmoothing.d.ts +16 -0
- package/dist/ta/lib/wilderSmoothing.d.ts.map +1 -0
- package/dist/ta/lib/wilderSmoothing.js +26 -0
- package/dist/ta/lib/wilderSmoothing.js.map +1 -0
- package/dist/ta/lib/wmaFloat64.d.ts +22 -0
- package/dist/ta/lib/wmaFloat64.d.ts.map +1 -0
- package/dist/ta/lib/wmaFloat64.js +61 -0
- package/dist/ta/lib/wmaFloat64.js.map +1 -0
- package/dist/ta/lowest.d.ts +20 -0
- package/dist/ta/lowest.d.ts.map +1 -0
- package/dist/ta/lowest.js +113 -0
- package/dist/ta/lowest.js.map +1 -0
- package/dist/ta/lsma.d.ts +31 -0
- package/dist/ta/lsma.d.ts.map +1 -0
- package/dist/ta/lsma.js +127 -0
- package/dist/ta/lsma.js.map +1 -0
- package/dist/ta/maRibbon.d.ts +52 -0
- package/dist/ta/maRibbon.d.ts.map +1 -0
- package/dist/ta/maRibbon.js +125 -0
- package/dist/ta/maRibbon.js.map +1 -0
- package/dist/ta/macd.d.ts +30 -0
- package/dist/ta/macd.d.ts.map +1 -0
- package/dist/ta/macd.js +122 -0
- package/dist/ta/macd.js.map +1 -0
- package/dist/ta/massIndex.d.ts +29 -0
- package/dist/ta/massIndex.d.ts.map +1 -0
- package/dist/ta/massIndex.js +149 -0
- package/dist/ta/massIndex.js.map +1 -0
- package/dist/ta/mcginley.d.ts +26 -0
- package/dist/ta/mcginley.d.ts.map +1 -0
- package/dist/ta/mcginley.js +118 -0
- package/dist/ta/mcginley.js.map +1 -0
- package/dist/ta/median.d.ts +24 -0
- package/dist/ta/median.d.ts.map +1 -0
- package/dist/ta/median.js +112 -0
- package/dist/ta/median.js.map +1 -0
- package/dist/ta/mfi.d.ts +38 -0
- package/dist/ta/mfi.d.ts.map +1 -0
- package/dist/ta/mfi.js +152 -0
- package/dist/ta/mfi.js.map +1 -0
- package/dist/ta/momentum.d.ts +21 -0
- package/dist/ta/momentum.d.ts.map +1 -0
- package/dist/ta/momentum.js +46 -0
- package/dist/ta/momentum.js.map +1 -0
- package/dist/ta/netVolume.d.ts +31 -0
- package/dist/ta/netVolume.d.ts.map +1 -0
- package/dist/ta/netVolume.js +118 -0
- package/dist/ta/netVolume.js.map +1 -0
- package/dist/ta/nvi.d.ts +35 -0
- package/dist/ta/nvi.d.ts.map +1 -0
- package/dist/ta/nvi.js +140 -0
- package/dist/ta/nvi.js.map +1 -0
- package/dist/ta/nz.d.ts +17 -0
- package/dist/ta/nz.d.ts.map +1 -0
- package/dist/ta/nz.js +25 -0
- package/dist/ta/nz.js.map +1 -0
- package/dist/ta/obv.d.ts +25 -0
- package/dist/ta/obv.d.ts.map +1 -0
- package/dist/ta/obv.js +109 -0
- package/dist/ta/obv.js.map +1 -0
- package/dist/ta/persistence.d.ts +40 -0
- package/dist/ta/persistence.d.ts.map +1 -0
- package/dist/ta/persistence.js +306 -0
- package/dist/ta/persistence.js.map +1 -0
- package/dist/ta/pivotsHighLow.d.ts +41 -0
- package/dist/ta/pivotsHighLow.d.ts.map +1 -0
- package/dist/ta/pivotsHighLow.js +191 -0
- package/dist/ta/pivotsHighLow.js.map +1 -0
- package/dist/ta/pivotsStandard.d.ts +46 -0
- package/dist/ta/pivotsStandard.d.ts.map +1 -0
- package/dist/ta/pivotsStandard.js +323 -0
- package/dist/ta/pivotsStandard.js.map +1 -0
- package/dist/ta/pmo.d.ts +31 -0
- package/dist/ta/pmo.d.ts.map +1 -0
- package/dist/ta/pmo.js +185 -0
- package/dist/ta/pmo.js.map +1 -0
- package/dist/ta/ppo.d.ts +37 -0
- package/dist/ta/ppo.d.ts.map +1 -0
- package/dist/ta/ppo.js +130 -0
- package/dist/ta/ppo.js.map +1 -0
- package/dist/ta/psar.d.ts +36 -0
- package/dist/ta/psar.d.ts.map +1 -0
- package/dist/ta/psar.js +283 -0
- package/dist/ta/psar.js.map +1 -0
- package/dist/ta/pvi.d.ts +32 -0
- package/dist/ta/pvi.d.ts.map +1 -0
- package/dist/ta/pvi.js +127 -0
- package/dist/ta/pvi.js.map +1 -0
- package/dist/ta/pvo.d.ts +34 -0
- package/dist/ta/pvo.d.ts.map +1 -0
- package/dist/ta/pvo.js +123 -0
- package/dist/ta/pvo.js.map +1 -0
- package/dist/ta/pvt.d.ts +26 -0
- package/dist/ta/pvt.d.ts.map +1 -0
- package/dist/ta/pvt.js +128 -0
- package/dist/ta/pvt.js.map +1 -0
- package/dist/ta/registry.d.ts +395 -0
- package/dist/ta/registry.d.ts.map +1 -0
- package/dist/ta/registry.js +440 -0
- package/dist/ta/registry.js.map +1 -0
- package/dist/ta/roc.d.ts +19 -0
- package/dist/ta/roc.d.ts.map +1 -0
- package/dist/ta/roc.js +80 -0
- package/dist/ta/roc.js.map +1 -0
- package/dist/ta/rsi.d.ts +28 -0
- package/dist/ta/rsi.d.ts.map +1 -0
- package/dist/ta/rsi.js +166 -0
- package/dist/ta/rsi.js.map +1 -0
- package/dist/ta/rvgi.d.ts +27 -0
- package/dist/ta/rvgi.d.ts.map +1 -0
- package/dist/ta/rvgi.js +139 -0
- package/dist/ta/rvgi.js.map +1 -0
- package/dist/ta/rvi.d.ts +31 -0
- package/dist/ta/rvi.d.ts.map +1 -0
- package/dist/ta/rvi.js +195 -0
- package/dist/ta/rvi.js.map +1 -0
- package/dist/ta/sessionVolumeProfile.d.ts +23 -0
- package/dist/ta/sessionVolumeProfile.d.ts.map +1 -0
- package/dist/ta/sessionVolumeProfile.js +164 -0
- package/dist/ta/sessionVolumeProfile.js.map +1 -0
- package/dist/ta/sma.d.ts +23 -0
- package/dist/ta/sma.d.ts.map +1 -0
- package/dist/ta/sma.js +112 -0
- package/dist/ta/sma.js.map +1 -0
- package/dist/ta/smi.d.ts +41 -0
- package/dist/ta/smi.d.ts.map +1 -0
- package/dist/ta/smi.js +134 -0
- package/dist/ta/smi.js.map +1 -0
- package/dist/ta/smma.d.ts +26 -0
- package/dist/ta/smma.d.ts.map +1 -0
- package/dist/ta/smma.js +105 -0
- package/dist/ta/smma.js.map +1 -0
- package/dist/ta/stdev.d.ts +25 -0
- package/dist/ta/stdev.d.ts.map +1 -0
- package/dist/ta/stdev.js +125 -0
- package/dist/ta/stdev.js.map +1 -0
- package/dist/ta/stoch.d.ts +32 -0
- package/dist/ta/stoch.d.ts.map +1 -0
- package/dist/ta/stoch.js +91 -0
- package/dist/ta/stoch.js.map +1 -0
- package/dist/ta/stochRsi.d.ts +35 -0
- package/dist/ta/stochRsi.d.ts.map +1 -0
- package/dist/ta/stochRsi.js +98 -0
- package/dist/ta/stochRsi.js.map +1 -0
- package/dist/ta/supertrend.d.ts +34 -0
- package/dist/ta/supertrend.d.ts.map +1 -0
- package/dist/ta/supertrend.js +181 -0
- package/dist/ta/supertrend.js.map +1 -0
- package/dist/ta/tema.d.ts +27 -0
- package/dist/ta/tema.d.ts.map +1 -0
- package/dist/ta/tema.js +75 -0
- package/dist/ta/tema.js.map +1 -0
- package/dist/ta/trendStrengthIndex.d.ts +35 -0
- package/dist/ta/trendStrengthIndex.d.ts.map +1 -0
- package/dist/ta/trendStrengthIndex.js +183 -0
- package/dist/ta/trendStrengthIndex.js.map +1 -0
- package/dist/ta/trix.d.ts +34 -0
- package/dist/ta/trix.d.ts.map +1 -0
- package/dist/ta/trix.js +135 -0
- package/dist/ta/trix.js.map +1 -0
- package/dist/ta/tsi.d.ts +37 -0
- package/dist/ta/tsi.d.ts.map +1 -0
- package/dist/ta/tsi.js +127 -0
- package/dist/ta/tsi.js.map +1 -0
- package/dist/ta/ulcerIndex.d.ts +34 -0
- package/dist/ta/ulcerIndex.d.ts.map +1 -0
- package/dist/ta/ulcerIndex.js +120 -0
- package/dist/ta/ulcerIndex.js.map +1 -0
- package/dist/ta/ultimateOsc.d.ts +27 -0
- package/dist/ta/ultimateOsc.d.ts.map +1 -0
- package/dist/ta/ultimateOsc.js +174 -0
- package/dist/ta/ultimateOsc.js.map +1 -0
- package/dist/ta/valuewhen.d.ts +27 -0
- package/dist/ta/valuewhen.d.ts.map +1 -0
- package/dist/ta/valuewhen.js +115 -0
- package/dist/ta/valuewhen.js.map +1 -0
- package/dist/ta/visibleRangeVolumeProfile.d.ts +26 -0
- package/dist/ta/visibleRangeVolumeProfile.d.ts.map +1 -0
- package/dist/ta/visibleRangeVolumeProfile.js +107 -0
- package/dist/ta/visibleRangeVolumeProfile.js.map +1 -0
- package/dist/ta/vol.d.ts +23 -0
- package/dist/ta/vol.d.ts.map +1 -0
- package/dist/ta/vol.js +58 -0
- package/dist/ta/vol.js.map +1 -0
- package/dist/ta/volatilityStop.d.ts +36 -0
- package/dist/ta/volatilityStop.d.ts.map +1 -0
- package/dist/ta/volatilityStop.js +203 -0
- package/dist/ta/volatilityStop.js.map +1 -0
- package/dist/ta/vortex.d.ts +30 -0
- package/dist/ta/vortex.d.ts.map +1 -0
- package/dist/ta/vortex.js +210 -0
- package/dist/ta/vortex.js.map +1 -0
- package/dist/ta/vwap.d.ts +33 -0
- package/dist/ta/vwap.d.ts.map +1 -0
- package/dist/ta/vwap.js +138 -0
- package/dist/ta/vwap.js.map +1 -0
- package/dist/ta/vwma.d.ts +24 -0
- package/dist/ta/vwma.d.ts.map +1 -0
- package/dist/ta/vwma.js +112 -0
- package/dist/ta/vwma.js.map +1 -0
- package/dist/ta/williamsFractal.d.ts +43 -0
- package/dist/ta/williamsFractal.d.ts.map +1 -0
- package/dist/ta/williamsFractal.js +171 -0
- package/dist/ta/williamsFractal.js.map +1 -0
- package/dist/ta/williamsR.d.ts +24 -0
- package/dist/ta/williamsR.d.ts.map +1 -0
- package/dist/ta/williamsR.js +75 -0
- package/dist/ta/williamsR.js.map +1 -0
- package/dist/ta/wma.d.ts +24 -0
- package/dist/ta/wma.d.ts.map +1 -0
- package/dist/ta/wma.js +106 -0
- package/dist/ta/wma.js.map +1 -0
- package/dist/ta/zigZag.d.ts +40 -0
- package/dist/ta/zigZag.d.ts.map +1 -0
- package/dist/ta/zigZag.js +296 -0
- package/dist/ta/zigZag.js.map +1 -0
- package/dist/views/barstateView.d.ts +44 -0
- package/dist/views/barstateView.d.ts.map +1 -0
- package/dist/views/barstateView.js +27 -0
- package/dist/views/barstateView.js.map +1 -0
- package/dist/views/index.d.ts +37 -0
- package/dist/views/index.d.ts.map +1 -0
- package/dist/views/index.js +28 -0
- package/dist/views/index.js.map +1 -0
- package/dist/views/refreshRuntimeViews.d.ts +15 -0
- package/dist/views/refreshRuntimeViews.d.ts.map +1 -0
- package/dist/views/refreshRuntimeViews.js +29 -0
- package/dist/views/refreshRuntimeViews.js.map +1 -0
- package/dist/views/symInfoView.d.ts +42 -0
- package/dist/views/symInfoView.d.ts.map +1 -0
- package/dist/views/symInfoView.js +32 -0
- package/dist/views/symInfoView.js.map +1 -0
- package/dist/views/timeframeView.d.ts +17 -0
- package/dist/views/timeframeView.d.ts.map +1 -0
- package/dist/views/timeframeView.js +47 -0
- package/dist/views/timeframeView.js.map +1 -0
- package/package.json +46 -0
package/dist/ta/kst.js
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
// Copyright (c) 2026 Invinite. Licensed under the MIT License.
|
|
2
|
+
// See the LICENSE file in the repo root for full license text.
|
|
3
|
+
//
|
|
4
|
+
// Ported from invinite/src/components/trading-chart/indicators/kst.ts
|
|
5
|
+
// (commit 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite).
|
|
6
|
+
// Re-licensed MIT for chartlang. See PLAN.md §3.1 for the
|
|
7
|
+
// provenance contract; the math is the reference, the code style is not.
|
|
8
|
+
// Structural choices (callsite-id slot, Series<T> proxy, replaceHead
|
|
9
|
+
// mode) follow chartlang's primitive shape — NOT invinite's
|
|
10
|
+
// IndicatorPlugin shape. Composition: four `ta.sma` sub-slots (one per
|
|
11
|
+
// smoothed ROC) + one `ta.sma` sub-slot for the signal line. The four
|
|
12
|
+
// percentage ROCs are computed inline against the parent's source
|
|
13
|
+
// ring (same convention as `coppock.ts` — `ta.change` emits absolute
|
|
14
|
+
// deltas, while KST needs percentage rate-of-change).
|
|
15
|
+
import { Float64RingBuffer } from "../ringBuffer.js";
|
|
16
|
+
import { ACTIVE_RUNTIME_CONTEXT } from "../runtimeContext.js";
|
|
17
|
+
import { makeSeriesView } from "../seriesView.js";
|
|
18
|
+
import { sma } from "./sma.js";
|
|
19
|
+
import { readSourceValue } from "./lib/sourceValue.js";
|
|
20
|
+
const DEFAULT_ROC1_LENGTH = 10;
|
|
21
|
+
const DEFAULT_ROC2_LENGTH = 15;
|
|
22
|
+
const DEFAULT_ROC3_LENGTH = 20;
|
|
23
|
+
const DEFAULT_ROC4_LENGTH = 30;
|
|
24
|
+
const DEFAULT_ROC1_SMOOTH = 10;
|
|
25
|
+
const DEFAULT_ROC2_SMOOTH = 10;
|
|
26
|
+
const DEFAULT_ROC3_SMOOTH = 10;
|
|
27
|
+
const DEFAULT_ROC4_SMOOTH = 15;
|
|
28
|
+
const DEFAULT_SIGNAL_LENGTH = 9;
|
|
29
|
+
function getCtx() {
|
|
30
|
+
const ctx = ACTIVE_RUNTIME_CONTEXT.current;
|
|
31
|
+
if (ctx === null) {
|
|
32
|
+
throw new Error("ta.kst called outside an active script step");
|
|
33
|
+
}
|
|
34
|
+
return ctx;
|
|
35
|
+
}
|
|
36
|
+
function pctRoc(current, lookback) {
|
|
37
|
+
if (!Number.isFinite(lookback) || lookback === 0 || !Number.isFinite(current)) {
|
|
38
|
+
return Number.NaN;
|
|
39
|
+
}
|
|
40
|
+
return (100 * (current - lookback)) / lookback;
|
|
41
|
+
}
|
|
42
|
+
function rocFromWindow(window, src, length) {
|
|
43
|
+
if (window.length <= length)
|
|
44
|
+
return Number.NaN;
|
|
45
|
+
return pctRoc(src, window.at(length));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Know Sure Thing (Martin Pring, 1992). Weighted sum of four SMA-
|
|
49
|
+
* smoothed percentage rate-of-change series plus an SMA signal line.
|
|
50
|
+
* Defaults `(10, 15, 20, 30, 10, 10, 10, 15, 9)` match Pring's
|
|
51
|
+
* canonical settings. Composes 4 `ta.sma` sub-slots
|
|
52
|
+
* (`${slotId}/r1Sma` .. `${slotId}/r4Sma`) for the smoothing layer
|
|
53
|
+
* plus one `ta.sma` sub-slot (`${slotId}/signalSma`) for the signal
|
|
54
|
+
* line. The percentage-ROC math is inline (mirrors `ta.coppock` —
|
|
55
|
+
* `ta.change` emits absolute deltas, not percentages).
|
|
56
|
+
*
|
|
57
|
+
* The user-facing `signal` Series IS the signalSma sub-slot's own
|
|
58
|
+
* Series view (no extra output buffer on the parent slot). The
|
|
59
|
+
* `kst` Series wraps the parent's own `kstBuf` ring. Result identity
|
|
60
|
+
* is captured on the first call and returned by reference thereafter.
|
|
61
|
+
*
|
|
62
|
+
* @formula rN[t] = sma(pctRoc(source[t], source[t − rocNLength]), rocNSmooth) for N in 1..4 ;
|
|
63
|
+
* kst[t] = r1 + 2·r2 + 3·r3 + 4·r4 ; NaN if any rN NaN ;
|
|
64
|
+
* signal = sma(kst, signalLength)
|
|
65
|
+
* @warmup max_N(rocNLength + rocNSmooth) + signalLength − 2
|
|
66
|
+
* @since 0.2
|
|
67
|
+
* @stable
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* // import { ta } from "@invinite-org/chartlang-runtime";
|
|
71
|
+
* // const k = ta.kst("slot", bar.close);
|
|
72
|
+
* // plot(k.kst); plot(k.signal);
|
|
73
|
+
*/
|
|
74
|
+
export function kst(slotId, source, opts) {
|
|
75
|
+
const ctx = getCtx();
|
|
76
|
+
const roc1Length = opts?.roc1Length ?? DEFAULT_ROC1_LENGTH;
|
|
77
|
+
const roc2Length = opts?.roc2Length ?? DEFAULT_ROC2_LENGTH;
|
|
78
|
+
const roc3Length = opts?.roc3Length ?? DEFAULT_ROC3_LENGTH;
|
|
79
|
+
const roc4Length = opts?.roc4Length ?? DEFAULT_ROC4_LENGTH;
|
|
80
|
+
const roc1Smooth = opts?.roc1Smooth ?? DEFAULT_ROC1_SMOOTH;
|
|
81
|
+
const roc2Smooth = opts?.roc2Smooth ?? DEFAULT_ROC2_SMOOTH;
|
|
82
|
+
const roc3Smooth = opts?.roc3Smooth ?? DEFAULT_ROC3_SMOOTH;
|
|
83
|
+
const roc4Smooth = opts?.roc4Smooth ?? DEFAULT_ROC4_SMOOTH;
|
|
84
|
+
const signalLength = opts?.signalLength ?? DEFAULT_SIGNAL_LENGTH;
|
|
85
|
+
const src = readSourceValue(source);
|
|
86
|
+
let slot = ctx.stream.taSlots.get(slotId);
|
|
87
|
+
if (slot === undefined) {
|
|
88
|
+
const capacity = ctx.stream.ohlcv.close.capacity;
|
|
89
|
+
const kstBuf = new Float64RingBuffer(capacity);
|
|
90
|
+
const lookbackCap = Math.max(roc1Length, roc2Length, roc3Length, roc4Length) + 1;
|
|
91
|
+
slot = {
|
|
92
|
+
result: null,
|
|
93
|
+
kstBuf,
|
|
94
|
+
kstSeries: makeSeriesView(kstBuf),
|
|
95
|
+
roc1Length,
|
|
96
|
+
roc2Length,
|
|
97
|
+
roc3Length,
|
|
98
|
+
roc4Length,
|
|
99
|
+
sourceWindow: new Float64RingBuffer(lookbackCap),
|
|
100
|
+
};
|
|
101
|
+
ctx.stream.taSlots.set(slotId, slot);
|
|
102
|
+
}
|
|
103
|
+
if (ctx.isTick) {
|
|
104
|
+
slot.sourceWindow.replaceHead(src);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
slot.sourceWindow.append(src);
|
|
108
|
+
}
|
|
109
|
+
const roc1 = rocFromWindow(slot.sourceWindow, src, slot.roc1Length);
|
|
110
|
+
const roc2 = rocFromWindow(slot.sourceWindow, src, slot.roc2Length);
|
|
111
|
+
const roc3 = rocFromWindow(slot.sourceWindow, src, slot.roc3Length);
|
|
112
|
+
const roc4 = rocFromWindow(slot.sourceWindow, src, slot.roc4Length);
|
|
113
|
+
const r1Series = sma(`${slotId}/r1Sma`, roc1, roc1Smooth);
|
|
114
|
+
const r2Series = sma(`${slotId}/r2Sma`, roc2, roc2Smooth);
|
|
115
|
+
const r3Series = sma(`${slotId}/r3Sma`, roc3, roc3Smooth);
|
|
116
|
+
const r4Series = sma(`${slotId}/r4Sma`, roc4, roc4Smooth);
|
|
117
|
+
const r1 = r1Series.current;
|
|
118
|
+
const r2 = r2Series.current;
|
|
119
|
+
const r3 = r3Series.current;
|
|
120
|
+
const r4 = r4Series.current;
|
|
121
|
+
const kstValue = Number.isFinite(r1) && Number.isFinite(r2) && Number.isFinite(r3) && Number.isFinite(r4)
|
|
122
|
+
? r1 + 2 * r2 + 3 * r3 + 4 * r4
|
|
123
|
+
: Number.NaN;
|
|
124
|
+
if (ctx.isTick) {
|
|
125
|
+
slot.kstBuf.replaceHead(kstValue);
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
slot.kstBuf.append(kstValue);
|
|
129
|
+
}
|
|
130
|
+
const signalSeries = sma(`${slotId}/signalSma`, kstValue, signalLength);
|
|
131
|
+
if (slot.result === null) {
|
|
132
|
+
slot.result = Object.freeze({
|
|
133
|
+
kst: slot.kstSeries,
|
|
134
|
+
signal: signalSeries,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
return slot.result;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=kst.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kst.js","sourceRoot":"","sources":["../../src/ta/kst.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wilder ADX from a pre-computed `+DI` / `-DI` pair. Computes
|
|
3
|
+
* `DX = 100 * |+DI - -DI| / (+DI + -DI)` per bar (falls back to `0`
|
|
4
|
+
* when both DIs are zero), then Wilder-smooths `DX` over `length`
|
|
5
|
+
* via the shared `wilderStep`.
|
|
6
|
+
*
|
|
7
|
+
* Warmup: `2 * length - 1`. Slots `[0, length - 1]` carry the DI
|
|
8
|
+
* warmup (callers feed NaN there); slots `[length, 2*length - 2]`
|
|
9
|
+
* accumulate the ADX seed sum; `out[2*length - 1]` is the first
|
|
10
|
+
* defined ADX value (mean of the first `length` DX samples).
|
|
11
|
+
*
|
|
12
|
+
* Mismatched input lengths or `length <= 0` yields an all-NaN
|
|
13
|
+
* buffer. Any non-finite DI in the seed window leaves the output
|
|
14
|
+
* NaN past the warmup — the Wilder recurrence cannot resume past
|
|
15
|
+
* a NaN seed.
|
|
16
|
+
*
|
|
17
|
+
* @formula dx[i] = 100 * |+DI - -DI| / (+DI + -DI) ;
|
|
18
|
+
* seed = mean(dx[length .. 2*length - 1]) ;
|
|
19
|
+
* out[i] = wilderStep(out[i-1], dx[i], length) ;
|
|
20
|
+
* outputs are clamped to [0, 100]
|
|
21
|
+
* @warmup 2 * length - 1
|
|
22
|
+
* @since 0.2
|
|
23
|
+
* @stable
|
|
24
|
+
* @example
|
|
25
|
+
* // import { adxFromDi } from "./adxFromDi";
|
|
26
|
+
* // const adx = adxFromDi(plusDi, minusDi, 14);
|
|
27
|
+
*/
|
|
28
|
+
export declare function adxFromDi(plusDi: Float64Array, minusDi: Float64Array, length: number): Float64Array;
|
|
29
|
+
//# sourceMappingURL=adxFromDi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adxFromDi.d.ts","sourceRoot":"","sources":["../../../src/ta/lib/adxFromDi.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,SAAS,CACrB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,MAAM,GACf,YAAY,CAoCd"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// Copyright (c) 2026 Invinite. Licensed under the MIT License.
|
|
2
|
+
// See the LICENSE file in the repo root for full license text.
|
|
3
|
+
//
|
|
4
|
+
// Ported from invinite/src/components/trading-chart/indicators/lib/adx-from-di.ts
|
|
5
|
+
// (commit 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite).
|
|
6
|
+
// Re-licensed MIT for chartlang. See PLAN.md §3.1 for the
|
|
7
|
+
// provenance contract; the math is the reference, the code style is not.
|
|
8
|
+
import { wilderStep } from "./wilderSmoothing.js";
|
|
9
|
+
/**
|
|
10
|
+
* Wilder ADX from a pre-computed `+DI` / `-DI` pair. Computes
|
|
11
|
+
* `DX = 100 * |+DI - -DI| / (+DI + -DI)` per bar (falls back to `0`
|
|
12
|
+
* when both DIs are zero), then Wilder-smooths `DX` over `length`
|
|
13
|
+
* via the shared `wilderStep`.
|
|
14
|
+
*
|
|
15
|
+
* Warmup: `2 * length - 1`. Slots `[0, length - 1]` carry the DI
|
|
16
|
+
* warmup (callers feed NaN there); slots `[length, 2*length - 2]`
|
|
17
|
+
* accumulate the ADX seed sum; `out[2*length - 1]` is the first
|
|
18
|
+
* defined ADX value (mean of the first `length` DX samples).
|
|
19
|
+
*
|
|
20
|
+
* Mismatched input lengths or `length <= 0` yields an all-NaN
|
|
21
|
+
* buffer. Any non-finite DI in the seed window leaves the output
|
|
22
|
+
* NaN past the warmup — the Wilder recurrence cannot resume past
|
|
23
|
+
* a NaN seed.
|
|
24
|
+
*
|
|
25
|
+
* @formula dx[i] = 100 * |+DI - -DI| / (+DI + -DI) ;
|
|
26
|
+
* seed = mean(dx[length .. 2*length - 1]) ;
|
|
27
|
+
* out[i] = wilderStep(out[i-1], dx[i], length) ;
|
|
28
|
+
* outputs are clamped to [0, 100]
|
|
29
|
+
* @warmup 2 * length - 1
|
|
30
|
+
* @since 0.2
|
|
31
|
+
* @stable
|
|
32
|
+
* @example
|
|
33
|
+
* // import { adxFromDi } from "./adxFromDi";
|
|
34
|
+
* // const adx = adxFromDi(plusDi, minusDi, 14);
|
|
35
|
+
*/
|
|
36
|
+
export function adxFromDi(plusDi, minusDi, length) {
|
|
37
|
+
const n = plusDi.length;
|
|
38
|
+
const out = new Float64Array(n);
|
|
39
|
+
out.fill(Number.NaN);
|
|
40
|
+
if (length <= 0 || n === 0 || minusDi.length !== n || n < 2 * length) {
|
|
41
|
+
return out;
|
|
42
|
+
}
|
|
43
|
+
const dx = new Float64Array(n);
|
|
44
|
+
dx.fill(Number.NaN);
|
|
45
|
+
for (let i = 0; i < n; i += 1) {
|
|
46
|
+
const p = plusDi[i];
|
|
47
|
+
const m = minusDi[i];
|
|
48
|
+
if (!Number.isFinite(p) || !Number.isFinite(m))
|
|
49
|
+
continue;
|
|
50
|
+
const sum = p + m;
|
|
51
|
+
dx[i] = sum === 0 ? 0 : (100 * Math.abs(p - m)) / sum;
|
|
52
|
+
}
|
|
53
|
+
const firstSeedIdx = 2 * length - 1;
|
|
54
|
+
let seedSum = 0;
|
|
55
|
+
for (let i = length; i <= firstSeedIdx; i += 1) {
|
|
56
|
+
const v = dx[i];
|
|
57
|
+
if (!Number.isFinite(v))
|
|
58
|
+
return out;
|
|
59
|
+
seedSum += v;
|
|
60
|
+
}
|
|
61
|
+
// dx is bounded by [0, 100] in exact arithmetic, but the seed mean
|
|
62
|
+
// and the Wilder recurrence can overshoot 100 by a few ulps — clamp.
|
|
63
|
+
out[firstSeedIdx] = Math.min(100, seedSum / length);
|
|
64
|
+
for (let i = firstSeedIdx + 1; i < n; i += 1) {
|
|
65
|
+
const v = dx[i];
|
|
66
|
+
if (!Number.isFinite(v))
|
|
67
|
+
return out;
|
|
68
|
+
out[i] = Math.min(100, wilderStep(out[i - 1], v, length));
|
|
69
|
+
}
|
|
70
|
+
return out;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=adxFromDi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adxFromDi.js","sourceRoot":"","sources":["../../../src/ta/lib/adxFromDi.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,kFAAkF;AAClF,mEAAmE;AACnE,0DAA0D;AAC1D,yEAAyE;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,SAAS,CACrB,MAAoB,EACpB,OAAqB,EACrB,MAAc;IAEd,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACxB,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IAChC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC;QACnE,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/B,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,SAAS;QACzD,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAC1D,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;IACpC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACpC,OAAO,IAAI,CAAC,CAAC;IACjB,CAAC;IACD,mEAAmE;IACnE,qEAAqE;IACrE,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;IAEpD,KAAK,IAAI,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACpC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TradingView-parity bar-shift helper. `offset === 0` returns the
|
|
3
|
+
* same array reference so callers can keep a no-shift call in the
|
|
4
|
+
* fast path without an allocation. Positive `offset` shifts forward
|
|
5
|
+
* in time (output[i] = values[i − offset], NaN where out of range);
|
|
6
|
+
* negative shifts backward.
|
|
7
|
+
*
|
|
8
|
+
* Phase 1 always passes `offset = 0` — the helper exists so Phase 4's
|
|
9
|
+
* universal `opts.offset` (§9.1) is a zero-line wire-up.
|
|
10
|
+
*
|
|
11
|
+
* @formula out[i] = values[i − offset] (NaN when i − offset ∉ [0, n))
|
|
12
|
+
* @since 0.1
|
|
13
|
+
* @stable
|
|
14
|
+
* @example
|
|
15
|
+
* // import { applyOffsetToSeries } from "./applyOffset";
|
|
16
|
+
* // const shifted = applyOffsetToSeries(values, 2);
|
|
17
|
+
*/
|
|
18
|
+
export declare function applyOffsetToSeries(values: Float64Array, offset: number): Float64Array;
|
|
19
|
+
//# sourceMappingURL=applyOffset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyOffset.d.ts","sourceRoot":"","sources":["../../../src/ta/lib/applyOffset.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAUtF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Copyright (c) 2026 Invinite. Licensed under the MIT License.
|
|
2
|
+
// See the LICENSE file in the repo root for full license text.
|
|
3
|
+
//
|
|
4
|
+
// Ported from invinite/src/components/trading-chart/indicators/lib/apply-offset.ts
|
|
5
|
+
// (commit d2d1043c1b039f66d2f3674526d303d31cf2f1e0, © Invinite).
|
|
6
|
+
// Re-licensed MIT for chartlang. See PLAN.md §3.1 for the
|
|
7
|
+
// provenance contract; the math is the reference, the code style is not.
|
|
8
|
+
/**
|
|
9
|
+
* TradingView-parity bar-shift helper. `offset === 0` returns the
|
|
10
|
+
* same array reference so callers can keep a no-shift call in the
|
|
11
|
+
* fast path without an allocation. Positive `offset` shifts forward
|
|
12
|
+
* in time (output[i] = values[i − offset], NaN where out of range);
|
|
13
|
+
* negative shifts backward.
|
|
14
|
+
*
|
|
15
|
+
* Phase 1 always passes `offset = 0` — the helper exists so Phase 4's
|
|
16
|
+
* universal `opts.offset` (§9.1) is a zero-line wire-up.
|
|
17
|
+
*
|
|
18
|
+
* @formula out[i] = values[i − offset] (NaN when i − offset ∉ [0, n))
|
|
19
|
+
* @since 0.1
|
|
20
|
+
* @stable
|
|
21
|
+
* @example
|
|
22
|
+
* // import { applyOffsetToSeries } from "./applyOffset";
|
|
23
|
+
* // const shifted = applyOffsetToSeries(values, 2);
|
|
24
|
+
*/
|
|
25
|
+
export function applyOffsetToSeries(values, offset) {
|
|
26
|
+
if (offset === 0 || values.length === 0)
|
|
27
|
+
return values;
|
|
28
|
+
const n = values.length;
|
|
29
|
+
const out = new Float64Array(n);
|
|
30
|
+
out.fill(Number.NaN);
|
|
31
|
+
for (let i = 0; i < n; i += 1) {
|
|
32
|
+
const src = i - offset;
|
|
33
|
+
if (src >= 0 && src < n)
|
|
34
|
+
out[i] = values[src];
|
|
35
|
+
}
|
|
36
|
+
return out;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=applyOffset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyOffset.js","sourceRoot":"","sources":["../../../src/ta/lib/applyOffset.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,mFAAmF;AACnF,mEAAmE;AACnE,0DAA0D;AAC1D,yEAAyE;AAEzE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAoB,EAAE,MAAc;IACpE,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACvD,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACxB,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IAChC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC;QACvB,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { MaType } from "./maTypes.js";
|
|
2
|
+
/**
|
|
3
|
+
* Volume-aware MA dispatcher over a `Float64Array` input. Routes
|
|
4
|
+
* `"vwma"` through {@link vwmaFloat64} (requires a parallel volume
|
|
5
|
+
* array); every other kind routes through {@link computeMaOfFloat64}.
|
|
6
|
+
* Mirrors invinite's `computeMaSeries`, but operates on flat
|
|
7
|
+
* `Float64Array` source + volume instead of `ChartCandle[]` so the
|
|
8
|
+
* helper stays decoupled from the bar-shape.
|
|
9
|
+
*
|
|
10
|
+
* Throws a `TypeError` with `code = "ta-lib-vwma-requires-volume"` if
|
|
11
|
+
* `kind === "vwma"` and `volume === null` — calling VWMA without a
|
|
12
|
+
* volume stream is a programmer error, not a runtime data condition.
|
|
13
|
+
* For non-VWMA kinds, `volume` is ignored.
|
|
14
|
+
*
|
|
15
|
+
* @formula kind === "vwma" → vwmaFloat64(source, volume, length) ;
|
|
16
|
+
* otherwise → computeMaOfFloat64(kind, source, length)
|
|
17
|
+
* @since 0.2
|
|
18
|
+
* @stable
|
|
19
|
+
* @example
|
|
20
|
+
* // import { computeMa } from "./computeMa";
|
|
21
|
+
* // const ma = computeMa("vwma", close, volume, 20);
|
|
22
|
+
* // const sma20 = computeMa("sma", close, null, 20);
|
|
23
|
+
*/
|
|
24
|
+
export declare function computeMa(kind: MaType, source: Float64Array, length: number, volume: Float64Array | null): Float64Array;
|
|
25
|
+
//# sourceMappingURL=computeMa.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeMa.d.ts","sourceRoot":"","sources":["../../../src/ta/lib/computeMa.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAU3C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,SAAS,CACrB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,GAAG,IAAI,GAC5B,YAAY,CAYd"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Copyright (c) 2026 Invinite. Licensed under the MIT License.
|
|
2
|
+
// See the LICENSE file in the repo root for full license text.
|
|
3
|
+
//
|
|
4
|
+
// Ported from invinite/src/components/trading-chart/indicators/lib/compute-ma.ts
|
|
5
|
+
// (commit 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite).
|
|
6
|
+
// Re-licensed MIT for chartlang. See PLAN.md §3.1 for the
|
|
7
|
+
// provenance contract; the math is the reference, the code style is not.
|
|
8
|
+
import { computeMaOfFloat64 } from "./computeMaOfFloat64.js";
|
|
9
|
+
import { vwmaFloat64 } from "./vwmaFloat64.js";
|
|
10
|
+
/**
|
|
11
|
+
* Volume-aware MA dispatcher over a `Float64Array` input. Routes
|
|
12
|
+
* `"vwma"` through {@link vwmaFloat64} (requires a parallel volume
|
|
13
|
+
* array); every other kind routes through {@link computeMaOfFloat64}.
|
|
14
|
+
* Mirrors invinite's `computeMaSeries`, but operates on flat
|
|
15
|
+
* `Float64Array` source + volume instead of `ChartCandle[]` so the
|
|
16
|
+
* helper stays decoupled from the bar-shape.
|
|
17
|
+
*
|
|
18
|
+
* Throws a `TypeError` with `code = "ta-lib-vwma-requires-volume"` if
|
|
19
|
+
* `kind === "vwma"` and `volume === null` — calling VWMA without a
|
|
20
|
+
* volume stream is a programmer error, not a runtime data condition.
|
|
21
|
+
* For non-VWMA kinds, `volume` is ignored.
|
|
22
|
+
*
|
|
23
|
+
* @formula kind === "vwma" → vwmaFloat64(source, volume, length) ;
|
|
24
|
+
* otherwise → computeMaOfFloat64(kind, source, length)
|
|
25
|
+
* @since 0.2
|
|
26
|
+
* @stable
|
|
27
|
+
* @example
|
|
28
|
+
* // import { computeMa } from "./computeMa";
|
|
29
|
+
* // const ma = computeMa("vwma", close, volume, 20);
|
|
30
|
+
* // const sma20 = computeMa("sma", close, null, 20);
|
|
31
|
+
*/
|
|
32
|
+
export function computeMa(kind, source, length, volume) {
|
|
33
|
+
if (kind === "vwma") {
|
|
34
|
+
if (volume === null) {
|
|
35
|
+
const err = new TypeError("computeMa: vwma requires a non-null volume array");
|
|
36
|
+
err.code = "ta-lib-vwma-requires-volume";
|
|
37
|
+
throw err;
|
|
38
|
+
}
|
|
39
|
+
return vwmaFloat64(source, volume, length);
|
|
40
|
+
}
|
|
41
|
+
return computeMaOfFloat64(kind, source, length);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=computeMa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeMa.js","sourceRoot":"","sources":["../../../src/ta/lib/computeMa.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,iFAAiF;AACjF,mEAAmE;AACnE,0DAA0D;AAC1D,yEAAyE;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAS/C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,SAAS,CACrB,IAAY,EACZ,MAAoB,EACpB,MAAc,EACd,MAA2B;IAE3B,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QAClB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,IAAI,SAAS,CACrB,kDAAkD,CAC1B,CAAC;YAC7B,GAAG,CAAC,IAAI,GAAG,6BAA6B,CAAC;YACzC,MAAM,GAAG,CAAC;QACd,CAAC;QACD,OAAO,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { MaTypeNoVolume } from "./maTypes.js";
|
|
2
|
+
/**
|
|
3
|
+
* Chained-MA dispatcher over a `Float64Array` input. Routes by
|
|
4
|
+
* `MaTypeNoVolume` to the matching per-kind core — never re-implements
|
|
5
|
+
* the math. Consumed by chained MAs (MACD signal-of-MACD, PPO /
|
|
6
|
+
* PVO signal-of-oscillator, RSI smoothing-MA over RSI) and by every
|
|
7
|
+
* primitive that exposes an `maType` opt over a derived Float64 source
|
|
8
|
+
* (BB middle override, Keltner middle, Envelope middle, Chop
|
|
9
|
+
* denominator, Donchian midpoint).
|
|
10
|
+
*
|
|
11
|
+
* `"vwma"` is excluded at the type level: VWMA needs a parallel
|
|
12
|
+
* volume array and derived Float64 chain inputs carry no matching
|
|
13
|
+
* volume stream. Volume-aware callers route through {@link computeMa}.
|
|
14
|
+
*
|
|
15
|
+
* @formula kind switch over MaTypeNoVolume → delegates to
|
|
16
|
+
* {sma,ema,wma,smma}Float64(source, length)
|
|
17
|
+
* @since 0.2
|
|
18
|
+
* @stable
|
|
19
|
+
* @example
|
|
20
|
+
* // import { computeMaOfFloat64 } from "./computeMaOfFloat64";
|
|
21
|
+
* // const sig = computeMaOfFloat64("ema", macdLine, 9);
|
|
22
|
+
*/
|
|
23
|
+
export declare function computeMaOfFloat64(kind: MaTypeNoVolume, source: Float64Array, length: number): Float64Array;
|
|
24
|
+
//# sourceMappingURL=computeMaOfFloat64.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeMaOfFloat64.d.ts","sourceRoot":"","sources":["../../../src/ta/lib/computeMaOfFloat64.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAKnD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,GACf,YAAY,CAWd"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// Copyright (c) 2026 Invinite. Licensed under the MIT License.
|
|
2
|
+
// See the LICENSE file in the repo root for full license text.
|
|
3
|
+
//
|
|
4
|
+
// Ported from invinite/src/components/trading-chart/indicators/lib/compute-ma-of-float64.ts
|
|
5
|
+
// (commit 078f41fe2569d659d5aba726da8bcb5d3e2ced02, © Invinite).
|
|
6
|
+
// Re-licensed MIT for chartlang. See PLAN.md §3.1 for the
|
|
7
|
+
// provenance contract; the math is the reference, the code style is not.
|
|
8
|
+
import { computeEmaOfFloat64 } from "./emaFloat64.js";
|
|
9
|
+
import { computeSmaOfFloat64 } from "./smaFloat64.js";
|
|
10
|
+
import { smmaFloat64 } from "./smmaFloat64.js";
|
|
11
|
+
import { wmaFloat64 } from "./wmaFloat64.js";
|
|
12
|
+
/**
|
|
13
|
+
* Chained-MA dispatcher over a `Float64Array` input. Routes by
|
|
14
|
+
* `MaTypeNoVolume` to the matching per-kind core — never re-implements
|
|
15
|
+
* the math. Consumed by chained MAs (MACD signal-of-MACD, PPO /
|
|
16
|
+
* PVO signal-of-oscillator, RSI smoothing-MA over RSI) and by every
|
|
17
|
+
* primitive that exposes an `maType` opt over a derived Float64 source
|
|
18
|
+
* (BB middle override, Keltner middle, Envelope middle, Chop
|
|
19
|
+
* denominator, Donchian midpoint).
|
|
20
|
+
*
|
|
21
|
+
* `"vwma"` is excluded at the type level: VWMA needs a parallel
|
|
22
|
+
* volume array and derived Float64 chain inputs carry no matching
|
|
23
|
+
* volume stream. Volume-aware callers route through {@link computeMa}.
|
|
24
|
+
*
|
|
25
|
+
* @formula kind switch over MaTypeNoVolume → delegates to
|
|
26
|
+
* {sma,ema,wma,smma}Float64(source, length)
|
|
27
|
+
* @since 0.2
|
|
28
|
+
* @stable
|
|
29
|
+
* @example
|
|
30
|
+
* // import { computeMaOfFloat64 } from "./computeMaOfFloat64";
|
|
31
|
+
* // const sig = computeMaOfFloat64("ema", macdLine, 9);
|
|
32
|
+
*/
|
|
33
|
+
export function computeMaOfFloat64(kind, source, length) {
|
|
34
|
+
switch (kind) {
|
|
35
|
+
case "sma":
|
|
36
|
+
return computeSmaOfFloat64(source, length);
|
|
37
|
+
case "ema":
|
|
38
|
+
return computeEmaOfFloat64(source, length);
|
|
39
|
+
case "wma":
|
|
40
|
+
return wmaFloat64(source, length);
|
|
41
|
+
case "smma":
|
|
42
|
+
return smmaFloat64(source, length);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=computeMaOfFloat64.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeMaOfFloat64.js","sourceRoot":"","sources":["../../../src/ta/lib/computeMaOfFloat64.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,EAAE;AACF,4FAA4F;AAC5F,mEAAmE;AACnE,0DAA0D;AAC1D,yEAAyE;AAEzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,kBAAkB,CAC9B,IAAoB,EACpB,MAAoB,EACpB,MAAc;IAEd,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,KAAK;YACN,OAAO,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/C,KAAK,KAAK;YACN,OAAO,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/C,KAAK,KAAK;YACN,OAAO,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,KAAK,MAAM;YACP,OAAO,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Incremental Wilder-directional state shared by `ta.dmi` and
|
|
3
|
+
* `ta.adx`. Tracks the seed-window accumulators + the smoothed
|
|
4
|
+
* running values, plus the "previous-previous" snapshots the tick
|
|
5
|
+
* replay needs to recompute the head against the prior closed bar.
|
|
6
|
+
*
|
|
7
|
+
* @formula N/A — record type for {@link initDirectionalState}
|
|
8
|
+
* @since 0.2
|
|
9
|
+
* @stable
|
|
10
|
+
* @example
|
|
11
|
+
* // const s: DirectionalState = initDirectionalState(14);
|
|
12
|
+
*/
|
|
13
|
+
export type DirectionalState = {
|
|
14
|
+
readonly length: number;
|
|
15
|
+
/** Number of CLOSED bars seen so far (counts every close-side step). */
|
|
16
|
+
barCount: number;
|
|
17
|
+
prevHigh: number;
|
|
18
|
+
prevLow: number;
|
|
19
|
+
prevClose: number;
|
|
20
|
+
/** `prevHigh` / `prevLow` / `prevClose` as of the bar before the
|
|
21
|
+
* current bar — frozen by the prior close-side advance so tick
|
|
22
|
+
* replay can recompute against the previous closed state. */
|
|
23
|
+
prevPrevHigh: number;
|
|
24
|
+
prevPrevLow: number;
|
|
25
|
+
prevPrevClose: number;
|
|
26
|
+
seedPlusDm: number;
|
|
27
|
+
seedMinusDm: number;
|
|
28
|
+
seedTr: number;
|
|
29
|
+
smoothedPlusDm: number;
|
|
30
|
+
smoothedMinusDm: number;
|
|
31
|
+
smoothedTr: number;
|
|
32
|
+
/** Smoothed state captured at the prior close — used by tick replay. */
|
|
33
|
+
prevClosedSmoothedPlusDm: number;
|
|
34
|
+
prevClosedSmoothedMinusDm: number;
|
|
35
|
+
prevClosedSmoothedTr: number;
|
|
36
|
+
plusDi: number;
|
|
37
|
+
minusDi: number;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Allocate a fresh directional-state record. Shared by `ta.dmi` and
|
|
41
|
+
* `ta.adx`. Exported so the ADX primitive can fold onto the same
|
|
42
|
+
* recurrence without duplicating the field set.
|
|
43
|
+
*
|
|
44
|
+
* @formula N/A — state constructor (zero / NaN initializers)
|
|
45
|
+
* @since 0.2
|
|
46
|
+
* @stable
|
|
47
|
+
* @example
|
|
48
|
+
* // const s = initDirectionalState(14);
|
|
49
|
+
*/
|
|
50
|
+
export declare function initDirectionalState(length: number): DirectionalState;
|
|
51
|
+
/**
|
|
52
|
+
* Fold the new closed bar into the directional state. Mutates
|
|
53
|
+
* `dirState` in place and returns the freshly computed `+DI` /
|
|
54
|
+
* `-DI` pair (NaN until the seed window completes). Shared by
|
|
55
|
+
* `ta.dmi` and `ta.adx`. The returned pair is also written back
|
|
56
|
+
* to `dirState.plusDi` / `dirState.minusDi` for the consumer's
|
|
57
|
+
* downstream DX computation.
|
|
58
|
+
*
|
|
59
|
+
* @formula See {@link wilderDirectional} (lib/) for the per-step
|
|
60
|
+
* +DM / -DM / TR formulas; this routine inlines the same
|
|
61
|
+
* recurrence in a single-pass mutable form.
|
|
62
|
+
* @warmup length + 1 (first defined DI at barCount === length + 1)
|
|
63
|
+
* @since 0.2
|
|
64
|
+
* @stable
|
|
65
|
+
* @example
|
|
66
|
+
* // const { plusDi, minusDi } = advanceDirectionalClose(s, h, l, c);
|
|
67
|
+
*/
|
|
68
|
+
export declare function advanceDirectionalClose(dirState: DirectionalState, high: number, low: number, close: number): {
|
|
69
|
+
plusDi: number;
|
|
70
|
+
minusDi: number;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Replay the latest TR / DM / DI against the FROZEN prior-closed
|
|
74
|
+
* smoothed state. Does NOT mutate `dirState` (the consumer's
|
|
75
|
+
* close-side advance owns mutation). Returns the head DI pair the
|
|
76
|
+
* primitive should write to its output buffer.
|
|
77
|
+
*
|
|
78
|
+
* @formula Same recurrence as {@link advanceDirectionalClose}, but
|
|
79
|
+
* applied against `prevClosedSmoothed*` snapshots so the
|
|
80
|
+
* current bar can be replaced rather than appended.
|
|
81
|
+
* @since 0.2
|
|
82
|
+
* @stable
|
|
83
|
+
* @example
|
|
84
|
+
* // const di = tickDirectional(s, h, l, c);
|
|
85
|
+
*/
|
|
86
|
+
export declare function tickDirectional(dirState: DirectionalState, high: number, low: number, close: number): {
|
|
87
|
+
plusDi: number;
|
|
88
|
+
minusDi: number;
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=directionalState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directionalState.d.ts","sourceRoot":"","sources":["../../../src/ta/lib/directionalState.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB;;iEAE6D;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,wBAAwB,EAAE,MAAM,CAAC;IACjC,yBAAyB,EAAE,MAAM,CAAC;IAClC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAsBrE;AAyBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACd;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAqFrC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC3B,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACd;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAwCrC"}
|