openalgo-script 0.1.0-alpha.1 → 0.4.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 +1469 -0
- package/README.md +85 -30
- package/dist/adapters/charts/alerts.d.ts +70 -0
- package/dist/adapters/charts/alerts.d.ts.map +1 -0
- package/dist/adapters/charts/alerts.js +52 -0
- package/dist/adapters/charts/alerts.js.map +1 -0
- package/dist/adapters/charts/bars.d.ts +39 -0
- package/dist/adapters/charts/bars.d.ts.map +1 -0
- package/dist/adapters/charts/bars.js +32 -0
- package/dist/adapters/charts/bars.js.map +1 -0
- package/dist/adapters/charts/candles.d.ts +40 -0
- package/dist/adapters/charts/candles.d.ts.map +1 -0
- package/dist/adapters/charts/candles.js +85 -0
- package/dist/adapters/charts/candles.js.map +1 -0
- package/dist/adapters/charts/colours.d.ts +47 -0
- package/dist/adapters/charts/colours.d.ts.map +1 -0
- package/dist/adapters/charts/colours.js +80 -0
- package/dist/adapters/charts/colours.js.map +1 -0
- package/dist/adapters/charts/columns.d.ts +37 -0
- package/dist/adapters/charts/columns.d.ts.map +1 -0
- package/dist/adapters/charts/columns.js +56 -0
- package/dist/adapters/charts/columns.js.map +1 -0
- package/dist/adapters/charts/contract.d.ts +278 -0
- package/dist/adapters/charts/contract.d.ts.map +1 -0
- package/dist/adapters/charts/contract.js +2 -0
- package/dist/adapters/charts/contract.js.map +1 -0
- package/dist/adapters/charts/descriptor.d.ts +48 -0
- package/dist/adapters/charts/descriptor.d.ts.map +1 -0
- package/dist/adapters/charts/descriptor.js +111 -0
- package/dist/adapters/charts/descriptor.js.map +1 -0
- package/dist/adapters/charts/drawings.d.ts +43 -0
- package/dist/adapters/charts/drawings.d.ts.map +1 -0
- package/dist/adapters/charts/drawings.js +172 -0
- package/dist/adapters/charts/drawings.js.map +1 -0
- package/dist/adapters/charts/errors.d.ts +28 -0
- package/dist/adapters/charts/errors.d.ts.map +1 -0
- package/dist/adapters/charts/errors.js +21 -0
- package/dist/adapters/charts/errors.js.map +1 -0
- package/dist/adapters/charts/fields.d.ts +33 -0
- package/dist/adapters/charts/fields.d.ts.map +1 -0
- package/dist/adapters/charts/fields.js +51 -0
- package/dist/adapters/charts/fields.js.map +1 -0
- package/dist/adapters/charts/fills.d.ts +23 -0
- package/dist/adapters/charts/fills.d.ts.map +1 -0
- package/dist/adapters/charts/fills.js +48 -0
- package/dist/adapters/charts/fills.js.map +1 -0
- package/dist/adapters/charts/index.d.ts +37 -0
- package/dist/adapters/charts/index.d.ts.map +1 -0
- package/dist/adapters/charts/index.js +33 -0
- package/dist/adapters/charts/index.js.map +1 -0
- package/dist/adapters/charts/levels.d.ts +39 -0
- package/dist/adapters/charts/levels.d.ts.map +1 -0
- package/dist/adapters/charts/levels.js +61 -0
- package/dist/adapters/charts/levels.js.map +1 -0
- package/dist/adapters/charts/markers.d.ts +41 -0
- package/dist/adapters/charts/markers.d.ts.map +1 -0
- package/dist/adapters/charts/markers.js +75 -0
- package/dist/adapters/charts/markers.js.map +1 -0
- package/dist/adapters/charts/paint.d.ts +61 -0
- package/dist/adapters/charts/paint.d.ts.map +1 -0
- package/dist/adapters/charts/paint.js +47 -0
- package/dist/adapters/charts/paint.js.map +1 -0
- package/dist/adapters/charts/plots.d.ts +39 -0
- package/dist/adapters/charts/plots.d.ts.map +1 -0
- package/dist/adapters/charts/plots.js +117 -0
- package/dist/adapters/charts/plots.js.map +1 -0
- package/dist/adapters/charts/produced.d.ts +57 -0
- package/dist/adapters/charts/produced.d.ts.map +1 -0
- package/dist/adapters/charts/produced.js +11 -0
- package/dist/adapters/charts/produced.js.map +1 -0
- package/dist/adapters/charts/requests.d.ts +114 -0
- package/dist/adapters/charts/requests.d.ts.map +1 -0
- package/dist/adapters/charts/requests.js +277 -0
- package/dist/adapters/charts/requests.js.map +1 -0
- package/dist/adapters/charts/run.d.ts +147 -0
- package/dist/adapters/charts/run.d.ts.map +1 -0
- package/dist/adapters/charts/run.js +148 -0
- package/dist/adapters/charts/run.js.map +1 -0
- package/dist/adapters/charts/settings.d.ts +78 -0
- package/dist/adapters/charts/settings.d.ts.map +1 -0
- package/dist/adapters/charts/settings.js +225 -0
- package/dist/adapters/charts/settings.js.map +1 -0
- package/dist/adapters/charts/surfaces.d.ts +221 -0
- package/dist/adapters/charts/surfaces.d.ts.map +1 -0
- package/dist/adapters/charts/surfaces.js +2 -0
- package/dist/adapters/charts/surfaces.js.map +1 -0
- package/dist/adapters/charts/tables.d.ts +65 -0
- package/dist/adapters/charts/tables.d.ts.map +1 -0
- package/dist/adapters/charts/tables.js +166 -0
- package/dist/adapters/charts/tables.js.map +1 -0
- package/dist/adapters/codemirror/commands.d.ts +14 -0
- package/dist/adapters/codemirror/commands.d.ts.map +1 -0
- package/dist/adapters/codemirror/commands.js +52 -0
- package/dist/adapters/codemirror/commands.js.map +1 -0
- package/dist/adapters/codemirror/completion.d.ts +15 -0
- package/dist/adapters/codemirror/completion.d.ts.map +1 -0
- package/dist/adapters/codemirror/completion.js +64 -0
- package/dist/adapters/codemirror/completion.js.map +1 -0
- package/dist/adapters/codemirror/contract.d.ts +156 -0
- package/dist/adapters/codemirror/contract.d.ts.map +1 -0
- package/dist/adapters/codemirror/contract.js +42 -0
- package/dist/adapters/codemirror/contract.js.map +1 -0
- package/dist/adapters/codemirror/index.d.ts +43 -0
- package/dist/adapters/codemirror/index.d.ts.map +1 -0
- package/dist/adapters/codemirror/index.js +8 -0
- package/dist/adapters/codemirror/index.js.map +1 -0
- package/dist/adapters/codemirror/lint.d.ts +17 -0
- package/dist/adapters/codemirror/lint.d.ts.map +1 -0
- package/dist/adapters/codemirror/lint.js +62 -0
- package/dist/adapters/codemirror/lint.js.map +1 -0
- package/dist/adapters/codemirror/positions.d.ts +16 -0
- package/dist/adapters/codemirror/positions.d.ts.map +1 -0
- package/dist/adapters/codemirror/positions.js +65 -0
- package/dist/adapters/codemirror/positions.js.map +1 -0
- package/dist/adapters/codemirror/stream.d.ts +23 -0
- package/dist/adapters/codemirror/stream.d.ts.map +1 -0
- package/dist/adapters/codemirror/stream.js +70 -0
- package/dist/adapters/codemirror/stream.js.map +1 -0
- package/dist/adapters/codemirror/tokens.d.ts +44 -0
- package/dist/adapters/codemirror/tokens.d.ts.map +1 -0
- package/dist/adapters/codemirror/tokens.js +34 -0
- package/dist/adapters/codemirror/tokens.js.map +1 -0
- package/dist/adapters/codemirror/tooltips.d.ts +35 -0
- package/dist/adapters/codemirror/tooltips.d.ts.map +1 -0
- package/dist/adapters/codemirror/tooltips.js +108 -0
- package/dist/adapters/codemirror/tooltips.js.map +1 -0
- package/dist/core/accounting/charges.d.ts +136 -0
- package/dist/core/accounting/charges.d.ts.map +1 -0
- package/dist/core/accounting/charges.js +362 -0
- package/dist/core/accounting/charges.js.map +1 -0
- package/dist/core/accounting/equity.d.ts +158 -0
- package/dist/core/accounting/equity.d.ts.map +1 -0
- package/dist/core/accounting/equity.js +155 -0
- package/dist/core/accounting/equity.js.map +1 -0
- package/dist/core/accounting/index.d.ts +44 -0
- package/dist/core/accounting/index.d.ts.map +1 -0
- package/dist/core/accounting/index.js +36 -0
- package/dist/core/accounting/index.js.map +1 -0
- package/dist/core/accounting/markers.d.ts +43 -0
- package/dist/core/accounting/markers.d.ts.map +1 -0
- package/dist/core/accounting/markers.js +64 -0
- package/dist/core/accounting/markers.js.map +1 -0
- package/dist/core/accounting/monthly.d.ts +52 -0
- package/dist/core/accounting/monthly.d.ts.map +1 -0
- package/dist/core/accounting/monthly.js +99 -0
- package/dist/core/accounting/monthly.js.map +1 -0
- package/dist/core/accounting/report.d.ts +38 -0
- package/dist/core/accounting/report.d.ts.map +1 -0
- package/dist/core/accounting/report.js +63 -0
- package/dist/core/accounting/report.js.map +1 -0
- package/dist/core/accounting/shapes.d.ts +70 -0
- package/dist/core/accounting/shapes.d.ts.map +1 -0
- package/dist/core/accounting/shapes.js +21 -0
- package/dist/core/accounting/shapes.js.map +1 -0
- package/dist/core/accounting/statistics.d.ts +75 -0
- package/dist/core/accounting/statistics.d.ts.map +1 -0
- package/dist/core/accounting/statistics.js +246 -0
- package/dist/core/accounting/statistics.js.map +1 -0
- package/dist/core/accounting/trades.d.ts +118 -0
- package/dist/core/accounting/trades.d.ts.map +1 -0
- package/dist/core/accounting/trades.js +186 -0
- package/dist/core/accounting/trades.js.map +1 -0
- package/dist/core/backtest/compare.d.ts +38 -0
- package/dist/core/backtest/compare.d.ts.map +1 -0
- package/dist/core/backtest/compare.js +189 -0
- package/dist/core/backtest/compare.js.map +1 -0
- package/dist/core/backtest/declaration.d.ts +52 -0
- package/dist/core/backtest/declaration.d.ts.map +1 -0
- package/dist/core/backtest/declaration.js +48 -0
- package/dist/core/backtest/declaration.js.map +1 -0
- package/dist/core/backtest/drive.d.ts +29 -0
- package/dist/core/backtest/drive.d.ts.map +1 -0
- package/dist/core/backtest/drive.js +262 -0
- package/dist/core/backtest/drive.js.map +1 -0
- package/dist/core/backtest/index.d.ts +46 -0
- package/dist/core/backtest/index.d.ts.map +1 -0
- package/dist/core/backtest/index.js +36 -0
- package/dist/core/backtest/index.js.map +1 -0
- package/dist/core/backtest/range.d.ts +84 -0
- package/dist/core/backtest/range.d.ts.map +1 -0
- package/dist/core/backtest/range.js +90 -0
- package/dist/core/backtest/range.js.map +1 -0
- package/dist/core/backtest/record.d.ts +238 -0
- package/dist/core/backtest/record.d.ts.map +1 -0
- package/dist/core/backtest/record.js +176 -0
- package/dist/core/backtest/record.js.map +1 -0
- package/dist/core/backtest/replay.d.ts +48 -0
- package/dist/core/backtest/replay.d.ts.map +1 -0
- package/dist/core/backtest/replay.js +127 -0
- package/dist/core/backtest/replay.js.map +1 -0
- package/dist/core/backtest/resting.d.ts +62 -0
- package/dist/core/backtest/resting.d.ts.map +1 -0
- package/dist/core/backtest/resting.js +59 -0
- package/dist/core/backtest/resting.js.map +1 -0
- package/dist/core/backtest/settings.d.ts +117 -0
- package/dist/core/backtest/settings.d.ts.map +1 -0
- package/dist/core/backtest/settings.js +207 -0
- package/dist/core/backtest/settings.js.map +1 -0
- package/dist/core/backtest/simulate.d.ts +146 -0
- package/dist/core/backtest/simulate.d.ts.map +1 -0
- package/dist/core/backtest/simulate.js +217 -0
- package/dist/core/backtest/simulate.js.map +1 -0
- package/dist/core/catalogue/catalogue.generated.d.ts +164 -10
- package/dist/core/catalogue/catalogue.generated.d.ts.map +1 -1
- package/dist/core/catalogue/catalogue.generated.js +23 -9
- package/dist/core/catalogue/catalogue.generated.js.map +1 -1
- package/dist/core/catalogue/values.generated.d.ts +49 -0
- package/dist/core/catalogue/values.generated.d.ts.map +1 -1
- package/dist/core/check/arguments.d.ts +41 -0
- package/dist/core/check/arguments.d.ts.map +1 -0
- package/dist/core/check/arguments.js +84 -0
- package/dist/core/check/arguments.js.map +1 -0
- package/dist/core/check/call-sites.d.ts +22 -0
- package/dist/core/check/call-sites.d.ts.map +1 -0
- package/dist/core/check/call-sites.js +329 -0
- package/dist/core/check/call-sites.js.map +1 -0
- package/dist/core/check/call-warmup.d.ts +37 -0
- package/dist/core/check/call-warmup.d.ts.map +1 -0
- package/dist/core/check/call-warmup.js +97 -0
- package/dist/core/check/call-warmup.js.map +1 -0
- package/dist/core/check/calls.d.ts +33 -0
- package/dist/core/check/calls.d.ts.map +1 -0
- package/dist/core/check/calls.js +348 -0
- package/dist/core/check/calls.js.map +1 -0
- package/dist/core/check/check.d.ts +23 -0
- package/dist/core/check/check.d.ts.map +1 -0
- package/dist/core/check/check.js +163 -0
- package/dist/core/check/check.js.map +1 -0
- package/dist/core/check/checked.d.ts +198 -0
- package/dist/core/check/checked.d.ts.map +1 -0
- package/dist/core/check/checked.js +19 -0
- package/dist/core/check/checked.js.map +1 -0
- package/dist/core/check/checker.d.ts +182 -0
- package/dist/core/check/checker.d.ts.map +1 -0
- package/dist/core/check/checker.js +280 -0
- package/dist/core/check/checker.js.map +1 -0
- package/dist/core/check/conditional.d.ts +35 -0
- package/dist/core/check/conditional.d.ts.map +1 -0
- package/dist/core/check/conditional.js +100 -0
- package/dist/core/check/conditional.js.map +1 -0
- package/dist/core/check/constant.d.ts +47 -0
- package/dist/core/check/constant.d.ts.map +1 -0
- package/dist/core/check/constant.js +101 -0
- package/dist/core/check/constant.js.map +1 -0
- package/dist/core/check/declaration.d.ts +33 -0
- package/dist/core/check/declaration.d.ts.map +1 -0
- package/dist/core/check/declaration.js +181 -0
- package/dist/core/check/declaration.js.map +1 -0
- package/dist/core/check/expressions.d.ts +36 -0
- package/dist/core/check/expressions.d.ts.map +1 -0
- package/dist/core/check/expressions.js +398 -0
- package/dist/core/check/expressions.js.map +1 -0
- package/dist/core/check/functions.d.ts +31 -0
- package/dist/core/check/functions.d.ts.map +1 -0
- package/dist/core/check/functions.js +238 -0
- package/dist/core/check/functions.js.map +1 -0
- package/dist/core/check/handles.d.ts +48 -0
- package/dist/core/check/handles.d.ts.map +1 -0
- package/dist/core/check/handles.js +43 -0
- package/dist/core/check/handles.js.map +1 -0
- package/dist/core/check/index.d.ts +31 -0
- package/dist/core/check/index.d.ts.map +1 -0
- package/dist/core/check/index.js +26 -0
- package/dist/core/check/index.js.map +1 -0
- package/dist/core/check/library-bars.d.ts +7 -0
- package/dist/core/check/library-bars.d.ts.map +1 -0
- package/dist/core/check/library-bars.js +181 -0
- package/dist/core/check/library-bars.js.map +1 -0
- package/dist/core/check/library-orders.d.ts +5 -0
- package/dist/core/check/library-orders.d.ts.map +1 -0
- package/dist/core/check/library-orders.js +250 -0
- package/dist/core/check/library-orders.js.map +1 -0
- package/dist/core/check/library-output.d.ts +7 -0
- package/dist/core/check/library-output.d.ts.map +1 -0
- package/dist/core/check/library-output.js +195 -0
- package/dist/core/check/library-output.js.map +1 -0
- package/dist/core/check/library-prose.generated.d.ts +16 -0
- package/dist/core/check/library-prose.generated.d.ts.map +1 -0
- package/dist/core/check/library-prose.generated.js +353 -0
- package/dist/core/check/library-prose.generated.js.map +1 -0
- package/dist/core/check/library-series.d.ts +3 -0
- package/dist/core/check/library-series.d.ts.map +1 -0
- package/dist/core/check/library-series.js +415 -0
- package/dist/core/check/library-series.js.map +1 -0
- package/dist/core/check/library.d.ts +204 -0
- package/dist/core/check/library.d.ts.map +1 -0
- package/dist/core/check/library.js +198 -0
- package/dist/core/check/library.js.map +1 -0
- package/dist/core/check/literals.d.ts +19 -0
- package/dist/core/check/literals.d.ts.map +1 -0
- package/dist/core/check/literals.js +22 -0
- package/dist/core/check/literals.js.map +1 -0
- package/dist/core/check/outputs.d.ts +31 -0
- package/dist/core/check/outputs.d.ts.map +1 -0
- package/dist/core/check/outputs.js +113 -0
- package/dist/core/check/outputs.js.map +1 -0
- package/dist/core/check/statements.d.ts +25 -0
- package/dist/core/check/statements.d.ts.map +1 -0
- package/dist/core/check/statements.js +377 -0
- package/dist/core/check/statements.js.map +1 -0
- package/dist/core/check/suggest.d.ts +25 -0
- package/dist/core/check/suggest.d.ts.map +1 -0
- package/dist/core/check/suggest.js +61 -0
- package/dist/core/check/suggest.js.map +1 -0
- package/dist/core/check/surface.d.ts +62 -0
- package/dist/core/check/surface.d.ts.map +1 -0
- package/dist/core/check/surface.js +129 -0
- package/dist/core/check/surface.js.map +1 -0
- package/dist/core/check/tags.d.ts +4 -0
- package/dist/core/check/tags.d.ts.map +1 -0
- package/dist/core/check/tags.js +54 -0
- package/dist/core/check/tags.js.map +1 -0
- package/dist/core/check/types.d.ts +153 -0
- package/dist/core/check/types.d.ts.map +1 -0
- package/dist/core/check/types.js +221 -0
- package/dist/core/check/types.js.map +1 -0
- package/dist/core/check/warmup.d.ts +73 -0
- package/dist/core/check/warmup.d.ts.map +1 -0
- package/dist/core/check/warmup.js +62 -0
- package/dist/core/check/warmup.js.map +1 -0
- package/dist/core/diagnostics/collector.d.ts +12 -0
- package/dist/core/diagnostics/collector.d.ts.map +1 -1
- package/dist/core/diagnostics/collector.js +27 -1
- package/dist/core/diagnostics/collector.js.map +1 -1
- package/dist/core/emit/calls.d.ts +38 -0
- package/dist/core/emit/calls.d.ts.map +1 -0
- package/dist/core/emit/calls.js +347 -0
- package/dist/core/emit/calls.js.map +1 -0
- package/dist/core/emit/canonical.d.ts +39 -0
- package/dist/core/emit/canonical.d.ts.map +1 -0
- package/dist/core/emit/canonical.js +71 -0
- package/dist/core/emit/canonical.js.map +1 -0
- package/dist/core/emit/channels.d.ts +28 -0
- package/dist/core/emit/channels.d.ts.map +1 -0
- package/dist/core/emit/channels.js +110 -0
- package/dist/core/emit/channels.js.map +1 -0
- package/dist/core/emit/code.d.ts +75 -0
- package/dist/core/emit/code.d.ts.map +1 -0
- package/dist/core/emit/code.js +104 -0
- package/dist/core/emit/code.js.map +1 -0
- package/dist/core/emit/colours.d.ts +35 -0
- package/dist/core/emit/colours.d.ts.map +1 -0
- package/dist/core/emit/colours.js +50 -0
- package/dist/core/emit/colours.js.map +1 -0
- package/dist/core/emit/context.d.ts +271 -0
- package/dist/core/emit/context.d.ts.map +1 -0
- package/dist/core/emit/context.js +358 -0
- package/dist/core/emit/context.js.map +1 -0
- package/dist/core/emit/defaults.d.ts +64 -0
- package/dist/core/emit/defaults.d.ts.map +1 -0
- package/dist/core/emit/defaults.js +182 -0
- package/dist/core/emit/defaults.js.map +1 -0
- package/dist/core/emit/emit.d.ts +13 -0
- package/dist/core/emit/emit.d.ts.map +1 -0
- package/dist/core/emit/emit.js +281 -0
- package/dist/core/emit/emit.js.map +1 -0
- package/dist/core/emit/events.d.ts +21 -0
- package/dist/core/emit/events.d.ts.map +1 -0
- package/dist/core/emit/events.js +112 -0
- package/dist/core/emit/events.js.map +1 -0
- package/dist/core/emit/expressions.d.ts +23 -0
- package/dist/core/emit/expressions.d.ts.map +1 -0
- package/dist/core/emit/expressions.js +253 -0
- package/dist/core/emit/expressions.js.map +1 -0
- package/dist/core/emit/functions.d.ts +30 -0
- package/dist/core/emit/functions.d.ts.map +1 -0
- package/dist/core/emit/functions.js +171 -0
- package/dist/core/emit/functions.js.map +1 -0
- package/dist/core/emit/gaps.d.ts +34 -0
- package/dist/core/emit/gaps.d.ts.map +1 -0
- package/dist/core/emit/gaps.js +16 -0
- package/dist/core/emit/gaps.js.map +1 -0
- package/dist/core/emit/index.d.ts +31 -0
- package/dist/core/emit/index.d.ts.map +1 -0
- package/dist/core/emit/index.js +25 -0
- package/dist/core/emit/index.js.map +1 -0
- package/dist/core/emit/inputs.d.ts +47 -0
- package/dist/core/emit/inputs.d.ts.map +1 -0
- package/dist/core/emit/inputs.js +150 -0
- package/dist/core/emit/inputs.js.map +1 -0
- package/dist/core/emit/layout.d.ts +73 -0
- package/dist/core/emit/layout.d.ts.map +1 -0
- package/dist/core/emit/layout.js +126 -0
- package/dist/core/emit/layout.js.map +1 -0
- package/dist/core/emit/meta.d.ts +14 -0
- package/dist/core/emit/meta.d.ts.map +1 -0
- package/dist/core/emit/meta.js +68 -0
- package/dist/core/emit/meta.js.map +1 -0
- package/dist/core/emit/opcodes.d.ts +28 -0
- package/dist/core/emit/opcodes.d.ts.map +1 -0
- package/dist/core/emit/opcodes.js +137 -0
- package/dist/core/emit/opcodes.js.map +1 -0
- package/dist/core/emit/outputs.d.ts +67 -0
- package/dist/core/emit/outputs.d.ts.map +1 -0
- package/dist/core/emit/outputs.js +293 -0
- package/dist/core/emit/outputs.js.map +1 -0
- package/dist/core/emit/pool.d.ts +33 -0
- package/dist/core/emit/pool.d.ts.map +1 -0
- package/dist/core/emit/pool.js +79 -0
- package/dist/core/emit/pool.js.map +1 -0
- package/dist/core/emit/program.d.ts +333 -0
- package/dist/core/emit/program.d.ts.map +1 -0
- package/dist/core/emit/program.js +15 -0
- package/dist/core/emit/program.js.map +1 -0
- package/dist/core/emit/registers.d.ts +35 -0
- package/dist/core/emit/registers.d.ts.map +1 -0
- package/dist/core/emit/registers.js +170 -0
- package/dist/core/emit/registers.js.map +1 -0
- package/dist/core/emit/request-scope.d.ts +36 -0
- package/dist/core/emit/request-scope.d.ts.map +1 -0
- package/dist/core/emit/request-scope.js +41 -0
- package/dist/core/emit/request-scope.js.map +1 -0
- package/dist/core/emit/requests.d.ts +69 -0
- package/dist/core/emit/requests.d.ts.map +1 -0
- package/dist/core/emit/requests.js +230 -0
- package/dist/core/emit/requests.js.map +1 -0
- package/dist/core/emit/requires.d.ts +4 -0
- package/dist/core/emit/requires.d.ts.map +1 -0
- package/dist/core/emit/requires.js +71 -0
- package/dist/core/emit/requires.js.map +1 -0
- package/dist/core/emit/sha256.d.ts +24 -0
- package/dist/core/emit/sha256.d.ts.map +1 -0
- package/dist/core/emit/sha256.js +109 -0
- package/dist/core/emit/sha256.js.map +1 -0
- package/dist/core/emit/statements.d.ts +20 -0
- package/dist/core/emit/statements.d.ts.map +1 -0
- package/dist/core/emit/statements.js +393 -0
- package/dist/core/emit/statements.js.map +1 -0
- package/dist/core/emit/values.d.ts +80 -0
- package/dist/core/emit/values.d.ts.map +1 -0
- package/dist/core/emit/values.js +242 -0
- package/dist/core/emit/values.js.map +1 -0
- package/dist/core/engine/alerts.d.ts +66 -0
- package/dist/core/engine/alerts.d.ts.map +1 -0
- package/dist/core/engine/alerts.js +119 -0
- package/dist/core/engine/alerts.js.map +1 -0
- package/dist/core/engine/arithmetic.d.ts +82 -0
- package/dist/core/engine/arithmetic.d.ts.map +1 -0
- package/dist/core/engine/arithmetic.js +141 -0
- package/dist/core/engine/arithmetic.js.map +1 -0
- package/dist/core/engine/bars.d.ts +95 -0
- package/dist/core/engine/bars.d.ts.map +1 -0
- package/dist/core/engine/bars.js +133 -0
- package/dist/core/engine/bars.js.map +1 -0
- package/dist/core/engine/budget.d.ts +162 -0
- package/dist/core/engine/budget.d.ts.map +1 -0
- package/dist/core/engine/budget.js +188 -0
- package/dist/core/engine/budget.js.map +1 -0
- package/dist/core/engine/channels.d.ts +106 -0
- package/dist/core/engine/channels.d.ts.map +1 -0
- package/dist/core/engine/channels.js +99 -0
- package/dist/core/engine/channels.js.map +1 -0
- package/dist/core/engine/drawings.d.ts +64 -0
- package/dist/core/engine/drawings.d.ts.map +1 -0
- package/dist/core/engine/drawings.js +67 -0
- package/dist/core/engine/drawings.js.map +1 -0
- package/dist/core/engine/engine.d.ts +140 -0
- package/dist/core/engine/engine.d.ts.map +1 -0
- package/dist/core/engine/engine.js +405 -0
- package/dist/core/engine/engine.js.map +1 -0
- package/dist/core/engine/errors.d.ts +64 -0
- package/dist/core/engine/errors.d.ts.map +1 -0
- package/dist/core/engine/errors.js +63 -0
- package/dist/core/engine/errors.js.map +1 -0
- package/dist/core/engine/frames.d.ts +48 -0
- package/dist/core/engine/frames.d.ts.map +1 -0
- package/dist/core/engine/frames.js +41 -0
- package/dist/core/engine/frames.js.map +1 -0
- package/dist/core/engine/grids.d.ts +25 -0
- package/dist/core/engine/grids.d.ts.map +1 -0
- package/dist/core/engine/grids.js +77 -0
- package/dist/core/engine/grids.js.map +1 -0
- package/dist/core/engine/guard.d.ts +4 -0
- package/dist/core/engine/guard.d.ts.map +1 -0
- package/dist/core/engine/guard.js +46 -0
- package/dist/core/engine/guard.js.map +1 -0
- package/dist/core/engine/host.d.ts +219 -0
- package/dist/core/engine/host.d.ts.map +1 -0
- package/dist/core/engine/host.js +38 -0
- package/dist/core/engine/host.js.map +1 -0
- package/dist/core/engine/index.d.ts +49 -0
- package/dist/core/engine/index.d.ts.map +1 -0
- package/dist/core/engine/index.js +33 -0
- package/dist/core/engine/index.js.map +1 -0
- package/dist/core/engine/inputs.d.ts +77 -0
- package/dist/core/engine/inputs.d.ts.map +1 -0
- package/dist/core/engine/inputs.js +205 -0
- package/dist/core/engine/inputs.js.map +1 -0
- package/dist/core/engine/ledger/call.d.ts +63 -0
- package/dist/core/engine/ledger/call.d.ts.map +1 -0
- package/dist/core/engine/ledger/call.js +136 -0
- package/dist/core/engine/ledger/call.js.map +1 -0
- package/dist/core/engine/ledger/closable.d.ts +155 -0
- package/dist/core/engine/ledger/closable.d.ts.map +1 -0
- package/dist/core/engine/ledger/closable.js +173 -0
- package/dist/core/engine/ledger/closable.js.map +1 -0
- package/dist/core/engine/ledger/holdings.d.ts +194 -0
- package/dist/core/engine/ledger/holdings.d.ts.map +1 -0
- package/dist/core/engine/ledger/holdings.js +237 -0
- package/dist/core/engine/ledger/holdings.js.map +1 -0
- package/dist/core/engine/ledger/index.d.ts +19 -0
- package/dist/core/engine/ledger/index.d.ts.map +1 -0
- package/dist/core/engine/ledger/index.js +2 -0
- package/dist/core/engine/ledger/index.js.map +1 -0
- package/dist/core/engine/ledger/intent.d.ts +106 -0
- package/dist/core/engine/ledger/intent.d.ts.map +1 -0
- package/dist/core/engine/ledger/intent.js +21 -0
- package/dist/core/engine/ledger/intent.js.map +1 -0
- package/dist/core/engine/ledger/ledger.d.ts +143 -0
- package/dist/core/engine/ledger/ledger.d.ts.map +1 -0
- package/dist/core/engine/ledger/ledger.js +237 -0
- package/dist/core/engine/ledger/ledger.js.map +1 -0
- package/dist/core/engine/ledger/place.d.ts +75 -0
- package/dist/core/engine/ledger/place.d.ts.map +1 -0
- package/dist/core/engine/ledger/place.js +174 -0
- package/dist/core/engine/ledger/place.js.map +1 -0
- package/dist/core/engine/ledger/positions.d.ts +68 -0
- package/dist/core/engine/ledger/positions.d.ts.map +1 -0
- package/dist/core/engine/ledger/positions.js +114 -0
- package/dist/core/engine/ledger/positions.js.map +1 -0
- package/dist/core/engine/ledger/refuse.d.ts +43 -0
- package/dist/core/engine/ledger/refuse.d.ts.map +1 -0
- package/dist/core/engine/ledger/refuse.js +329 -0
- package/dist/core/engine/ledger/refuse.js.map +1 -0
- package/dist/core/engine/ledger/row.d.ts +176 -0
- package/dist/core/engine/ledger/row.d.ts.map +1 -0
- package/dist/core/engine/ledger/row.js +169 -0
- package/dist/core/engine/ledger/row.js.map +1 -0
- package/dist/core/engine/ledger/sizing.d.ts +142 -0
- package/dist/core/engine/ledger/sizing.d.ts.map +1 -0
- package/dist/core/engine/ledger/sizing.js +223 -0
- package/dist/core/engine/ledger/sizing.js.map +1 -0
- package/dist/core/engine/library/arrays.d.ts +14 -0
- package/dist/core/engine/library/arrays.d.ts.map +1 -0
- package/dist/core/engine/library/arrays.js +285 -0
- package/dist/core/engine/library/arrays.js.map +1 -0
- package/dist/core/engine/library/averages.d.ts +9 -0
- package/dist/core/engine/library/averages.d.ts.map +1 -0
- package/dist/core/engine/library/averages.js +41 -0
- package/dist/core/engine/library/averages.js.map +1 -0
- package/dist/core/engine/library/binding.d.ts +230 -0
- package/dist/core/engine/library/binding.d.ts.map +1 -0
- package/dist/core/engine/library/binding.js +109 -0
- package/dist/core/engine/library/binding.js.map +1 -0
- package/dist/core/engine/library/chart.d.ts +3 -0
- package/dist/core/engine/library/chart.d.ts.map +1 -0
- package/dist/core/engine/library/chart.js +83 -0
- package/dist/core/engine/library/chart.js.map +1 -0
- package/dist/core/engine/library/colours.d.ts +26 -0
- package/dist/core/engine/library/colours.d.ts.map +1 -0
- package/dist/core/engine/library/colours.js +81 -0
- package/dist/core/engine/library/colours.js.map +1 -0
- package/dist/core/engine/library/dates.d.ts +3 -0
- package/dist/core/engine/library/dates.d.ts.map +1 -0
- package/dist/core/engine/library/dates.js +75 -0
- package/dist/core/engine/library/dates.js.map +1 -0
- package/dist/core/engine/library/index.d.ts +13 -0
- package/dist/core/engine/library/index.d.ts.map +1 -0
- package/dist/core/engine/library/index.js +86 -0
- package/dist/core/engine/library/index.js.map +1 -0
- package/dist/core/engine/library/maths.d.ts +3 -0
- package/dist/core/engine/library/maths.d.ts.map +1 -0
- package/dist/core/engine/library/maths.js +89 -0
- package/dist/core/engine/library/maths.js.map +1 -0
- package/dist/core/engine/library/objects.d.ts +3 -0
- package/dist/core/engine/library/objects.d.ts.map +1 -0
- package/dist/core/engine/library/objects.js +199 -0
- package/dist/core/engine/library/objects.js.map +1 -0
- package/dist/core/engine/library/oscillators.d.ts +3 -0
- package/dist/core/engine/library/oscillators.d.ts.map +1 -0
- package/dist/core/engine/library/oscillators.js +29 -0
- package/dist/core/engine/library/oscillators.js.map +1 -0
- package/dist/core/engine/library/ranges.d.ts +3 -0
- package/dist/core/engine/library/ranges.d.ts.map +1 -0
- package/dist/core/engine/library/ranges.js +23 -0
- package/dist/core/engine/library/ranges.js.map +1 -0
- package/dist/core/engine/library/series.d.ts +3 -0
- package/dist/core/engine/library/series.d.ts.map +1 -0
- package/dist/core/engine/library/series.js +46 -0
- package/dist/core/engine/library/series.js.map +1 -0
- package/dist/core/engine/library/state.d.ts +35 -0
- package/dist/core/engine/library/state.d.ts.map +1 -0
- package/dist/core/engine/library/state.js +19 -0
- package/dist/core/engine/library/state.js.map +1 -0
- package/dist/core/engine/library/studies.d.ts +3 -0
- package/dist/core/engine/library/studies.d.ts.map +1 -0
- package/dist/core/engine/library/studies.js +35 -0
- package/dist/core/engine/library/studies.js.map +1 -0
- package/dist/core/engine/library/text.d.ts +6 -0
- package/dist/core/engine/library/text.d.ts.map +1 -0
- package/dist/core/engine/library/text.js +280 -0
- package/dist/core/engine/library/text.js.map +1 -0
- package/dist/core/engine/library/trend.d.ts +3 -0
- package/dist/core/engine/library/trend.d.ts.map +1 -0
- package/dist/core/engine/library/trend.js +29 -0
- package/dist/core/engine/library/trend.js.map +1 -0
- package/dist/core/engine/library/volume.d.ts +3 -0
- package/dist/core/engine/library/volume.d.ts.map +1 -0
- package/dist/core/engine/library/volume.js +51 -0
- package/dist/core/engine/library/volume.js.map +1 -0
- package/dist/core/engine/load.d.ts +59 -0
- package/dist/core/engine/load.d.ts.map +1 -0
- package/dist/core/engine/load.js +61 -0
- package/dist/core/engine/load.js.map +1 -0
- package/dist/core/engine/machine.d.ts +107 -0
- package/dist/core/engine/machine.d.ts.map +1 -0
- package/dist/core/engine/machine.js +337 -0
- package/dist/core/engine/machine.js.map +1 -0
- package/dist/core/engine/memory.d.ts +60 -0
- package/dist/core/engine/memory.d.ts.map +1 -0
- package/dist/core/engine/memory.js +92 -0
- package/dist/core/engine/memory.js.map +1 -0
- package/dist/core/engine/operations.d.ts +62 -0
- package/dist/core/engine/operations.d.ts.map +1 -0
- package/dist/core/engine/operations.js +149 -0
- package/dist/core/engine/operations.js.map +1 -0
- package/dist/core/engine/orders.d.ts +56 -0
- package/dist/core/engine/orders.d.ts.map +1 -0
- package/dist/core/engine/orders.js +83 -0
- package/dist/core/engine/orders.js.map +1 -0
- package/dist/core/engine/registers.d.ts +50 -0
- package/dist/core/engine/registers.d.ts.map +1 -0
- package/dist/core/engine/registers.js +85 -0
- package/dist/core/engine/registers.js.map +1 -0
- package/dist/core/engine/request-body.d.ts +138 -0
- package/dist/core/engine/request-body.d.ts.map +1 -0
- package/dist/core/engine/request-body.js +227 -0
- package/dist/core/engine/request-body.js.map +1 -0
- package/dist/core/engine/request-plan.d.ts +79 -0
- package/dist/core/engine/request-plan.d.ts.map +1 -0
- package/dist/core/engine/request-plan.js +228 -0
- package/dist/core/engine/request-plan.js.map +1 -0
- package/dist/core/engine/requests.d.ts +105 -0
- package/dist/core/engine/requests.d.ts.map +1 -0
- package/dist/core/engine/requests.js +260 -0
- package/dist/core/engine/requests.js.map +1 -0
- package/dist/core/engine/results.d.ts +40 -0
- package/dist/core/engine/results.d.ts.map +1 -0
- package/dist/core/engine/results.js +2 -0
- package/dist/core/engine/results.js.map +1 -0
- package/dist/core/engine/series.d.ts +61 -0
- package/dist/core/engine/series.d.ts.map +1 -0
- package/dist/core/engine/series.js +41 -0
- package/dist/core/engine/series.js.map +1 -0
- package/dist/core/engine/session/hours.d.ts +49 -0
- package/dist/core/engine/session/hours.d.ts.map +1 -0
- package/dist/core/engine/session/hours.js +31 -0
- package/dist/core/engine/session/hours.js.map +1 -0
- package/dist/core/engine/session/index.d.ts +17 -0
- package/dist/core/engine/session/index.d.ts.map +1 -0
- package/dist/core/engine/session/index.js +3 -0
- package/dist/core/engine/session/index.js.map +1 -0
- package/dist/core/engine/session/record.d.ts +56 -0
- package/dist/core/engine/session/record.d.ts.map +1 -0
- package/dist/core/engine/session/record.js +165 -0
- package/dist/core/engine/session/record.js.map +1 -0
- package/dist/core/engine/session/spec.d.ts +19 -0
- package/dist/core/engine/session/spec.d.ts.map +1 -0
- package/dist/core/engine/session/spec.js +31 -0
- package/dist/core/engine/session/spec.js.map +1 -0
- package/dist/core/engine/timeframe.d.ts +59 -0
- package/dist/core/engine/timeframe.d.ts.map +1 -0
- package/dist/core/engine/timeframe.js +140 -0
- package/dist/core/engine/timeframe.js.map +1 -0
- package/dist/core/engine/types.d.ts +15 -0
- package/dist/core/engine/types.d.ts.map +1 -0
- package/dist/core/engine/types.js +2 -0
- package/dist/core/engine/types.js.map +1 -0
- package/dist/core/engine/values/heap.d.ts +134 -0
- package/dist/core/engine/values/heap.d.ts.map +1 -0
- package/dist/core/engine/values/heap.js +230 -0
- package/dist/core/engine/values/heap.js.map +1 -0
- package/dist/core/engine/values/index.d.ts +13 -0
- package/dist/core/engine/values/index.d.ts.map +1 -0
- package/dist/core/engine/values/index.js +3 -0
- package/dist/core/engine/values/index.js.map +1 -0
- package/dist/core/engine/values/value.d.ts +82 -0
- package/dist/core/engine/values/value.d.ts.map +1 -0
- package/dist/core/engine/values/value.js +134 -0
- package/dist/core/engine/values/value.js.map +1 -0
- package/dist/core/engine/verify-budgets.d.ts +35 -0
- package/dist/core/engine/verify-budgets.d.ts.map +1 -0
- package/dist/core/engine/verify-budgets.js +172 -0
- package/dist/core/engine/verify-budgets.js.map +1 -0
- package/dist/core/engine/verify-code.d.ts +32 -0
- package/dist/core/engine/verify-code.d.ts.map +1 -0
- package/dist/core/engine/verify-code.js +278 -0
- package/dist/core/engine/verify-code.js.map +1 -0
- package/dist/core/engine/verify-requests.d.ts +44 -0
- package/dist/core/engine/verify-requests.d.ts.map +1 -0
- package/dist/core/engine/verify-requests.js +220 -0
- package/dist/core/engine/verify-requests.js.map +1 -0
- package/dist/core/engine/verify-shape.d.ts +46 -0
- package/dist/core/engine/verify-shape.d.ts.map +1 -0
- package/dist/core/engine/verify-shape.js +147 -0
- package/dist/core/engine/verify-shape.js.map +1 -0
- package/dist/core/engine/verify-tables.d.ts +19 -0
- package/dist/core/engine/verify-tables.d.ts.map +1 -0
- package/dist/core/engine/verify-tables.js +171 -0
- package/dist/core/engine/verify-tables.js.map +1 -0
- package/dist/core/engine/verify.d.ts +19 -0
- package/dist/core/engine/verify.d.ts.map +1 -0
- package/dist/core/engine/verify.js +309 -0
- package/dist/core/engine/verify.js.map +1 -0
- package/dist/core/index.d.ts +95 -6
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +64 -6
- package/dist/core/index.js.map +1 -1
- package/dist/core/parse/expressions.js +1 -1
- package/dist/core/parse/expressions.js.map +1 -1
- package/dist/core/parse/names.d.ts +7 -1
- package/dist/core/parse/names.d.ts.map +1 -1
- package/dist/core/parse/names.js +28 -2
- package/dist/core/parse/names.js.map +1 -1
- package/dist/core/stdlib/averages/exponential.d.ts +51 -0
- package/dist/core/stdlib/averages/exponential.d.ts.map +1 -0
- package/dist/core/stdlib/averages/exponential.js +72 -0
- package/dist/core/stdlib/averages/exponential.js.map +1 -0
- package/dist/core/stdlib/averages/index.d.ts +7 -0
- package/dist/core/stdlib/averages/index.d.ts.map +1 -0
- package/dist/core/stdlib/averages/index.js +5 -0
- package/dist/core/stdlib/averages/index.js.map +1 -0
- package/dist/core/stdlib/averages/select.d.ts +35 -0
- package/dist/core/stdlib/averages/select.d.ts.map +1 -0
- package/dist/core/stdlib/averages/select.js +43 -0
- package/dist/core/stdlib/averages/select.js.map +1 -0
- package/dist/core/stdlib/averages/shaped.d.ts +61 -0
- package/dist/core/stdlib/averages/shaped.d.ts.map +1 -0
- package/dist/core/stdlib/averages/shaped.js +126 -0
- package/dist/core/stdlib/averages/shaped.js.map +1 -0
- package/dist/core/stdlib/averages/simple.d.ts +58 -0
- package/dist/core/stdlib/averages/simple.d.ts.map +1 -0
- package/dist/core/stdlib/averages/simple.js +92 -0
- package/dist/core/stdlib/averages/simple.js.map +1 -0
- package/dist/core/stdlib/calendar/civil.d.ts +56 -0
- package/dist/core/stdlib/calendar/civil.d.ts.map +1 -0
- package/dist/core/stdlib/calendar/civil.js +70 -0
- package/dist/core/stdlib/calendar/civil.js.map +1 -0
- package/dist/core/stdlib/calendar/fields.d.ts +36 -0
- package/dist/core/stdlib/calendar/fields.d.ts.map +1 -0
- package/dist/core/stdlib/calendar/fields.js +93 -0
- package/dist/core/stdlib/calendar/fields.js.map +1 -0
- package/dist/core/stdlib/calendar/format.d.ts +19 -0
- package/dist/core/stdlib/calendar/format.d.ts.map +1 -0
- package/dist/core/stdlib/calendar/format.js +51 -0
- package/dist/core/stdlib/calendar/format.js.map +1 -0
- package/dist/core/stdlib/calendar/index.d.ts +7 -0
- package/dist/core/stdlib/calendar/index.d.ts.map +1 -0
- package/dist/core/stdlib/calendar/index.js +5 -0
- package/dist/core/stdlib/calendar/index.js.map +1 -0
- package/dist/core/stdlib/calendar/zone.d.ts +53 -0
- package/dist/core/stdlib/calendar/zone.d.ts.map +1 -0
- package/dist/core/stdlib/calendar/zone.js +138 -0
- package/dist/core/stdlib/calendar/zone.js.map +1 -0
- package/dist/core/stdlib/index.d.ts +57 -0
- package/dist/core/stdlib/index.d.ts.map +1 -0
- package/dist/core/stdlib/index.js +51 -0
- package/dist/core/stdlib/index.js.map +1 -0
- package/dist/core/stdlib/maths/arithmetic.d.ts +38 -0
- package/dist/core/stdlib/maths/arithmetic.d.ts.map +1 -0
- package/dist/core/stdlib/maths/arithmetic.js +66 -0
- package/dist/core/stdlib/maths/arithmetic.js.map +1 -0
- package/dist/core/stdlib/maths/elementary.d.ts +65 -0
- package/dist/core/stdlib/maths/elementary.d.ts.map +1 -0
- package/dist/core/stdlib/maths/elementary.js +93 -0
- package/dist/core/stdlib/maths/elementary.js.map +1 -0
- package/dist/core/stdlib/maths/index.d.ts +4 -0
- package/dist/core/stdlib/maths/index.d.ts.map +1 -0
- package/dist/core/stdlib/maths/index.js +4 -0
- package/dist/core/stdlib/maths/index.js.map +1 -0
- package/dist/core/stdlib/maths/rounding.d.ts +43 -0
- package/dist/core/stdlib/maths/rounding.d.ts.map +1 -0
- package/dist/core/stdlib/maths/rounding.js +62 -0
- package/dist/core/stdlib/maths/rounding.js.map +1 -0
- package/dist/core/stdlib/momentum/convergence.d.ts +36 -0
- package/dist/core/stdlib/momentum/convergence.d.ts.map +1 -0
- package/dist/core/stdlib/momentum/convergence.js +48 -0
- package/dist/core/stdlib/momentum/convergence.js.map +1 -0
- package/dist/core/stdlib/momentum/index.d.ts +6 -0
- package/dist/core/stdlib/momentum/index.d.ts.map +1 -0
- package/dist/core/stdlib/momentum/index.js +6 -0
- package/dist/core/stdlib/momentum/index.js.map +1 -0
- package/dist/core/stdlib/momentum/pressure.d.ts +43 -0
- package/dist/core/stdlib/momentum/pressure.d.ts.map +1 -0
- package/dist/core/stdlib/momentum/pressure.js +103 -0
- package/dist/core/stdlib/momentum/pressure.js.map +1 -0
- package/dist/core/stdlib/momentum/rates.d.ts +74 -0
- package/dist/core/stdlib/momentum/rates.d.ts.map +1 -0
- package/dist/core/stdlib/momentum/rates.js +134 -0
- package/dist/core/stdlib/momentum/rates.js.map +1 -0
- package/dist/core/stdlib/momentum/rsi.d.ts +21 -0
- package/dist/core/stdlib/momentum/rsi.d.ts.map +1 -0
- package/dist/core/stdlib/momentum/rsi.js +30 -0
- package/dist/core/stdlib/momentum/rsi.js.map +1 -0
- package/dist/core/stdlib/momentum/stochastic.d.ts +44 -0
- package/dist/core/stdlib/momentum/stochastic.d.ts.map +1 -0
- package/dist/core/stdlib/momentum/stochastic.js +97 -0
- package/dist/core/stdlib/momentum/stochastic.js.map +1 -0
- package/dist/core/stdlib/series/changes.d.ts +59 -0
- package/dist/core/stdlib/series/changes.d.ts.map +1 -0
- package/dist/core/stdlib/series/changes.js +129 -0
- package/dist/core/stdlib/series/changes.js.map +1 -0
- package/dist/core/stdlib/series/conditions.d.ts +34 -0
- package/dist/core/stdlib/series/conditions.d.ts.map +1 -0
- package/dist/core/stdlib/series/conditions.js +52 -0
- package/dist/core/stdlib/series/conditions.js.map +1 -0
- package/dist/core/stdlib/series/extremes.d.ts +29 -0
- package/dist/core/stdlib/series/extremes.d.ts.map +1 -0
- package/dist/core/stdlib/series/extremes.js +62 -0
- package/dist/core/stdlib/series/extremes.js.map +1 -0
- package/dist/core/stdlib/series/index.d.ts +9 -0
- package/dist/core/stdlib/series/index.d.ts.map +1 -0
- package/dist/core/stdlib/series/index.js +7 -0
- package/dist/core/stdlib/series/index.js.map +1 -0
- package/dist/core/stdlib/series/pivots.d.ts +25 -0
- package/dist/core/stdlib/series/pivots.d.ts.map +1 -0
- package/dist/core/stdlib/series/pivots.js +42 -0
- package/dist/core/stdlib/series/pivots.js.map +1 -0
- package/dist/core/stdlib/series/statistics.d.ts +64 -0
- package/dist/core/stdlib/series/statistics.d.ts.map +1 -0
- package/dist/core/stdlib/series/statistics.js +148 -0
- package/dist/core/stdlib/series/statistics.js.map +1 -0
- package/dist/core/stdlib/series/totals.d.ts +68 -0
- package/dist/core/stdlib/series/totals.d.ts.map +1 -0
- package/dist/core/stdlib/series/totals.js +115 -0
- package/dist/core/stdlib/series/totals.js.map +1 -0
- package/dist/core/stdlib/trend/directional.d.ts +69 -0
- package/dist/core/stdlib/trend/directional.d.ts.map +1 -0
- package/dist/core/stdlib/trend/directional.js +151 -0
- package/dist/core/stdlib/trend/directional.js.map +1 -0
- package/dist/core/stdlib/trend/index.d.ts +4 -0
- package/dist/core/stdlib/trend/index.d.ts.map +1 -0
- package/dist/core/stdlib/trend/index.js +4 -0
- package/dist/core/stdlib/trend/index.js.map +1 -0
- package/dist/core/stdlib/trend/psar.d.ts +33 -0
- package/dist/core/stdlib/trend/psar.d.ts.map +1 -0
- package/dist/core/stdlib/trend/psar.js +86 -0
- package/dist/core/stdlib/trend/psar.js.map +1 -0
- package/dist/core/stdlib/trend/supertrend.d.ts +30 -0
- package/dist/core/stdlib/trend/supertrend.d.ts.map +1 -0
- package/dist/core/stdlib/trend/supertrend.js +65 -0
- package/dist/core/stdlib/trend/supertrend.js.map +1 -0
- package/dist/core/stdlib/values/bar.d.ts +39 -0
- package/dist/core/stdlib/values/bar.d.ts.map +1 -0
- package/dist/core/stdlib/values/bar.js +33 -0
- package/dist/core/stdlib/values/bar.js.map +1 -0
- package/dist/core/stdlib/values/index.d.ts +11 -0
- package/dist/core/stdlib/values/index.d.ts.map +1 -0
- package/dist/core/stdlib/values/index.js +6 -0
- package/dist/core/stdlib/values/index.js.map +1 -0
- package/dist/core/stdlib/values/lookback.d.ts +83 -0
- package/dist/core/stdlib/values/lookback.d.ts.map +1 -0
- package/dist/core/stdlib/values/lookback.js +134 -0
- package/dist/core/stdlib/values/lookback.js.map +1 -0
- package/dist/core/stdlib/values/region.d.ts +55 -0
- package/dist/core/stdlib/values/region.d.ts.map +1 -0
- package/dist/core/stdlib/values/region.js +73 -0
- package/dist/core/stdlib/values/region.js.map +1 -0
- package/dist/core/stdlib/values/tail.d.ts +44 -0
- package/dist/core/stdlib/values/tail.d.ts.map +1 -0
- package/dist/core/stdlib/values/tail.js +23 -0
- package/dist/core/stdlib/values/tail.js.map +1 -0
- package/dist/core/stdlib/values/value.d.ts +64 -0
- package/dist/core/stdlib/values/value.d.ts.map +1 -0
- package/dist/core/stdlib/values/value.js +61 -0
- package/dist/core/stdlib/values/value.js.map +1 -0
- package/dist/core/stdlib/volatility/bands.d.ts +50 -0
- package/dist/core/stdlib/volatility/bands.d.ts.map +1 -0
- package/dist/core/stdlib/volatility/bands.js +101 -0
- package/dist/core/stdlib/volatility/bands.js.map +1 -0
- package/dist/core/stdlib/volatility/deviation.d.ts +43 -0
- package/dist/core/stdlib/volatility/deviation.d.ts.map +1 -0
- package/dist/core/stdlib/volatility/deviation.js +75 -0
- package/dist/core/stdlib/volatility/deviation.js.map +1 -0
- package/dist/core/stdlib/volatility/index.d.ts +6 -0
- package/dist/core/stdlib/volatility/index.d.ts.map +1 -0
- package/dist/core/stdlib/volatility/index.js +5 -0
- package/dist/core/stdlib/volatility/index.js.map +1 -0
- package/dist/core/stdlib/volatility/measures.d.ts +48 -0
- package/dist/core/stdlib/volatility/measures.d.ts.map +1 -0
- package/dist/core/stdlib/volatility/measures.js +73 -0
- package/dist/core/stdlib/volatility/measures.js.map +1 -0
- package/dist/core/stdlib/volatility/range.d.ts +69 -0
- package/dist/core/stdlib/volatility/range.d.ts.map +1 -0
- package/dist/core/stdlib/volatility/range.js +86 -0
- package/dist/core/stdlib/volatility/range.js.map +1 -0
- package/dist/core/stdlib/volume/accumulation.d.ts +61 -0
- package/dist/core/stdlib/volume/accumulation.d.ts.map +1 -0
- package/dist/core/stdlib/volume/accumulation.js +127 -0
- package/dist/core/stdlib/volume/accumulation.js.map +1 -0
- package/dist/core/stdlib/volume/flow.d.ts +60 -0
- package/dist/core/stdlib/volume/flow.d.ts.map +1 -0
- package/dist/core/stdlib/volume/flow.js +125 -0
- package/dist/core/stdlib/volume/flow.js.map +1 -0
- package/dist/core/stdlib/volume/index.d.ts +5 -0
- package/dist/core/stdlib/volume/index.d.ts.map +1 -0
- package/dist/core/stdlib/volume/index.js +4 -0
- package/dist/core/stdlib/volume/index.js.map +1 -0
- package/dist/core/stdlib/volume/weighted.d.ts +52 -0
- package/dist/core/stdlib/volume/weighted.d.ts.map +1 -0
- package/dist/core/stdlib/volume/weighted.js +64 -0
- package/dist/core/stdlib/volume/weighted.js.map +1 -0
- package/dist/core/version/version.generated.d.ts +2 -2
- package/dist/core/version/version.generated.d.ts.map +1 -1
- package/dist/core/version/version.generated.js +2 -2
- package/dist/core/version/version.generated.js.map +1 -1
- package/dist/editor/complete.d.ts +40 -0
- package/dist/editor/complete.d.ts.map +1 -0
- package/dist/editor/complete.js +206 -0
- package/dist/editor/complete.js.map +1 -0
- package/dist/editor/diagnose.d.ts +18 -0
- package/dist/editor/diagnose.d.ts.map +1 -0
- package/dist/editor/diagnose.js +70 -0
- package/dist/editor/diagnose.js.map +1 -0
- package/dist/editor/format.d.ts +11 -0
- package/dist/editor/format.d.ts.map +1 -0
- package/dist/editor/format.js +50 -0
- package/dist/editor/format.js.map +1 -0
- package/dist/editor/highlight.d.ts +28 -0
- package/dist/editor/highlight.d.ts.map +1 -0
- package/dist/editor/highlight.js +65 -0
- package/dist/editor/highlight.js.map +1 -0
- package/dist/editor/hover.d.ts +40 -0
- package/dist/editor/hover.d.ts.map +1 -0
- package/dist/editor/hover.js +147 -0
- package/dist/editor/hover.js.map +1 -0
- package/dist/editor/index.d.ts +60 -0
- package/dist/editor/index.d.ts.map +1 -0
- package/dist/editor/index.js +7 -0
- package/dist/editor/index.js.map +1 -0
- package/dist/editor/kinds.d.ts +27 -0
- package/dist/editor/kinds.d.ts.map +1 -0
- package/dist/editor/kinds.js +118 -0
- package/dist/editor/kinds.js.map +1 -0
- package/dist/editor/layout.d.ts +47 -0
- package/dist/editor/layout.d.ts.map +1 -0
- package/dist/editor/layout.js +135 -0
- package/dist/editor/layout.js.map +1 -0
- package/dist/editor/manifest.d.ts +47 -0
- package/dist/editor/manifest.d.ts.map +1 -0
- package/dist/editor/manifest.js +93 -0
- package/dist/editor/manifest.js.map +1 -0
- package/dist/editor/reading.d.ts +41 -0
- package/dist/editor/reading.d.ts.map +1 -0
- package/dist/editor/reading.js +51 -0
- package/dist/editor/reading.js.map +1 -0
- package/dist/editor/scan.d.ts +26 -0
- package/dist/editor/scan.d.ts.map +1 -0
- package/dist/editor/scan.js +139 -0
- package/dist/editor/scan.js.map +1 -0
- package/dist/editor/scope.d.ts +19 -0
- package/dist/editor/scope.d.ts.map +1 -0
- package/dist/editor/scope.js +99 -0
- package/dist/editor/scope.js.map +1 -0
- package/dist/editor/signature.d.ts +38 -0
- package/dist/editor/signature.d.ts.map +1 -0
- package/dist/editor/signature.js +112 -0
- package/dist/editor/signature.js.map +1 -0
- package/dist/editor/site.d.ts +46 -0
- package/dist/editor/site.d.ts.map +1 -0
- package/dist/editor/site.js +184 -0
- package/dist/editor/site.js.map +1 -0
- package/dist/editor/spacing.d.ts +29 -0
- package/dist/editor/spacing.d.ts.map +1 -0
- package/dist/editor/spacing.js +116 -0
- package/dist/editor/spacing.js.map +1 -0
- package/package.json +66 -15
- package/spec/errors.json +522 -183
- package/src/adapters/charts/alerts.ts +116 -0
- package/src/adapters/charts/bars.ts +63 -0
- package/src/adapters/charts/candles.ts +137 -0
- package/src/adapters/charts/colours.ts +113 -0
- package/src/adapters/charts/columns.ts +99 -0
- package/src/adapters/charts/contract.ts +320 -0
- package/src/adapters/charts/descriptor.ts +199 -0
- package/src/adapters/charts/drawings.ts +213 -0
- package/src/adapters/charts/errors.ts +45 -0
- package/src/adapters/charts/fields.ts +74 -0
- package/src/adapters/charts/fills.ts +71 -0
- package/src/adapters/charts/index.ts +78 -0
- package/src/adapters/charts/levels.ts +92 -0
- package/src/adapters/charts/markers.ts +119 -0
- package/src/adapters/charts/paint.ts +101 -0
- package/src/adapters/charts/plots.ts +185 -0
- package/src/adapters/charts/produced.ts +68 -0
- package/src/adapters/charts/requests.ts +357 -0
- package/src/adapters/charts/run.ts +327 -0
- package/src/adapters/charts/settings.ts +273 -0
- package/src/adapters/charts/surfaces.ts +255 -0
- package/src/adapters/charts/tables.ts +243 -0
- package/src/adapters/codemirror/commands.ts +53 -0
- package/src/adapters/codemirror/completion.ts +74 -0
- package/src/adapters/codemirror/contract.ts +156 -0
- package/src/adapters/codemirror/index.ts +66 -0
- package/src/adapters/codemirror/lint.ts +66 -0
- package/src/adapters/codemirror/positions.ts +79 -0
- package/src/adapters/codemirror/stream.ts +87 -0
- package/src/adapters/codemirror/tokens.ts +64 -0
- package/src/adapters/codemirror/tooltips.ts +113 -0
- package/src/core/accounting/charges.ts +452 -0
- package/src/core/accounting/equity.ts +276 -0
- package/src/core/accounting/index.ts +49 -0
- package/src/core/accounting/markers.ts +95 -0
- package/src/core/accounting/monthly.ts +137 -0
- package/src/core/accounting/report.ts +89 -0
- package/src/core/accounting/shapes.ts +73 -0
- package/src/core/accounting/statistics.ts +350 -0
- package/src/core/accounting/trades.ts +313 -0
- package/src/core/backtest/compare.ts +244 -0
- package/src/core/backtest/declaration.ts +97 -0
- package/src/core/backtest/drive.ts +364 -0
- package/src/core/backtest/index.ts +52 -0
- package/src/core/backtest/range.ts +137 -0
- package/src/core/backtest/record.ts +341 -0
- package/src/core/backtest/replay.ts +158 -0
- package/src/core/backtest/resting.ts +125 -0
- package/src/core/backtest/settings.ts +280 -0
- package/src/core/backtest/simulate.ts +304 -0
- package/src/core/catalogue/catalogue.generated.ts +23 -9
- package/src/core/catalogue/values.generated.ts +14 -0
- package/src/core/check/arguments.ts +126 -0
- package/src/core/check/call-sites.ts +385 -0
- package/src/core/check/call-warmup.ts +121 -0
- package/src/core/check/calls.ts +412 -0
- package/src/core/check/check.ts +183 -0
- package/src/core/check/checked.ts +228 -0
- package/src/core/check/checker.ts +393 -0
- package/src/core/check/conditional.ts +143 -0
- package/src/core/check/constant.ts +127 -0
- package/src/core/check/declaration.ts +230 -0
- package/src/core/check/expressions.ts +471 -0
- package/src/core/check/functions.ts +283 -0
- package/src/core/check/handles.ts +75 -0
- package/src/core/check/index.ts +70 -0
- package/src/core/check/library-bars.ts +194 -0
- package/src/core/check/library-orders.ts +290 -0
- package/src/core/check/library-output.ts +241 -0
- package/src/core/check/library-prose.generated.ts +367 -0
- package/src/core/check/library-series.ts +457 -0
- package/src/core/check/library.ts +374 -0
- package/src/core/check/literals.ts +35 -0
- package/src/core/check/outputs.ts +152 -0
- package/src/core/check/statements.ts +465 -0
- package/src/core/check/suggest.ts +63 -0
- package/src/core/check/surface.ts +149 -0
- package/src/core/check/tags.ts +94 -0
- package/src/core/check/types.ts +260 -0
- package/src/core/check/warmup.ts +100 -0
- package/src/core/diagnostics/collector.ts +27 -1
- package/src/core/emit/calls.ts +415 -0
- package/src/core/emit/canonical.ts +81 -0
- package/src/core/emit/channels.ts +144 -0
- package/src/core/emit/code.ts +155 -0
- package/src/core/emit/colours.ts +75 -0
- package/src/core/emit/context.ts +461 -0
- package/src/core/emit/defaults.ts +220 -0
- package/src/core/emit/emit.ts +313 -0
- package/src/core/emit/events.ts +141 -0
- package/src/core/emit/expressions.ts +292 -0
- package/src/core/emit/functions.ts +195 -0
- package/src/core/emit/gaps.ts +44 -0
- package/src/core/emit/index.ts +76 -0
- package/src/core/emit/inputs.ts +179 -0
- package/src/core/emit/layout.ts +165 -0
- package/src/core/emit/meta.ts +104 -0
- package/src/core/emit/opcodes.ts +160 -0
- package/src/core/emit/outputs.ts +357 -0
- package/src/core/emit/pool.ts +102 -0
- package/src/core/emit/program.ts +385 -0
- package/src/core/emit/registers.ts +179 -0
- package/src/core/emit/request-scope.ts +52 -0
- package/src/core/emit/requests.ts +258 -0
- package/src/core/emit/requires.ts +91 -0
- package/src/core/emit/sha256.ts +119 -0
- package/src/core/emit/statements.ts +438 -0
- package/src/core/emit/values.ts +284 -0
- package/src/core/engine/alerts.ts +152 -0
- package/src/core/engine/arithmetic.ts +165 -0
- package/src/core/engine/bars.ts +224 -0
- package/src/core/engine/budget.ts +284 -0
- package/src/core/engine/channels.ts +171 -0
- package/src/core/engine/drawings.ts +127 -0
- package/src/core/engine/engine.ts +498 -0
- package/src/core/engine/errors.ts +100 -0
- package/src/core/engine/frames.ts +85 -0
- package/src/core/engine/grids.ts +98 -0
- package/src/core/engine/guard.ts +71 -0
- package/src/core/engine/host.ts +251 -0
- package/src/core/engine/index.ts +93 -0
- package/src/core/engine/inputs.ts +263 -0
- package/src/core/engine/ledger/call.ts +218 -0
- package/src/core/engine/ledger/closable.ts +269 -0
- package/src/core/engine/ledger/holdings.ts +354 -0
- package/src/core/engine/ledger/index.ts +28 -0
- package/src/core/engine/ledger/intent.ts +112 -0
- package/src/core/engine/ledger/ledger.ts +314 -0
- package/src/core/engine/ledger/place.ts +277 -0
- package/src/core/engine/ledger/positions.ts +123 -0
- package/src/core/engine/ledger/refuse.ts +378 -0
- package/src/core/engine/ledger/row.ts +318 -0
- package/src/core/engine/ledger/sizing.ts +292 -0
- package/src/core/engine/library/arrays.ts +316 -0
- package/src/core/engine/library/averages.ts +97 -0
- package/src/core/engine/library/binding.ts +325 -0
- package/src/core/engine/library/chart.ts +115 -0
- package/src/core/engine/library/colours.ts +111 -0
- package/src/core/engine/library/dates.ts +109 -0
- package/src/core/engine/library/index.ts +103 -0
- package/src/core/engine/library/maths.ts +134 -0
- package/src/core/engine/library/objects.ts +265 -0
- package/src/core/engine/library/oscillators.ts +124 -0
- package/src/core/engine/library/ranges.ts +51 -0
- package/src/core/engine/library/series.ts +236 -0
- package/src/core/engine/library/state.ts +47 -0
- package/src/core/engine/library/studies.ts +150 -0
- package/src/core/engine/library/text.ts +303 -0
- package/src/core/engine/library/trend.ts +79 -0
- package/src/core/engine/library/volume.ts +101 -0
- package/src/core/engine/load.ts +118 -0
- package/src/core/engine/machine.ts +446 -0
- package/src/core/engine/memory.ts +129 -0
- package/src/core/engine/operations.ts +171 -0
- package/src/core/engine/orders.ts +121 -0
- package/src/core/engine/registers.ts +104 -0
- package/src/core/engine/request-body.ts +328 -0
- package/src/core/engine/request-plan.ts +270 -0
- package/src/core/engine/requests.ts +382 -0
- package/src/core/engine/results.ts +41 -0
- package/src/core/engine/series.ts +82 -0
- package/src/core/engine/session/hours.ts +86 -0
- package/src/core/engine/session/index.ts +17 -0
- package/src/core/engine/session/record.ts +191 -0
- package/src/core/engine/session/spec.ts +45 -0
- package/src/core/engine/timeframe.ts +161 -0
- package/src/core/engine/types.ts +47 -0
- package/src/core/engine/values/heap.ts +295 -0
- package/src/core/engine/values/index.ts +34 -0
- package/src/core/engine/values/value.ts +158 -0
- package/src/core/engine/verify-budgets.ts +202 -0
- package/src/core/engine/verify-code.ts +332 -0
- package/src/core/engine/verify-requests.ts +255 -0
- package/src/core/engine/verify-shape.ts +164 -0
- package/src/core/engine/verify-tables.ts +176 -0
- package/src/core/engine/verify.ts +341 -0
- package/src/core/index.ts +212 -6
- package/src/core/parse/expressions.ts +1 -1
- package/src/core/parse/names.ts +29 -2
- package/src/core/stdlib/averages/exponential.ts +119 -0
- package/src/core/stdlib/averages/index.ts +45 -0
- package/src/core/stdlib/averages/select.ts +71 -0
- package/src/core/stdlib/averages/shaped.ts +161 -0
- package/src/core/stdlib/averages/simple.ts +139 -0
- package/src/core/stdlib/calendar/civil.ts +89 -0
- package/src/core/stdlib/calendar/fields.ts +124 -0
- package/src/core/stdlib/calendar/format.ts +71 -0
- package/src/core/stdlib/calendar/index.ts +15 -0
- package/src/core/stdlib/calendar/zone.ts +161 -0
- package/src/core/stdlib/index.ts +400 -0
- package/src/core/stdlib/maths/arithmetic.ts +74 -0
- package/src/core/stdlib/maths/elementary.ts +124 -0
- package/src/core/stdlib/maths/index.ts +43 -0
- package/src/core/stdlib/maths/rounding.ts +78 -0
- package/src/core/stdlib/momentum/convergence.ts +82 -0
- package/src/core/stdlib/momentum/index.ts +47 -0
- package/src/core/stdlib/momentum/pressure.ts +141 -0
- package/src/core/stdlib/momentum/rates.ts +188 -0
- package/src/core/stdlib/momentum/rsi.ts +49 -0
- package/src/core/stdlib/momentum/stochastic.ts +147 -0
- package/src/core/stdlib/series/changes.ts +177 -0
- package/src/core/stdlib/series/conditions.ts +74 -0
- package/src/core/stdlib/series/extremes.ts +92 -0
- package/src/core/stdlib/series/index.ts +83 -0
- package/src/core/stdlib/series/pivots.ts +63 -0
- package/src/core/stdlib/series/statistics.ts +207 -0
- package/src/core/stdlib/series/totals.ts +164 -0
- package/src/core/stdlib/trend/directional.ts +196 -0
- package/src/core/stdlib/trend/index.ts +13 -0
- package/src/core/stdlib/trend/psar.ts +131 -0
- package/src/core/stdlib/trend/supertrend.ts +100 -0
- package/src/core/stdlib/values/bar.ts +54 -0
- package/src/core/stdlib/values/index.ts +14 -0
- package/src/core/stdlib/values/lookback.ts +198 -0
- package/src/core/stdlib/values/region.ts +86 -0
- package/src/core/stdlib/values/tail.ts +58 -0
- package/src/core/stdlib/values/value.ts +82 -0
- package/src/core/stdlib/volatility/bands.ts +178 -0
- package/src/core/stdlib/volatility/deviation.ts +111 -0
- package/src/core/stdlib/volatility/index.ts +48 -0
- package/src/core/stdlib/volatility/measures.ts +96 -0
- package/src/core/stdlib/volatility/range.ts +143 -0
- package/src/core/stdlib/volume/accumulation.ts +152 -0
- package/src/core/stdlib/volume/flow.ts +173 -0
- package/src/core/stdlib/volume/index.ts +43 -0
- package/src/core/stdlib/volume/weighted.ts +101 -0
- package/src/core/version/version.generated.ts +2 -2
- package/src/editor/complete.ts +266 -0
- package/src/editor/diagnose.ts +71 -0
- package/src/editor/format.ts +85 -0
- package/src/editor/highlight.ts +110 -0
- package/src/editor/hover.ts +199 -0
- package/src/editor/index.ts +65 -0
- package/src/editor/kinds.ts +157 -0
- package/src/editor/layout.ts +189 -0
- package/src/editor/manifest.ts +119 -0
- package/src/editor/reading.ts +69 -0
- package/src/editor/scan.ts +162 -0
- package/src/editor/scope.ts +122 -0
- package/src/editor/signature.ts +150 -0
- package/src/editor/site.ts +233 -0
- package/src/editor/spacing.ts +132 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { NONE, fold, held, isPresent, result, slot, tailOf } from '../values/index.js';
|
|
2
|
+
import { emaStep } from '../averages/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Where the close sat inside the bar, as -1 at the low to 1 at the high, times
|
|
5
|
+
* the volume behind it.
|
|
6
|
+
*
|
|
7
|
+
* A bar whose high and low are equal has no position inside it to report, and
|
|
8
|
+
* the settled treatment is that such a bar contributes nothing rather than
|
|
9
|
+
* ending the running total.
|
|
10
|
+
*/
|
|
11
|
+
export function moneyFlow(bar) {
|
|
12
|
+
if (!isPresent(bar.high) || !isPresent(bar.low))
|
|
13
|
+
return NONE;
|
|
14
|
+
if (!isPresent(bar.close) || !isPresent(bar.volume))
|
|
15
|
+
return NONE;
|
|
16
|
+
const span = bar.high - bar.low;
|
|
17
|
+
if (!(span > 0))
|
|
18
|
+
return 0;
|
|
19
|
+
return result((((bar.close - bar.low) - (bar.high - bar.close)) / span) * bar.volume);
|
|
20
|
+
}
|
|
21
|
+
/** `obv()`: the running total of volume signed by the close's direction, from bar 0, seeded 0. */
|
|
22
|
+
export function obvStep(state, key, bar) {
|
|
23
|
+
const totalKey = `${key}t`;
|
|
24
|
+
const closeKey = `${key}p`;
|
|
25
|
+
const seenKey = `${key}k`;
|
|
26
|
+
const previousClose = held(state, closeKey);
|
|
27
|
+
const started = state[seenKey] === true;
|
|
28
|
+
if (!isPresent(bar.volume) || !isPresent(bar.close)) {
|
|
29
|
+
state[seenKey] = true;
|
|
30
|
+
state[closeKey] = bar.close;
|
|
31
|
+
return NONE;
|
|
32
|
+
}
|
|
33
|
+
let total = slot(state, totalKey, 0);
|
|
34
|
+
if (started && isPresent(previousClose)) {
|
|
35
|
+
if (bar.close > previousClose)
|
|
36
|
+
total += bar.volume;
|
|
37
|
+
else if (bar.close < previousClose)
|
|
38
|
+
total -= bar.volume;
|
|
39
|
+
}
|
|
40
|
+
state[seenKey] = true;
|
|
41
|
+
state[closeKey] = bar.close;
|
|
42
|
+
state[totalKey] = total;
|
|
43
|
+
return result(total);
|
|
44
|
+
}
|
|
45
|
+
/** `obv()` as a tail. */
|
|
46
|
+
export function obvTail() {
|
|
47
|
+
return tailOf((state, bar) => obvStep(state, '', bar));
|
|
48
|
+
}
|
|
49
|
+
/** `obv()` over a run of bars. */
|
|
50
|
+
export function obv(bars) {
|
|
51
|
+
return fold(obvTail(), bars);
|
|
52
|
+
}
|
|
53
|
+
/** `ad()`: the running total of volume weighted by where the close sat, from bar 0. */
|
|
54
|
+
export function adStep(state, key, bar) {
|
|
55
|
+
const flow = moneyFlow(bar);
|
|
56
|
+
if (!isPresent(flow))
|
|
57
|
+
return NONE;
|
|
58
|
+
const total = slot(state, `${key}t`, 0) + flow;
|
|
59
|
+
state[`${key}t`] = total;
|
|
60
|
+
return result(total);
|
|
61
|
+
}
|
|
62
|
+
/** `ad()` as a tail. */
|
|
63
|
+
export function adTail() {
|
|
64
|
+
return tailOf((state, bar) => adStep(state, '', bar));
|
|
65
|
+
}
|
|
66
|
+
/** `ad()` over a run of bars. */
|
|
67
|
+
export function ad(bars) {
|
|
68
|
+
return fold(adTail(), bars);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* `adOsc(fast, slow)`: the difference of two means of `ad`, from bar `slow - 1`.
|
|
72
|
+
*
|
|
73
|
+
* The averages run over the running total, not over the per-bar term, so what
|
|
74
|
+
* this measures is acceleration in accumulation rather than the flow itself.
|
|
75
|
+
*/
|
|
76
|
+
export function adOscStep(state, key, bar, fast, slow) {
|
|
77
|
+
const total = adStep(state, `${key}a`, bar);
|
|
78
|
+
const near = emaStep(state, `${key}f`, total, fast);
|
|
79
|
+
const far = emaStep(state, `${key}s`, total, slow);
|
|
80
|
+
if (!isPresent(near) || !isPresent(far))
|
|
81
|
+
return NONE;
|
|
82
|
+
return result(near - far);
|
|
83
|
+
}
|
|
84
|
+
/** `adOsc(fast, slow)` as a tail. */
|
|
85
|
+
export function adOscTail(fast = 3, slow = 10) {
|
|
86
|
+
return tailOf((state, bar) => adOscStep(state, '', bar, fast, slow));
|
|
87
|
+
}
|
|
88
|
+
/** `adOsc(fast, slow)` over a run of bars. */
|
|
89
|
+
export function adOsc(bars, fast = 3, slow = 10) {
|
|
90
|
+
return fold(adOscTail(fast, slow), bars);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* `pvt()`: the running total of volume weighted by percentage change, from bar
|
|
94
|
+
* 1, seeded 0.
|
|
95
|
+
*
|
|
96
|
+
* The total starts at zero before the first change, and the first change is at
|
|
97
|
+
* bar 1, so bar 0 is absent and bar 1 already carries its own term. Reporting a
|
|
98
|
+
* zero at bar 0 would claim a reading on a bar where the quantity is not
|
|
99
|
+
* defined.
|
|
100
|
+
*/
|
|
101
|
+
export function pvtStep(state, key, bar) {
|
|
102
|
+
const totalKey = `${key}t`;
|
|
103
|
+
const closeKey = `${key}p`;
|
|
104
|
+
const seenKey = `${key}k`;
|
|
105
|
+
const before = held(state, closeKey);
|
|
106
|
+
const started = state[seenKey] === true;
|
|
107
|
+
state[seenKey] = true;
|
|
108
|
+
state[closeKey] = bar.close;
|
|
109
|
+
if (!started)
|
|
110
|
+
return NONE;
|
|
111
|
+
if (!isPresent(before) || before === 0)
|
|
112
|
+
return NONE;
|
|
113
|
+
if (!isPresent(bar.close) || !isPresent(bar.volume))
|
|
114
|
+
return NONE;
|
|
115
|
+
const total = slot(state, totalKey, 0) + ((bar.close - before) / before) * bar.volume;
|
|
116
|
+
state[totalKey] = total;
|
|
117
|
+
return result(total);
|
|
118
|
+
}
|
|
119
|
+
/** `pvt()` as a tail. */
|
|
120
|
+
export function pvtTail() {
|
|
121
|
+
return tailOf((state, bar) => pvtStep(state, '', bar));
|
|
122
|
+
}
|
|
123
|
+
/** `pvt()` over a run of bars. */
|
|
124
|
+
export function pvt(bars) {
|
|
125
|
+
return fold(pvtTail(), bars);
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=accumulation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accumulation.js","sourceRoot":"","sources":["../../../../src/core/stdlib/volume/accumulation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The lookback volume readings: `cmf`, `mfi`, `eom`, `forceIndex` and
|
|
3
|
+
* `relativeVolume`.
|
|
4
|
+
*
|
|
5
|
+
* Each is written once, as a step over a state region, and its tail is that
|
|
6
|
+
* step over a region of its own.
|
|
7
|
+
*/
|
|
8
|
+
import type { Bar, StateRecord, Tail, Value } from '../values/index.js';
|
|
9
|
+
/** `cmf(len)`: accumulation over the lookback as a fraction of its volume, from bar `len - 1`. */
|
|
10
|
+
export declare function cmfStep(state: StateRecord, key: string, bar: Bar, len: number | null): Value;
|
|
11
|
+
/** `cmf(len)` as a tail. */
|
|
12
|
+
export declare function cmfTail(len?: number): Tail<Bar, Value>;
|
|
13
|
+
/** `cmf(len)` over a run of bars. */
|
|
14
|
+
export declare function cmf(bars: readonly Bar[], len?: number): Value[];
|
|
15
|
+
/**
|
|
16
|
+
* `mfi(len)`: the strength reading computed on money flow rather than price,
|
|
17
|
+
* from bar `len`.
|
|
18
|
+
*
|
|
19
|
+
* A bar's whole flow counts on one side or the other, by whether the typical
|
|
20
|
+
* price rose or fell, so the first lookback is bars 1 to `len` and the extra bar
|
|
21
|
+
* is in the declared warmup.
|
|
22
|
+
*/
|
|
23
|
+
export declare function mfiStep(state: StateRecord, key: string, bar: Bar, len: number | null): Value;
|
|
24
|
+
/** `mfi(len)` as a tail. */
|
|
25
|
+
export declare function mfiTail(len?: number): Tail<Bar, Value>;
|
|
26
|
+
/** `mfi(len)` over a run of bars. */
|
|
27
|
+
export declare function mfi(bars: readonly Bar[], len?: number): Value[];
|
|
28
|
+
/**
|
|
29
|
+
* `eom(len)`: how far price moved per unit of volume, from bar `len`.
|
|
30
|
+
*
|
|
31
|
+
* The midpoint's move, times the bar's range, over the volume traded, then
|
|
32
|
+
* averaged over the lookback. The midpoint move needs the previous bar, so the
|
|
33
|
+
* average's lookback starts at bar 1 and the first reading is at bar `len`.
|
|
34
|
+
*
|
|
35
|
+
* **No scaling constant.** Implementations of this reading usually multiply by
|
|
36
|
+
* a large divisor whose only job is to bring the number into a readable range,
|
|
37
|
+
* and they do not agree on it. `stdlib.md` section 7 declares `eom(len = 14)`
|
|
38
|
+
* with no such argument, so there is none here and the reading is the quantity
|
|
39
|
+
* itself. That leaves it very small on a liquid instrument, which is recorded
|
|
40
|
+
* as a gap in the specification rather than papered over with a constant this
|
|
41
|
+
* library invented.
|
|
42
|
+
*/
|
|
43
|
+
export declare function eomStep(state: StateRecord, key: string, bar: Bar, len: number | null): Value;
|
|
44
|
+
/** `eom(len)` as a tail. */
|
|
45
|
+
export declare function eomTail(len?: number): Tail<Bar, Value>;
|
|
46
|
+
/** `eom(len)` over a run of bars. */
|
|
47
|
+
export declare function eom(bars: readonly Bar[], len?: number): Value[];
|
|
48
|
+
/** `forceIndex(len)`: change times volume, smoothed, from bar `len`. */
|
|
49
|
+
export declare function forceIndexStep(state: StateRecord, key: string, bar: Bar, len: number | null): Value;
|
|
50
|
+
/** `forceIndex(len)` as a tail. */
|
|
51
|
+
export declare function forceIndexTail(len?: number): Tail<Bar, Value>;
|
|
52
|
+
/** `forceIndex(len)` over a run of bars. */
|
|
53
|
+
export declare function forceIndex(bars: readonly Bar[], len?: number): Value[];
|
|
54
|
+
/** `relativeVolume(len)`: this bar's volume over its own recent average, from bar `len - 1`. */
|
|
55
|
+
export declare function relativeVolumeStep(state: StateRecord, key: string, volume: Value, len: number | null): Value;
|
|
56
|
+
/** `relativeVolume(len)` as a tail. */
|
|
57
|
+
export declare function relativeVolumeTail(len?: number): Tail<Bar, Value>;
|
|
58
|
+
/** `relativeVolume(len)` over a run of bars. */
|
|
59
|
+
export declare function relativeVolume(bars: readonly Bar[], len?: number): Value[];
|
|
60
|
+
//# sourceMappingURL=flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/volume/flow.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAOxE,kGAAkG;AAClG,wBAAgB,OAAO,CACrB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAKP;AAED,4BAA4B;AAC5B,wBAAgB,OAAO,CAAC,GAAG,SAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAElD;AAED,qCAAqC;AACrC,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,SAAK,GAAG,KAAK,EAAE,CAE3D;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAuBP;AAED,4BAA4B;AAC5B,wBAAgB,OAAO,CAAC,GAAG,SAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAElD;AAED,qCAAqC;AACrC,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,SAAK,GAAG,KAAK,EAAE,CAE3D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAaP;AAED,4BAA4B;AAC5B,wBAAgB,OAAO,CAAC,GAAG,SAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAElD;AAED,qCAAqC;AACrC,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,SAAK,GAAG,KAAK,EAAE,CAE3D;AAED,wEAAwE;AACxE,wBAAgB,cAAc,CAC5B,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAIP;AAED,mCAAmC;AACnC,wBAAgB,cAAc,CAAC,GAAG,SAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAEzD;AAED,4CAA4C;AAC5C,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,SAAK,GAAG,KAAK,EAAE,CAElE;AAED,gGAAgG;AAChG,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,KAAK,EACb,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAIP;AAED,uCAAuC;AACvC,wBAAgB,kBAAkB,CAAC,GAAG,SAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAE7D;AAED,gDAAgD;AAChD,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,SAAK,GAAG,KAAK,EAAE,CAEtE"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { NONE, fold, held, hl2, hlc3, isPresent, result, tailOf } from '../values/index.js';
|
|
2
|
+
import { emaStep, smaStep } from '../averages/index.js';
|
|
3
|
+
import { changeStep, sumStep } from '../series/index.js';
|
|
4
|
+
import { moneyFlow } from './accumulation.js';
|
|
5
|
+
/** `cmf(len)`: accumulation over the lookback as a fraction of its volume, from bar `len - 1`. */
|
|
6
|
+
export function cmfStep(state, key, bar, len) {
|
|
7
|
+
const flow = sumStep(state, `${key}f`, moneyFlow(bar), len);
|
|
8
|
+
const traded = sumStep(state, `${key}v`, bar.volume, len);
|
|
9
|
+
if (!isPresent(flow) || !isPresent(traded) || !(traded > 0))
|
|
10
|
+
return NONE;
|
|
11
|
+
return result(flow / traded);
|
|
12
|
+
}
|
|
13
|
+
/** `cmf(len)` as a tail. */
|
|
14
|
+
export function cmfTail(len = 20) {
|
|
15
|
+
return tailOf((state, bar) => cmfStep(state, '', bar, len));
|
|
16
|
+
}
|
|
17
|
+
/** `cmf(len)` over a run of bars. */
|
|
18
|
+
export function cmf(bars, len = 20) {
|
|
19
|
+
return fold(cmfTail(len), bars);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* `mfi(len)`: the strength reading computed on money flow rather than price,
|
|
23
|
+
* from bar `len`.
|
|
24
|
+
*
|
|
25
|
+
* A bar's whole flow counts on one side or the other, by whether the typical
|
|
26
|
+
* price rose or fell, so the first lookback is bars 1 to `len` and the extra bar
|
|
27
|
+
* is in the declared warmup.
|
|
28
|
+
*/
|
|
29
|
+
export function mfiStep(state, key, bar, len) {
|
|
30
|
+
const typicalKey = `${key}p`;
|
|
31
|
+
const seenKey = `${key}k`;
|
|
32
|
+
const typical = hlc3(bar);
|
|
33
|
+
const before = held(state, typicalKey);
|
|
34
|
+
const started = state[seenKey] === true;
|
|
35
|
+
state[seenKey] = true;
|
|
36
|
+
state[typicalKey] = typical;
|
|
37
|
+
let up = NONE;
|
|
38
|
+
let down = NONE;
|
|
39
|
+
if (started && isPresent(typical) && isPresent(before) && isPresent(bar.volume)) {
|
|
40
|
+
const flow = result(typical * bar.volume);
|
|
41
|
+
up = typical > before ? flow : 0;
|
|
42
|
+
down = typical < before ? flow : 0;
|
|
43
|
+
}
|
|
44
|
+
const rise = sumStep(state, `${key}u`, up, len);
|
|
45
|
+
const fall = sumStep(state, `${key}d`, down, len);
|
|
46
|
+
if (!isPresent(rise) || !isPresent(fall))
|
|
47
|
+
return NONE;
|
|
48
|
+
// No down bar in the lookback is the top of the scale, as in `rsi`.
|
|
49
|
+
if (fall === 0)
|
|
50
|
+
return 100;
|
|
51
|
+
return result(100 - 100 / (1 + rise / fall));
|
|
52
|
+
}
|
|
53
|
+
/** `mfi(len)` as a tail. */
|
|
54
|
+
export function mfiTail(len = 14) {
|
|
55
|
+
return tailOf((state, bar) => mfiStep(state, '', bar, len));
|
|
56
|
+
}
|
|
57
|
+
/** `mfi(len)` over a run of bars. */
|
|
58
|
+
export function mfi(bars, len = 14) {
|
|
59
|
+
return fold(mfiTail(len), bars);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* `eom(len)`: how far price moved per unit of volume, from bar `len`.
|
|
63
|
+
*
|
|
64
|
+
* The midpoint's move, times the bar's range, over the volume traded, then
|
|
65
|
+
* averaged over the lookback. The midpoint move needs the previous bar, so the
|
|
66
|
+
* average's lookback starts at bar 1 and the first reading is at bar `len`.
|
|
67
|
+
*
|
|
68
|
+
* **No scaling constant.** Implementations of this reading usually multiply by
|
|
69
|
+
* a large divisor whose only job is to bring the number into a readable range,
|
|
70
|
+
* and they do not agree on it. `stdlib.md` section 7 declares `eom(len = 14)`
|
|
71
|
+
* with no such argument, so there is none here and the reading is the quantity
|
|
72
|
+
* itself. That leaves it very small on a liquid instrument, which is recorded
|
|
73
|
+
* as a gap in the specification rather than papered over with a constant this
|
|
74
|
+
* library invented.
|
|
75
|
+
*/
|
|
76
|
+
export function eomStep(state, key, bar, len) {
|
|
77
|
+
const travelled = changeStep(state, `${key}c`, hl2(bar), 1);
|
|
78
|
+
let term = NONE;
|
|
79
|
+
if (isPresent(travelled) &&
|
|
80
|
+
isPresent(bar.high) &&
|
|
81
|
+
isPresent(bar.low) &&
|
|
82
|
+
isPresent(bar.volume) &&
|
|
83
|
+
bar.volume !== 0) {
|
|
84
|
+
term = result((travelled * (bar.high - bar.low)) / bar.volume);
|
|
85
|
+
}
|
|
86
|
+
return smaStep(state, `${key}q`, term, len);
|
|
87
|
+
}
|
|
88
|
+
/** `eom(len)` as a tail. */
|
|
89
|
+
export function eomTail(len = 14) {
|
|
90
|
+
return tailOf((state, bar) => eomStep(state, '', bar, len));
|
|
91
|
+
}
|
|
92
|
+
/** `eom(len)` over a run of bars. */
|
|
93
|
+
export function eom(bars, len = 14) {
|
|
94
|
+
return fold(eomTail(len), bars);
|
|
95
|
+
}
|
|
96
|
+
/** `forceIndex(len)`: change times volume, smoothed, from bar `len`. */
|
|
97
|
+
export function forceIndexStep(state, key, bar, len) {
|
|
98
|
+
const moved = changeStep(state, `${key}c`, bar.close, 1);
|
|
99
|
+
const force = isPresent(moved) && isPresent(bar.volume) ? result(moved * bar.volume) : NONE;
|
|
100
|
+
return emaStep(state, `${key}e`, force, len);
|
|
101
|
+
}
|
|
102
|
+
/** `forceIndex(len)` as a tail. */
|
|
103
|
+
export function forceIndexTail(len = 13) {
|
|
104
|
+
return tailOf((state, bar) => forceIndexStep(state, '', bar, len));
|
|
105
|
+
}
|
|
106
|
+
/** `forceIndex(len)` over a run of bars. */
|
|
107
|
+
export function forceIndex(bars, len = 13) {
|
|
108
|
+
return fold(forceIndexTail(len), bars);
|
|
109
|
+
}
|
|
110
|
+
/** `relativeVolume(len)`: this bar's volume over its own recent average, from bar `len - 1`. */
|
|
111
|
+
export function relativeVolumeStep(state, key, volume, len) {
|
|
112
|
+
const mean = smaStep(state, `${key}q`, volume, len);
|
|
113
|
+
if (!isPresent(mean) || !isPresent(volume) || mean === 0)
|
|
114
|
+
return NONE;
|
|
115
|
+
return result(volume / mean);
|
|
116
|
+
}
|
|
117
|
+
/** `relativeVolume(len)` as a tail. */
|
|
118
|
+
export function relativeVolumeTail(len = 20) {
|
|
119
|
+
return tailOf((state, bar) => relativeVolumeStep(state, '', bar.volume, len));
|
|
120
|
+
}
|
|
121
|
+
/** `relativeVolume(len)` over a run of bars. */
|
|
122
|
+
export function relativeVolume(bars, len = 20) {
|
|
123
|
+
return fold(relativeVolumeTail(len), bars);
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=flow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../../../src/core/stdlib/volume/flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { ad, adOsc, adOscStep, adOscTail, adStep, adTail, moneyFlow, obv, obvStep, obvTail, pvt, pvtStep, pvtTail, } from './accumulation.js';
|
|
2
|
+
export { cmf, cmfStep, cmfTail, eom, eomStep, eomTail, forceIndex, forceIndexStep, forceIndexTail, mfi, mfiStep, mfiTail, relativeVolume, relativeVolumeStep, relativeVolumeTail, } from './flow.js';
|
|
3
|
+
export type { Anchored } from './weighted.js';
|
|
4
|
+
export { vwap, vwapAnchor, vwapAnchorStep, vwapAnchorTail, vwapStep, vwapTail, } from './weighted.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/volume/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,EAAE,EACF,KAAK,EACL,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,SAAS,EACT,GAAG,EACH,OAAO,EACP,OAAO,EACP,GAAG,EACH,OAAO,EACP,OAAO,GACR,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,GAAG,EACH,OAAO,EACP,OAAO,EACP,GAAG,EACH,OAAO,EACP,OAAO,EACP,UAAU,EACV,cAAc,EACd,cAAc,EACd,GAAG,EACH,OAAO,EACP,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAEnB,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,IAAI,EACJ,UAAU,EACV,cAAc,EACd,cAAc,EACd,QAAQ,EACR,QAAQ,GACT,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { ad, adOsc, adOscStep, adOscTail, adStep, adTail, moneyFlow, obv, obvStep, obvTail, pvt, pvtStep, pvtTail, } from './accumulation.js';
|
|
2
|
+
export { cmf, cmfStep, cmfTail, eom, eomStep, eomTail, forceIndex, forceIndexStep, forceIndexTail, mfi, mfiStep, mfiTail, relativeVolume, relativeVolumeStep, relativeVolumeTail, } from './flow.js';
|
|
3
|
+
export { vwap, vwapAnchor, vwapAnchorStep, vwapAnchorTail, vwapStep, vwapTail, } from './weighted.js';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/stdlib/volume/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,EAAE,EACF,KAAK,EACL,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,SAAS,EACT,GAAG,EACH,OAAO,EACP,OAAO,EACP,GAAG,EACH,OAAO,EACP,OAAO,GACR,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,GAAG,EACH,OAAO,EACP,OAAO,EACP,GAAG,EACH,OAAO,EACP,OAAO,EACP,UAAU,EACV,cAAc,EACd,cAAc,EACd,GAAG,EACH,OAAO,EACP,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,IAAI,EACJ,UAAU,EACV,cAAc,EACd,cAAc,EACd,QAAQ,EACR,QAAQ,GACT,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `vwap` and `vwapAnchor`: the volume weighted average price since an anchor.
|
|
3
|
+
*
|
|
4
|
+
* `stdlib.md` section 7 writes `vwap(src)` and says it resets at the start of
|
|
5
|
+
* each trading session **as the instrument defines it**, not at midnight,
|
|
6
|
+
* because the session is what the number means. Where a session starts follows
|
|
7
|
+
* from the instrument's own trading hours and not from any arithmetic here, so
|
|
8
|
+
* this library takes the anchor as a flag per bar and an engine derives it.
|
|
9
|
+
* `vwapAnchor` is therefore the whole of the calculation and `vwap` is that
|
|
10
|
+
* calculation with the session's first bars passed in.
|
|
11
|
+
*
|
|
12
|
+
* The running totals are carried rather than rebuilt, because that is the
|
|
13
|
+
* definition: a volume weighted average since an anchor is a pair of running
|
|
14
|
+
* totals, and a lookback over the bars since the anchor would be a different
|
|
15
|
+
* quantity with a different value.
|
|
16
|
+
*/
|
|
17
|
+
import type { Series, StateRecord, Tail, Value } from '../values/index.js';
|
|
18
|
+
/** A bar's source price, its volume, and whether the average restarts here. */
|
|
19
|
+
export interface Anchored {
|
|
20
|
+
readonly src: Value;
|
|
21
|
+
readonly volume: Value;
|
|
22
|
+
readonly reset: boolean;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* `vwapAnchor(src, resetWhen)`: from the first bar `resetWhen` is true.
|
|
26
|
+
*
|
|
27
|
+
* The bar the condition holds on is the first bar of the new average, not the
|
|
28
|
+
* last bar of the old one. Absent before the condition has ever been true,
|
|
29
|
+
* because there is no anchor to measure from and zero would read as a price.
|
|
30
|
+
*/
|
|
31
|
+
export declare function vwapAnchorStep(state: StateRecord, key: string, input: Anchored): Value;
|
|
32
|
+
/** `vwapAnchor(src, resetWhen)` as a tail. */
|
|
33
|
+
export declare function vwapAnchorTail(): Tail<Anchored, Value>;
|
|
34
|
+
/** `vwapAnchor(src, resetWhen)` over whole series. */
|
|
35
|
+
export declare function vwapAnchor(src: Series, volume: Series, resetWhen: readonly boolean[]): Value[];
|
|
36
|
+
/**
|
|
37
|
+
* `vwap(src)`: the same average anchored to the session, from the session's
|
|
38
|
+
* first bar.
|
|
39
|
+
*
|
|
40
|
+
* `sessionStart` is the engine's answer to "does a new trading session begin on
|
|
41
|
+
* this bar", read off the instrument's stated trading hours, which is why it
|
|
42
|
+
* is an argument rather than something derived from the timestamps here. On a daily or longer interval every bar is its own
|
|
43
|
+
* session, so every bar is an anchor and the result equals `src`; the compiler
|
|
44
|
+
* emits warning OS8006 saying so, which is a compile-time matter and not this
|
|
45
|
+
* library's.
|
|
46
|
+
*/
|
|
47
|
+
export declare function vwapTail(): Tail<Anchored, Value>;
|
|
48
|
+
/** `vwap(src)` as a step, which is `vwapAnchor` anchored to the session. */
|
|
49
|
+
export declare function vwapStep(state: StateRecord, key: string, input: Anchored): Value;
|
|
50
|
+
/** `vwap(src)` over whole series. */
|
|
51
|
+
export declare function vwap(src: Series, volume: Series, sessionStart: readonly boolean[]): Value[];
|
|
52
|
+
//# sourceMappingURL=weighted.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weighted.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/volume/weighted.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3E,+EAA+E;AAC/E,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,CAiBtF;AAED,8CAA8C;AAC9C,wBAAgB,cAAc,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAEtD;AAED,sDAAsD;AACtD,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,OAAO,EAAE,GAC5B,KAAK,EAAE,CAST;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAEhD;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,CAEhF;AAED,qCAAqC;AACrC,wBAAgB,IAAI,CAClB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,SAAS,OAAO,EAAE,GAC/B,KAAK,EAAE,CAET"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { NONE, flag, fold, isPresent, result, slot, tailOf } from '../values/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* `vwapAnchor(src, resetWhen)`: from the first bar `resetWhen` is true.
|
|
4
|
+
*
|
|
5
|
+
* The bar the condition holds on is the first bar of the new average, not the
|
|
6
|
+
* last bar of the old one. Absent before the condition has ever been true,
|
|
7
|
+
* because there is no anchor to measure from and zero would read as a price.
|
|
8
|
+
*/
|
|
9
|
+
export function vwapAnchorStep(state, key, input) {
|
|
10
|
+
const flowKey = `${key}f`;
|
|
11
|
+
const tradedKey = `${key}v`;
|
|
12
|
+
const anchoredKey = `${key}a`;
|
|
13
|
+
if (input.reset) {
|
|
14
|
+
state[flowKey] = 0;
|
|
15
|
+
state[tradedKey] = 0;
|
|
16
|
+
state[anchoredKey] = true;
|
|
17
|
+
}
|
|
18
|
+
if (!flag(state, anchoredKey))
|
|
19
|
+
return NONE;
|
|
20
|
+
if (!isPresent(input.src) || !isPresent(input.volume))
|
|
21
|
+
return NONE;
|
|
22
|
+
const flow = slot(state, flowKey, 0) + input.src * input.volume;
|
|
23
|
+
const traded = slot(state, tradedKey, 0) + input.volume;
|
|
24
|
+
state[flowKey] = flow;
|
|
25
|
+
state[tradedKey] = traded;
|
|
26
|
+
if (traded === 0)
|
|
27
|
+
return NONE;
|
|
28
|
+
return result(flow / traded);
|
|
29
|
+
}
|
|
30
|
+
/** `vwapAnchor(src, resetWhen)` as a tail. */
|
|
31
|
+
export function vwapAnchorTail() {
|
|
32
|
+
return tailOf((state, input) => vwapAnchorStep(state, '', input));
|
|
33
|
+
}
|
|
34
|
+
/** `vwapAnchor(src, resetWhen)` over whole series. */
|
|
35
|
+
export function vwapAnchor(src, volume, resetWhen) {
|
|
36
|
+
return fold(vwapAnchorTail(), src.map((value, index) => ({
|
|
37
|
+
src: value,
|
|
38
|
+
volume: volume[index] ?? NONE,
|
|
39
|
+
reset: resetWhen[index] === true,
|
|
40
|
+
})));
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* `vwap(src)`: the same average anchored to the session, from the session's
|
|
44
|
+
* first bar.
|
|
45
|
+
*
|
|
46
|
+
* `sessionStart` is the engine's answer to "does a new trading session begin on
|
|
47
|
+
* this bar", read off the instrument's stated trading hours, which is why it
|
|
48
|
+
* is an argument rather than something derived from the timestamps here. On a daily or longer interval every bar is its own
|
|
49
|
+
* session, so every bar is an anchor and the result equals `src`; the compiler
|
|
50
|
+
* emits warning OS8006 saying so, which is a compile-time matter and not this
|
|
51
|
+
* library's.
|
|
52
|
+
*/
|
|
53
|
+
export function vwapTail() {
|
|
54
|
+
return vwapAnchorTail();
|
|
55
|
+
}
|
|
56
|
+
/** `vwap(src)` as a step, which is `vwapAnchor` anchored to the session. */
|
|
57
|
+
export function vwapStep(state, key, input) {
|
|
58
|
+
return vwapAnchorStep(state, key, input);
|
|
59
|
+
}
|
|
60
|
+
/** `vwap(src)` over whole series. */
|
|
61
|
+
export function vwap(src, volume, sessionStart) {
|
|
62
|
+
return vwapAnchor(src, volume, sessionStart);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=weighted.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weighted.js","sourceRoot":"","sources":["../../../../src/core/stdlib/volume/weighted.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AASvF;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAAkB,EAAE,GAAW,EAAE,KAAe;IAC7E,MAAM,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC;IAC1B,MAAM,SAAS,GAAG,GAAG,GAAG,GAAG,CAAC;IAC5B,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,CAAC;IAC9B,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACrB,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IAC5B,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IAChE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACxD,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;IAC1B,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,cAAc;IAC5B,OAAO,MAAM,CAAC,CAAC,KAAK,EAAE,KAAe,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,UAAU,CACxB,GAAW,EACX,MAAc,EACd,SAA6B;IAE7B,OAAO,IAAI,CACT,cAAc,EAAE,EAChB,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACzB,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI;QAC7B,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI;KACjC,CAAC,CAAC,CACJ,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,QAAQ;IACtB,OAAO,cAAc,EAAE,CAAC;AAC1B,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,QAAQ,CAAC,KAAkB,EAAE,GAAW,EAAE,KAAe;IACvE,OAAO,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,IAAI,CAClB,GAAW,EACX,MAAc,EACd,YAAgC;IAEhC,OAAO,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/** This build's package version. The release refuses to publish unless the tag, the manifest and this agree. */
|
|
2
|
-
export declare const VERSION = "0.
|
|
2
|
+
export declare const VERSION = "0.4.0";
|
|
3
3
|
/**
|
|
4
4
|
* The compiled program format this compiler emits.
|
|
5
5
|
*
|
|
6
6
|
* Deliberately not the package version. An engine written by somebody else
|
|
7
7
|
* targets this number, and it moves only when the format does.
|
|
8
8
|
*/
|
|
9
|
-
export declare const COMPILED_FORMAT_VERSION = "1.
|
|
9
|
+
export declare const COMPILED_FORMAT_VERSION = "1.1";
|
|
10
10
|
//# sourceMappingURL=version.generated.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.generated.d.ts","sourceRoot":"","sources":["../../../src/core/version/version.generated.ts"],"names":[],"mappings":"AAKA,gHAAgH;AAChH,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.generated.d.ts","sourceRoot":"","sources":["../../../src/core/version/version.generated.ts"],"names":[],"mappings":"AAKA,gHAAgH;AAChH,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAAQ,CAAC"}
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
// VERSION comes from package.json and COMPILED_FORMAT_VERSION from
|
|
4
4
|
// spec/compiled-program.md, so neither can drift from the thing it names.
|
|
5
5
|
/** This build's package version. The release refuses to publish unless the tag, the manifest and this agree. */
|
|
6
|
-
export const VERSION = "0.
|
|
6
|
+
export const VERSION = "0.4.0";
|
|
7
7
|
/**
|
|
8
8
|
* The compiled program format this compiler emits.
|
|
9
9
|
*
|
|
10
10
|
* Deliberately not the package version. An engine written by somebody else
|
|
11
11
|
* targets this number, and it moves only when the format does.
|
|
12
12
|
*/
|
|
13
|
-
export const COMPILED_FORMAT_VERSION = "1.
|
|
13
|
+
export const COMPILED_FORMAT_VERSION = "1.1";
|
|
14
14
|
//# sourceMappingURL=version.generated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.generated.js","sourceRoot":"","sources":["../../../src/core/version/version.generated.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,EAAE;AACF,mEAAmE;AACnE,0EAA0E;AAE1E,gHAAgH;AAChH,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.generated.js","sourceRoot":"","sources":["../../../src/core/version/version.generated.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,EAAE;AACF,mEAAmE;AACnE,0EAA0E;AAE1E,gHAAgH;AAChH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { Span } from '../core/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* What a completion is, which decides the icon a host puts beside it.
|
|
4
|
+
*
|
|
5
|
+
* `value` is a library name read without brackets, `close` and `aqua` among
|
|
6
|
+
* them; `function` is one that is called. The two are the manifest's own
|
|
7
|
+
* `callable`, not a guess from the spelling.
|
|
8
|
+
*/
|
|
9
|
+
export type CompletionKind = 'function' | 'value' | 'namespace' | 'member' | 'variable' | 'argument';
|
|
10
|
+
export interface Completion {
|
|
11
|
+
/** What the row reads as: the name, or the parameter for a named argument. */
|
|
12
|
+
readonly label: string;
|
|
13
|
+
/**
|
|
14
|
+
* What a host puts into the text, which is not always the label.
|
|
15
|
+
*
|
|
16
|
+
* A named argument is written `len = `, so accepting the row leaves the caret
|
|
17
|
+
* where the value goes rather than beside a label with no equals sign.
|
|
18
|
+
*/
|
|
19
|
+
readonly insert: string;
|
|
20
|
+
readonly kind: CompletionKind;
|
|
21
|
+
/** The signature or the type, spelled by the manifest and the checker. */
|
|
22
|
+
readonly detail: string;
|
|
23
|
+
/** The line the specification gives it, where it gives one. */
|
|
24
|
+
readonly summary: string | undefined;
|
|
25
|
+
/** Named in the library and not implemented in this version: OS2020. */
|
|
26
|
+
readonly planned: boolean;
|
|
27
|
+
/** The catalogue's OS2020 message for this name, on a planned row and no other. */
|
|
28
|
+
readonly refusal: string | undefined;
|
|
29
|
+
/** The text the row replaces, which is the word being typed or nothing. */
|
|
30
|
+
readonly replace: Span;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Everything that may be written at an offset, most useful first.
|
|
34
|
+
*
|
|
35
|
+
* Rows are filtered by the word already typed, which is compared exactly:
|
|
36
|
+
* `language.md` makes names case sensitive, so `EM` is not a start of `ema` and
|
|
37
|
+
* offering it would be offering a name that does not compile.
|
|
38
|
+
*/
|
|
39
|
+
export declare function complete(source: string, offset: number): readonly Completion[];
|
|
40
|
+
//# sourceMappingURL=complete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"complete.d.ts","sourceRoot":"","sources":["../../src/editor/complete.ts"],"names":[],"mappings":"AAkDA,OAAO,KAAK,EAAyB,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAMpE;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,OAAO,GACP,WAAW,GACX,QAAQ,GACR,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,WAAW,UAAU;IACzB,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,mFAAmF;IACnF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;CACxB;AA8FD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,UAAU,EAAE,CAwE9E"}
|