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,237 @@
|
|
|
1
|
+
import { isTerminal } from './row.js';
|
|
2
|
+
function sideOf(signed) {
|
|
3
|
+
return signed > 0 ? 'buy' : 'sell';
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Every position reference this leg holds, oldest first.
|
|
7
|
+
*
|
|
8
|
+
* Oldest first is the order the references were minted in, which is the order
|
|
9
|
+
* the rows first name them in, and it is the order a reducing order takes them
|
|
10
|
+
* in: the position opened first is the position closed first.
|
|
11
|
+
*
|
|
12
|
+
* A reference with nothing left on it is not here. It has no room for an
|
|
13
|
+
* opposing order and nothing for a close to send, and it is either already back
|
|
14
|
+
* at zero or has its whole quantity spoken for by orders that are still going.
|
|
15
|
+
*/
|
|
16
|
+
export function holdings(ctx) {
|
|
17
|
+
const tallies = new Map();
|
|
18
|
+
const minted = [];
|
|
19
|
+
for (const row of ctx.rows()) {
|
|
20
|
+
let tally = tallies.get(row.positionRef);
|
|
21
|
+
if (tally === undefined) {
|
|
22
|
+
tally = {
|
|
23
|
+
settled: ctx.sizeOf(row.positionRef),
|
|
24
|
+
working: 0,
|
|
25
|
+
against: 0,
|
|
26
|
+
unreadable: null,
|
|
27
|
+
blocked: false,
|
|
28
|
+
};
|
|
29
|
+
tallies.set(row.positionRef, tally);
|
|
30
|
+
minted.push(row.positionRef);
|
|
31
|
+
}
|
|
32
|
+
// An order that has ended has nothing more coming from it, whatever it
|
|
33
|
+
// filled: the fill is already in the settled figure above, and the rest is
|
|
34
|
+
// released. That is how a strategy whose order was rejected gets its room
|
|
35
|
+
// back.
|
|
36
|
+
if (isTerminal(row.status))
|
|
37
|
+
continue;
|
|
38
|
+
const sign = row.side === 'buy' ? 1 : -1;
|
|
39
|
+
// **Every row is read the same way, by the order's own quantity in units**,
|
|
40
|
+
// because this sum is compared against what has settled on this reference
|
|
41
|
+
// and both halves have to fall together when a fill arrives.
|
|
42
|
+
//
|
|
43
|
+
// A reduction used to be read by what it claimed of the leg when it was
|
|
44
|
+
// sent (`row.ts`, `Reduction`), which is a number about the leg rather than
|
|
45
|
+
// about the order: a second stated close claims nothing, because the first
|
|
46
|
+
// already spoke for the whole leg, and it still fills and still takes what
|
|
47
|
+
// it filled off what has settled here. The settled half fell, the claimed
|
|
48
|
+
// half did not, the sum went negative, the reference read as the side it is
|
|
49
|
+
// not on, and an entry opposing it was handed it as an order that adds. It
|
|
50
|
+
// then opened long and settled short with every order answered in full.
|
|
51
|
+
const remaining = row.units === null ? null : Math.max(0, row.units - row.filledQty);
|
|
52
|
+
const reduces = Math.sign(tally.settled) === -sign;
|
|
53
|
+
if (remaining === null) {
|
|
54
|
+
tally.unreadable = row.side;
|
|
55
|
+
// Nothing is sent against a position an order the engine cannot read is
|
|
56
|
+
// working against. Between a close that sends nothing and an order that
|
|
57
|
+
// crosses zero, `stdlib.md` 17.1 has already chosen.
|
|
58
|
+
if (reduces)
|
|
59
|
+
tally.blocked = true;
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
tally.working += sign * remaining;
|
|
63
|
+
if (reduces)
|
|
64
|
+
tally.against += remaining;
|
|
65
|
+
}
|
|
66
|
+
const held = [];
|
|
67
|
+
for (const ref of minted) {
|
|
68
|
+
const tally = tallies.get(ref);
|
|
69
|
+
const outstanding = tally.settled + tally.working;
|
|
70
|
+
if (outstanding === 0 && tally.unreadable === null)
|
|
71
|
+
continue;
|
|
72
|
+
const side = outstanding === 0 ? tally.unreadable : sideOf(outstanding);
|
|
73
|
+
// A reference holding a quantity the engine cannot read holds an unknown
|
|
74
|
+
// number of units, and understating it is the safe half of that: an
|
|
75
|
+
// opposing order divided against too small a number opens the remainder on
|
|
76
|
+
// a reference of its own, which crosses nothing.
|
|
77
|
+
const units = outstanding === 0 ? null : Math.abs(outstanding);
|
|
78
|
+
// **What a close may send is what settled here and is not already coming
|
|
79
|
+
// off**, and only where what settled is on this side. A reference whose
|
|
80
|
+
// working orders run past its settled quantity reads as the other side,
|
|
81
|
+
// because that is what it will hold, and nothing of that side has settled
|
|
82
|
+
// yet: a reference two long with nine of sell working offered a close seven
|
|
83
|
+
// units to send against it, which took its own book to five long.
|
|
84
|
+
const facing = side === 'buy' ? 1 : -1;
|
|
85
|
+
const settled = tally.blocked || Math.sign(tally.settled) !== facing
|
|
86
|
+
? 0
|
|
87
|
+
: Math.max(0, Math.abs(tally.settled) - tally.against);
|
|
88
|
+
held.push({ ref, side, units, settled });
|
|
89
|
+
}
|
|
90
|
+
return held;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* The references an order of this side reduces, oldest first.
|
|
94
|
+
*
|
|
95
|
+
* A reference is reduced by the side it is not on, which is the same test a
|
|
96
|
+
* close makes on the leg as a whole and is why `closingSide` and this agree.
|
|
97
|
+
*/
|
|
98
|
+
export function opposing(book, side) {
|
|
99
|
+
return book.filter((one) => one.side !== side);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* The position an order the engine cannot size is sent against, `stdlib.md`
|
|
103
|
+
* 17.1, or none where the leg names no position at all.
|
|
104
|
+
*
|
|
105
|
+
* **A close is never minted a position of its own.** It is named for reducing,
|
|
106
|
+
* so it goes on the position it is closing, and where the engine cannot read
|
|
107
|
+
* the quantity it states, that position is the one the order may take past
|
|
108
|
+
* zero: the one shape of 17.1 an engine does not keep, waiting on the lot size
|
|
109
|
+
* OS7005 is deferred on.
|
|
110
|
+
*
|
|
111
|
+
* **What has settled comes first, and the book's own list second.** A reference
|
|
112
|
+
* whose settled quantity is entirely spoken for by orders that are still going
|
|
113
|
+
* is not in the book above, because it has nothing left for an engine-sized
|
|
114
|
+
* close to send. An order the engine cannot size is not choosing a quantity, so
|
|
115
|
+
* that exclusion does not apply to it: the position it is closing is still that
|
|
116
|
+
* one. Taking the book's answer alone sent a close on a reference an entry was
|
|
117
|
+
* opening on the other side, which is an order named close adding to a
|
|
118
|
+
* position: with the leg's whole long inside a close the destination still had,
|
|
119
|
+
* `close(qty = 1)` in cash was handed the reference a short entry had just
|
|
120
|
+
* opened, and was a sell on it.
|
|
121
|
+
*
|
|
122
|
+
* A reference with nothing settled either way is the second answer rather than
|
|
123
|
+
* the first, because a position being opened is a position under 17.1 and an
|
|
124
|
+
* order that reduces the leg has to name one of them.
|
|
125
|
+
*/
|
|
126
|
+
export function outgoingFor(ctx, book, side) {
|
|
127
|
+
const facing = side === 'buy' ? -1 : 1;
|
|
128
|
+
const seen = new Set();
|
|
129
|
+
for (const row of ctx.rows()) {
|
|
130
|
+
if (seen.has(row.positionRef))
|
|
131
|
+
continue;
|
|
132
|
+
seen.add(row.positionRef);
|
|
133
|
+
if (Math.sign(ctx.sizeOf(row.positionRef)) === facing)
|
|
134
|
+
return row.positionRef;
|
|
135
|
+
}
|
|
136
|
+
return opposing(book, side)[0]?.ref ?? null;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* The position a bracket protects, or none where the leg holds none,
|
|
140
|
+
* `stdlib.md` 17.7 and `host-interface.md` 7.1.
|
|
141
|
+
*
|
|
142
|
+
* **Holding first, opening second, which is the order 17.7 states them in.** A
|
|
143
|
+
* bracket appends no row and moves no position, so it has nothing of its own to
|
|
144
|
+
* name: it names what the leg has, and what the leg has is what its own fills
|
|
145
|
+
* settled. Only where nothing has settled at all is the answer the position the
|
|
146
|
+
* leg is opening, which is the ordinary shape of an `exit()` written beside the
|
|
147
|
+
* entry it protects.
|
|
148
|
+
*
|
|
149
|
+
* **The newest of them where the leg holds more than one**, which it does
|
|
150
|
+
* whenever an order that opposes it is outstanding. The newest is the one an
|
|
151
|
+
* entry on that side would join (`joining`), so a bracket set after an entry
|
|
152
|
+
* names the position that entry is in.
|
|
153
|
+
*
|
|
154
|
+
* **Derived here rather than kept as the last reference minted.** A stored slot
|
|
155
|
+
* answered neither question: it was set by the mint and cleared when that one
|
|
156
|
+
* reference returned to zero, so a leg whose newer position closed while an
|
|
157
|
+
* older one was still held was reported as holding none, and `exit()` handed a
|
|
158
|
+
* host `0` with ten units on the books. The mirror of it is the same slot read
|
|
159
|
+
* the other way: a reference minted for an order the destination then refused
|
|
160
|
+
* stayed the answer, and the bracket named a position that never opened while
|
|
161
|
+
* the leg's own sat on another reference. Neither needs a slot to answer, and
|
|
162
|
+
* both are wrong in the direction a host cannot check: `0` says the leg holds
|
|
163
|
+
* nothing, and 7.1 tells a host to look a reference up only when it is not `0`.
|
|
164
|
+
*/
|
|
165
|
+
export function protecting(ctx) {
|
|
166
|
+
let held = null;
|
|
167
|
+
const seen = new Set();
|
|
168
|
+
for (const row of ctx.rows()) {
|
|
169
|
+
if (seen.has(row.positionRef))
|
|
170
|
+
continue;
|
|
171
|
+
seen.add(row.positionRef);
|
|
172
|
+
// Rows are oldest first and references are minted in order, so the last one
|
|
173
|
+
// this loop keeps is the newest reference something has settled on.
|
|
174
|
+
if (ctx.sizeOf(row.positionRef) !== 0)
|
|
175
|
+
held = row.positionRef;
|
|
176
|
+
}
|
|
177
|
+
if (held !== null)
|
|
178
|
+
return held;
|
|
179
|
+
const book = holdings(ctx);
|
|
180
|
+
return book.length === 0 ? null : book[book.length - 1].ref;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* The reference an order that adds to a position joins, or none to mint one.
|
|
184
|
+
*
|
|
185
|
+
* The newest open reference on that side, so that two entries sent on two bars
|
|
186
|
+
* before either fills belong to one position rather than to two, which is what
|
|
187
|
+
* `stdlib.md` 17.7 means by a reference being kept while a position is being
|
|
188
|
+
* opened.
|
|
189
|
+
*
|
|
190
|
+
* **A reference whose whole quantity is already going is not open to join.** A
|
|
191
|
+
* leg long ten with a close of ten working is on its way out: an entry joining
|
|
192
|
+
* it would settle into a position that reaches zero and ends, and 17.7's
|
|
193
|
+
* sentence would then have to happen twice for one reference. The entry takes a
|
|
194
|
+
* reference of its own, and if the close is rejected the leg simply holds two
|
|
195
|
+
* positions on one side, each of which a close can still send.
|
|
196
|
+
*/
|
|
197
|
+
export function joining(book, side) {
|
|
198
|
+
for (let index = book.length - 1; index >= 0; index -= 1) {
|
|
199
|
+
const one = book[index];
|
|
200
|
+
if (one.side === side)
|
|
201
|
+
return one.ref;
|
|
202
|
+
}
|
|
203
|
+
return null;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* How a quantity is divided across the references it reduces, oldest first.
|
|
207
|
+
*
|
|
208
|
+
* **A reducing order that spans two positions is two orders**, for the reason
|
|
209
|
+
* 17.1 already gives for a flip: one order against two positions would leave a
|
|
210
|
+
* late fill with no way to say which of them it settled. A leg holds more than
|
|
211
|
+
* one position whenever an order that opposes it is outstanding, and before
|
|
212
|
+
* this the whole of a leg's closable quantity was attached to a single
|
|
213
|
+
* reference with nothing asking whether that reference could absorb it.
|
|
214
|
+
*
|
|
215
|
+
* `room` is which of the two numbers a holding offers is the ceiling here: what
|
|
216
|
+
* an opposing order may take, or what has settled. The caller chooses, because
|
|
217
|
+
* the caller knows whether the quantity is the script's or the engine's.
|
|
218
|
+
*
|
|
219
|
+
* What is left over when every reference is full is the caller's to open or to
|
|
220
|
+
* drop. Nothing is ever sent past a reference's own ceiling.
|
|
221
|
+
*/
|
|
222
|
+
export function divide(book, side, units, room) {
|
|
223
|
+
const shares = [];
|
|
224
|
+
let left = units;
|
|
225
|
+
for (const one of opposing(book, side)) {
|
|
226
|
+
if (left <= 0)
|
|
227
|
+
break;
|
|
228
|
+
const ceiling = room(one);
|
|
229
|
+
if (ceiling === null || ceiling <= 0)
|
|
230
|
+
continue;
|
|
231
|
+
const take = Math.min(left, ceiling);
|
|
232
|
+
shares.push({ ref: one.ref, units: take });
|
|
233
|
+
left -= take;
|
|
234
|
+
}
|
|
235
|
+
return { shares, left };
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=holdings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"holdings.js","sourceRoot":"","sources":["../../../../src/core/engine/ledger/holdings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ledger: what this strategy sent, and what became of it.
|
|
3
|
+
*
|
|
4
|
+
* One module because it is one fact with three faces. An intent leaves, a row
|
|
5
|
+
* records it, a frame folds into that row, and the position every `pos` call
|
|
6
|
+
* reads is the sum of the fills those frames settled. Splitting them would put
|
|
7
|
+
* the fold in one place and the field names it folds into in another, which is
|
|
8
|
+
* how a cumulative quantity becomes a double counted one.
|
|
9
|
+
*
|
|
10
|
+
* The door carries the shapes that cross a boundary and the one class that
|
|
11
|
+
* holds state. The fold, the position book, the mapping from a call to an
|
|
12
|
+
* order and the refusals stay behind it: they are one algorithm with one
|
|
13
|
+
* caller.
|
|
14
|
+
*/
|
|
15
|
+
export type { Identity, IntentBar, IntentKind, OrderFrame, OrderIntent, OrderSide, OrderType, } from './intent.js';
|
|
16
|
+
export { Ledger } from './ledger.js';
|
|
17
|
+
export type { LedgerOptions, PlacedCall } from './ledger.js';
|
|
18
|
+
export type { FrameOutcome, FrameRefusal, LedgerRow, OrderStatus } from './row.js';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/engine/ledger/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,YAAY,EACV,QAAQ,EACR,SAAS,EACT,UAAU,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACT,SAAS,GACV,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE7D,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/engine/ledger/index.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The two shapes that cross the order boundary, `host-interface.md` 7.1 and
|
|
3
|
+
* 7.2.
|
|
4
|
+
*
|
|
5
|
+
* **An intent is not an order.** The engine states what the strategy decided
|
|
6
|
+
* and the destination makes the order, which is the whole reason the duty is
|
|
7
|
+
* shaped as two messages rather than one call. An engine that named a
|
|
8
|
+
* destination's own order id at the moment a script called `buy()` would be
|
|
9
|
+
* handing the script an identifier for something that may never exist.
|
|
10
|
+
*
|
|
11
|
+
* **A frame is cumulative.** Every frame restates the whole life of one order
|
|
12
|
+
* rather than what changed since the frame before it, which is what makes a
|
|
13
|
+
* repeat, a pair that crossed in flight and a reconnecting session that resends
|
|
14
|
+
* its last frames all harmless. The fold that depends on it is `row.ts`.
|
|
15
|
+
*
|
|
16
|
+
* Nothing here parses an identity. A resolved identity may be a string, a
|
|
17
|
+
* number, a pair or a row in the host's own table (`host-interface.md` 9.1), so
|
|
18
|
+
* the engine carries the one it was given and hands it back unchanged.
|
|
19
|
+
*/
|
|
20
|
+
/** The side of an order, `stdlib.md` 17.2. */
|
|
21
|
+
export type OrderSide = 'buy' | 'sell';
|
|
22
|
+
/** The type of an order, `stdlib.md` 17.2. */
|
|
23
|
+
export type OrderType = 'market' | 'limit' | 'stop' | 'stopLimit';
|
|
24
|
+
/** What an intent asks the destination to do, `host-interface.md` 7.1. */
|
|
25
|
+
export type IntentKind = 'place' | 'cancel' | 'bracket';
|
|
26
|
+
/**
|
|
27
|
+
* The instrument an order names, as the chart's record states it.
|
|
28
|
+
*
|
|
29
|
+
* A pair, which is one of the spellings section 9.1 allows an identity to take.
|
|
30
|
+
* It is carried and compared and never split, formatted or inferred from.
|
|
31
|
+
*/
|
|
32
|
+
export interface Identity {
|
|
33
|
+
readonly symbol: string | null;
|
|
34
|
+
readonly exchange: string | null;
|
|
35
|
+
}
|
|
36
|
+
/** The bar whose close decided an order, `host-interface.md` 7.1. */
|
|
37
|
+
export interface IntentBar {
|
|
38
|
+
readonly index: number;
|
|
39
|
+
readonly time: number | null;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* What the engine hands over, `host-interface.md` 7.1.
|
|
43
|
+
*
|
|
44
|
+
* `qty` carries the unit its `qtyType` names rather than a count of units the
|
|
45
|
+
* engine worked out for itself. A lot is the venue's own fact and the host owns
|
|
46
|
+
* symbology, so an engine that multiplied by a lot size the host never stated
|
|
47
|
+
* would send a quantity nobody asked for, which is the substitution rule of
|
|
48
|
+
* duty 2 read from the order side. A quantity the engine computed from the
|
|
49
|
+
* ledger, as a flattening order's is, states units because that is what a
|
|
50
|
+
* filled quantity is counted in.
|
|
51
|
+
*/
|
|
52
|
+
export interface OrderIntent {
|
|
53
|
+
readonly intentId: number;
|
|
54
|
+
readonly kind: IntentKind;
|
|
55
|
+
readonly instrument: Identity;
|
|
56
|
+
/** Stated by an order that places one, absent on a cancellation. */
|
|
57
|
+
readonly side: OrderSide | null;
|
|
58
|
+
readonly qty: number | null;
|
|
59
|
+
/** The unit `qty` is counted in, `language.md` 13.3, passed untranslated. */
|
|
60
|
+
readonly qtyType: string;
|
|
61
|
+
readonly type: OrderType | null;
|
|
62
|
+
readonly limit: number | null;
|
|
63
|
+
readonly trigger: number | null;
|
|
64
|
+
/** A bracket's target, as a price. */
|
|
65
|
+
readonly target: number | null;
|
|
66
|
+
/** A bracket's stop, as a price. */
|
|
67
|
+
readonly stop: number | null;
|
|
68
|
+
/**
|
|
69
|
+
* A bracket's target and stop as distances from the entry, where the script
|
|
70
|
+
* stated them that way.
|
|
71
|
+
*
|
|
72
|
+
* Carried as distances rather than resolved into prices, because the entry a
|
|
73
|
+
* distance is measured from is the fill of the order this bracket's tag
|
|
74
|
+
* names, and that fill reaches the destination before it reaches the engine.
|
|
75
|
+
* The common shape is an entry and its bracket on one bar, where the entry
|
|
76
|
+
* has not filled and there is no price to measure from yet.
|
|
77
|
+
*/
|
|
78
|
+
readonly profit: number | null;
|
|
79
|
+
readonly loss: number | null;
|
|
80
|
+
readonly tag: string;
|
|
81
|
+
/** The strategy's own product word, passed untranslated. */
|
|
82
|
+
readonly product: string;
|
|
83
|
+
readonly positionRef: number;
|
|
84
|
+
readonly bar: IntentBar;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* What a host reports back about one order, `host-interface.md` 7.2.
|
|
88
|
+
*
|
|
89
|
+
* Every field but `intentId`, `status` and `filledQty` is one a destination may
|
|
90
|
+
* not have said anything about yet, so the shape carries absence rather than a
|
|
91
|
+
* substituted zero or an empty string.
|
|
92
|
+
*/
|
|
93
|
+
export interface OrderFrame {
|
|
94
|
+
readonly intentId: number;
|
|
95
|
+
readonly status: string;
|
|
96
|
+
/** Cumulative filled quantity, from the beginning of this order's life. */
|
|
97
|
+
readonly filledQty: number;
|
|
98
|
+
readonly avgFillPrice?: number | null;
|
|
99
|
+
readonly orderRef?: string | null;
|
|
100
|
+
readonly sentInstrument?: Identity | null;
|
|
101
|
+
readonly sentProduct?: string | null;
|
|
102
|
+
readonly time?: number | null;
|
|
103
|
+
readonly text?: string | null;
|
|
104
|
+
readonly seq?: number | null;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=intent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../../../../src/core/engine/ledger/intent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,8CAA8C;AAC9C,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AAEvC,8CAA8C;AAC9C,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;AAElE,0EAA0E;AAC1E,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExD;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,qEAAqE;AACrE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;IAC9B,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,sCAAsC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,oCAAoC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The two shapes that cross the order boundary, `host-interface.md` 7.1 and
|
|
3
|
+
* 7.2.
|
|
4
|
+
*
|
|
5
|
+
* **An intent is not an order.** The engine states what the strategy decided
|
|
6
|
+
* and the destination makes the order, which is the whole reason the duty is
|
|
7
|
+
* shaped as two messages rather than one call. An engine that named a
|
|
8
|
+
* destination's own order id at the moment a script called `buy()` would be
|
|
9
|
+
* handing the script an identifier for something that may never exist.
|
|
10
|
+
*
|
|
11
|
+
* **A frame is cumulative.** Every frame restates the whole life of one order
|
|
12
|
+
* rather than what changed since the frame before it, which is what makes a
|
|
13
|
+
* repeat, a pair that crossed in flight and a reconnecting session that resends
|
|
14
|
+
* its last frames all harmless. The fold that depends on it is `row.ts`.
|
|
15
|
+
*
|
|
16
|
+
* Nothing here parses an identity. A resolved identity may be a string, a
|
|
17
|
+
* number, a pair or a row in the host's own table (`host-interface.md` 9.1), so
|
|
18
|
+
* the engine carries the one it was given and hands it back unchanged.
|
|
19
|
+
*/
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=intent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../../../../src/core/engine/ledger/intent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The strategy's own order and fill ledger, `stdlib.md` 17.7.
|
|
3
|
+
*
|
|
4
|
+
* **Each strategy owns one.** It is the strategy's record of what it has
|
|
5
|
+
* actually done, it is what every position figure in the language is folded
|
|
6
|
+
* from, and it is per strategy rather than per account because an account
|
|
7
|
+
* position is shared with every other strategy and every manual trade in the
|
|
8
|
+
* same contract.
|
|
9
|
+
*
|
|
10
|
+
* **Nothing is read from a host's position row.** The engine is neither handed
|
|
11
|
+
* one nor asks for one. What it reads back is what it sent and what the
|
|
12
|
+
* destination said became of it, which is the only record whose owner is this
|
|
13
|
+
* strategy.
|
|
14
|
+
*
|
|
15
|
+
* **Frames fold at a bar boundary**, never during an execution. A frame that
|
|
16
|
+
* arrived while bar four hundred was still moving is folded before bar four
|
|
17
|
+
* hundred and one begins, so every position fact is constant for the length of
|
|
18
|
+
* one execution and a re-execution of a moving bar sees exactly what the first
|
|
19
|
+
* execution saw (`host-interface.md` 7.4).
|
|
20
|
+
*/
|
|
21
|
+
import type { Diagnostic } from '../../diagnostics/index.js';
|
|
22
|
+
import type { Span } from '../../span/index.js';
|
|
23
|
+
import type { Identity, IntentBar, OrderFrame, OrderIntent } from './intent.js';
|
|
24
|
+
import type { FrameOutcome, LedgerRow } from './row.js';
|
|
25
|
+
/** What the declaration and the chart fix before bar 0. */
|
|
26
|
+
export interface LedgerOptions {
|
|
27
|
+
readonly instrument: Identity;
|
|
28
|
+
readonly product: string;
|
|
29
|
+
readonly qtyType: string;
|
|
30
|
+
readonly declaredQty: number;
|
|
31
|
+
/** The instrument's tick size, absent where the host states none. */
|
|
32
|
+
readonly tickSize: number | null;
|
|
33
|
+
/** Entries allowed in one direction before one is refused. */
|
|
34
|
+
readonly pyramiding: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* What one order call sent, or why it sent nothing.
|
|
38
|
+
*
|
|
39
|
+
* The two are exclusive, and that is the shape rather than an accident: a
|
|
40
|
+
* refused call mints no id, appends no row and returns no intent, so there is
|
|
41
|
+
* nothing for a host to send and nothing to take back afterwards.
|
|
42
|
+
*/
|
|
43
|
+
export interface PlacedCall {
|
|
44
|
+
readonly intents: readonly OrderIntent[];
|
|
45
|
+
/** Why the call was refused, `errors.md` OS7002 to OS7013 and OS7017. */
|
|
46
|
+
readonly refusal: Diagnostic | undefined;
|
|
47
|
+
}
|
|
48
|
+
export declare class Ledger {
|
|
49
|
+
private readonly byIntent;
|
|
50
|
+
private readonly placed;
|
|
51
|
+
private readonly positions;
|
|
52
|
+
private waiting;
|
|
53
|
+
private next;
|
|
54
|
+
private readonly options;
|
|
55
|
+
/** The bar `sent` describes, so the list empties when a new one begins. */
|
|
56
|
+
private at;
|
|
57
|
+
/**
|
|
58
|
+
* The orders this bar has sent, which is what OS7013 is asked about.
|
|
59
|
+
*
|
|
60
|
+
* The bar is the right scope for that one rule and for nothing else. What a
|
|
61
|
+
* reducing order is measured against used to be read from here too, and the
|
|
62
|
+
* defect that made obvious was the plainest one there is: a close still
|
|
63
|
+
* working when the next bar closed again was invisible, because this list is
|
|
64
|
+
* emptied the moment the bar index changes. The rows below outlive the bar
|
|
65
|
+
* and say which orders the destination still has, so that reading moved to
|
|
66
|
+
* `closable.ts` and this list kept the question that really is a bar's.
|
|
67
|
+
*/
|
|
68
|
+
private sent;
|
|
69
|
+
constructor(options: LedgerOptions);
|
|
70
|
+
/**
|
|
71
|
+
* Step 9 sent an order call. It becomes intents, and each becomes a row.
|
|
72
|
+
*
|
|
73
|
+
* A row is appended when the order is sent, at `placed`, which is the
|
|
74
|
+
* engine's own status: an intent has left and nothing has come back, and a
|
|
75
|
+
* host cannot report a state the destination has never described.
|
|
76
|
+
*
|
|
77
|
+
* **The whole call is read, mapped and refused before any of it is sent.**
|
|
78
|
+
* Every order the call produces is held against `refuse.ts` first, and only
|
|
79
|
+
* then does any of them take an id, so a refused call appends no row and
|
|
80
|
+
* returns no intent: there is nothing for a host to send and nothing to take
|
|
81
|
+
* back afterwards. A call that sends two orders sends both or neither.
|
|
82
|
+
*
|
|
83
|
+
* **The bar is the same promise one scope up**, and `discard` below is how
|
|
84
|
+
* it is kept. A refusal anywhere on a bar hands none of the bar's orders to a
|
|
85
|
+
* destination, so none of the bar's rows may survive it either, including the
|
|
86
|
+
* rows of calls that had already been mapped when the refusal happened. That
|
|
87
|
+
* is not the ledger rewriting a record backwards: nothing was handed over, so
|
|
88
|
+
* there is no record of a hand-over to rewrite.
|
|
89
|
+
*/
|
|
90
|
+
place(name: string, params: readonly string[], args: readonly unknown[], bar: IntentBar, at: Span): PlacedCall;
|
|
91
|
+
/**
|
|
92
|
+
* The bar sent nothing after all: every row it appended is taken back.
|
|
93
|
+
*
|
|
94
|
+
* A refusal anywhere on a bar hands none of the bar's orders over, because
|
|
95
|
+
* every call is mapped before any of them is routed (`orders.ts`). Until this
|
|
96
|
+
* existed, the rows of the calls that had already been mapped stayed: a bar
|
|
97
|
+
* that placed an order and then met a refusal left `orders()` reporting an
|
|
98
|
+
* order at `placed` that no destination was ever handed, and a host
|
|
99
|
+
* reconciling after a stopped run saw an order it never received. 17.7 says a
|
|
100
|
+
* row is appended when the order is sent, and nothing had been sent.
|
|
101
|
+
*
|
|
102
|
+
* **Taken back rather than never written.** A row has to be there while the
|
|
103
|
+
* rest of the bar is mapped: `cancel` asks whether a tag names a working
|
|
104
|
+
* order, pyramiding counts the entries a position already holds, and a close
|
|
105
|
+
* measures what one tag entered, all from rows this same bar may have
|
|
106
|
+
* appended. Deferring the append would make an entry and a cancellation of it
|
|
107
|
+
* on one bar into OS7009. So the bar writes its rows and a refused bar undoes
|
|
108
|
+
* them, which is the same shape the moving bar already uses on the cells.
|
|
109
|
+
*
|
|
110
|
+
* The intent ids the bar minted are not reissued. An id is unique within a
|
|
111
|
+
* run (`stdlib.md` 17.7), a frame that quoted one must never match a later
|
|
112
|
+
* order, and a gap in the numbering is invisible to a host, so the cheap
|
|
113
|
+
* invariant is the one worth keeping.
|
|
114
|
+
*
|
|
115
|
+
* **`from` is the row count the routing pass began at**, and it is held by
|
|
116
|
+
* that pass rather than by a bar index kept here. A bar declared
|
|
117
|
+
* `onUnconfirmed` applies its effects on every execution of itself, so one bar
|
|
118
|
+
* can route more than once, and a mark taken when the bar index last changed
|
|
119
|
+
* would take back rows whose orders a previous execution really did hand over.
|
|
120
|
+
* The promise belongs to the pass that made it, so the mark does too.
|
|
121
|
+
*/
|
|
122
|
+
discard(from: number): void;
|
|
123
|
+
/** A frame from the destination, held until the next bar boundary. */
|
|
124
|
+
deliver(frame: OrderFrame): void;
|
|
125
|
+
/**
|
|
126
|
+
* Folds every frame that has arrived, in the order it arrived in.
|
|
127
|
+
*
|
|
128
|
+
* A host does not have to put its frames in order before it sends them. A
|
|
129
|
+
* repeat, a pair that crossed in flight and one that arrives after the order
|
|
130
|
+
* ended are ordinary traffic, and the fold is what says what each of them
|
|
131
|
+
* does.
|
|
132
|
+
*/
|
|
133
|
+
settle(): readonly FrameOutcome[];
|
|
134
|
+
/** The leg's net position in units, `0` while flat. */
|
|
135
|
+
size(): number;
|
|
136
|
+
/** The average price of the open position, absent while flat. */
|
|
137
|
+
avgPrice(): number | null;
|
|
138
|
+
/** Every row, oldest first, for a host that reports what the run did. */
|
|
139
|
+
rows(): readonly LedgerRow[];
|
|
140
|
+
private append;
|
|
141
|
+
private contextFor;
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=ledger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../../../src/core/engine/ledger/ledger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,KAAK,EACV,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,EAGZ,MAAM,aAAa,CAAC;AAOrB,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAa,MAAM,UAAU,CAAC;AAEnE,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,8DAA8D;IAC9D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;CAC1C;AAED,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,2EAA2E;IAC3E,OAAO,CAAC,EAAE,CAAM;IAChB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,IAAI,CAAmB;gBAEnB,OAAO,EAAE,aAAa;IAIlC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CACH,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,IAAI,EAAE,SAAS,OAAO,EAAE,EACxB,GAAG,EAAE,SAAS,EACd,EAAE,EAAE,IAAI,GACP,UAAU;IAyCb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAU3B,sEAAsE;IACtE,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAIhC;;;;;;;OAOG;IACH,MAAM,IAAI,SAAS,YAAY,EAAE;IAiCjC,uDAAuD;IACvD,IAAI,IAAI,MAAM;IAId,iEAAiE;IACjE,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB,yEAAyE;IACzE,IAAI,IAAI,SAAS,SAAS,EAAE;IAI5B,OAAO,CAAC,MAAM;IAsCd,OAAO,CAAC,UAAU;CAgBnB"}
|