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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deviation.js","sourceRoot":"","sources":["../../../../src/core/stdlib/volatility/deviation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type { Gap } from './range.js';
|
|
2
|
+
export { atr, atrStep, atrTail, gapOf, gapTrueRange, gapTrueRangeStep, gapTrueRangeTail, natr, natrStep, natrTail, trueRange, trueRangeOf, trueRangeTail, } from './range.js';
|
|
3
|
+
export { meanDeviation, meanDeviationStep, meanDeviationTail, stdev, stdevStep, stdevTail, variance, varianceStep, varianceTail, } from './deviation.js';
|
|
4
|
+
export { bbPercent, bbPercentStep, bbPercentTail, bbWidth, bbWidthStep, bbWidthTail, bollinger, bollingerStep, bollingerTail, donchian, donchianStep, donchianTail, keltner, keltnerStep, keltnerTail, } from './bands.js';
|
|
5
|
+
export { chop, chopStep, chopTail, hv, hvStep, hvTail } from './measures.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/volatility/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EACL,GAAG,EACH,OAAO,EACP,OAAO,EACP,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,WAAW,EACX,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,EACL,SAAS,EACT,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,SAAS,EACT,aAAa,EACb,aAAa,EACb,OAAO,EACP,WAAW,EACX,WAAW,EACX,SAAS,EACT,aAAa,EACb,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { atr, atrStep, atrTail, gapOf, gapTrueRange, gapTrueRangeStep, gapTrueRangeTail, natr, natrStep, natrTail, trueRange, trueRangeOf, trueRangeTail, } from './range.js';
|
|
2
|
+
export { meanDeviation, meanDeviationStep, meanDeviationTail, stdev, stdevStep, stdevTail, variance, varianceStep, varianceTail, } from './deviation.js';
|
|
3
|
+
export { bbPercent, bbPercentStep, bbPercentTail, bbWidth, bbWidthStep, bbWidthTail, bollinger, bollingerStep, bollingerTail, donchian, donchianStep, donchianTail, keltner, keltnerStep, keltnerTail, } from './bands.js';
|
|
4
|
+
export { chop, chopStep, chopTail, hv, hvStep, hvTail } from './measures.js';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/stdlib/volatility/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,GAAG,EACH,OAAO,EACP,OAAO,EACP,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,WAAW,EACX,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,EACL,SAAS,EACT,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,SAAS,EACT,aAAa,EACb,aAAa,EACb,OAAO,EACP,WAAW,EACX,WAAW,EACX,SAAS,EACT,aAAa,EACb,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,WAAW,EACX,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `chop` and `hv`, the two readings that say how the lookback behaved rather than
|
|
3
|
+
* how wide it was.
|
|
4
|
+
*
|
|
5
|
+
* Both are written as a step over a state region and both tails are that step
|
|
6
|
+
* over a region of their own, so a live chart and a fold over a run of bars
|
|
7
|
+
* cannot disagree.
|
|
8
|
+
*/
|
|
9
|
+
import type { Bar, Series, StateRecord, Tail, Value } from '../values/index.js';
|
|
10
|
+
import type { Gap } from './range.js';
|
|
11
|
+
/**
|
|
12
|
+
* `chop(len)`: a 0 to 100 reading of whether the lookback trended or chopped,
|
|
13
|
+
* from bar `len`.
|
|
14
|
+
*
|
|
15
|
+
* The distance price actually travelled over the lookback, against the outright
|
|
16
|
+
* range it covered. A market that went straight there travels its range and
|
|
17
|
+
* reads low; one that went back and forth travels several times its range and
|
|
18
|
+
* reads high.
|
|
19
|
+
*
|
|
20
|
+
* The travel is a sum of `len` true ranges, and a true range needs the bar
|
|
21
|
+
* before it, which is why the first reading is at bar `len` and not at bar
|
|
22
|
+
* `len - 1`: the gap-aware form of true range is the one used here, per the
|
|
23
|
+
* note in `range.ts`. The previous close arrives with the gap rather than being
|
|
24
|
+
* remembered here, for the reason the same note gives.
|
|
25
|
+
*/
|
|
26
|
+
export declare function chopStep(state: StateRecord, key: string, gap: Gap, len: number | null): Value;
|
|
27
|
+
/** `chop(len)` as a tail. */
|
|
28
|
+
export declare function chopTail(len?: number): Tail<Bar, Value>;
|
|
29
|
+
/** `chop(len)` over a run of bars. */
|
|
30
|
+
export declare function chop(bars: readonly Bar[], len?: number): Value[];
|
|
31
|
+
/**
|
|
32
|
+
* `hv(src, len, periodsPerYear)`: the annualised standard deviation of log
|
|
33
|
+
* returns, from bar `len`.
|
|
34
|
+
*
|
|
35
|
+
* A log return needs the previous bar, so the deviation's lookback starts at bar
|
|
36
|
+
* 1 and its first value is at bar `len`, one later than a lookback over levels.
|
|
37
|
+
*
|
|
38
|
+
* The result is a proportion, not a percentage: `stdlib.md` section 6 says
|
|
39
|
+
* "annualised standard deviation of log returns" and nothing about scaling it
|
|
40
|
+
* by a hundred, so nothing here does. A study that wants a percentage axis
|
|
41
|
+
* multiplies at the plot, where a reader can see it happen.
|
|
42
|
+
*/
|
|
43
|
+
export declare function hvStep(state: StateRecord, key: string, value: Value, len: number | null, periodsPerYear: number | null): Value;
|
|
44
|
+
/** `hv(src, len, periodsPerYear)` as a tail. */
|
|
45
|
+
export declare function hvTail(len?: number, periodsPerYear?: number): Tail<Value, Value>;
|
|
46
|
+
/** `hv(src, len, periodsPerYear)` over a whole series. */
|
|
47
|
+
export declare function hv(src: Series, len?: number, periodsPerYear?: number): Value[];
|
|
48
|
+
//# sourceMappingURL=measures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measures.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/volatility/measures.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAIhF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAItC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAUP;AAED,6BAA6B;AAC7B,wBAAgB,QAAQ,CAAC,GAAG,SAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAEnD;AAED,sCAAsC;AACtC,wBAAgB,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,SAAK,GAAG,KAAK,EAAE,CAE5D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CACpB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,cAAc,EAAE,MAAM,GAAG,IAAI,GAC5B,KAAK,CASP;AAED,gDAAgD;AAChD,wBAAgB,MAAM,CAAC,GAAG,SAAK,EAAE,cAAc,SAAM,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAEzE;AAED,0DAA0D;AAC1D,wBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,SAAK,EAAE,cAAc,SAAM,GAAG,KAAK,EAAE,CAEvE"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { NONE, fold, isPresent, result, tailOf } from '../values/index.js';
|
|
2
|
+
import { extremeStep, historyStep, sumStep } from '../series/index.js';
|
|
3
|
+
import { gapOf, trueRangeOf } from './range.js';
|
|
4
|
+
import { stdevStep } from './deviation.js';
|
|
5
|
+
/**
|
|
6
|
+
* `chop(len)`: a 0 to 100 reading of whether the lookback trended or chopped,
|
|
7
|
+
* from bar `len`.
|
|
8
|
+
*
|
|
9
|
+
* The distance price actually travelled over the lookback, against the outright
|
|
10
|
+
* range it covered. A market that went straight there travels its range and
|
|
11
|
+
* reads low; one that went back and forth travels several times its range and
|
|
12
|
+
* reads high.
|
|
13
|
+
*
|
|
14
|
+
* The travel is a sum of `len` true ranges, and a true range needs the bar
|
|
15
|
+
* before it, which is why the first reading is at bar `len` and not at bar
|
|
16
|
+
* `len - 1`: the gap-aware form of true range is the one used here, per the
|
|
17
|
+
* note in `range.ts`. The previous close arrives with the gap rather than being
|
|
18
|
+
* remembered here, for the reason the same note gives.
|
|
19
|
+
*/
|
|
20
|
+
export function chopStep(state, key, gap, len) {
|
|
21
|
+
const distance = sumStep(state, `${key}s`, trueRangeOf(gap, false), len);
|
|
22
|
+
const upper = extremeStep(state, `${key}h`, gap.high, len, true, false);
|
|
23
|
+
const lower = extremeStep(state, `${key}l`, gap.low, len, false, false);
|
|
24
|
+
if (len === null)
|
|
25
|
+
return NONE;
|
|
26
|
+
if (!isPresent(distance) || !isPresent(upper) || !isPresent(lower))
|
|
27
|
+
return NONE;
|
|
28
|
+
const span = upper - lower;
|
|
29
|
+
const scale = Math.log10(len);
|
|
30
|
+
if (!(span > 0) || !(distance > 0) || scale === 0)
|
|
31
|
+
return NONE;
|
|
32
|
+
return result((100 * Math.log10(distance / span)) / scale);
|
|
33
|
+
}
|
|
34
|
+
/** `chop(len)` as a tail. */
|
|
35
|
+
export function chopTail(len = 14) {
|
|
36
|
+
return tailOf((state, bar) => chopStep(state, '', gapOf(state, 'g', bar), len));
|
|
37
|
+
}
|
|
38
|
+
/** `chop(len)` over a run of bars. */
|
|
39
|
+
export function chop(bars, len = 14) {
|
|
40
|
+
return fold(chopTail(len), bars);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* `hv(src, len, periodsPerYear)`: the annualised standard deviation of log
|
|
44
|
+
* returns, from bar `len`.
|
|
45
|
+
*
|
|
46
|
+
* A log return needs the previous bar, so the deviation's lookback starts at bar
|
|
47
|
+
* 1 and its first value is at bar `len`, one later than a lookback over levels.
|
|
48
|
+
*
|
|
49
|
+
* The result is a proportion, not a percentage: `stdlib.md` section 6 says
|
|
50
|
+
* "annualised standard deviation of log returns" and nothing about scaling it
|
|
51
|
+
* by a hundred, so nothing here does. A study that wants a percentage axis
|
|
52
|
+
* multiplies at the plot, where a reader can see it happen.
|
|
53
|
+
*/
|
|
54
|
+
export function hvStep(state, key, value, len, periodsPerYear) {
|
|
55
|
+
const previous = historyStep(state, `${key}h`, value, 1);
|
|
56
|
+
let logReturn = NONE;
|
|
57
|
+
if (isPresent(value) && isPresent(previous) && value > 0 && previous > 0) {
|
|
58
|
+
logReturn = result(Math.log(value / previous));
|
|
59
|
+
}
|
|
60
|
+
const deviation = stdevStep(state, `${key}q`, logReturn, len, false);
|
|
61
|
+
if (!isPresent(deviation) || periodsPerYear === null || !(periodsPerYear > 0))
|
|
62
|
+
return NONE;
|
|
63
|
+
return result(deviation * Math.sqrt(periodsPerYear));
|
|
64
|
+
}
|
|
65
|
+
/** `hv(src, len, periodsPerYear)` as a tail. */
|
|
66
|
+
export function hvTail(len = 20, periodsPerYear = 252) {
|
|
67
|
+
return tailOf((state, value) => hvStep(state, '', value, len, periodsPerYear));
|
|
68
|
+
}
|
|
69
|
+
/** `hv(src, len, periodsPerYear)` over a whole series. */
|
|
70
|
+
export function hv(src, len = 20, periodsPerYear = 252) {
|
|
71
|
+
return fold(hvTail(len, periodsPerYear), src);
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=measures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measures.js","sourceRoot":"","sources":["../../../../src/core/stdlib/volatility/measures.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* True range, and the two averages of it.
|
|
3
|
+
*
|
|
4
|
+
* **Bar 0 is the one deliberate exception to absence propagation in this
|
|
5
|
+
* library**, and `stdlib.md` section 6 puts it there rather than leaving it to
|
|
6
|
+
* an engine. `trueRange()` on bar 0 is `high - low`: the other two terms need
|
|
7
|
+
* the previous close, which does not exist there, and propagating absence would
|
|
8
|
+
* start `atr` one bar later than every reference implementation while adding
|
|
9
|
+
* nothing, because the bar's own range is a true statement about that bar.
|
|
10
|
+
*
|
|
11
|
+
* The exception is granted to `trueRange` and therefore to `atr` and `natr`.
|
|
12
|
+
* It is not granted to every function that happens to use a range: where a
|
|
13
|
+
* function's declared warmup shows it counts changes rather than levels,
|
|
14
|
+
* `gapTrueRange` is the form it uses, and that one is absent on bar 0 like any
|
|
15
|
+
* other change. `chop` and `adx` are the two, and both of their warmups in
|
|
16
|
+
* `stdlib.md` are one bar later than the plain reading would give, which is how
|
|
17
|
+
* the specification says which form they take.
|
|
18
|
+
*
|
|
19
|
+
* **Where the previous close comes from is a host fact, not an arithmetic one.**
|
|
20
|
+
* A run of bars has it in the bar before; an engine is handed it with the bar,
|
|
21
|
+
* and that is the one it must use, because a call inside a branch does not see
|
|
22
|
+
* every bar and the close of the bar it last ran on is a different number. So
|
|
23
|
+
* the arithmetic below takes it as an argument and `gapOf` is the small piece
|
|
24
|
+
* that remembers it for a caller folding over a series.
|
|
25
|
+
*/
|
|
26
|
+
import type { Bar, StateRecord, Tail, Value } from '../values/index.js';
|
|
27
|
+
/** A bar's two extremes and the close before it, which is what a range needs. */
|
|
28
|
+
export interface Gap {
|
|
29
|
+
readonly high: Value;
|
|
30
|
+
readonly low: Value;
|
|
31
|
+
/** The close of the bar before this one, absent on the first bar. */
|
|
32
|
+
readonly previousClose: Value;
|
|
33
|
+
/** Whether this is the first bar of the run. */
|
|
34
|
+
readonly isFirstBar: boolean;
|
|
35
|
+
}
|
|
36
|
+
/** `trueRange()`: the bar's range including any gap from the previous close. */
|
|
37
|
+
export declare function trueRangeOf(gap: Gap, allowFirstBar: boolean): Value;
|
|
38
|
+
/**
|
|
39
|
+
* The previous close remembered in a region, for a caller folding over a run of
|
|
40
|
+
* bars rather than being handed one at a time.
|
|
41
|
+
*/
|
|
42
|
+
export declare function gapOf(state: StateRecord, key: string, bar: Bar): Gap;
|
|
43
|
+
/** `trueRange()` as a tail. */
|
|
44
|
+
export declare function trueRangeTail(): Tail<Bar, Value>;
|
|
45
|
+
/**
|
|
46
|
+
* True range with no exception on bar 0, as a step: absent there, like any
|
|
47
|
+
* other quantity that needs the bar before it. Not a call a script can make;
|
|
48
|
+
* see this file's opening note for which functions use it and why.
|
|
49
|
+
*/
|
|
50
|
+
export declare function gapTrueRangeStep(state: StateRecord, key: string, bar: Bar): Value;
|
|
51
|
+
/** `trueRange()` over a run of bars. */
|
|
52
|
+
export declare function trueRange(bars: readonly Bar[]): Value[];
|
|
53
|
+
/** The gap-aware true range as a tail. */
|
|
54
|
+
export declare function gapTrueRangeTail(): Tail<Bar, Value>;
|
|
55
|
+
/** The gap-aware true range over a run of bars. */
|
|
56
|
+
export declare function gapTrueRange(bars: readonly Bar[]): Value[];
|
|
57
|
+
/** `atr(len)`: the smoothed mean of true range, from bar `len - 1`. */
|
|
58
|
+
export declare function atrStep(state: StateRecord, key: string, gap: Gap, len: number | null): Value;
|
|
59
|
+
/** `atr(len)` as a tail. */
|
|
60
|
+
export declare function atrTail(len: number): Tail<Bar, Value>;
|
|
61
|
+
/** `atr(len)` over a run of bars. */
|
|
62
|
+
export declare function atr(bars: readonly Bar[], len?: number): Value[];
|
|
63
|
+
/** `natr(len)`: `atr` as a percentage of close, from bar `len - 1`. */
|
|
64
|
+
export declare function natrStep(state: StateRecord, key: string, gap: Gap, close: Value, len: number | null): Value;
|
|
65
|
+
/** `natr(len)` as a tail. */
|
|
66
|
+
export declare function natrTail(len: number): Tail<Bar, Value>;
|
|
67
|
+
/** `natr(len)` over a run of bars. */
|
|
68
|
+
export declare function natr(bars: readonly Bar[], len?: number): Value[];
|
|
69
|
+
//# sourceMappingURL=range.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/volatility/range.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAIxE,iFAAiF;AACjF,MAAM,WAAW,GAAG;IAClB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;IACpB,qEAAqE;IACrE,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC;IAC9B,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,GAAG,KAAK,CAWnE;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAapE;AAED,+BAA+B;AAC/B,wBAAgB,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,KAAK,CAEjF;AAED,wCAAwC;AACxC,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAEvD;AAED,0CAA0C;AAC1C,wBAAgB,gBAAgB,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAEnD;AAED,mDAAmD;AACnD,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAE1D;AAED,uEAAuE;AACvE,wBAAgB,OAAO,CACrB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAEP;AAED,4BAA4B;AAC5B,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAErD;AAED,qCAAqC;AACrC,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,SAAK,GAAG,KAAK,EAAE,CAE3D;AAED,uEAAuE;AACvE,wBAAgB,QAAQ,CACtB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAIP;AAED,6BAA6B;AAC7B,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAEtD;AAED,sCAAsC;AACtC,wBAAgB,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,SAAK,GAAG,KAAK,EAAE,CAE5D"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { NONE, fold, isPresent, result, tailOf } from '../values/index.js';
|
|
2
|
+
import { rmaStep } from '../averages/index.js';
|
|
3
|
+
/** `trueRange()`: the bar's range including any gap from the previous close. */
|
|
4
|
+
export function trueRangeOf(gap, allowFirstBar) {
|
|
5
|
+
if (gap.isFirstBar) {
|
|
6
|
+
return allowFirstBar && isPresent(gap.high) && isPresent(gap.low)
|
|
7
|
+
? result(gap.high - gap.low)
|
|
8
|
+
: NONE;
|
|
9
|
+
}
|
|
10
|
+
if (!isPresent(gap.high) || !isPresent(gap.low) || !isPresent(gap.previousClose))
|
|
11
|
+
return NONE;
|
|
12
|
+
const within = gap.high - gap.low;
|
|
13
|
+
const upGap = Math.abs(gap.high - gap.previousClose);
|
|
14
|
+
const downGap = Math.abs(gap.low - gap.previousClose);
|
|
15
|
+
return result(Math.max(within, upGap, downGap));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* The previous close remembered in a region, for a caller folding over a run of
|
|
19
|
+
* bars rather than being handed one at a time.
|
|
20
|
+
*/
|
|
21
|
+
export function gapOf(state, key, bar) {
|
|
22
|
+
const closeKey = `${key}p`;
|
|
23
|
+
const seenKey = `${key}k`;
|
|
24
|
+
const held = state[closeKey];
|
|
25
|
+
const gap = {
|
|
26
|
+
high: bar.high,
|
|
27
|
+
low: bar.low,
|
|
28
|
+
previousClose: typeof held === 'number' ? held : NONE,
|
|
29
|
+
isFirstBar: state[seenKey] !== true,
|
|
30
|
+
};
|
|
31
|
+
state[seenKey] = true;
|
|
32
|
+
state[closeKey] = bar.close;
|
|
33
|
+
return gap;
|
|
34
|
+
}
|
|
35
|
+
/** `trueRange()` as a tail. */
|
|
36
|
+
export function trueRangeTail() {
|
|
37
|
+
return tailOf((state, bar) => trueRangeOf(gapOf(state, 'g', bar), true));
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* True range with no exception on bar 0, as a step: absent there, like any
|
|
41
|
+
* other quantity that needs the bar before it. Not a call a script can make;
|
|
42
|
+
* see this file's opening note for which functions use it and why.
|
|
43
|
+
*/
|
|
44
|
+
export function gapTrueRangeStep(state, key, bar) {
|
|
45
|
+
return trueRangeOf(gapOf(state, `${key}g`, bar), false);
|
|
46
|
+
}
|
|
47
|
+
/** `trueRange()` over a run of bars. */
|
|
48
|
+
export function trueRange(bars) {
|
|
49
|
+
return fold(trueRangeTail(), bars);
|
|
50
|
+
}
|
|
51
|
+
/** The gap-aware true range as a tail. */
|
|
52
|
+
export function gapTrueRangeTail() {
|
|
53
|
+
return tailOf((state, bar) => gapTrueRangeStep(state, '', bar));
|
|
54
|
+
}
|
|
55
|
+
/** The gap-aware true range over a run of bars. */
|
|
56
|
+
export function gapTrueRange(bars) {
|
|
57
|
+
return fold(gapTrueRangeTail(), bars);
|
|
58
|
+
}
|
|
59
|
+
/** `atr(len)`: the smoothed mean of true range, from bar `len - 1`. */
|
|
60
|
+
export function atrStep(state, key, gap, len) {
|
|
61
|
+
return rmaStep(state, `${key}a`, trueRangeOf(gap, true), len);
|
|
62
|
+
}
|
|
63
|
+
/** `atr(len)` as a tail. */
|
|
64
|
+
export function atrTail(len) {
|
|
65
|
+
return tailOf((state, bar) => atrStep(state, '', gapOf(state, 'g', bar), len));
|
|
66
|
+
}
|
|
67
|
+
/** `atr(len)` over a run of bars. */
|
|
68
|
+
export function atr(bars, len = 14) {
|
|
69
|
+
return fold(atrTail(len), bars);
|
|
70
|
+
}
|
|
71
|
+
/** `natr(len)`: `atr` as a percentage of close, from bar `len - 1`. */
|
|
72
|
+
export function natrStep(state, key, gap, close, len) {
|
|
73
|
+
const average = atrStep(state, key, gap, len);
|
|
74
|
+
if (!isPresent(average) || !isPresent(close) || close === 0)
|
|
75
|
+
return NONE;
|
|
76
|
+
return result((100 * average) / close);
|
|
77
|
+
}
|
|
78
|
+
/** `natr(len)` as a tail. */
|
|
79
|
+
export function natrTail(len) {
|
|
80
|
+
return tailOf((state, bar) => natrStep(state, '', gapOf(state, 'g', bar), bar.close, len));
|
|
81
|
+
}
|
|
82
|
+
/** `natr(len)` over a run of bars. */
|
|
83
|
+
export function natr(bars, len = 14) {
|
|
84
|
+
return fold(natrTail(len), bars);
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=range.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"range.js","sourceRoot":"","sources":["../../../../src/core/stdlib/volatility/range.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The running totals: `obv`, `ad`, `adOsc` and `pvt`.
|
|
3
|
+
*
|
|
4
|
+
* Every function in this module returns absence on every bar when the host
|
|
5
|
+
* supplies no volume, because `volume` is absent rather than zero there
|
|
6
|
+
* (`stdlib.md` sections 3.1 and 7). A script tests `chart.hasVolume` to branch
|
|
7
|
+
* on that rather than inspecting the result, and nothing here substitutes a
|
|
8
|
+
* zero to keep a line drawing.
|
|
9
|
+
*
|
|
10
|
+
* A running total is the one thing a lookback cannot stand in for, so each of
|
|
11
|
+
* these carries its total in the state region rather than in a closure: that is
|
|
12
|
+
* what lets an engine roll one back with the rest of a moving bar's state.
|
|
13
|
+
*/
|
|
14
|
+
import type { Bar, StateRecord, Tail, Value } from '../values/index.js';
|
|
15
|
+
/**
|
|
16
|
+
* Where the close sat inside the bar, as -1 at the low to 1 at the high, times
|
|
17
|
+
* the volume behind it.
|
|
18
|
+
*
|
|
19
|
+
* A bar whose high and low are equal has no position inside it to report, and
|
|
20
|
+
* the settled treatment is that such a bar contributes nothing rather than
|
|
21
|
+
* ending the running total.
|
|
22
|
+
*/
|
|
23
|
+
export declare function moneyFlow(bar: Bar): Value;
|
|
24
|
+
/** `obv()`: the running total of volume signed by the close's direction, from bar 0, seeded 0. */
|
|
25
|
+
export declare function obvStep(state: StateRecord, key: string, bar: Bar): Value;
|
|
26
|
+
/** `obv()` as a tail. */
|
|
27
|
+
export declare function obvTail(): Tail<Bar, Value>;
|
|
28
|
+
/** `obv()` over a run of bars. */
|
|
29
|
+
export declare function obv(bars: readonly Bar[]): Value[];
|
|
30
|
+
/** `ad()`: the running total of volume weighted by where the close sat, from bar 0. */
|
|
31
|
+
export declare function adStep(state: StateRecord, key: string, bar: Bar): Value;
|
|
32
|
+
/** `ad()` as a tail. */
|
|
33
|
+
export declare function adTail(): Tail<Bar, Value>;
|
|
34
|
+
/** `ad()` over a run of bars. */
|
|
35
|
+
export declare function ad(bars: readonly Bar[]): Value[];
|
|
36
|
+
/**
|
|
37
|
+
* `adOsc(fast, slow)`: the difference of two means of `ad`, from bar `slow - 1`.
|
|
38
|
+
*
|
|
39
|
+
* The averages run over the running total, not over the per-bar term, so what
|
|
40
|
+
* this measures is acceleration in accumulation rather than the flow itself.
|
|
41
|
+
*/
|
|
42
|
+
export declare function adOscStep(state: StateRecord, key: string, bar: Bar, fast: number | null, slow: number | null): Value;
|
|
43
|
+
/** `adOsc(fast, slow)` as a tail. */
|
|
44
|
+
export declare function adOscTail(fast?: number, slow?: number): Tail<Bar, Value>;
|
|
45
|
+
/** `adOsc(fast, slow)` over a run of bars. */
|
|
46
|
+
export declare function adOsc(bars: readonly Bar[], fast?: number, slow?: number): Value[];
|
|
47
|
+
/**
|
|
48
|
+
* `pvt()`: the running total of volume weighted by percentage change, from bar
|
|
49
|
+
* 1, seeded 0.
|
|
50
|
+
*
|
|
51
|
+
* The total starts at zero before the first change, and the first change is at
|
|
52
|
+
* bar 1, so bar 0 is absent and bar 1 already carries its own term. Reporting a
|
|
53
|
+
* zero at bar 0 would claim a reading on a bar where the quantity is not
|
|
54
|
+
* defined.
|
|
55
|
+
*/
|
|
56
|
+
export declare function pvtStep(state: StateRecord, key: string, bar: Bar): Value;
|
|
57
|
+
/** `pvt()` as a tail. */
|
|
58
|
+
export declare function pvtTail(): Tail<Bar, Value>;
|
|
59
|
+
/** `pvt()` over a run of bars. */
|
|
60
|
+
export declare function pvt(bars: readonly Bar[]): Value[];
|
|
61
|
+
//# sourceMappingURL=accumulation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accumulation.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/volume/accumulation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAIxE;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,CAMzC;AAED,kGAAkG;AAClG,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,KAAK,CAsBxE;AAED,yBAAyB;AACzB,wBAAgB,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAE1C;AAED,kCAAkC;AAClC,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAEjD;AAED,uFAAuF;AACvF,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,KAAK,CAMvE;AAED,wBAAwB;AACxB,wBAAgB,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAEzC;AAED,iCAAiC;AACjC,wBAAgB,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAEhD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,KAAK,CAMP;AAED,qCAAqC;AACrC,wBAAgB,SAAS,CAAC,IAAI,SAAI,EAAE,IAAI,SAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAE/D;AAED,8CAA8C;AAC9C,wBAAgB,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,SAAI,EAAE,IAAI,SAAK,GAAG,KAAK,EAAE,CAExE;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,KAAK,CAexE;AAED,yBAAyB;AACzB,wBAAgB,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAE1C;AAED,kCAAkC;AAClC,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAEjD"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { NONE, fold, held, isPresent, result, slot, tailOf } from '../values/index.js';
|
|
2
|
+
import { emaStep } from '../averages/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Where the close sat inside the bar, as -1 at the low to 1 at the high, times
|
|
5
|
+
* the volume behind it.
|
|
6
|
+
*
|
|
7
|
+
* A bar whose high and low are equal has no position inside it to report, and
|
|
8
|
+
* the settled treatment is that such a bar contributes nothing rather than
|
|
9
|
+
* ending the running total.
|
|
10
|
+
*/
|
|
11
|
+
export function moneyFlow(bar) {
|
|
12
|
+
if (!isPresent(bar.high) || !isPresent(bar.low))
|
|
13
|
+
return NONE;
|
|
14
|
+
if (!isPresent(bar.close) || !isPresent(bar.volume))
|
|
15
|
+
return NONE;
|
|
16
|
+
const span = bar.high - bar.low;
|
|
17
|
+
if (!(span > 0))
|
|
18
|
+
return 0;
|
|
19
|
+
return result((((bar.close - bar.low) - (bar.high - bar.close)) / span) * bar.volume);
|
|
20
|
+
}
|
|
21
|
+
/** `obv()`: the running total of volume signed by the close's direction, from bar 0, seeded 0. */
|
|
22
|
+
export function obvStep(state, key, bar) {
|
|
23
|
+
const totalKey = `${key}t`;
|
|
24
|
+
const closeKey = `${key}p`;
|
|
25
|
+
const seenKey = `${key}k`;
|
|
26
|
+
const previousClose = held(state, closeKey);
|
|
27
|
+
const started = state[seenKey] === true;
|
|
28
|
+
if (!isPresent(bar.volume) || !isPresent(bar.close)) {
|
|
29
|
+
state[seenKey] = true;
|
|
30
|
+
state[closeKey] = bar.close;
|
|
31
|
+
return NONE;
|
|
32
|
+
}
|
|
33
|
+
let total = slot(state, totalKey, 0);
|
|
34
|
+
if (started && isPresent(previousClose)) {
|
|
35
|
+
if (bar.close > previousClose)
|
|
36
|
+
total += bar.volume;
|
|
37
|
+
else if (bar.close < previousClose)
|
|
38
|
+
total -= bar.volume;
|
|
39
|
+
}
|
|
40
|
+
state[seenKey] = true;
|
|
41
|
+
state[closeKey] = bar.close;
|
|
42
|
+
state[totalKey] = total;
|
|
43
|
+
return result(total);
|
|
44
|
+
}
|
|
45
|
+
/** `obv()` as a tail. */
|
|
46
|
+
export function obvTail() {
|
|
47
|
+
return tailOf((state, bar) => obvStep(state, '', bar));
|
|
48
|
+
}
|
|
49
|
+
/** `obv()` over a run of bars. */
|
|
50
|
+
export function obv(bars) {
|
|
51
|
+
return fold(obvTail(), bars);
|
|
52
|
+
}
|
|
53
|
+
/** `ad()`: the running total of volume weighted by where the close sat, from bar 0. */
|
|
54
|
+
export function adStep(state, key, bar) {
|
|
55
|
+
const flow = moneyFlow(bar);
|
|
56
|
+
if (!isPresent(flow))
|
|
57
|
+
return NONE;
|
|
58
|
+
const total = slot(state, `${key}t`, 0) + flow;
|
|
59
|
+
state[`${key}t`] = total;
|
|
60
|
+
return result(total);
|
|
61
|
+
}
|
|
62
|
+
/** `ad()` as a tail. */
|
|
63
|
+
export function adTail() {
|
|
64
|
+
return tailOf((state, bar) => adStep(state, '', bar));
|
|
65
|
+
}
|
|
66
|
+
/** `ad()` over a run of bars. */
|
|
67
|
+
export function ad(bars) {
|
|
68
|
+
return fold(adTail(), bars);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* `adOsc(fast, slow)`: the difference of two means of `ad`, from bar `slow - 1`.
|
|
72
|
+
*
|
|
73
|
+
* The averages run over the running total, not over the per-bar term, so what
|
|
74
|
+
* this measures is acceleration in accumulation rather than the flow itself.
|
|
75
|
+
*/
|
|
76
|
+
export function adOscStep(state, key, bar, fast, slow) {
|
|
77
|
+
const total = adStep(state, `${key}a`, bar);
|
|
78
|
+
const near = emaStep(state, `${key}f`, total, fast);
|
|
79
|
+
const far = emaStep(state, `${key}s`, total, slow);
|
|
80
|
+
if (!isPresent(near) || !isPresent(far))
|
|
81
|
+
return NONE;
|
|
82
|
+
return result(near - far);
|
|
83
|
+
}
|
|
84
|
+
/** `adOsc(fast, slow)` as a tail. */
|
|
85
|
+
export function adOscTail(fast = 3, slow = 10) {
|
|
86
|
+
return tailOf((state, bar) => adOscStep(state, '', bar, fast, slow));
|
|
87
|
+
}
|
|
88
|
+
/** `adOsc(fast, slow)` over a run of bars. */
|
|
89
|
+
export function adOsc(bars, fast = 3, slow = 10) {
|
|
90
|
+
return fold(adOscTail(fast, slow), bars);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* `pvt()`: the running total of volume weighted by percentage change, from bar
|
|
94
|
+
* 1, seeded 0.
|
|
95
|
+
*
|
|
96
|
+
* The total starts at zero before the first change, and the first change is at
|
|
97
|
+
* bar 1, so bar 0 is absent and bar 1 already carries its own term. Reporting a
|
|
98
|
+
* zero at bar 0 would claim a reading on a bar where the quantity is not
|
|
99
|
+
* defined.
|
|
100
|
+
*/
|
|
101
|
+
export function pvtStep(state, key, bar) {
|
|
102
|
+
const totalKey = `${key}t`;
|
|
103
|
+
const closeKey = `${key}p`;
|
|
104
|
+
const seenKey = `${key}k`;
|
|
105
|
+
const before = held(state, closeKey);
|
|
106
|
+
const started = state[seenKey] === true;
|
|
107
|
+
state[seenKey] = true;
|
|
108
|
+
state[closeKey] = bar.close;
|
|
109
|
+
if (!started)
|
|
110
|
+
return NONE;
|
|
111
|
+
if (!isPresent(before) || before === 0)
|
|
112
|
+
return NONE;
|
|
113
|
+
if (!isPresent(bar.close) || !isPresent(bar.volume))
|
|
114
|
+
return NONE;
|
|
115
|
+
const total = slot(state, totalKey, 0) + ((bar.close - before) / before) * bar.volume;
|
|
116
|
+
state[totalKey] = total;
|
|
117
|
+
return result(total);
|
|
118
|
+
}
|
|
119
|
+
/** `pvt()` as a tail. */
|
|
120
|
+
export function pvtTail() {
|
|
121
|
+
return tailOf((state, bar) => pvtStep(state, '', bar));
|
|
122
|
+
}
|
|
123
|
+
/** `pvt()` over a run of bars. */
|
|
124
|
+
export function pvt(bars) {
|
|
125
|
+
return fold(pvtTail(), bars);
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=accumulation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accumulation.js","sourceRoot":"","sources":["../../../../src/core/stdlib/volume/accumulation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The lookback volume readings: `cmf`, `mfi`, `eom`, `forceIndex` and
|
|
3
|
+
* `relativeVolume`.
|
|
4
|
+
*
|
|
5
|
+
* Each is written once, as a step over a state region, and its tail is that
|
|
6
|
+
* step over a region of its own.
|
|
7
|
+
*/
|
|
8
|
+
import type { Bar, StateRecord, Tail, Value } from '../values/index.js';
|
|
9
|
+
/** `cmf(len)`: accumulation over the lookback as a fraction of its volume, from bar `len - 1`. */
|
|
10
|
+
export declare function cmfStep(state: StateRecord, key: string, bar: Bar, len: number | null): Value;
|
|
11
|
+
/** `cmf(len)` as a tail. */
|
|
12
|
+
export declare function cmfTail(len?: number): Tail<Bar, Value>;
|
|
13
|
+
/** `cmf(len)` over a run of bars. */
|
|
14
|
+
export declare function cmf(bars: readonly Bar[], len?: number): Value[];
|
|
15
|
+
/**
|
|
16
|
+
* `mfi(len)`: the strength reading computed on money flow rather than price,
|
|
17
|
+
* from bar `len`.
|
|
18
|
+
*
|
|
19
|
+
* A bar's whole flow counts on one side or the other, by whether the typical
|
|
20
|
+
* price rose or fell, so the first lookback is bars 1 to `len` and the extra bar
|
|
21
|
+
* is in the declared warmup.
|
|
22
|
+
*/
|
|
23
|
+
export declare function mfiStep(state: StateRecord, key: string, bar: Bar, len: number | null): Value;
|
|
24
|
+
/** `mfi(len)` as a tail. */
|
|
25
|
+
export declare function mfiTail(len?: number): Tail<Bar, Value>;
|
|
26
|
+
/** `mfi(len)` over a run of bars. */
|
|
27
|
+
export declare function mfi(bars: readonly Bar[], len?: number): Value[];
|
|
28
|
+
/**
|
|
29
|
+
* `eom(len)`: how far price moved per unit of volume, from bar `len`.
|
|
30
|
+
*
|
|
31
|
+
* The midpoint's move, times the bar's range, over the volume traded, then
|
|
32
|
+
* averaged over the lookback. The midpoint move needs the previous bar, so the
|
|
33
|
+
* average's lookback starts at bar 1 and the first reading is at bar `len`.
|
|
34
|
+
*
|
|
35
|
+
* **No scaling constant.** Implementations of this reading usually multiply by
|
|
36
|
+
* a large divisor whose only job is to bring the number into a readable range,
|
|
37
|
+
* and they do not agree on it. `stdlib.md` section 7 declares `eom(len = 14)`
|
|
38
|
+
* with no such argument, so there is none here and the reading is the quantity
|
|
39
|
+
* itself. That leaves it very small on a liquid instrument, which is recorded
|
|
40
|
+
* as a gap in the specification rather than papered over with a constant this
|
|
41
|
+
* library invented.
|
|
42
|
+
*/
|
|
43
|
+
export declare function eomStep(state: StateRecord, key: string, bar: Bar, len: number | null): Value;
|
|
44
|
+
/** `eom(len)` as a tail. */
|
|
45
|
+
export declare function eomTail(len?: number): Tail<Bar, Value>;
|
|
46
|
+
/** `eom(len)` over a run of bars. */
|
|
47
|
+
export declare function eom(bars: readonly Bar[], len?: number): Value[];
|
|
48
|
+
/** `forceIndex(len)`: change times volume, smoothed, from bar `len`. */
|
|
49
|
+
export declare function forceIndexStep(state: StateRecord, key: string, bar: Bar, len: number | null): Value;
|
|
50
|
+
/** `forceIndex(len)` as a tail. */
|
|
51
|
+
export declare function forceIndexTail(len?: number): Tail<Bar, Value>;
|
|
52
|
+
/** `forceIndex(len)` over a run of bars. */
|
|
53
|
+
export declare function forceIndex(bars: readonly Bar[], len?: number): Value[];
|
|
54
|
+
/** `relativeVolume(len)`: this bar's volume over its own recent average, from bar `len - 1`. */
|
|
55
|
+
export declare function relativeVolumeStep(state: StateRecord, key: string, volume: Value, len: number | null): Value;
|
|
56
|
+
/** `relativeVolume(len)` as a tail. */
|
|
57
|
+
export declare function relativeVolumeTail(len?: number): Tail<Bar, Value>;
|
|
58
|
+
/** `relativeVolume(len)` over a run of bars. */
|
|
59
|
+
export declare function relativeVolume(bars: readonly Bar[], len?: number): Value[];
|
|
60
|
+
//# sourceMappingURL=flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../../../src/core/stdlib/volume/flow.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAOxE,kGAAkG;AAClG,wBAAgB,OAAO,CACrB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAKP;AAED,4BAA4B;AAC5B,wBAAgB,OAAO,CAAC,GAAG,SAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAElD;AAED,qCAAqC;AACrC,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,SAAK,GAAG,KAAK,EAAE,CAE3D;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAuBP;AAED,4BAA4B;AAC5B,wBAAgB,OAAO,CAAC,GAAG,SAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAElD;AAED,qCAAqC;AACrC,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,SAAK,GAAG,KAAK,EAAE,CAE3D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAaP;AAED,4BAA4B;AAC5B,wBAAgB,OAAO,CAAC,GAAG,SAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAElD;AAED,qCAAqC;AACrC,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,SAAK,GAAG,KAAK,EAAE,CAE3D;AAED,wEAAwE;AACxE,wBAAgB,cAAc,CAC5B,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAIP;AAED,mCAAmC;AACnC,wBAAgB,cAAc,CAAC,GAAG,SAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAEzD;AAED,4CAA4C;AAC5C,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,SAAK,GAAG,KAAK,EAAE,CAElE;AAED,gGAAgG;AAChG,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,KAAK,EACb,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,KAAK,CAIP;AAED,uCAAuC;AACvC,wBAAgB,kBAAkB,CAAC,GAAG,SAAK,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAE7D;AAED,gDAAgD;AAChD,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,SAAK,GAAG,KAAK,EAAE,CAEtE"}
|