openalgo-script 0.1.0-alpha.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1249 -0
- package/README.md +288 -255
- 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 +204 -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 +84 -0
- package/dist/adapters/charts/tables.js.map +1 -0
- package/dist/core/catalogue/catalogue.generated.d.ts +98 -10
- package/dist/core/catalogue/catalogue.generated.d.ts.map +1 -1
- package/dist/core/catalogue/catalogue.generated.js +17 -9
- package/dist/core/catalogue/catalogue.generated.js.map +1 -1
- package/dist/core/catalogue/values.generated.d.ts +25 -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 +30 -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-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 +38 -0
- package/dist/core/check/surface.d.ts.map +1 -0
- package/dist/core/check/surface.js +100 -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 +45 -0
- package/dist/core/emit/defaults.d.ts.map +1 -0
- package/dist/core/emit/defaults.js +116 -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 +29 -0
- package/dist/core/emit/index.d.ts.map +1 -0
- package/dist/core/emit/index.js +23 -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 +45 -0
- package/dist/core/engine/load.d.ts.map +1 -0
- package/dist/core/engine/load.js +60 -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 +62 -6
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +49 -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/index.d.ts +2 -0
- package/dist/core/version/index.d.ts.map +1 -0
- package/dist/core/version/index.js +2 -0
- package/dist/core/version/index.js.map +1 -0
- package/dist/core/version/version.generated.d.ts +10 -0
- package/dist/core/version/version.generated.d.ts.map +1 -0
- package/dist/core/version/version.generated.js +14 -0
- package/dist/core/version/version.generated.js.map +1 -0
- package/package.json +88 -52
- package/spec/errors.json +3403 -3204
- 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 +238 -0
- package/src/adapters/charts/tables.ts +155 -0
- package/src/core/catalogue/catalogue.generated.ts +17 -9
- package/src/core/catalogue/values.generated.ts +8 -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 +67 -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-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 +115 -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 +150 -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 +74 -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 +104 -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 +129 -6
- package/src/core/parse/expressions.ts +1 -1
- package/src/core/parse/functions.ts +109 -109
- package/src/core/parse/names.ts +29 -2
- package/src/core/parse/switches.ts +105 -105
- 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/index.ts +1 -0
- package/src/core/version/version.generated.ts +15 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"names.js","sourceRoot":"","sources":["../../../src/core/parse/names.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;;;GAUG;AAEH,MAAM,QAAQ,GAA2B,IAAI,GAAG,CAAY,cAAc,CAAC,CAAC;AAE5E,0DAA0D;AAC1D,MAAM,UAAU,UAAU,CAAC,IAAe;IACxC,OAAO,IAAI,KAAK,YAAY,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,eAAe,GAA2B,IAAI,GAAG,CAAY;IACjE,OAAO;IACP,IAAI;IACJ,MAAM;IACN,OAAO;IACP,QAAQ;IACR,IAAI;IACJ,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,MAAM;CACP,CAAC,CAAC;AAEH,sFAAsF;AACtF,MAAM,UAAU,cAAc,CAAC,IAAe;IAC5C,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,GAAG,IAAI,OAAO,CAAC;AACxB,CAAC;AAED,sFAAsF;AACtF,SAAS,WAAW,CAAC,MAAc;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE;QAC5B,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC;KAClE,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"names.js","sourceRoot":"","sources":["../../../src/core/parse/names.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The exponential family: `ema`, `rma`, `dema` and `tema`.
|
|
3
|
+
*
|
|
4
|
+
* All four share one seeding rule, which `stdlib.md` section 4 states for `ema`
|
|
5
|
+
* and then refers `rma` to: the average is seeded on bar `len - 1` with the
|
|
6
|
+
* simple average of those `len` values, and is absent before it. Seeding from
|
|
7
|
+
* bar 0 instead, which is common and cheaper, draws a line where there should
|
|
8
|
+
* be a gap and stays materially wrong until the seed decays away. The seeding
|
|
9
|
+
* itself is `smoothed` in `lookback.ts`, which every seeded average here and in
|
|
10
|
+
* the studies built on them goes through.
|
|
11
|
+
*
|
|
12
|
+
* **Two arrangements, deliberately.** `ema` steps as `value * k + prev * (1 - k)`
|
|
13
|
+
* and `rma` steps as `(prev * (len - 1) + value) / len`. Those are the same
|
|
14
|
+
* function in exact arithmetic and two different numbers in binary64, and each
|
|
15
|
+
* is the arrangement its name has always meant. Writing `rma` as a weight of
|
|
16
|
+
* `1 / len` in `ema`'s shape would disagree in the last bits with every
|
|
17
|
+
* implementation of the classic oscillators, which is precisely what this
|
|
18
|
+
* project treats as a release blocker.
|
|
19
|
+
*/
|
|
20
|
+
import type { Series, StateRecord, Tail, Value } from '../values/index.js';
|
|
21
|
+
/** `ema(src, len)`: exponential mean, weight `2 / (len + 1)`, from bar `len - 1`. */
|
|
22
|
+
export declare function emaStep(state: StateRecord, key: string, value: Value, len: number | null): Value;
|
|
23
|
+
/** `ema(src, len)` as a tail. */
|
|
24
|
+
export declare function emaTail(len: number): Tail<Value, Value>;
|
|
25
|
+
/** `ema(src, len)` over a whole series. */
|
|
26
|
+
export declare function ema(src: Series, len: number): Value[];
|
|
27
|
+
/** `rma(src, len)`: the smoothing the classic oscillators use, from bar `len - 1`. */
|
|
28
|
+
export declare function rmaStep(state: StateRecord, key: string, value: Value, len: number | null): Value;
|
|
29
|
+
/** `rma(src, len)` as a tail. */
|
|
30
|
+
export declare function rmaTail(len: number): Tail<Value, Value>;
|
|
31
|
+
/** `rma(src, len)` over a whole series. */
|
|
32
|
+
export declare function rma(src: Series, len: number): Value[];
|
|
33
|
+
/**
|
|
34
|
+
* `dema(src, len)`: `2 * ema - ema(ema)`, from bar `2 * len - 2`.
|
|
35
|
+
*
|
|
36
|
+
* The second average is fed the first one's output, absences and all, so it
|
|
37
|
+
* seeds on the first `len` values the first average produced. That is where the
|
|
38
|
+
* declared warmup comes from rather than being asserted alongside it.
|
|
39
|
+
*/
|
|
40
|
+
export declare function demaStep(state: StateRecord, key: string, value: Value, len: number | null): Value;
|
|
41
|
+
/** `dema(src, len)` as a tail. */
|
|
42
|
+
export declare function demaTail(len: number): Tail<Value, Value>;
|
|
43
|
+
/** `dema(src, len)` over a whole series. */
|
|
44
|
+
export declare function dema(src: Series, len: number): Value[];
|
|
45
|
+
/** `tema(src, len)`: `3 * e1 - 3 * e2 + e3`, from bar `3 * len - 3`. */
|
|
46
|
+
export declare function temaStep(state: StateRecord, key: string, value: Value, len: number | null): Value;
|
|
47
|
+
/** `tema(src, len)` as a tail. */
|
|
48
|
+
export declare function temaTail(len: number): Tail<Value, Value>;
|
|
49
|
+
/** `tema(src, len)` over a whole series. */
|
|
50
|
+
export declare function tema(src: Series, len: number): Value[];
|
|
51
|
+
//# sourceMappingURL=exponential.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exponential.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/averages/exponential.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3E,qFAAqF;AACrF,wBAAgB,OAAO,CACrB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAKP;AAED,iCAAiC;AACjC,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAEvD;AAED,2CAA2C;AAC3C,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,CAErD;AAED,sFAAsF;AACtF,wBAAgB,OAAO,CACrB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAGP;AAED,iCAAiC;AACjC,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAEvD;AAED,2CAA2C;AAC3C,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,CAErD;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAKP;AAED,kCAAkC;AAClC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAExD;AAED,4CAA4C;AAC5C,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,CAEtD;AAED,wEAAwE;AACxE,wBAAgB,QAAQ,CACtB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAOP;AAED,kCAAkC;AAClC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAExD;AAED,4CAA4C;AAC5C,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,CAEtD"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { NONE, fold, isPresent, result, smoothed, tailOf } from '../values/index.js';
|
|
2
|
+
/** `ema(src, len)`: exponential mean, weight `2 / (len + 1)`, from bar `len - 1`. */
|
|
3
|
+
export function emaStep(state, key, value, len) {
|
|
4
|
+
if (len === null)
|
|
5
|
+
return NONE;
|
|
6
|
+
const weight = 2 / (len + 1);
|
|
7
|
+
const rest = 1 - weight;
|
|
8
|
+
return smoothed(state, key, len, value, (previous, next) => next * weight + previous * rest);
|
|
9
|
+
}
|
|
10
|
+
/** `ema(src, len)` as a tail. */
|
|
11
|
+
export function emaTail(len) {
|
|
12
|
+
return tailOf((state, value) => emaStep(state, 'e', value, len));
|
|
13
|
+
}
|
|
14
|
+
/** `ema(src, len)` over a whole series. */
|
|
15
|
+
export function ema(src, len) {
|
|
16
|
+
return fold(emaTail(len), src);
|
|
17
|
+
}
|
|
18
|
+
/** `rma(src, len)`: the smoothing the classic oscillators use, from bar `len - 1`. */
|
|
19
|
+
export function rmaStep(state, key, value, len) {
|
|
20
|
+
if (len === null)
|
|
21
|
+
return NONE;
|
|
22
|
+
return smoothed(state, key, len, value, (previous, next) => (previous * (len - 1) + next) / len);
|
|
23
|
+
}
|
|
24
|
+
/** `rma(src, len)` as a tail. */
|
|
25
|
+
export function rmaTail(len) {
|
|
26
|
+
return tailOf((state, value) => rmaStep(state, 'r', value, len));
|
|
27
|
+
}
|
|
28
|
+
/** `rma(src, len)` over a whole series. */
|
|
29
|
+
export function rma(src, len) {
|
|
30
|
+
return fold(rmaTail(len), src);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* `dema(src, len)`: `2 * ema - ema(ema)`, from bar `2 * len - 2`.
|
|
34
|
+
*
|
|
35
|
+
* The second average is fed the first one's output, absences and all, so it
|
|
36
|
+
* seeds on the first `len` values the first average produced. That is where the
|
|
37
|
+
* declared warmup comes from rather than being asserted alongside it.
|
|
38
|
+
*/
|
|
39
|
+
export function demaStep(state, key, value, len) {
|
|
40
|
+
const once = emaStep(state, `${key}a`, value, len);
|
|
41
|
+
const twice = emaStep(state, `${key}b`, once, len);
|
|
42
|
+
if (!isPresent(once) || !isPresent(twice))
|
|
43
|
+
return NONE;
|
|
44
|
+
return result(2 * once - twice);
|
|
45
|
+
}
|
|
46
|
+
/** `dema(src, len)` as a tail. */
|
|
47
|
+
export function demaTail(len) {
|
|
48
|
+
return tailOf((state, value) => demaStep(state, 'e', value, len));
|
|
49
|
+
}
|
|
50
|
+
/** `dema(src, len)` over a whole series. */
|
|
51
|
+
export function dema(src, len) {
|
|
52
|
+
return fold(demaTail(len), src);
|
|
53
|
+
}
|
|
54
|
+
/** `tema(src, len)`: `3 * e1 - 3 * e2 + e3`, from bar `3 * len - 3`. */
|
|
55
|
+
export function temaStep(state, key, value, len) {
|
|
56
|
+
const once = emaStep(state, `${key}a`, value, len);
|
|
57
|
+
const twice = emaStep(state, `${key}b`, once, len);
|
|
58
|
+
const thrice = emaStep(state, `${key}c`, twice, len);
|
|
59
|
+
if (!isPresent(once) || !isPresent(twice) || !isPresent(thrice))
|
|
60
|
+
return NONE;
|
|
61
|
+
// Left to right, as written: 3 * e1, less 3 * e2, plus e3.
|
|
62
|
+
return result(3 * once - 3 * twice + thrice);
|
|
63
|
+
}
|
|
64
|
+
/** `tema(src, len)` as a tail. */
|
|
65
|
+
export function temaTail(len) {
|
|
66
|
+
return tailOf((state, value) => temaStep(state, 'e', value, len));
|
|
67
|
+
}
|
|
68
|
+
/** `tema(src, len)` over a whole series. */
|
|
69
|
+
export function tema(src, len) {
|
|
70
|
+
return fold(temaTail(len), src);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=exponential.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exponential.js","sourceRoot":"","sources":["../../../../src/core/stdlib/averages/exponential.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type { Weighted } from './simple.js';
|
|
2
|
+
export { sma, smaStep, smaTail, swma, swmaStep, swmaTail, vwma, vwmaStep, vwmaTail, wma, wmaStep, wmaTail, } from './simple.js';
|
|
3
|
+
export { dema, demaStep, demaTail, ema, emaStep, emaTail, rma, rmaStep, rmaTail, tema, temaStep, temaTail, } from './exponential.js';
|
|
4
|
+
export { alma, almaStep, almaTail, hma, hmaStep, hmaTail, linreg, linregStep, linregTail, } from './shaped.js';
|
|
5
|
+
export type { MaType } from './select.js';
|
|
6
|
+
export { isMaType, ma, maStep, maTail } from './select.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/averages/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,GAAG,EACH,OAAO,EACP,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,OAAO,EACP,OAAO,GACR,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,OAAO,EACP,OAAO,EACP,GAAG,EACH,OAAO,EACP,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { sma, smaStep, smaTail, swma, swmaStep, swmaTail, vwma, vwmaStep, vwmaTail, wma, wmaStep, wmaTail, } from './simple.js';
|
|
2
|
+
export { dema, demaStep, demaTail, ema, emaStep, emaTail, rma, rmaStep, rmaTail, tema, temaStep, temaTail, } from './exponential.js';
|
|
3
|
+
export { alma, almaStep, almaTail, hma, hmaStep, hmaTail, linreg, linregStep, linregTail, } from './shaped.js';
|
|
4
|
+
export { isMaType, ma, maStep, maTail } from './select.js';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/stdlib/averages/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,GAAG,EACH,OAAO,EACP,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,OAAO,EACP,OAAO,GACR,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,OAAO,EACP,OAAO,EACP,GAAG,EACH,OAAO,EACP,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,UAAU,GACX,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ma(src, len, type)`: one call whose shape a select input can switch.
|
|
3
|
+
*
|
|
4
|
+
* The point of it is that a study can offer its user a choice of average
|
|
5
|
+
* without the script branching six ways, and without the six branches each
|
|
6
|
+
* owning their own state. One call site, one state region, one line on the
|
|
7
|
+
* chart.
|
|
8
|
+
*
|
|
9
|
+
* The step takes a source paired with its volume because one of the types is
|
|
10
|
+
* volume weighted. A caller that will never select that type passes absence for
|
|
11
|
+
* the volume and loses nothing.
|
|
12
|
+
*
|
|
13
|
+
* **Each type keeps its own corner of the region.** The key carries the type
|
|
14
|
+
* name, so a run that switched type halfway would start the new average from
|
|
15
|
+
* its own warmup rather than from whatever the old one had left in the record.
|
|
16
|
+
*/
|
|
17
|
+
import type { Series, StateRecord, Tail, Value } from '../values/index.js';
|
|
18
|
+
import type { Weighted } from './simple.js';
|
|
19
|
+
/** The averages `ma` can be switched to, as `stdlib.md` section 4 lists them. */
|
|
20
|
+
export type MaType = 'sma' | 'ema' | 'wma' | 'rma' | 'hma' | 'vwma';
|
|
21
|
+
/** Whether a string names one of the six averages `ma` accepts. */
|
|
22
|
+
export declare function isMaType(name: string | null): name is MaType;
|
|
23
|
+
/**
|
|
24
|
+
* `ma(src, len, type)`, with the warmup of whichever type was named.
|
|
25
|
+
*
|
|
26
|
+
* An unrecognised type is absence throughout, not a silent fall back to the
|
|
27
|
+
* simple mean. A study that quietly drew a different average from the one its
|
|
28
|
+
* settings say would be wrong in a way nobody could see.
|
|
29
|
+
*/
|
|
30
|
+
export declare function maStep(state: StateRecord, key: string, input: Weighted, len: number | null, type: MaType | null): Value;
|
|
31
|
+
/** `ma(src, len, type)` as a tail. */
|
|
32
|
+
export declare function maTail(len: number, type: MaType): Tail<Weighted, Value>;
|
|
33
|
+
/** `ma(src, len, type)` over a whole series. */
|
|
34
|
+
export declare function ma(src: Series, volume: Series, len: number, type: MaType): Value[];
|
|
35
|
+
//# sourceMappingURL=select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/averages/select.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAK5C,iFAAiF;AACjF,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAIpE,mEAAmE;AACnE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,IAAI,MAAM,CAE5D;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CACpB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,KAAK,CAUP;AAED,sCAAsC;AACtC,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAEvE;AAED,gDAAgD;AAChD,wBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE,CAKlF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { NONE, fold, tailOf } from '../values/index.js';
|
|
2
|
+
import { smaStep, vwmaStep, wmaStep } from './simple.js';
|
|
3
|
+
import { emaStep, rmaStep } from './exponential.js';
|
|
4
|
+
import { hmaStep } from './shaped.js';
|
|
5
|
+
const TYPES = ['sma', 'ema', 'wma', 'rma', 'hma', 'vwma'];
|
|
6
|
+
/** Whether a string names one of the six averages `ma` accepts. */
|
|
7
|
+
export function isMaType(name) {
|
|
8
|
+
return name !== null && TYPES.includes(name);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* `ma(src, len, type)`, with the warmup of whichever type was named.
|
|
12
|
+
*
|
|
13
|
+
* An unrecognised type is absence throughout, not a silent fall back to the
|
|
14
|
+
* simple mean. A study that quietly drew a different average from the one its
|
|
15
|
+
* settings say would be wrong in a way nobody could see.
|
|
16
|
+
*/
|
|
17
|
+
export function maStep(state, key, input, len, type) {
|
|
18
|
+
if (type === null)
|
|
19
|
+
return NONE;
|
|
20
|
+
const mine = `${key}${type}`;
|
|
21
|
+
if (type === 'vwma')
|
|
22
|
+
return vwmaStep(state, mine, input, len);
|
|
23
|
+
if (type === 'sma')
|
|
24
|
+
return smaStep(state, mine, input.src, len);
|
|
25
|
+
if (type === 'ema')
|
|
26
|
+
return emaStep(state, mine, input.src, len);
|
|
27
|
+
if (type === 'wma')
|
|
28
|
+
return wmaStep(state, mine, input.src, len);
|
|
29
|
+
if (type === 'rma')
|
|
30
|
+
return rmaStep(state, mine, input.src, len);
|
|
31
|
+
if (type === 'hma')
|
|
32
|
+
return hmaStep(state, mine, input.src, len);
|
|
33
|
+
return NONE;
|
|
34
|
+
}
|
|
35
|
+
/** `ma(src, len, type)` as a tail. */
|
|
36
|
+
export function maTail(len, type) {
|
|
37
|
+
return tailOf((state, input) => maStep(state, 'q', input, len, type));
|
|
38
|
+
}
|
|
39
|
+
/** `ma(src, len, type)` over a whole series. */
|
|
40
|
+
export function ma(src, volume, len, type) {
|
|
41
|
+
return fold(maTail(len, type), src.map((value, index) => ({ src: value, volume: volume[index] ?? NONE })));
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/core/stdlib/averages/select.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAKtC,MAAM,KAAK,GAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAE7E,mEAAmE;AACnE,MAAM,UAAU,QAAQ,CAAC,IAAmB;IAC1C,OAAO,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CACpB,KAAkB,EAClB,GAAW,EACX,KAAe,EACf,GAAkB,EAClB,IAAmB;IAEnB,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;IAC7B,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC9D,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChE,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChE,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChE,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChE,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,MAAM,CAAC,GAAW,EAAE,IAAY;IAC9C,OAAO,MAAM,CAAC,CAAC,KAAK,EAAE,KAAe,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,EAAE,CAAC,GAAW,EAAE,MAAc,EAAE,GAAW,EAAE,IAAY;IACvE,OAAO,IAAI,CACT,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EACjB,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAC3E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The averages with a shape to them: `hma`, `alma` and `linreg`.
|
|
3
|
+
*
|
|
4
|
+
* Each one is a weighted lookback like `wma`, and each accumulates oldest bar
|
|
5
|
+
* first, in index order, for the reason `lookback.ts` gives.
|
|
6
|
+
*/
|
|
7
|
+
import type { Series, StateRecord, Tail, Value } from '../values/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* `hma(src, len)`: from bar `len + round(sqrt(len)) - 2`.
|
|
10
|
+
*
|
|
11
|
+
* `wma` of twice the half length average less the full length one, smoothed
|
|
12
|
+
* again over the square root of the length.
|
|
13
|
+
*
|
|
14
|
+
* **The half length is not stated.** `stdlib.md` section 4 fixes the outer
|
|
15
|
+
* length as `round(sqrt(len))`, which the declared warmup confirms, and says
|
|
16
|
+
* nothing about the inner one. `floor(len / 2)` is used here, held at a minimum
|
|
17
|
+
* of 1 so a length of 1 or 2 still has a lookback, and the declared warmup holds
|
|
18
|
+
* for any inner length at or below `len`, so nothing in the warmup column
|
|
19
|
+
* settles it. This is recorded as a gap rather than presented as a reading.
|
|
20
|
+
*/
|
|
21
|
+
export declare function hmaStep(state: StateRecord, key: string, value: Value, len: number | null): Value;
|
|
22
|
+
/** `hma(src, len)` as a tail. */
|
|
23
|
+
export declare function hmaTail(len: number): Tail<Value, Value>;
|
|
24
|
+
/** `hma(src, len)` over a whole series. */
|
|
25
|
+
export declare function hma(src: Series, len: number): Value[];
|
|
26
|
+
/**
|
|
27
|
+
* `alma(src, len, offset, sigma)`: the Gaussian weighted mean, from bar `len - 1`.
|
|
28
|
+
*
|
|
29
|
+
* `offset` slides the kernel's peak between lag and smoothness and `sigma` sets
|
|
30
|
+
* how sharply it falls away.
|
|
31
|
+
*
|
|
32
|
+
* The kernel depends only on the position in the lookback, so it could be built
|
|
33
|
+
* once; it is rebuilt each bar instead, because the region 2.11 requires holds
|
|
34
|
+
* numbers and queues and not a cached array of weights, and a step that reads
|
|
35
|
+
* its own arguments every bar is the only form an engine can drive. The
|
|
36
|
+
* accumulation is over the lookback in index order either way, so the number is
|
|
37
|
+
* the same one.
|
|
38
|
+
*/
|
|
39
|
+
export declare function almaStep(state: StateRecord, key: string, value: Value, len: number | null, offset: number | null, sigma: number | null): Value;
|
|
40
|
+
/** `alma(src, len, offset, sigma)` as a tail. */
|
|
41
|
+
export declare function almaTail(len: number, offset?: number, sigma?: number): Tail<Value, Value>;
|
|
42
|
+
/** `alma(src, len, offset, sigma)` over a whole series. */
|
|
43
|
+
export declare function alma(src: Series, len: number, offset?: number, sigma?: number): Value[];
|
|
44
|
+
/**
|
|
45
|
+
* `linreg(src, len, offset)`: the least squares line through the last `len`
|
|
46
|
+
* points, read `offset` bars back along it, from bar `len - 1`.
|
|
47
|
+
*
|
|
48
|
+
* `x` runs 0 at the oldest bar of the lookback to `len - 1` at the current one,
|
|
49
|
+
* so the value at the current bar is `intercept + slope * (len - 1)` and a
|
|
50
|
+
* positive `offset` steps back down the line without refitting it.
|
|
51
|
+
*
|
|
52
|
+
* A length of 1 has no line through it: the normal equations are singular, and
|
|
53
|
+
* the answer is absence rather than the single point, because a line fitted to
|
|
54
|
+
* one point is not a fit.
|
|
55
|
+
*/
|
|
56
|
+
export declare function linregStep(state: StateRecord, key: string, value: Value, len: number | null, offset: number | null): Value;
|
|
57
|
+
/** `linreg(src, len, offset)` as a tail. */
|
|
58
|
+
export declare function linregTail(len: number, offset?: number): Tail<Value, Value>;
|
|
59
|
+
/** `linreg(src, len, offset)` over a whole series. */
|
|
60
|
+
export declare function linreg(src: Series, len: number, offset?: number): Value[];
|
|
61
|
+
//# sourceMappingURL=shaped.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shaped.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/averages/shaped.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAc3E;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAQP;AAED,iCAAiC;AACjC,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAEvD;AAED,2CAA2C;AAC3C,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,CAErD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,KAAK,CAuBP;AAED,iDAAiD;AACjD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAO,EAAE,KAAK,SAAI,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAElF;AAED,2DAA2D;AAC3D,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAO,EAAE,KAAK,SAAI,GAAG,KAAK,EAAE,CAEhF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,KAAK,CAmBP;AAED,4CAA4C;AAC5C,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAEtE;AAED,sDAAsD;AACtD,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,KAAK,EAAE,CAEpE"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { NONE, fold, isLength, isPresent, result, ring, tailOf, } from '../values/index.js';
|
|
2
|
+
import { roundHalfAway } from '../maths/index.js';
|
|
3
|
+
import { wmaStep } from './simple.js';
|
|
4
|
+
/**
|
|
5
|
+
* `hma(src, len)`: from bar `len + round(sqrt(len)) - 2`.
|
|
6
|
+
*
|
|
7
|
+
* `wma` of twice the half length average less the full length one, smoothed
|
|
8
|
+
* again over the square root of the length.
|
|
9
|
+
*
|
|
10
|
+
* **The half length is not stated.** `stdlib.md` section 4 fixes the outer
|
|
11
|
+
* length as `round(sqrt(len))`, which the declared warmup confirms, and says
|
|
12
|
+
* nothing about the inner one. `floor(len / 2)` is used here, held at a minimum
|
|
13
|
+
* of 1 so a length of 1 or 2 still has a lookback, and the declared warmup holds
|
|
14
|
+
* for any inner length at or below `len`, so nothing in the warmup column
|
|
15
|
+
* settles it. This is recorded as a gap rather than presented as a reading.
|
|
16
|
+
*/
|
|
17
|
+
export function hmaStep(state, key, value, len) {
|
|
18
|
+
if (len === null)
|
|
19
|
+
return NONE;
|
|
20
|
+
const half = Math.max(1, Math.floor(len / 2));
|
|
21
|
+
const outer = Math.max(1, roundHalfAway(Math.sqrt(len)));
|
|
22
|
+
const near = wmaStep(state, `${key}f`, value, half);
|
|
23
|
+
const far = wmaStep(state, `${key}s`, value, len);
|
|
24
|
+
const raw = isPresent(near) && isPresent(far) ? result(2 * near - far) : NONE;
|
|
25
|
+
return wmaStep(state, `${key}o`, raw, outer);
|
|
26
|
+
}
|
|
27
|
+
/** `hma(src, len)` as a tail. */
|
|
28
|
+
export function hmaTail(len) {
|
|
29
|
+
return tailOf((state, value) => hmaStep(state, '', value, len));
|
|
30
|
+
}
|
|
31
|
+
/** `hma(src, len)` over a whole series. */
|
|
32
|
+
export function hma(src, len) {
|
|
33
|
+
return fold(hmaTail(len), src);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* `alma(src, len, offset, sigma)`: the Gaussian weighted mean, from bar `len - 1`.
|
|
37
|
+
*
|
|
38
|
+
* `offset` slides the kernel's peak between lag and smoothness and `sigma` sets
|
|
39
|
+
* how sharply it falls away.
|
|
40
|
+
*
|
|
41
|
+
* The kernel depends only on the position in the lookback, so it could be built
|
|
42
|
+
* once; it is rebuilt each bar instead, because the region 2.11 requires holds
|
|
43
|
+
* numbers and queues and not a cached array of weights, and a step that reads
|
|
44
|
+
* its own arguments every bar is the only form an engine can drive. The
|
|
45
|
+
* accumulation is over the lookback in index order either way, so the number is
|
|
46
|
+
* the same one.
|
|
47
|
+
*/
|
|
48
|
+
export function almaStep(state, key, value, len, offset, sigma) {
|
|
49
|
+
const lookback = ring(state, key, len);
|
|
50
|
+
lookback.push(value);
|
|
51
|
+
if (len === null || offset === null || sigma === null)
|
|
52
|
+
return NONE;
|
|
53
|
+
if (!lookback.complete())
|
|
54
|
+
return NONE;
|
|
55
|
+
if (!(sigma > 0) || !isLength(len))
|
|
56
|
+
return NONE;
|
|
57
|
+
const peak = offset * (len - 1);
|
|
58
|
+
const spread = len / sigma;
|
|
59
|
+
const weights = [];
|
|
60
|
+
let norm = 0;
|
|
61
|
+
// Index order: position 0 is the oldest bar in the lookback.
|
|
62
|
+
for (let position = 0; position < len; position += 1) {
|
|
63
|
+
const gap = position - peak;
|
|
64
|
+
const weight = Math.exp(-(gap * gap) / (2 * spread * spread));
|
|
65
|
+
weights.push(weight);
|
|
66
|
+
norm += weight;
|
|
67
|
+
}
|
|
68
|
+
if (norm === 0)
|
|
69
|
+
return NONE;
|
|
70
|
+
let total = 0;
|
|
71
|
+
for (let position = 0; position < len; position += 1) {
|
|
72
|
+
total += lookback.at(len - 1 - position) * weights[position];
|
|
73
|
+
}
|
|
74
|
+
return result(total / norm);
|
|
75
|
+
}
|
|
76
|
+
/** `alma(src, len, offset, sigma)` as a tail. */
|
|
77
|
+
export function almaTail(len, offset = 0.85, sigma = 6) {
|
|
78
|
+
return tailOf((state, value) => almaStep(state, 'q', value, len, offset, sigma));
|
|
79
|
+
}
|
|
80
|
+
/** `alma(src, len, offset, sigma)` over a whole series. */
|
|
81
|
+
export function alma(src, len, offset = 0.85, sigma = 6) {
|
|
82
|
+
return fold(almaTail(len, offset, sigma), src);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* `linreg(src, len, offset)`: the least squares line through the last `len`
|
|
86
|
+
* points, read `offset` bars back along it, from bar `len - 1`.
|
|
87
|
+
*
|
|
88
|
+
* `x` runs 0 at the oldest bar of the lookback to `len - 1` at the current one,
|
|
89
|
+
* so the value at the current bar is `intercept + slope * (len - 1)` and a
|
|
90
|
+
* positive `offset` steps back down the line without refitting it.
|
|
91
|
+
*
|
|
92
|
+
* A length of 1 has no line through it: the normal equations are singular, and
|
|
93
|
+
* the answer is absence rather than the single point, because a line fitted to
|
|
94
|
+
* one point is not a fit.
|
|
95
|
+
*/
|
|
96
|
+
export function linregStep(state, key, value, len, offset) {
|
|
97
|
+
const lookback = ring(state, key, len);
|
|
98
|
+
lookback.push(value);
|
|
99
|
+
if (len === null || offset === null || !lookback.complete())
|
|
100
|
+
return NONE;
|
|
101
|
+
// The x values are the same lookback every bar, so their sums are constants.
|
|
102
|
+
const sumX = ((len - 1) * len) / 2;
|
|
103
|
+
const sumXSquared = ((len - 1) * len * (2 * len - 1)) / 6;
|
|
104
|
+
const divisor = len * sumXSquared - sumX * sumX;
|
|
105
|
+
if (divisor === 0)
|
|
106
|
+
return NONE;
|
|
107
|
+
let sumY = 0;
|
|
108
|
+
let sumXY = 0;
|
|
109
|
+
for (let position = 0; position < len; position += 1) {
|
|
110
|
+
const y = lookback.at(len - 1 - position);
|
|
111
|
+
sumY += y;
|
|
112
|
+
sumXY += y * position;
|
|
113
|
+
}
|
|
114
|
+
const slope = (len * sumXY - sumX * sumY) / divisor;
|
|
115
|
+
const intercept = (sumY - slope * sumX) / len;
|
|
116
|
+
return result(intercept + slope * (len - 1 - offset));
|
|
117
|
+
}
|
|
118
|
+
/** `linreg(src, len, offset)` as a tail. */
|
|
119
|
+
export function linregTail(len, offset = 0) {
|
|
120
|
+
return tailOf((state, value) => linregStep(state, 'q', value, len, offset));
|
|
121
|
+
}
|
|
122
|
+
/** `linreg(src, len, offset)` over a whole series. */
|
|
123
|
+
export function linreg(src, len, offset = 0) {
|
|
124
|
+
return fold(linregTail(len, offset), src);
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=shaped.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shaped.js","sourceRoot":"","sources":["../../../../src/core/stdlib/averages/shaped.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The lookback averages: `sma`, `wma`, `swma` and `vwma`.
|
|
3
|
+
*
|
|
4
|
+
* Each is a fresh accumulation over the lookback in index order, oldest bar
|
|
5
|
+
* first, for the reason `lookback.ts` sets out: a sum has an order as well as a
|
|
6
|
+
* value, and a running total that subtracts the bar leaving the lookback is a
|
|
7
|
+
* different number.
|
|
8
|
+
*
|
|
9
|
+
* Each is written once, as a step over a state region, and its tail is that
|
|
10
|
+
* step over a region of its own. An engine calls the same step against the
|
|
11
|
+
* region it holds for the call site, so there is no second arrangement of the
|
|
12
|
+
* arithmetic anywhere for the two to drift apart in.
|
|
13
|
+
*/
|
|
14
|
+
import type { Series, StateRecord, Tail, Value } from '../values/index.js';
|
|
15
|
+
/** A bar's source value paired with its volume, for the volume weighted forms. */
|
|
16
|
+
export interface Weighted {
|
|
17
|
+
readonly src: Value;
|
|
18
|
+
readonly volume: Value;
|
|
19
|
+
}
|
|
20
|
+
/** `sma(src, len)`: the arithmetic mean of the last `len` values, from bar `len - 1`. */
|
|
21
|
+
export declare function smaStep(state: StateRecord, key: string, value: Value, len: number | null): Value;
|
|
22
|
+
/** `sma(src, len)` as a tail. */
|
|
23
|
+
export declare function smaTail(len: number): Tail<Value, Value>;
|
|
24
|
+
/** `sma(src, len)` over a whole series. */
|
|
25
|
+
export declare function sma(src: Series, len: number): Value[];
|
|
26
|
+
/**
|
|
27
|
+
* `wma(src, len)`: linearly weighted, the newest value weighted `len`, from bar
|
|
28
|
+
* `len - 1`.
|
|
29
|
+
*
|
|
30
|
+
* `stdlib.md` section 4 fixes the weights and not the order they are summed in,
|
|
31
|
+
* so the order is this library's own and is the one stated in `lookback.ts`:
|
|
32
|
+
* oldest bar first, which is weight 1 first and weight `len` last.
|
|
33
|
+
*/
|
|
34
|
+
export declare function wmaStep(state: StateRecord, key: string, value: Value, len: number | null): Value;
|
|
35
|
+
/** `wma(src, len)` as a tail. */
|
|
36
|
+
export declare function wmaTail(len: number): Tail<Value, Value>;
|
|
37
|
+
/** `wma(src, len)` over a whole series. */
|
|
38
|
+
export declare function wma(src: Series, len: number): Value[];
|
|
39
|
+
/** `swma(src)`: the fixed four bar symmetric mean, weights 1, 2, 2, 1 over 6, from bar 3. */
|
|
40
|
+
export declare function swmaStep(state: StateRecord, key: string, value: Value): Value;
|
|
41
|
+
/** `swma(src)` as a tail. */
|
|
42
|
+
export declare function swmaTail(): Tail<Value, Value>;
|
|
43
|
+
/** `swma(src)` over a whole series. */
|
|
44
|
+
export declare function swma(src: Series): Value[];
|
|
45
|
+
/**
|
|
46
|
+
* `vwma(src, len)`: the mean weighted by each bar's volume, from bar `len - 1`.
|
|
47
|
+
*
|
|
48
|
+
* The total of `src * volume` over the total of `volume`, which is what "mean
|
|
49
|
+
* weighted by volume" says. Dividing two means by `len` first and then dividing
|
|
50
|
+
* one by the other is the same quantity with two extra roundings in it, and
|
|
51
|
+
* this is the arrangement without them.
|
|
52
|
+
*/
|
|
53
|
+
export declare function vwmaStep(state: StateRecord, key: string, input: Weighted, len: number | null): Value;
|
|
54
|
+
/** `vwma(src, len)` as a tail. */
|
|
55
|
+
export declare function vwmaTail(len: number): Tail<Weighted, Value>;
|
|
56
|
+
/** `vwma(src, len)` over a whole series. */
|
|
57
|
+
export declare function vwma(src: Series, volume: Series, len: number): Value[];
|
|
58
|
+
//# sourceMappingURL=simple.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/averages/simple.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3E,kFAAkF;AAClF,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;CACxB;AAED,yFAAyF;AACzF,wBAAgB,OAAO,CACrB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAIP;AAED,iCAAiC;AACjC,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAEvD;AAED,2CAA2C;AAC3C,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,CAErD;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAUP;AAED,iCAAiC;AACjC,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAEvD;AAED,2CAA2C;AAC3C,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,CAErD;AAED,6FAA6F;AAC7F,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAS7E;AAED,6BAA6B;AAC7B,wBAAgB,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAE7C;AAED,uCAAuC;AACvC,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,CAEzC;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAWP;AAED,kCAAkC;AAClC,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAE3D;AAED,4CAA4C;AAC5C,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,EAAE,CAKtE"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { NONE, fold, isPresent, result, ring, tailOf } from '../values/index.js';
|
|
2
|
+
/** `sma(src, len)`: the arithmetic mean of the last `len` values, from bar `len - 1`. */
|
|
3
|
+
export function smaStep(state, key, value, len) {
|
|
4
|
+
const lookback = ring(state, key, len);
|
|
5
|
+
lookback.push(value);
|
|
6
|
+
return lookback.mean();
|
|
7
|
+
}
|
|
8
|
+
/** `sma(src, len)` as a tail. */
|
|
9
|
+
export function smaTail(len) {
|
|
10
|
+
return tailOf((state, value) => smaStep(state, 'q', value, len));
|
|
11
|
+
}
|
|
12
|
+
/** `sma(src, len)` over a whole series. */
|
|
13
|
+
export function sma(src, len) {
|
|
14
|
+
return fold(smaTail(len), src);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* `wma(src, len)`: linearly weighted, the newest value weighted `len`, from bar
|
|
18
|
+
* `len - 1`.
|
|
19
|
+
*
|
|
20
|
+
* `stdlib.md` section 4 fixes the weights and not the order they are summed in,
|
|
21
|
+
* so the order is this library's own and is the one stated in `lookback.ts`:
|
|
22
|
+
* oldest bar first, which is weight 1 first and weight `len` last.
|
|
23
|
+
*/
|
|
24
|
+
export function wmaStep(state, key, value, len) {
|
|
25
|
+
const lookback = ring(state, key, len);
|
|
26
|
+
lookback.push(value);
|
|
27
|
+
if (len === null || !lookback.complete())
|
|
28
|
+
return NONE;
|
|
29
|
+
const divisor = (len * (len + 1)) / 2;
|
|
30
|
+
let total = 0;
|
|
31
|
+
for (let back = len - 1; back >= 0; back -= 1) {
|
|
32
|
+
total += lookback.at(back) * (len - back);
|
|
33
|
+
}
|
|
34
|
+
return result(total / divisor);
|
|
35
|
+
}
|
|
36
|
+
/** `wma(src, len)` as a tail. */
|
|
37
|
+
export function wmaTail(len) {
|
|
38
|
+
return tailOf((state, value) => wmaStep(state, 'w', value, len));
|
|
39
|
+
}
|
|
40
|
+
/** `wma(src, len)` over a whole series. */
|
|
41
|
+
export function wma(src, len) {
|
|
42
|
+
return fold(wmaTail(len), src);
|
|
43
|
+
}
|
|
44
|
+
/** `swma(src)`: the fixed four bar symmetric mean, weights 1, 2, 2, 1 over 6, from bar 3. */
|
|
45
|
+
export function swmaStep(state, key, value) {
|
|
46
|
+
const lookback = ring(state, key, 4);
|
|
47
|
+
lookback.push(value);
|
|
48
|
+
if (!lookback.complete())
|
|
49
|
+
return NONE;
|
|
50
|
+
const oldest = lookback.at(3);
|
|
51
|
+
const second = lookback.at(2);
|
|
52
|
+
const third = lookback.at(1);
|
|
53
|
+
const newest = lookback.at(0);
|
|
54
|
+
return result((oldest + 2 * second + 2 * third + newest) / 6);
|
|
55
|
+
}
|
|
56
|
+
/** `swma(src)` as a tail. */
|
|
57
|
+
export function swmaTail() {
|
|
58
|
+
return tailOf((state, value) => swmaStep(state, 'q', value));
|
|
59
|
+
}
|
|
60
|
+
/** `swma(src)` over a whole series. */
|
|
61
|
+
export function swma(src) {
|
|
62
|
+
return fold(swmaTail(), src);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* `vwma(src, len)`: the mean weighted by each bar's volume, from bar `len - 1`.
|
|
66
|
+
*
|
|
67
|
+
* The total of `src * volume` over the total of `volume`, which is what "mean
|
|
68
|
+
* weighted by volume" says. Dividing two means by `len` first and then dividing
|
|
69
|
+
* one by the other is the same quantity with two extra roundings in it, and
|
|
70
|
+
* this is the arrangement without them.
|
|
71
|
+
*/
|
|
72
|
+
export function vwmaStep(state, key, input, len) {
|
|
73
|
+
const flow = ring(state, `${key}f`, len);
|
|
74
|
+
const quantity = ring(state, `${key}v`, len);
|
|
75
|
+
const product = isPresent(input.src) && isPresent(input.volume) ? result(input.src * input.volume) : NONE;
|
|
76
|
+
flow.push(product);
|
|
77
|
+
quantity.push(input.volume);
|
|
78
|
+
const numerator = flow.sum();
|
|
79
|
+
const denominator = quantity.sum();
|
|
80
|
+
if (!isPresent(numerator) || !isPresent(denominator) || denominator === 0)
|
|
81
|
+
return NONE;
|
|
82
|
+
return result(numerator / denominator);
|
|
83
|
+
}
|
|
84
|
+
/** `vwma(src, len)` as a tail. */
|
|
85
|
+
export function vwmaTail(len) {
|
|
86
|
+
return tailOf((state, input) => vwmaStep(state, 'q', input, len));
|
|
87
|
+
}
|
|
88
|
+
/** `vwma(src, len)` over a whole series. */
|
|
89
|
+
export function vwma(src, volume, len) {
|
|
90
|
+
return fold(vwmaTail(len), src.map((value, index) => ({ src: value, volume: volume[index] ?? NONE })));
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=simple.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple.js","sourceRoot":"","sources":["../../../../src/core/stdlib/averages/simple.ts"],"names":[],"mappings":"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"}
|