oakscriptjs 0.11.1 → 0.11.3
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/dist/cjs/callsite/index.d.ts.map +1 -1
- package/dist/cjs/callsite/index.js +5 -2
- package/dist/cjs/callsite/index.js.map +2 -2
- package/dist/cjs/drawing/output.d.ts +2 -1
- package/dist/cjs/drawing/output.d.ts.map +1 -1
- package/dist/cjs/drawing/output.js +5 -0
- package/dist/cjs/drawing/output.js.map +2 -2
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/script/index.d.ts +1 -1
- package/dist/cjs/script/index.d.ts.map +1 -1
- package/dist/cjs/script/index.js +6 -51
- package/dist/cjs/script/index.js.map +2 -2
- package/dist/cjs/session/calendar.d.ts.map +1 -1
- package/dist/cjs/session/calendar.js +1 -0
- package/dist/cjs/session/calendar.js.map +2 -2
- package/dist/cjs/session/context.d.ts +20 -4
- package/dist/cjs/session/context.d.ts.map +1 -1
- package/dist/cjs/session/context.js +65 -5
- package/dist/cjs/session/context.js.map +2 -2
- package/dist/cjs/ta/index.d.ts +31 -29
- package/dist/cjs/ta/index.d.ts.map +1 -1
- package/dist/cjs/ta/index.js +10 -12
- package/dist/cjs/ta/index.js.map +3 -3
- package/dist/cjs/table/index.d.ts +10 -5
- package/dist/cjs/table/index.d.ts.map +1 -1
- package/dist/cjs/table/index.js +11 -2
- package/dist/cjs/table/index.js.map +2 -2
- package/dist/cjs/types/metadata.d.ts +16 -0
- package/dist/cjs/types/metadata.d.ts.map +1 -1
- package/dist/cjs/types/metadata.js.map +1 -1
- package/dist/esm/callsite/index.d.ts.map +1 -1
- package/dist/esm/callsite/index.js +5 -2
- package/dist/esm/callsite/index.js.map +1 -1
- package/dist/esm/drawing/output.d.ts +2 -1
- package/dist/esm/drawing/output.d.ts.map +1 -1
- package/dist/esm/drawing/output.js +8 -1
- package/dist/esm/drawing/output.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +5 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/script/index.d.ts +1 -1
- package/dist/esm/script/index.d.ts.map +1 -1
- package/dist/esm/script/index.js +7 -62
- package/dist/esm/script/index.js.map +1 -1
- package/dist/esm/session/calendar.d.ts.map +1 -1
- package/dist/esm/session/calendar.js +4 -0
- package/dist/esm/session/calendar.js.map +1 -1
- package/dist/esm/session/context.d.ts +20 -4
- package/dist/esm/session/context.d.ts.map +1 -1
- package/dist/esm/session/context.js +81 -7
- package/dist/esm/session/context.js.map +1 -1
- package/dist/esm/ta/index.d.ts +31 -29
- package/dist/esm/ta/index.d.ts.map +1 -1
- package/dist/esm/ta/index.js +45 -45
- package/dist/esm/ta/index.js.map +1 -1
- package/dist/esm/table/index.d.ts +10 -5
- package/dist/esm/table/index.d.ts.map +1 -1
- package/dist/esm/table/index.js +23 -8
- package/dist/esm/table/index.js.map +1 -1
- package/dist/esm/types/metadata.d.ts +16 -0
- package/dist/esm/types/metadata.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/callsite/index.ts +5 -2
- package/src/drawing/output.ts +9 -1
- package/src/index.ts +6 -3
- package/src/script/index.ts +7 -65
- package/src/session/calendar.ts +3 -0
- package/src/session/context.ts +99 -7
- package/src/ta/index.ts +46 -45
- package/src/table/index.ts +22 -6
- package/src/types/metadata.ts +16 -0
package/dist/cjs/script/index.js
CHANGED
|
@@ -130,7 +130,7 @@ var import_resample = require("../security/resample.js");
|
|
|
130
130
|
var import_other = require("../security/other.js");
|
|
131
131
|
var import_types = require("../types/index.js");
|
|
132
132
|
var import_strategy = require("../strategy/index.js");
|
|
133
|
-
var
|
|
133
|
+
var import_context = require("../session/context.js");
|
|
134
134
|
var import_strategy2 = require("../strategy/index.js");
|
|
135
135
|
var compare = __toESM(require("../compare/index.js"), 1);
|
|
136
136
|
var import_input_active = require("../runtime/input-active.js");
|
|
@@ -1134,23 +1134,6 @@ function sessionBars() {
|
|
|
1134
1134
|
}
|
|
1135
1135
|
return sessionCache;
|
|
1136
1136
|
}
|
|
1137
|
-
function calendarFor(session2, timezone, dayPlacement = false) {
|
|
1138
|
-
const { bars: bars2 } = sessionBars();
|
|
1139
|
-
if (!session2 && !timezone) return { bars: bars2, test: false };
|
|
1140
|
-
const tz = timezone ?? exchangeTimezone();
|
|
1141
|
-
if (session2 !== void 0 && (0, import_session.parsePineSession)(session2) === null) {
|
|
1142
|
-
const name = session2.trim();
|
|
1143
|
-
const symbol = name === "regular" && chartCtx.regularSession ? chartCtx.regularSession : chartCtx.session;
|
|
1144
|
-
return { bars: new import_bars.SessionBars(new import_calendar.TradingCalendar(tz, { session: toSpec(symbol).session }, "symbol"), bars2.chart.period), test: true };
|
|
1145
|
-
}
|
|
1146
|
-
const spec = session2 ? { session: session2 } : { session: toSpec(chartCtx.session).session };
|
|
1147
|
-
return {
|
|
1148
|
-
bars: new import_bars.SessionBars(new import_calendar.TradingCalendar(tz, spec, session2 ? "pine" : "symbol", dayPlacement), bars2.chart.period),
|
|
1149
|
-
test: true,
|
|
1150
|
-
// a PineScript session string: the rules of time.inSession (runs ending at 0000, days around a clock change)
|
|
1151
|
-
inside: session2 ? (time2) => timeCore.inSession(time2, session2, tz, timeframeCore.in_seconds(bars2.chart.period) * 1e3) : void 0
|
|
1152
|
-
};
|
|
1153
|
-
}
|
|
1154
1137
|
function perBar(fn) {
|
|
1155
1138
|
const times = ctxBars.bars.map(barTime);
|
|
1156
1139
|
return import_series.Series.fromArray(ctxBars, times.map((t, i) => fn(t, i, times)));
|
|
@@ -1160,46 +1143,18 @@ function callableSeries(series, fn) {
|
|
|
1160
1143
|
Object.assign(fn, series);
|
|
1161
1144
|
return fn;
|
|
1162
1145
|
}
|
|
1163
|
-
function
|
|
1164
|
-
const
|
|
1165
|
-
|
|
1166
|
-
const open2 = (t) => bars2.timeOf(t, timeframeString);
|
|
1167
|
-
const close2 = (t) => bars2.closeOf(t, timeframeString);
|
|
1168
|
-
if (!test) return { open: open2, close: close2 };
|
|
1169
|
-
if (tf.isintraday) {
|
|
1170
|
-
if (session2 !== void 0 && (0, import_session.parsePineSession)(session2) !== null && !bars2.chart.isdwm) {
|
|
1171
|
-
const tz = timezone ?? exchangeTimezone();
|
|
1172
|
-
const barMs = timeframeCore.in_seconds(bars2.chart.period) * 1e3;
|
|
1173
|
-
const ms = timeframeCore.in_seconds(tf.period) * 1e3;
|
|
1174
|
-
const run = (t) => (0, import_session.sessionRun)(t, session2, tz, barMs);
|
|
1175
|
-
const start = (t, r) => r[0] + Math.floor((t - r[0]) / ms) * ms;
|
|
1176
|
-
return {
|
|
1177
|
-
open: (t) => {
|
|
1178
|
-
const r = run(t);
|
|
1179
|
-
return r ? start(t, r) : NaN;
|
|
1180
|
-
},
|
|
1181
|
-
close: (t) => {
|
|
1182
|
-
const r = run(t);
|
|
1183
|
-
return r ? Math.min(start(t, r) + ms, r[1]) : NaN;
|
|
1184
|
-
}
|
|
1185
|
-
};
|
|
1186
|
-
}
|
|
1187
|
-
const isIn = (t) => inside ? inside(t) : bars2.inside(t);
|
|
1188
|
-
return { open: (t) => isIn(t) ? open2(t) : NaN, close: (t) => isIn(t) ? close2(t) : NaN };
|
|
1189
|
-
}
|
|
1190
|
-
if (tf.isdaily && tf.multiplier === 1) {
|
|
1191
|
-
return { open: (t) => bars2.inside(t) ? open2(t) : NaN, close: (t) => bars2.inside(t) ? close2(t) : NaN };
|
|
1192
|
-
}
|
|
1193
|
-
return { open: open2, close: close2 };
|
|
1146
|
+
function chartSessionPeriods(timeframeString, session2, timezone) {
|
|
1147
|
+
const { bars: bars2 } = sessionBars();
|
|
1148
|
+
return (0, import_context.sessionPeriods)(bars2, { ...chartCtx, timezone: exchangeTimezone() }, timeframeString, session2, timezone);
|
|
1194
1149
|
}
|
|
1195
1150
|
function timeFunction(tf, session2, timezone) {
|
|
1196
1151
|
collector();
|
|
1197
|
-
const { open: open2 } =
|
|
1152
|
+
const { open: open2 } = chartSessionPeriods(tf || chartTimeframe().period, session2, timezone);
|
|
1198
1153
|
return perBar((t) => open2(t));
|
|
1199
1154
|
}
|
|
1200
1155
|
function timeCloseFunction(tf, session2, timezone) {
|
|
1201
1156
|
collector();
|
|
1202
|
-
const { close: close2 } =
|
|
1157
|
+
const { close: close2 } = chartSessionPeriods(tf || chartTimeframe().period, session2, timezone);
|
|
1203
1158
|
return perBar((t) => close2(t));
|
|
1204
1159
|
}
|
|
1205
1160
|
let runNow = NaN;
|