oakscriptjs 0.8.1 → 0.9.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/LICENSE +1 -1
- package/README.md +31 -9
- package/dist/cjs/array/index.d.ts +701 -0
- package/dist/cjs/array/index.d.ts.map +1 -0
- package/dist/cjs/array/index.js +392 -0
- package/dist/cjs/array/index.js.map +7 -0
- package/dist/cjs/box/index.d.ts +444 -0
- package/dist/cjs/box/index.d.ts.map +1 -0
- package/dist/cjs/box/index.js +246 -0
- package/dist/cjs/box/index.js.map +7 -0
- package/dist/cjs/callsite/index.d.ts +61 -0
- package/dist/cjs/callsite/index.d.ts.map +1 -0
- package/dist/cjs/callsite/index.js +65 -0
- package/dist/cjs/callsite/index.js.map +7 -0
- package/dist/cjs/chartpoint/index.d.ts +90 -0
- package/dist/cjs/chartpoint/index.d.ts.map +1 -0
- package/dist/cjs/chartpoint/index.js +56 -0
- package/dist/cjs/chartpoint/index.js.map +7 -0
- package/dist/cjs/color/index.d.ts +285 -0
- package/dist/cjs/color/index.d.ts.map +1 -0
- package/dist/cjs/color/index.js +143 -0
- package/dist/cjs/color/index.js.map +7 -0
- package/dist/cjs/compare/index.d.ts +26 -0
- package/dist/cjs/compare/index.d.ts.map +1 -0
- package/dist/cjs/compare/index.js +50 -0
- package/dist/cjs/compare/index.js.map +7 -0
- package/dist/cjs/drawing/registry.d.ts +42 -0
- package/dist/cjs/drawing/registry.d.ts.map +1 -0
- package/dist/cjs/drawing/registry.js +87 -0
- package/dist/cjs/drawing/registry.js.map +7 -0
- package/dist/cjs/index.d.ts +85 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +184 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/indicator.d.ts +117 -0
- package/dist/cjs/indicator.d.ts.map +1 -0
- package/dist/cjs/indicator.js +74 -0
- package/dist/cjs/indicator.js.map +7 -0
- package/dist/cjs/input.d.ts +196 -0
- package/dist/cjs/input.d.ts.map +1 -0
- package/dist/cjs/input.js +197 -0
- package/dist/cjs/input.js.map +7 -0
- package/dist/cjs/label/index.d.ts +303 -0
- package/dist/cjs/label/index.d.ts.map +1 -0
- package/dist/cjs/label/index.js +190 -0
- package/dist/cjs/label/index.js.map +7 -0
- package/dist/cjs/lib/index.d.ts +8 -0
- package/dist/cjs/lib/index.d.ts.map +1 -0
- package/dist/cjs/lib/index.js +19 -0
- package/dist/cjs/lib/index.js.map +7 -0
- package/dist/{lib → cjs/lib}/zigzag/index.d.ts +4 -1
- package/dist/cjs/lib/zigzag/index.d.ts.map +1 -0
- package/dist/cjs/lib/zigzag/index.js +27 -0
- package/dist/cjs/lib/zigzag/index.js.map +7 -0
- package/dist/cjs/lib/zigzag/zigzag.d.ts +100 -0
- package/dist/cjs/lib/zigzag/zigzag.d.ts.map +1 -0
- package/dist/cjs/lib/zigzag/zigzag.js +207 -0
- package/dist/cjs/lib/zigzag/zigzag.js.map +7 -0
- package/dist/cjs/line/index.d.ts +342 -0
- package/dist/cjs/line/index.d.ts.map +1 -0
- package/dist/cjs/line/index.js +193 -0
- package/dist/cjs/line/index.js.map +7 -0
- package/dist/cjs/linefill/index.d.ts +124 -0
- package/dist/cjs/linefill/index.d.ts.map +1 -0
- package/dist/cjs/linefill/index.js +56 -0
- package/dist/cjs/linefill/index.js.map +7 -0
- package/dist/cjs/map/index.d.ts +69 -0
- package/dist/cjs/map/index.d.ts.map +1 -0
- package/dist/cjs/map/index.js +80 -0
- package/dist/cjs/map/index.js.map +7 -0
- package/dist/cjs/math/index.d.ts +560 -0
- package/dist/cjs/math/index.d.ts.map +1 -0
- package/dist/cjs/math/index.js +441 -0
- package/dist/cjs/math/index.js.map +7 -0
- package/dist/cjs/matrix/index.d.ts +1231 -0
- package/dist/cjs/matrix/index.d.ts.map +1 -0
- package/dist/cjs/matrix/index.js +1200 -0
- package/dist/cjs/matrix/index.js.map +7 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/plot.d.ts +76 -0
- package/dist/cjs/plot.d.ts.map +1 -0
- package/dist/cjs/plot.js +51 -0
- package/dist/cjs/plot.js.map +7 -0
- package/dist/cjs/polyline/index.d.ts +115 -0
- package/dist/cjs/polyline/index.d.ts.map +1 -0
- package/dist/cjs/polyline/index.js +76 -0
- package/dist/cjs/polyline/index.js.map +7 -0
- package/dist/cjs/runtime/adapters/LightweightChartsAdapter.d.ts +86 -0
- package/dist/cjs/runtime/adapters/LightweightChartsAdapter.d.ts.map +1 -0
- package/dist/cjs/runtime/adapters/LightweightChartsAdapter.js +141 -0
- package/dist/cjs/runtime/adapters/LightweightChartsAdapter.js.map +7 -0
- package/dist/cjs/runtime/adapters/SimpleInputAdapter.d.ts +59 -0
- package/dist/cjs/runtime/adapters/SimpleInputAdapter.d.ts.map +1 -0
- package/dist/cjs/runtime/adapters/SimpleInputAdapter.js +117 -0
- package/dist/cjs/runtime/adapters/SimpleInputAdapter.js.map +7 -0
- package/dist/{runtime → cjs/runtime}/index.d.ts +12 -5
- package/dist/cjs/runtime/index.d.ts.map +1 -0
- package/dist/cjs/runtime/index.js +49 -0
- package/dist/cjs/runtime/index.js.map +7 -0
- package/dist/cjs/runtime/inputs.d.ts +91 -0
- package/dist/cjs/runtime/inputs.d.ts.map +1 -0
- package/dist/cjs/runtime/inputs.js +262 -0
- package/dist/cjs/runtime/inputs.js.map +7 -0
- package/dist/cjs/runtime/runtime.d.ts +70 -0
- package/dist/cjs/runtime/runtime.d.ts.map +1 -0
- package/dist/cjs/runtime/runtime.js +148 -0
- package/dist/cjs/runtime/runtime.js.map +7 -0
- package/dist/cjs/runtime/series.d.ts +362 -0
- package/dist/cjs/runtime/series.d.ts.map +1 -0
- package/dist/cjs/runtime/series.js +560 -0
- package/dist/cjs/runtime/series.js.map +7 -0
- package/dist/cjs/runtime/types.d.ts +282 -0
- package/dist/cjs/runtime/types.d.ts.map +1 -0
- package/dist/cjs/runtime/types.js +17 -0
- package/dist/cjs/runtime/types.js.map +7 -0
- package/dist/cjs/script/index.d.ts +987 -0
- package/dist/cjs/script/index.d.ts.map +1 -0
- package/dist/cjs/script/index.js +1169 -0
- package/dist/cjs/script/index.js.map +7 -0
- package/dist/cjs/security/resample.d.ts +63 -0
- package/dist/cjs/security/resample.d.ts.map +1 -0
- package/dist/cjs/security/resample.js +84 -0
- package/dist/cjs/security/resample.js.map +7 -0
- package/dist/cjs/session/bars.d.ts +80 -0
- package/dist/cjs/session/bars.d.ts.map +1 -0
- package/dist/cjs/session/bars.js +219 -0
- package/dist/cjs/session/bars.js.map +7 -0
- package/dist/cjs/session/calendar.d.ts +70 -0
- package/dist/cjs/session/calendar.d.ts.map +1 -0
- package/dist/cjs/session/calendar.js +164 -0
- package/dist/cjs/session/calendar.js.map +7 -0
- package/dist/cjs/str/dateformat.d.ts +15 -0
- package/dist/cjs/str/dateformat.d.ts.map +1 -0
- package/dist/cjs/str/dateformat.js +149 -0
- package/dist/cjs/str/dateformat.js.map +7 -0
- package/dist/cjs/str/index.d.ts +459 -0
- package/dist/cjs/str/index.d.ts.map +1 -0
- package/dist/cjs/str/index.js +143 -0
- package/dist/cjs/str/index.js.map +7 -0
- package/dist/cjs/str/messageformat.d.ts +14 -0
- package/dist/cjs/str/messageformat.d.ts.map +1 -0
- package/dist/cjs/str/messageformat.js +114 -0
- package/dist/cjs/str/messageformat.js.map +7 -0
- package/dist/cjs/str/numberformat.d.ts +19 -0
- package/dist/cjs/str/numberformat.d.ts.map +1 -0
- package/dist/cjs/str/numberformat.js +170 -0
- package/dist/cjs/str/numberformat.js.map +7 -0
- package/dist/{strategy → cjs/strategy}/index.d.ts +50 -0
- package/dist/cjs/strategy/index.d.ts.map +1 -0
- package/dist/cjs/strategy/index.js +92 -0
- package/dist/cjs/strategy/index.js.map +7 -0
- package/dist/cjs/ta/index.d.ts +1397 -0
- package/dist/cjs/ta/index.d.ts.map +1 -0
- package/dist/cjs/ta/index.js +1715 -0
- package/dist/cjs/ta/index.js.map +7 -0
- package/dist/cjs/ta/running-sum.d.ts +30 -0
- package/dist/cjs/ta/running-sum.d.ts.map +1 -0
- package/dist/cjs/ta/running-sum.js +99 -0
- package/dist/cjs/ta/running-sum.js.map +7 -0
- package/dist/cjs/ta-series.d.ts +558 -0
- package/dist/cjs/ta-series.d.ts.map +1 -0
- package/dist/cjs/ta-series.js +606 -0
- package/dist/cjs/ta-series.js.map +7 -0
- package/dist/cjs/text/index.d.ts +14 -0
- package/dist/cjs/text/index.d.ts.map +1 -0
- package/dist/cjs/text/index.js +29 -0
- package/dist/cjs/text/index.js.map +7 -0
- package/dist/cjs/time/datestring.d.ts +23 -0
- package/dist/cjs/time/datestring.d.ts.map +1 -0
- package/dist/cjs/time/datestring.js +106 -0
- package/dist/cjs/time/datestring.js.map +7 -0
- package/dist/cjs/time/index.d.ts +89 -0
- package/dist/cjs/time/index.d.ts.map +1 -0
- package/dist/cjs/time/index.js +85 -0
- package/dist/cjs/time/index.js.map +7 -0
- package/dist/cjs/time/session.d.ts +17 -0
- package/dist/cjs/time/session.d.ts.map +1 -0
- package/dist/cjs/time/session.js +65 -0
- package/dist/cjs/time/session.js.map +7 -0
- package/dist/cjs/time/timezone.d.ts +40 -0
- package/dist/cjs/time/timezone.d.ts.map +1 -0
- package/dist/cjs/time/timezone.js +125 -0
- package/dist/cjs/time/timezone.js.map +7 -0
- package/dist/cjs/timeframe/index.d.ts +73 -0
- package/dist/cjs/timeframe/index.d.ts.map +1 -0
- package/dist/cjs/timeframe/index.js +85 -0
- package/dist/cjs/timeframe/index.js.map +7 -0
- package/dist/cjs/types/index.d.ts +343 -0
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/types/index.js +32 -0
- package/dist/cjs/types/index.js.map +7 -0
- package/dist/cjs/types/metadata.d.ts +300 -0
- package/dist/cjs/types/metadata.d.ts.map +1 -0
- package/dist/cjs/types/metadata.js +17 -0
- package/dist/cjs/types/metadata.js.map +7 -0
- package/dist/cjs/utils/index.d.ts +167 -0
- package/dist/cjs/utils/index.d.ts.map +1 -0
- package/dist/cjs/utils/index.js +209 -0
- package/dist/cjs/utils/index.js.map +7 -0
- package/dist/esm/array/index.d.ts +701 -0
- package/dist/esm/array/index.d.ts.map +1 -0
- package/dist/esm/array/index.js +983 -0
- package/dist/esm/array/index.js.map +1 -0
- package/dist/esm/box/index.d.ts +444 -0
- package/dist/esm/box/index.d.ts.map +1 -0
- package/dist/esm/box/index.js +602 -0
- package/dist/esm/box/index.js.map +1 -0
- package/dist/esm/callsite/index.d.ts +61 -0
- package/dist/esm/callsite/index.d.ts.map +1 -0
- package/dist/esm/callsite/index.js +97 -0
- package/dist/esm/callsite/index.js.map +1 -0
- package/dist/esm/chartpoint/index.d.ts +90 -0
- package/dist/esm/chartpoint/index.d.ts.map +1 -0
- package/dist/esm/chartpoint/index.js +113 -0
- package/dist/esm/chartpoint/index.js.map +1 -0
- package/dist/esm/color/index.d.ts +285 -0
- package/dist/esm/color/index.d.ts.map +1 -0
- package/dist/esm/color/index.js +373 -0
- package/dist/esm/color/index.js.map +1 -0
- package/dist/esm/compare/index.d.ts +26 -0
- package/dist/esm/compare/index.d.ts.map +1 -0
- package/dist/esm/compare/index.js +39 -0
- package/dist/esm/compare/index.js.map +1 -0
- package/dist/esm/drawing/registry.d.ts +42 -0
- package/dist/esm/drawing/registry.d.ts.map +1 -0
- package/dist/esm/drawing/registry.js +89 -0
- package/dist/esm/drawing/registry.js.map +1 -0
- package/dist/esm/index.d.ts +85 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +96 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/indicator.d.ts +117 -0
- package/dist/esm/indicator.d.ts.map +1 -0
- package/dist/esm/indicator.js +84 -0
- package/dist/esm/indicator.js.map +1 -0
- package/dist/esm/input.d.ts +196 -0
- package/dist/esm/input.d.ts.map +1 -0
- package/dist/esm/input.js +183 -0
- package/dist/esm/input.js.map +1 -0
- package/dist/esm/label/index.d.ts +303 -0
- package/dist/esm/label/index.d.ts.map +1 -0
- package/dist/esm/label/index.js +417 -0
- package/dist/esm/label/index.js.map +1 -0
- package/dist/esm/lib/index.d.ts +8 -0
- package/dist/esm/lib/index.d.ts.map +1 -0
- package/dist/esm/lib/index.js +8 -0
- package/dist/esm/lib/index.js.map +1 -0
- package/dist/esm/lib/zigzag/index.d.ts +5 -0
- package/dist/esm/lib/zigzag/index.d.ts.map +1 -0
- package/dist/esm/lib/zigzag/index.js +5 -0
- package/dist/esm/lib/zigzag/index.js.map +1 -0
- package/dist/esm/lib/zigzag/zigzag.d.ts +100 -0
- package/dist/esm/lib/zigzag/zigzag.d.ts.map +1 -0
- package/dist/esm/lib/zigzag/zigzag.js +229 -0
- package/dist/esm/lib/zigzag/zigzag.js.map +1 -0
- package/dist/esm/line/index.d.ts +342 -0
- package/dist/esm/line/index.d.ts.map +1 -0
- package/dist/esm/line/index.js +470 -0
- package/dist/esm/line/index.js.map +1 -0
- package/dist/esm/linefill/index.d.ts +124 -0
- package/dist/esm/linefill/index.d.ts.map +1 -0
- package/dist/esm/linefill/index.js +144 -0
- package/dist/esm/linefill/index.js.map +1 -0
- package/dist/esm/map/index.d.ts +69 -0
- package/dist/esm/map/index.d.ts.map +1 -0
- package/dist/esm/map/index.js +106 -0
- package/dist/esm/map/index.js.map +1 -0
- package/dist/esm/math/index.d.ts +560 -0
- package/dist/esm/math/index.d.ts.map +1 -0
- package/dist/esm/math/index.js +495 -0
- package/dist/esm/math/index.js.map +1 -0
- package/dist/esm/matrix/index.d.ts +1231 -0
- package/dist/esm/matrix/index.d.ts.map +1 -0
- package/dist/esm/matrix/index.js +2450 -0
- package/dist/esm/matrix/index.js.map +1 -0
- package/dist/esm/plot.d.ts +76 -0
- package/dist/esm/plot.d.ts.map +1 -0
- package/dist/esm/plot.js +63 -0
- package/dist/esm/plot.js.map +1 -0
- package/dist/esm/polyline/index.d.ts +115 -0
- package/dist/esm/polyline/index.d.ts.map +1 -0
- package/dist/esm/polyline/index.js +157 -0
- package/dist/esm/polyline/index.js.map +1 -0
- package/dist/esm/runtime/adapters/LightweightChartsAdapter.d.ts +86 -0
- package/dist/esm/runtime/adapters/LightweightChartsAdapter.d.ts.map +1 -0
- package/dist/esm/runtime/adapters/LightweightChartsAdapter.js +140 -0
- package/dist/esm/runtime/adapters/LightweightChartsAdapter.js.map +1 -0
- package/dist/esm/runtime/adapters/SimpleInputAdapter.d.ts +59 -0
- package/dist/esm/runtime/adapters/SimpleInputAdapter.d.ts.map +1 -0
- package/dist/esm/runtime/adapters/SimpleInputAdapter.js +115 -0
- package/dist/esm/runtime/adapters/SimpleInputAdapter.js.map +1 -0
- package/dist/esm/runtime/index.d.ts +13 -0
- package/dist/esm/runtime/index.d.ts.map +1 -0
- package/dist/esm/runtime/index.js +14 -0
- package/dist/esm/runtime/index.js.map +1 -0
- package/dist/esm/runtime/inputs.d.ts +91 -0
- package/dist/esm/runtime/inputs.d.ts.map +1 -0
- package/dist/esm/runtime/inputs.js +334 -0
- package/dist/esm/runtime/inputs.js.map +1 -0
- package/dist/esm/runtime/runtime.d.ts +70 -0
- package/dist/esm/runtime/runtime.d.ts.map +1 -0
- package/dist/esm/runtime/runtime.js +193 -0
- package/dist/esm/runtime/runtime.js.map +1 -0
- package/dist/esm/runtime/series.d.ts +362 -0
- package/dist/esm/runtime/series.d.ts.map +1 -0
- package/dist/esm/runtime/series.js +583 -0
- package/dist/esm/runtime/series.js.map +1 -0
- package/dist/esm/runtime/types.d.ts +282 -0
- package/dist/esm/runtime/types.d.ts.map +1 -0
- package/dist/esm/runtime/types.js +7 -0
- package/dist/esm/runtime/types.js.map +1 -0
- package/dist/esm/script/index.d.ts +987 -0
- package/dist/esm/script/index.d.ts.map +1 -0
- package/dist/esm/script/index.js +1289 -0
- package/dist/esm/script/index.js.map +1 -0
- package/dist/esm/security/resample.d.ts +63 -0
- package/dist/esm/security/resample.d.ts.map +1 -0
- package/dist/esm/security/resample.js +110 -0
- package/dist/esm/security/resample.js.map +1 -0
- package/dist/esm/session/bars.d.ts +80 -0
- package/dist/esm/session/bars.d.ts.map +1 -0
- package/dist/esm/session/bars.js +232 -0
- package/dist/esm/session/bars.js.map +1 -0
- package/dist/esm/session/calendar.d.ts +70 -0
- package/dist/esm/session/calendar.d.ts.map +1 -0
- package/dist/esm/session/calendar.js +172 -0
- package/dist/esm/session/calendar.js.map +1 -0
- package/dist/esm/str/dateformat.d.ts +15 -0
- package/dist/esm/str/dateformat.d.ts.map +1 -0
- package/dist/esm/str/dateformat.js +136 -0
- package/dist/esm/str/dateformat.js.map +1 -0
- package/dist/esm/str/index.d.ts +459 -0
- package/dist/esm/str/index.d.ts.map +1 -0
- package/dist/esm/str/index.js +540 -0
- package/dist/esm/str/index.js.map +1 -0
- package/dist/esm/str/messageformat.d.ts +14 -0
- package/dist/esm/str/messageformat.d.ts.map +1 -0
- package/dist/esm/str/messageformat.js +111 -0
- package/dist/esm/str/messageformat.js.map +1 -0
- package/dist/esm/str/numberformat.d.ts +19 -0
- package/dist/esm/str/numberformat.d.ts.map +1 -0
- package/dist/esm/str/numberformat.js +189 -0
- package/dist/esm/str/numberformat.js.map +1 -0
- package/dist/esm/strategy/index.d.ts +245 -0
- package/dist/esm/strategy/index.d.ts.map +1 -0
- package/dist/esm/strategy/index.js +84 -0
- package/dist/esm/strategy/index.js.map +1 -0
- package/dist/esm/ta/index.d.ts +1397 -0
- package/dist/esm/ta/index.d.ts.map +1 -0
- package/dist/esm/ta/index.js +3227 -0
- package/dist/esm/ta/index.js.map +1 -0
- package/dist/esm/ta/running-sum.d.ts +30 -0
- package/dist/esm/ta/running-sum.d.ts.map +1 -0
- package/dist/esm/ta/running-sum.js +113 -0
- package/dist/esm/ta/running-sum.js.map +1 -0
- package/dist/esm/ta-series.d.ts +558 -0
- package/dist/esm/ta-series.d.ts.map +1 -0
- package/dist/esm/ta-series.js +910 -0
- package/dist/esm/ta-series.js.map +1 -0
- package/dist/esm/text/index.d.ts +14 -0
- package/dist/esm/text/index.d.ts.map +1 -0
- package/dist/esm/text/index.js +14 -0
- package/dist/esm/text/index.js.map +1 -0
- package/dist/esm/time/datestring.d.ts +23 -0
- package/dist/esm/time/datestring.d.ts.map +1 -0
- package/dist/esm/time/datestring.js +94 -0
- package/dist/esm/time/datestring.js.map +1 -0
- package/dist/esm/time/index.d.ts +89 -0
- package/dist/esm/time/index.d.ts.map +1 -0
- package/dist/esm/time/index.js +108 -0
- package/dist/esm/time/index.js.map +1 -0
- package/dist/esm/time/session.d.ts +17 -0
- package/dist/esm/time/session.d.ts.map +1 -0
- package/dist/esm/time/session.js +69 -0
- package/dist/esm/time/session.js.map +1 -0
- package/dist/esm/time/timezone.d.ts +40 -0
- package/dist/esm/time/timezone.d.ts.map +1 -0
- package/dist/esm/time/timezone.js +144 -0
- package/dist/esm/time/timezone.js.map +1 -0
- package/dist/esm/timeframe/index.d.ts +73 -0
- package/dist/esm/timeframe/index.d.ts.map +1 -0
- package/dist/esm/timeframe/index.js +131 -0
- package/dist/esm/timeframe/index.js.map +1 -0
- package/dist/esm/types/index.d.ts +343 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/index.js +17 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/metadata.d.ts +300 -0
- package/dist/esm/types/metadata.d.ts.map +1 -0
- package/dist/esm/types/metadata.js +7 -0
- package/dist/esm/types/metadata.js.map +1 -0
- package/dist/esm/utils/index.d.ts +167 -0
- package/dist/esm/utils/index.d.ts.map +1 -0
- package/dist/esm/utils/index.js +295 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/package.json +53 -23
- package/src/array/index.ts +1056 -0
- package/src/box/index.ts +680 -0
- package/src/callsite/index.ts +104 -0
- package/src/chartpoint/index.ts +126 -0
- package/src/color/index.ts +411 -0
- package/src/compare/index.ts +46 -0
- package/src/drawing/registry.ts +106 -0
- package/src/index.ts +201 -0
- package/src/indicator.ts +185 -0
- package/src/input.ts +280 -0
- package/src/label/index.ts +490 -0
- package/src/lib/index.ts +8 -0
- package/src/lib/zigzag/index.ts +13 -0
- package/src/lib/zigzag/zigzag.ts +318 -0
- package/src/line/index.ts +530 -0
- package/src/linefill/index.ts +152 -0
- package/src/map/index.ts +115 -0
- package/src/math/index.ts +1071 -0
- package/src/matrix/index.ts +2697 -0
- package/src/plot.ts +121 -0
- package/src/polyline/index.ts +184 -0
- package/src/runtime/adapters/LightweightChartsAdapter.ts +201 -0
- package/src/runtime/adapters/SimpleInputAdapter.ts +132 -0
- package/src/runtime/index.ts +52 -0
- package/src/runtime/inputs.ts +377 -0
- package/src/runtime/runtime.ts +241 -0
- package/src/runtime/series.ts +644 -0
- package/src/runtime/types.ts +292 -0
- package/src/script/index.ts +1865 -0
- package/src/security/resample.ts +119 -0
- package/src/session/bars.ts +262 -0
- package/src/session/calendar.ts +199 -0
- package/src/str/dateformat.ts +104 -0
- package/src/str/index.ts +557 -0
- package/src/str/messageformat.ts +109 -0
- package/src/str/numberformat.ts +197 -0
- package/src/strategy/index.ts +281 -0
- package/src/ta/index.ts +3580 -0
- package/src/ta/running-sum.ts +117 -0
- package/src/ta-series.ts +1036 -0
- package/src/text/index.ts +14 -0
- package/src/time/datestring.ts +96 -0
- package/src/time/index.ts +161 -0
- package/src/time/session.ts +79 -0
- package/src/time/timezone.ts +180 -0
- package/src/timeframe/index.ts +144 -0
- package/src/types/index.ts +398 -0
- package/src/types/metadata.ts +334 -0
- package/src/utils/index.ts +334 -0
- package/dist/array/index.d.ts +0 -57
- package/dist/array/index.d.ts.map +0 -1
- package/dist/box/index.d.ts +0 -37
- package/dist/box/index.d.ts.map +0 -1
- package/dist/callsite/index.d.ts +0 -7
- package/dist/callsite/index.d.ts.map +0 -1
- package/dist/chartpoint/index.d.ts +0 -8
- package/dist/chartpoint/index.d.ts.map +0 -1
- package/dist/color/index.d.ts +0 -28
- package/dist/color/index.d.ts.map +0 -1
- package/dist/compare/index.d.ts +0 -8
- package/dist/compare/index.d.ts.map +0 -1
- package/dist/drawing/registry.d.ts +0 -19
- package/dist/drawing/registry.d.ts.map +0 -1
- package/dist/index.cjs +0 -7979
- package/dist/index.d.ts +0 -64
- package/dist/index.d.ts.map +0 -1
- package/dist/index.mjs +0 -7962
- package/dist/indicator.d.ts +0 -42
- package/dist/indicator.d.ts.map +0 -1
- package/dist/input.d.ts +0 -47
- package/dist/input.d.ts.map +0 -1
- package/dist/label/index.d.ts +0 -30
- package/dist/label/index.d.ts.map +0 -1
- package/dist/lib/index.d.ts +0 -2
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/zigzag/index.d.ts.map +0 -1
- package/dist/lib/zigzag/zigzag.d.ts +0 -47
- package/dist/lib/zigzag/zigzag.d.ts.map +0 -1
- package/dist/line/index.d.ts +0 -30
- package/dist/line/index.d.ts.map +0 -1
- package/dist/linefill/index.d.ts +0 -10
- package/dist/linefill/index.d.ts.map +0 -1
- package/dist/map/index.d.ts +0 -14
- package/dist/map/index.d.ts.map +0 -1
- package/dist/math/index.d.ts +0 -53
- package/dist/math/index.d.ts.map +0 -1
- package/dist/matrix/index.d.ts +0 -52
- package/dist/matrix/index.d.ts.map +0 -1
- package/dist/plot.d.ts +0 -20
- package/dist/plot.d.ts.map +0 -1
- package/dist/polyline/index.d.ts +0 -11
- package/dist/polyline/index.d.ts.map +0 -1
- package/dist/runtime/adapters/LightweightChartsAdapter.d.ts +0 -15
- package/dist/runtime/adapters/LightweightChartsAdapter.d.ts.map +0 -1
- package/dist/runtime/adapters/SimpleInputAdapter.d.ts +0 -16
- package/dist/runtime/adapters/SimpleInputAdapter.d.ts.map +0 -1
- package/dist/runtime/index.cjs +0 -600
- package/dist/runtime/index.d.ts.map +0 -1
- package/dist/runtime/index.mjs +0 -577
- package/dist/runtime/inputs.d.ts +0 -13
- package/dist/runtime/inputs.d.ts.map +0 -1
- package/dist/runtime/runtime.d.ts +0 -16
- package/dist/runtime/runtime.d.ts.map +0 -1
- package/dist/runtime/series.d.ts +0 -60
- package/dist/runtime/series.d.ts.map +0 -1
- package/dist/runtime/types.d.ts +0 -122
- package/dist/runtime/types.d.ts.map +0 -1
- package/dist/script/index.cjs +0 -6372
- package/dist/script/index.d.ts +0 -709
- package/dist/script/index.d.ts.map +0 -1
- package/dist/script/index.mjs +0 -6355
- package/dist/security/resample.d.ts +0 -13
- package/dist/security/resample.d.ts.map +0 -1
- package/dist/session/bars.d.ts +0 -34
- package/dist/session/bars.d.ts.map +0 -1
- package/dist/session/calendar.d.ts +0 -31
- package/dist/session/calendar.d.ts.map +0 -1
- package/dist/str/dateformat.d.ts +0 -2
- package/dist/str/dateformat.d.ts.map +0 -1
- package/dist/str/index.d.ts +0 -24
- package/dist/str/index.d.ts.map +0 -1
- package/dist/str/messageformat.d.ts +0 -2
- package/dist/str/messageformat.d.ts.map +0 -1
- package/dist/str/numberformat.d.ts +0 -3
- package/dist/str/numberformat.d.ts.map +0 -1
- package/dist/strategy/index.d.ts.map +0 -1
- package/dist/ta/index.d.ts +0 -72
- package/dist/ta/index.d.ts.map +0 -1
- package/dist/ta-series.d.ts +0 -143
- package/dist/ta-series.d.ts.map +0 -1
- package/dist/text/index.d.ts +0 -4
- package/dist/text/index.d.ts.map +0 -1
- package/dist/time/datestring.d.ts +0 -2
- package/dist/time/datestring.d.ts.map +0 -1
- package/dist/time/index.d.ts +0 -15
- package/dist/time/index.d.ts.map +0 -1
- package/dist/time/session.d.ts +0 -2
- package/dist/time/session.d.ts.map +0 -1
- package/dist/time/timezone.d.ts +0 -13
- package/dist/time/timezone.d.ts.map +0 -1
- package/dist/timeframe/index.d.ts +0 -17
- package/dist/timeframe/index.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -181
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/metadata.d.ts +0 -131
- package/dist/types/metadata.d.ts.map +0 -1
- package/dist/utils/index.d.ts +0 -26
- package/dist/utils/index.d.ts.map +0 -1
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ZigZag Library
|
|
3
|
+
*
|
|
4
|
+
* Identifies trend reversals by connecting pivot highs and lows
|
|
5
|
+
* that exceed a specified percentage deviation threshold.
|
|
6
|
+
*
|
|
7
|
+
* Based on the PineScript ZigZag library v8.
|
|
8
|
+
*/
|
|
9
|
+
// ============ Default Settings ============
|
|
10
|
+
export const defaultSettings = {
|
|
11
|
+
devThreshold: 5.0,
|
|
12
|
+
depth: 10,
|
|
13
|
+
lineColor: '#2962FF',
|
|
14
|
+
extendLast: true,
|
|
15
|
+
displayReversalPrice: true,
|
|
16
|
+
displayCumulativeVolume: true,
|
|
17
|
+
displayReversalPriceChange: true,
|
|
18
|
+
differencePriceMode: 'Absolute',
|
|
19
|
+
allowZigZagOnOneBar: true,
|
|
20
|
+
};
|
|
21
|
+
// ============ ZigZag Class ============
|
|
22
|
+
export class ZigZag {
|
|
23
|
+
settings;
|
|
24
|
+
pivots = [];
|
|
25
|
+
sumVol = 0;
|
|
26
|
+
highBuffer = [];
|
|
27
|
+
lowBuffer = [];
|
|
28
|
+
timeBuffer = [];
|
|
29
|
+
barCount = 0;
|
|
30
|
+
constructor(settings) {
|
|
31
|
+
this.settings = { ...defaultSettings, ...settings };
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Process a single bar, detecting pivots.
|
|
35
|
+
* Must be called sequentially for each bar.
|
|
36
|
+
* @returns true if a new pivot was detected or updated
|
|
37
|
+
*/
|
|
38
|
+
update(bar, barIndex) {
|
|
39
|
+
// Store price data in buffers for lookback
|
|
40
|
+
this.highBuffer.push(bar.high);
|
|
41
|
+
this.lowBuffer.push(bar.low);
|
|
42
|
+
this.timeBuffer.push(bar.time);
|
|
43
|
+
this.barCount++;
|
|
44
|
+
const depth = Math.max(2, Math.floor(this.settings.depth / 2));
|
|
45
|
+
this.sumVol += bar.volume ?? 0;
|
|
46
|
+
// Need enough bars for pivot detection (depth bars before and after)
|
|
47
|
+
if (this.barCount < depth * 2 + 1)
|
|
48
|
+
return false;
|
|
49
|
+
let somethingChanged = this.tryFindPivot(true, depth, barIndex);
|
|
50
|
+
somethingChanged = this.tryFindPivot(false, depth, barIndex, this.settings.allowZigZagOnOneBar || !somethingChanged) || somethingChanged;
|
|
51
|
+
return somethingChanged;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Get the last confirmed pivot
|
|
55
|
+
*/
|
|
56
|
+
lastPivot() {
|
|
57
|
+
if (this.pivots.length === 0)
|
|
58
|
+
return null;
|
|
59
|
+
const last = this.pivots[this.pivots.length - 1];
|
|
60
|
+
return last !== undefined ? last : null;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get extension line to current bar (if extendLast enabled)
|
|
64
|
+
*/
|
|
65
|
+
getExtension(currentBar, barIndex) {
|
|
66
|
+
if (!this.settings.extendLast)
|
|
67
|
+
return null;
|
|
68
|
+
const last = this.lastPivot();
|
|
69
|
+
if (!last)
|
|
70
|
+
return null;
|
|
71
|
+
// Extension goes opposite direction from last pivot
|
|
72
|
+
const isHigh = !last.isHigh;
|
|
73
|
+
const price = isHigh ? currentBar.high : currentBar.low;
|
|
74
|
+
return {
|
|
75
|
+
isHigh,
|
|
76
|
+
volume: this.sumVol,
|
|
77
|
+
start: last.end,
|
|
78
|
+
end: { time: currentBar.time, barIndex, price },
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
// ============ Private Methods ============
|
|
82
|
+
tryFindPivot(isHigh, depth, currentBarIndex, registerPivot = true) {
|
|
83
|
+
const point = this.findPivotPoint(isHigh, depth, currentBarIndex);
|
|
84
|
+
if (!point || !registerPivot)
|
|
85
|
+
return false;
|
|
86
|
+
return this.newPivotPointFound(isHigh, point);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Check if a bar from `depth` bars back is a pivot point.
|
|
90
|
+
* A pivot high has prices below it on both sides.
|
|
91
|
+
* A pivot low has prices above it on both sides.
|
|
92
|
+
*/
|
|
93
|
+
findPivotPoint(isHigh, depth, currentBarIndex) {
|
|
94
|
+
const buffer = isHigh ? this.highBuffer : this.lowBuffer;
|
|
95
|
+
const pivotBufferIdx = buffer.length - 1 - depth;
|
|
96
|
+
if (pivotBufferIdx < depth)
|
|
97
|
+
return null;
|
|
98
|
+
const pivotPrice = buffer[pivotBufferIdx];
|
|
99
|
+
if (pivotPrice === undefined)
|
|
100
|
+
return null;
|
|
101
|
+
// Check bars AFTER the potential pivot (more recent bars)
|
|
102
|
+
// For a pivot high, subsequent bars must be strictly lower
|
|
103
|
+
// For a pivot low, subsequent bars must be strictly higher
|
|
104
|
+
for (let i = pivotBufferIdx + 1; i < buffer.length; i++) {
|
|
105
|
+
const price = buffer[i];
|
|
106
|
+
if (price === undefined)
|
|
107
|
+
return null;
|
|
108
|
+
if (isHigh) {
|
|
109
|
+
if (price > pivotPrice)
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
if (price < pivotPrice)
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// Check bars BEFORE the potential pivot (older bars)
|
|
118
|
+
// For a pivot high, previous bars must be lower or equal
|
|
119
|
+
// For a pivot low, previous bars must be higher or equal
|
|
120
|
+
for (let i = pivotBufferIdx - depth; i < pivotBufferIdx; i++) {
|
|
121
|
+
const price = buffer[i];
|
|
122
|
+
if (price === undefined)
|
|
123
|
+
return null;
|
|
124
|
+
if (isHigh) {
|
|
125
|
+
if (price >= pivotPrice)
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
if (price <= pivotPrice)
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// It's a valid pivot
|
|
134
|
+
const pivotBarIndex = currentBarIndex - depth;
|
|
135
|
+
const pivotTime = this.timeBuffer[pivotBufferIdx];
|
|
136
|
+
if (pivotTime === undefined)
|
|
137
|
+
return null;
|
|
138
|
+
return {
|
|
139
|
+
time: pivotTime,
|
|
140
|
+
barIndex: pivotBarIndex,
|
|
141
|
+
price: pivotPrice,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Calculate percentage deviation from base price to new price
|
|
146
|
+
*/
|
|
147
|
+
calcDev(basePrice, price) {
|
|
148
|
+
return 100 * (price - basePrice) / Math.abs(basePrice);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Handle a newly detected pivot point.
|
|
152
|
+
* Either updates existing pivot (if same direction) or adds new pivot (if direction changed).
|
|
153
|
+
*/
|
|
154
|
+
newPivotPointFound(isHigh, point) {
|
|
155
|
+
const last = this.lastPivot();
|
|
156
|
+
if (!last) {
|
|
157
|
+
// First pivot - create initial entry
|
|
158
|
+
this.pivots.push({
|
|
159
|
+
isHigh,
|
|
160
|
+
volume: this.sumVol,
|
|
161
|
+
start: point,
|
|
162
|
+
end: point,
|
|
163
|
+
});
|
|
164
|
+
this.sumVol = 0;
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
if (last.isHigh === isHigh) {
|
|
168
|
+
// Same direction - check if this is a more extreme price
|
|
169
|
+
const isMoreExtreme = isHigh
|
|
170
|
+
? point.price > last.end.price
|
|
171
|
+
: point.price < last.end.price;
|
|
172
|
+
if (isMoreExtreme) {
|
|
173
|
+
// Update the existing pivot to the new extreme
|
|
174
|
+
last.end = point;
|
|
175
|
+
last.volume += this.sumVol;
|
|
176
|
+
this.sumVol = 0;
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
// Direction change - check if deviation threshold is met
|
|
182
|
+
const dev = this.calcDev(last.end.price, point.price);
|
|
183
|
+
const threshold = this.settings.devThreshold;
|
|
184
|
+
// For pivot high -> low transition, need negative deviation
|
|
185
|
+
// For pivot low -> high transition, need positive deviation
|
|
186
|
+
const meetsThreshold = last.isHigh
|
|
187
|
+
? dev <= -threshold
|
|
188
|
+
: dev >= threshold;
|
|
189
|
+
if (meetsThreshold) {
|
|
190
|
+
// Add new pivot
|
|
191
|
+
this.pivots.push({
|
|
192
|
+
isHigh,
|
|
193
|
+
volume: this.sumVol,
|
|
194
|
+
start: last.end,
|
|
195
|
+
end: point,
|
|
196
|
+
});
|
|
197
|
+
this.sumVol = 0;
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Convenience function to calculate ZigZag on an array of bars.
|
|
206
|
+
* Processes all bars and returns the resulting pivots and extension.
|
|
207
|
+
*/
|
|
208
|
+
export function calculateZigZag(bars, settings) {
|
|
209
|
+
if (bars.length === 0) {
|
|
210
|
+
return { pivots: [], extension: null };
|
|
211
|
+
}
|
|
212
|
+
const zz = new ZigZag(settings);
|
|
213
|
+
for (let i = 0; i < bars.length; i++) {
|
|
214
|
+
const bar = bars[i];
|
|
215
|
+
if (bar !== undefined) {
|
|
216
|
+
zz.update(bar, i);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
const lastBar = bars[bars.length - 1];
|
|
220
|
+
if (lastBar === undefined) {
|
|
221
|
+
return { pivots: zz.pivots, extension: null };
|
|
222
|
+
}
|
|
223
|
+
const extension = zz.getExtension(lastBar, bars.length - 1);
|
|
224
|
+
return {
|
|
225
|
+
pivots: zz.pivots,
|
|
226
|
+
extension,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=zigzag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zigzag.js","sourceRoot":"","sources":["../../../../src/lib/zigzag/zigzag.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Line namespace
|
|
3
|
+
* Functions for creating and manipulating line drawing objects.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* While lines are primarily visual in PineScript, the line.get_price() function provides
|
|
7
|
+
* computational value for algorithmic trading - calculating trend line breakouts,
|
|
8
|
+
* support/resistance levels, and pattern recognition.
|
|
9
|
+
*
|
|
10
|
+
* @version 6
|
|
11
|
+
*/
|
|
12
|
+
import type { ChartPoint, Line, color } from '../types/index.js';
|
|
13
|
+
type LineXloc = 'bar_index' | 'bar_time';
|
|
14
|
+
type LineExtend = 'none' | 'left' | 'right' | 'both';
|
|
15
|
+
type LineStyle = 'solid' | 'dotted' | 'dashed' | 'arrow_left' | 'arrow_right' | 'arrow_both';
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new line (PineScript `line.new`), with two chart points or with coordinates:
|
|
18
|
+
*
|
|
19
|
+
* - `line.new(first_point, second_point, xloc?, extend?, color?, style?, width?, force_overlay?)`
|
|
20
|
+
* - `line.new(x1, y1, x2, y2, xloc?, extend?, color?, style?, width?, force_overlay?)`
|
|
21
|
+
*
|
|
22
|
+
* With chart points, x is `point.index` for `bar_index` lines and `point.time` for `bar_time` lines.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* // Create a trend line from bar 0 (price 100) to bar 50 (price 150)
|
|
27
|
+
* const trendLine = line.new(0, 100, 50, 150, 'bar_index', 'right');
|
|
28
|
+
* const fromPoints = line.new(chartPoint.from_index(0, 100), chartPoint.from_index(50, 150));
|
|
29
|
+
*
|
|
30
|
+
* // Calculate price at bar 75 (extrapolated)
|
|
31
|
+
* const price = line.get_price(trendLine, 75); // Returns 175
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function new_line(first_point: ChartPoint, second_point: ChartPoint, xloc?: LineXloc, extend?: LineExtend, lineColor?: color, style?: LineStyle, width?: number, force_overlay?: boolean): Line;
|
|
35
|
+
export declare function new_line(x1: number, y1: number, x2: number, y2: number, xloc?: LineXloc, extend?: LineExtend, lineColor?: color, style?: LineStyle, width?: number, force_overlay?: boolean): Line;
|
|
36
|
+
/**
|
|
37
|
+
* Returns the price level of a line at a given bar index.
|
|
38
|
+
*
|
|
39
|
+
* @param id - Line object
|
|
40
|
+
* @param x - Bar index to calculate price at
|
|
41
|
+
* @returns Price level at the given bar index, or NaN if outside bounds and not extended
|
|
42
|
+
*
|
|
43
|
+
* @remarks
|
|
44
|
+
* - **CRITICAL COMPUTATIONAL FUNCTION** - Enables trend line breakout detection
|
|
45
|
+
* - Uses linear interpolation: y = y1 + (y2 - y1) * (x - x1) / (x2 - x1)
|
|
46
|
+
* - Respects extend mode:
|
|
47
|
+
* - 'none': Returns NaN if x is outside [x1, x2]
|
|
48
|
+
* - 'left': Extends infinitely to the left (x < x1)
|
|
49
|
+
* - 'right': Extends infinitely to the right (x > x2)
|
|
50
|
+
* - 'both': Extends infinitely in both directions
|
|
51
|
+
* - Only works with xloc='bar_index' lines (not xloc='bar_time')
|
|
52
|
+
* - In PineScript, this function treats all lines as if extend='both' regardless of actual setting
|
|
53
|
+
* For compatibility, we follow the actual extend setting
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* const trendLine = line.new(0, 100, 50, 150, 'bar_index', 'right');
|
|
58
|
+
*
|
|
59
|
+
* // Within segment
|
|
60
|
+
* line.get_price(trendLine, 25); // Returns 125
|
|
61
|
+
*
|
|
62
|
+
* // Extended right
|
|
63
|
+
* line.get_price(trendLine, 100); // Returns 200
|
|
64
|
+
*
|
|
65
|
+
* // Not extended left (with extend='right')
|
|
66
|
+
* line.get_price(trendLine, -10); // Returns NaN
|
|
67
|
+
*
|
|
68
|
+
* // Use for breakout detection
|
|
69
|
+
* const currentPrice = close[close.length - 1];
|
|
70
|
+
* const linePrice = line.get_price(trendLine, close.length - 1);
|
|
71
|
+
* if (currentPrice > linePrice) {
|
|
72
|
+
* console.log('Breakout above trend line!');
|
|
73
|
+
* }
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export declare function get_price(id: Line, x: number): number;
|
|
77
|
+
/**
|
|
78
|
+
* Returns the first point's x coordinate.
|
|
79
|
+
*
|
|
80
|
+
* @param id - Line object
|
|
81
|
+
* @returns X coordinate of the first point
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* const line = line.new(10, 100, 50, 150);
|
|
86
|
+
* const x1 = line.get_x1(line); // Returns 10
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
export declare function get_x1(id: Line): number;
|
|
90
|
+
/**
|
|
91
|
+
* Returns the second point's x coordinate.
|
|
92
|
+
*
|
|
93
|
+
* @param id - Line object
|
|
94
|
+
* @returns X coordinate of the second point
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```typescript
|
|
98
|
+
* const line = line.new(10, 100, 50, 150);
|
|
99
|
+
* const x2 = line.get_x2(line); // Returns 50
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
export declare function get_x2(id: Line): number;
|
|
103
|
+
/**
|
|
104
|
+
* Returns the first point's y coordinate (price level).
|
|
105
|
+
*
|
|
106
|
+
* @param id - Line object
|
|
107
|
+
* @returns Y coordinate (price) of the first point
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```typescript
|
|
111
|
+
* const line = line.new(10, 100, 50, 150);
|
|
112
|
+
* const y1 = line.get_y1(line); // Returns 100
|
|
113
|
+
* ```
|
|
114
|
+
*/
|
|
115
|
+
export declare function get_y1(id: Line): number;
|
|
116
|
+
/**
|
|
117
|
+
* Returns the second point's y coordinate (price level).
|
|
118
|
+
*
|
|
119
|
+
* @param id - Line object
|
|
120
|
+
* @returns Y coordinate (price) of the second point
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```typescript
|
|
124
|
+
* const line = line.new(10, 100, 50, 150);
|
|
125
|
+
* const y2 = line.get_y2(line); // Returns 150
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
export declare function get_y2(id: Line): number;
|
|
129
|
+
/**
|
|
130
|
+
* Creates a copy of the line object.
|
|
131
|
+
*
|
|
132
|
+
* @param id - Line object to copy
|
|
133
|
+
* @returns New line object with same properties
|
|
134
|
+
*
|
|
135
|
+
* @remarks
|
|
136
|
+
* Creates a shallow copy of the line. Modifications to the copy won't affect the original.
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```typescript
|
|
140
|
+
* const originalLine = line.new(0, 100, 50, 150);
|
|
141
|
+
* const copiedLine = line.copy(originalLine);
|
|
142
|
+
*
|
|
143
|
+
* // Modify copy without affecting original
|
|
144
|
+
* copiedLine.y2 = 200;
|
|
145
|
+
* ```
|
|
146
|
+
*/
|
|
147
|
+
export declare function copy(id: Line): Line;
|
|
148
|
+
/**
|
|
149
|
+
* Sets the first point's x coordinate.
|
|
150
|
+
*
|
|
151
|
+
* @param id - Line object to modify
|
|
152
|
+
* @param x - New x coordinate (bar index or timestamp)
|
|
153
|
+
* @returns Modified line object
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* const line = line.new(0, 100, 50, 150);
|
|
158
|
+
* line.set_x1(line, 10); // Move first point to bar 10
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
export declare function set_x1(id: Line, x: number): Line;
|
|
162
|
+
/**
|
|
163
|
+
* Sets the second point's x coordinate.
|
|
164
|
+
*
|
|
165
|
+
* @param id - Line object to modify
|
|
166
|
+
* @param x - New x coordinate (bar index or timestamp)
|
|
167
|
+
* @returns Modified line object
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```typescript
|
|
171
|
+
* const line = line.new(0, 100, 50, 150);
|
|
172
|
+
* line.set_x2(line, 60); // Move second point to bar 60
|
|
173
|
+
* ```
|
|
174
|
+
*/
|
|
175
|
+
export declare function set_x2(id: Line, x: number): Line;
|
|
176
|
+
/**
|
|
177
|
+
* Sets the first point's y coordinate (price level).
|
|
178
|
+
*
|
|
179
|
+
* @param id - Line object to modify
|
|
180
|
+
* @param y - New y coordinate (price)
|
|
181
|
+
* @returns Modified line object
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* ```typescript
|
|
185
|
+
* const line = line.new(0, 100, 50, 150);
|
|
186
|
+
* line.set_y1(line, 110); // Move first point to price 110
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
export declare function set_y1(id: Line, y: number): Line;
|
|
190
|
+
/**
|
|
191
|
+
* Sets the second point's y coordinate (price level).
|
|
192
|
+
*
|
|
193
|
+
* @param id - Line object to modify
|
|
194
|
+
* @param y - New y coordinate (price)
|
|
195
|
+
* @returns Modified line object
|
|
196
|
+
*
|
|
197
|
+
* @example
|
|
198
|
+
* ```typescript
|
|
199
|
+
* const line = line.new(0, 100, 50, 150);
|
|
200
|
+
* line.set_y2(line, 160); // Move second point to price 160
|
|
201
|
+
* ```
|
|
202
|
+
*/
|
|
203
|
+
export declare function set_y2(id: Line, y: number): Line;
|
|
204
|
+
/**
|
|
205
|
+
* Sets both coordinates of the first point.
|
|
206
|
+
*
|
|
207
|
+
* @param id - Line object to modify
|
|
208
|
+
* @param x - New x coordinate
|
|
209
|
+
* @param y - New y coordinate
|
|
210
|
+
* @returns Modified line object
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```typescript
|
|
214
|
+
* const line = line.new(0, 100, 50, 150);
|
|
215
|
+
* line.set_xy1(line, 5, 105); // Move first point to (5, 105)
|
|
216
|
+
* ```
|
|
217
|
+
*/
|
|
218
|
+
export declare function set_xy1(id: Line, x: number, y: number): Line;
|
|
219
|
+
/**
|
|
220
|
+
* Sets both coordinates of the second point.
|
|
221
|
+
*
|
|
222
|
+
* @param id - Line object to modify
|
|
223
|
+
* @param x - New x coordinate
|
|
224
|
+
* @param y - New y coordinate
|
|
225
|
+
* @returns Modified line object
|
|
226
|
+
*
|
|
227
|
+
* @example
|
|
228
|
+
* ```typescript
|
|
229
|
+
* const line = line.new(0, 100, 50, 150);
|
|
230
|
+
* line.set_xy2(line, 60, 160); // Move second point to (60, 160)
|
|
231
|
+
* ```
|
|
232
|
+
*/
|
|
233
|
+
export declare function set_xy2(id: Line, x: number, y: number): Line;
|
|
234
|
+
/**
|
|
235
|
+
* Sets the coordinate system for the line.
|
|
236
|
+
*
|
|
237
|
+
* @param id - Line object to modify
|
|
238
|
+
* @param x1 - New first point x coordinate
|
|
239
|
+
* @param x2 - New second point x coordinate
|
|
240
|
+
* @param xloc - New coordinate system ('bar_index' or 'bar_time')
|
|
241
|
+
* @returns Modified line object
|
|
242
|
+
*
|
|
243
|
+
* @remarks
|
|
244
|
+
* When changing xloc, you must provide appropriate x coordinates for the new system.
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* ```typescript
|
|
248
|
+
* const line = line.new(0, 100, 50, 150);
|
|
249
|
+
* // Change to timestamp-based coordinates
|
|
250
|
+
* line.set_xloc(line, 1609459200000, 1609545600000, 'bar_time');
|
|
251
|
+
* ```
|
|
252
|
+
*/
|
|
253
|
+
export declare function set_xloc(id: Line, x1: number, x2: number, xloc: 'bar_index' | 'bar_time'): Line;
|
|
254
|
+
/**
|
|
255
|
+
* Sets the extension mode of the line.
|
|
256
|
+
*
|
|
257
|
+
* @param id - Line object to modify
|
|
258
|
+
* @param extend - New extension mode
|
|
259
|
+
* @returns Modified line object
|
|
260
|
+
*
|
|
261
|
+
* @example
|
|
262
|
+
* ```typescript
|
|
263
|
+
* const line = line.new(0, 100, 50, 150);
|
|
264
|
+
* line.set_extend(line, 'right'); // Extend line to the right
|
|
265
|
+
* ```
|
|
266
|
+
*/
|
|
267
|
+
export declare function set_extend(id: Line, extend: 'none' | 'left' | 'right' | 'both'): Line;
|
|
268
|
+
/**
|
|
269
|
+
* Sets the line color.
|
|
270
|
+
*
|
|
271
|
+
* @param id - Line object to modify
|
|
272
|
+
* @param color - New line color
|
|
273
|
+
* @returns Modified line object
|
|
274
|
+
*
|
|
275
|
+
* @example
|
|
276
|
+
* ```typescript
|
|
277
|
+
* const line = line.new(0, 100, 50, 150);
|
|
278
|
+
* line.set_color(line, '#FF0000'); // Change to red
|
|
279
|
+
* ```
|
|
280
|
+
*/
|
|
281
|
+
export declare function set_color(id: Line, lineColor: color): Line;
|
|
282
|
+
/**
|
|
283
|
+
* Sets the line style.
|
|
284
|
+
*
|
|
285
|
+
* @param id - Line object to modify
|
|
286
|
+
* @param style - New line style
|
|
287
|
+
* @returns Modified line object
|
|
288
|
+
*
|
|
289
|
+
* @example
|
|
290
|
+
* ```typescript
|
|
291
|
+
* const line = line.new(0, 100, 50, 150);
|
|
292
|
+
* line.set_style(line, 'dashed'); // Change to dashed line
|
|
293
|
+
* ```
|
|
294
|
+
*/
|
|
295
|
+
export declare function set_style(id: Line, style: 'solid' | 'dotted' | 'dashed' | 'arrow_left' | 'arrow_right' | 'arrow_both'): Line;
|
|
296
|
+
/**
|
|
297
|
+
* Sets the line width.
|
|
298
|
+
*
|
|
299
|
+
* @param id - Line object to modify
|
|
300
|
+
* @param width - New line width in pixels
|
|
301
|
+
* @returns Modified line object
|
|
302
|
+
*
|
|
303
|
+
* @example
|
|
304
|
+
* ```typescript
|
|
305
|
+
* const line = line.new(0, 100, 50, 150);
|
|
306
|
+
* line.set_width(line, 3); // Make line thicker
|
|
307
|
+
* ```
|
|
308
|
+
*/
|
|
309
|
+
export declare function set_width(id: Line, width: number): Line;
|
|
310
|
+
/**
|
|
311
|
+
* Deletes the line object.
|
|
312
|
+
*
|
|
313
|
+
* @param id - Line object to delete
|
|
314
|
+
*
|
|
315
|
+
* @remarks
|
|
316
|
+
* Removes the line from `line.all()`. As in PineScript, the deleted line is `na`: its getters
|
|
317
|
+
* return NaN and its setters do nothing. Deleting it twice has no effect. Deleting a line also deletes the linefills that use it.
|
|
318
|
+
*
|
|
319
|
+
* @example
|
|
320
|
+
* ```typescript
|
|
321
|
+
* const line = line.new(0, 100, 50, 150);
|
|
322
|
+
* line.delete(line);
|
|
323
|
+
* // line.all() no longer contains it
|
|
324
|
+
* ```
|
|
325
|
+
*/
|
|
326
|
+
export declare function delete_line(id: Line): void;
|
|
327
|
+
/**
|
|
328
|
+
* All live lines, in creation order (PineScript `line.all`). A new array: later changes do not affect it.
|
|
329
|
+
*/
|
|
330
|
+
export declare function all(): Line[];
|
|
331
|
+
/**
|
|
332
|
+
* Sets the first point of the line from a chart point: `point.index` for `bar_index` lines,
|
|
333
|
+
* `point.time` for `bar_time` lines (`na` when the point does not have it), and `point.price`.
|
|
334
|
+
*/
|
|
335
|
+
export declare function set_first_point(id: Line, point: ChartPoint): Line;
|
|
336
|
+
/**
|
|
337
|
+
* Sets the second point of the line from a chart point (see {@link set_first_point}).
|
|
338
|
+
*/
|
|
339
|
+
export declare function set_second_point(id: Line, point: ChartPoint): Line;
|
|
340
|
+
export { new_line as new };
|
|
341
|
+
export { delete_line as delete };
|
|
342
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/line/index.ts"],"names":[],"mappings":"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"}
|