oakscriptjs 0.11.4 → 0.11.6
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/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/input.d.ts +19 -3
- package/dist/cjs/input.d.ts.map +1 -1
- package/dist/cjs/input.js +24 -1
- package/dist/cjs/input.js.map +2 -2
- package/dist/cjs/lib/zigzag/zigzag.d.ts +8 -3
- package/dist/cjs/lib/zigzag/zigzag.d.ts.map +1 -1
- package/dist/cjs/lib/zigzag/zigzag.js +16 -3
- package/dist/cjs/lib/zigzag/zigzag.js.map +2 -2
- package/dist/cjs/runtime/index.d.ts +1 -1
- package/dist/cjs/runtime/index.d.ts.map +1 -1
- package/dist/cjs/runtime/index.js +1 -0
- package/dist/cjs/runtime/index.js.map +2 -2
- package/dist/cjs/runtime/inputs.d.ts +9 -0
- package/dist/cjs/runtime/inputs.d.ts.map +1 -1
- package/dist/cjs/runtime/inputs.js +8 -0
- package/dist/cjs/runtime/inputs.js.map +2 -2
- package/dist/cjs/runtime/types.d.ts +4 -3
- package/dist/cjs/runtime/types.d.ts.map +1 -1
- package/dist/cjs/runtime/types.js.map +1 -1
- package/dist/cjs/script/index.d.ts +50 -4
- package/dist/cjs/script/index.d.ts.map +1 -1
- package/dist/cjs/script/index.js +60 -4
- package/dist/cjs/script/index.js.map +3 -3
- package/dist/cjs/security/other.d.ts +2 -1
- package/dist/cjs/security/other.d.ts.map +1 -1
- package/dist/cjs/security/other.js +1 -1
- package/dist/cjs/security/other.js.map +2 -2
- package/dist/cjs/ta/index.d.ts +1 -0
- package/dist/cjs/ta/index.d.ts.map +1 -1
- package/dist/cjs/ta/index.js +1 -1
- package/dist/cjs/ta/index.js.map +2 -2
- package/dist/cjs/time/index.d.ts +2 -0
- package/dist/cjs/time/index.d.ts.map +1 -1
- package/dist/cjs/time/index.js +1 -1
- package/dist/cjs/time/index.js.map +2 -2
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/index.js.map +2 -2
- package/dist/cjs/utils/index.d.ts +5 -3
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +6 -0
- package/dist/cjs/utils/index.js.map +2 -2
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input.d.ts +19 -3
- package/dist/esm/input.d.ts.map +1 -1
- package/dist/esm/input.js +24 -1
- package/dist/esm/input.js.map +1 -1
- package/dist/esm/lib/zigzag/zigzag.d.ts +8 -3
- package/dist/esm/lib/zigzag/zigzag.d.ts.map +1 -1
- package/dist/esm/lib/zigzag/zigzag.js +19 -4
- package/dist/esm/lib/zigzag/zigzag.js.map +1 -1
- package/dist/esm/runtime/index.d.ts +1 -1
- package/dist/esm/runtime/index.d.ts.map +1 -1
- package/dist/esm/runtime/index.js +1 -1
- package/dist/esm/runtime/index.js.map +1 -1
- package/dist/esm/runtime/inputs.d.ts +9 -0
- package/dist/esm/runtime/inputs.d.ts.map +1 -1
- package/dist/esm/runtime/inputs.js +15 -0
- package/dist/esm/runtime/inputs.js.map +1 -1
- package/dist/esm/runtime/types.d.ts +4 -3
- package/dist/esm/runtime/types.d.ts.map +1 -1
- package/dist/esm/script/index.d.ts +50 -4
- package/dist/esm/script/index.d.ts.map +1 -1
- package/dist/esm/script/index.js +73 -2
- package/dist/esm/script/index.js.map +1 -1
- package/dist/esm/security/other.d.ts +2 -1
- package/dist/esm/security/other.d.ts.map +1 -1
- package/dist/esm/security/other.js +4 -2
- package/dist/esm/security/other.js.map +1 -1
- package/dist/esm/ta/index.d.ts +1 -0
- package/dist/esm/ta/index.d.ts.map +1 -1
- package/dist/esm/ta/index.js +3 -1
- package/dist/esm/ta/index.js.map +1 -1
- package/dist/esm/time/index.d.ts +2 -0
- package/dist/esm/time/index.d.ts.map +1 -1
- package/dist/esm/time/index.js +4 -1
- package/dist/esm/time/index.js.map +1 -1
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/utils/index.d.ts +5 -3
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +5 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +2 -1
- package/src/input.ts +28 -4
- package/src/lib/zigzag/zigzag.ts +20 -6
- package/src/runtime/index.ts +1 -0
- package/src/runtime/inputs.ts +16 -0
- package/src/runtime/types.ts +4 -3
- package/src/script/index.ts +111 -5
- package/src/security/other.ts +5 -2
- package/src/ta/index.ts +3 -1
- package/src/time/index.ts +4 -1
- package/src/types/index.ts +1 -0
- package/src/utils/index.ts +8 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/runtime/inputs.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * @fileoverview Idempotent input registration functions\n * These functions mirror PineScript's input functions with idempotent semantics:\n * - First call registers the input with default value\n * - Subsequent calls return the current stored value (possibly user-updated)\n * @module runtime/inputs\n */\n\nimport type { InputConfig, InputOptions } from './types.js';\nimport { getContext, recalculate } from './runtime.js';\n\n// Track registered inputs for idempotent registration\nconst registeredInputs = new Map<string, boolean>();\n\n// Track if we should auto-recalculate on input change\nlet autoRecalculateEnabled = false;\n\n/**\n * Enable automatic recalculation when inputs change\n */\nexport function enableAutoRecalculate(): void {\n autoRecalculateEnabled = true;\n}\n\n/**\n * Disable automatic recalculation\n */\nexport function disableAutoRecalculate(): void {\n autoRecalculateEnabled = false;\n}\n\n/**\n * Reset registered inputs (for testing or context changes)\n * @internal\n */\nexport function resetInputs(): void {\n registeredInputs.clear();\n inputCounter = 0;\n}\n\n// Counter for generating unique input IDs when no title is provided\nlet inputCounter = 0;\n\n/**\n * Generate a unique input ID from title or default\n * @param title - Optional title\n * @param defval - Default value for fallback\n * @param type - Input type\n * @returns Unique input ID\n */\nfunction generateInputId(title: string | undefined, defval: unknown, type: string): string {\n if (title) {\n return title.replace(/\\s+/g, '_');\n }\n // Use counter to ensure uniqueness when no title is provided\n return `${type}_${inputCounter++}_${String(defval)}`;\n}\n\n/**\n * Register an integer input\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default value\n * @param title - Display title (optional)\n * @param options - Additional options: min, max, step (optional)\n * @returns Current integer value\n */\nexport function input_int(defval: number, title?: string, options?: InputOptions): number {\n const context = getContext();\n if (!context) {\n // No context - return default value\n return Math.floor(defval);\n }\n\n const id = generateInputId(title, defval, 'int');\n const config: InputConfig = {\n id,\n type: 'int',\n defval: Math.floor(defval),\n title,\n min: options?.min,\n max: options?.max,\n step: options?.step ?? 1,\n };\n\n // Check if already registered (idempotent)\n if (!registeredInputs.has(id)) {\n // First call - register the input\n context.inputs.registerInput(config);\n registeredInputs.set(id, true);\n\n // Set up auto-recalculate on change if not already done\n if (autoRecalculateEnabled) {\n context.inputs.onInputChange((changedId) => {\n if (changedId === id) {\n recalculate();\n }\n });\n }\n }\n\n // Return current value (may have been updated by user)\n const value = context.inputs.getValue(id);\n return typeof value === 'number' ? Math.floor(value) : Math.floor(defval);\n}\n\n/**\n * Register a float input\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default value\n * @param title - Display title (optional)\n * @param options - Additional options: min, max, step (optional)\n * @returns Current float value\n */\nexport function input_float(defval: number, title?: string, options?: InputOptions): number {\n const context = getContext();\n if (!context) {\n // No context - return default value\n return defval;\n }\n\n const id = generateInputId(title, defval, 'float');\n const config: InputConfig = {\n id,\n type: 'float',\n defval,\n title,\n min: options?.min,\n max: options?.max,\n step: options?.step ?? 0.1,\n };\n\n // Check if already registered (idempotent)\n if (!registeredInputs.has(id)) {\n context.inputs.registerInput(config);\n registeredInputs.set(id, true);\n\n if (autoRecalculateEnabled) {\n context.inputs.onInputChange((changedId) => {\n if (changedId === id) {\n recalculate();\n }\n });\n }\n }\n\n const value = context.inputs.getValue(id);\n return typeof value === 'number' ? value : defval;\n}\n\n/**\n * Register a boolean input\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default value\n * @param title - Display title (optional)\n * @returns Current boolean value\n */\nexport function input_bool(defval: boolean, title?: string): boolean {\n const context = getContext();\n if (!context) {\n return defval;\n }\n\n const id = generateInputId(title, defval, 'bool');\n const config: InputConfig = {\n id,\n type: 'bool',\n defval,\n title,\n };\n\n if (!registeredInputs.has(id)) {\n context.inputs.registerInput(config);\n registeredInputs.set(id, true);\n\n if (autoRecalculateEnabled) {\n context.inputs.onInputChange((changedId) => {\n if (changedId === id) {\n recalculate();\n }\n });\n }\n }\n\n const value = context.inputs.getValue(id);\n return typeof value === 'boolean' ? value : defval;\n}\n\n/**\n * Register a string input\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default value\n * @param title - Display title (optional)\n * @param options - Array of string options for dropdown (optional)\n * @returns Current string value\n */\nexport function input_string(defval: string, title?: string, options?: string[]): string {\n const context = getContext();\n if (!context) {\n return defval;\n }\n\n const id = generateInputId(title, defval, 'string');\n const config: InputConfig = {\n id,\n type: 'string',\n defval,\n title,\n options,\n };\n\n if (!registeredInputs.has(id)) {\n context.inputs.registerInput(config);\n registeredInputs.set(id, true);\n\n if (autoRecalculateEnabled) {\n context.inputs.onInputChange((changedId) => {\n if (changedId === id) {\n recalculate();\n }\n });\n }\n }\n\n const value = context.inputs.getValue(id);\n return typeof value === 'string' ? value : defval;\n}\n\n/**\n * Registers `config` once (idempotent) and returns the current stored value.\n */\nfunction registerOnce(config: InputConfig): unknown {\n const context = getContext()!;\n if (!registeredInputs.has(config.id)) {\n context.inputs.registerInput(config);\n registeredInputs.set(config.id, true);\n\n if (autoRecalculateEnabled) {\n context.inputs.onInputChange((changedId) => {\n if (changedId === config.id) {\n recalculate();\n }\n });\n }\n }\n return context.inputs.getValue(config.id);\n}\n\n/**\n * Register a timeframe input (PineScript `input.timeframe`)\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default timeframe string (\"60\", \"1D\", \"W\"); \"\" means the chart timeframe\n * @param title - Display title (optional)\n * @param options - Array of timeframe options for dropdown (optional)\n * @returns Current timeframe string\n */\nexport function input_timeframe(defval: string, title?: string, options?: string[]): string {\n if (!getContext()) {\n return defval;\n }\n const value = registerOnce({ id: generateInputId(title, defval, 'timeframe'), type: 'timeframe', defval, title, options });\n return typeof value === 'string' ? value : defval;\n}\n\n/**\n * Register a session input (PineScript `input.session`)\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default session string (\"0930-1600\", \"0930-1600:23456\")\n * @param title - Display title (optional)\n * @param options - Array of session options for dropdown (optional)\n * @returns Current session string\n */\nexport function input_session(defval: string, title?: string, options?: string[]): string {\n if (!getContext()) {\n return defval;\n }\n const value = registerOnce({ id: generateInputId(title, defval, 'session'), type: 'session', defval, title, options });\n return typeof value === 'string' ? value : defval;\n}\n\n/**\n * Register a symbol input (PineScript `input.symbol`): a ticker id such as \"NASDAQ:MSFT\" (#180)\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default ticker id\n * @param title - Display title (optional)\n * @param options - Array of symbols for a dropdown (optional)\n * @returns Current ticker id\n */\nexport function input_symbol(defval: string, title?: string, options?: string[]): string {\n if (!getContext()) {\n return defval;\n }\n const value = registerOnce({ id: generateInputId(title, defval, 'symbol'), type: 'symbol', defval, title, options });\n return typeof value === 'string' ? value : defval;\n}\n\n/**\n * Register a date/time input (PineScript `input.time`)\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default UNIX time in milliseconds, e.g. `time.timestamp(\"2024-01-01\")`\n * @param title - Display title (optional)\n * @returns Current UNIX time in milliseconds\n */\nexport function input_time(defval: number, title?: string): number {\n if (!getContext()) {\n return defval;\n }\n const value = registerOnce({ id: generateInputId(title, defval, 'time'), type: 'time', defval, title });\n return typeof value === 'number' ? value : defval;\n}\n\n/**\n * Register a source input (returns a data series from OHLCV)\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default source name ('close', 'open', 'high', 'low', 'volume', 'hl2', 'hlc3', 'ohlc4')\n * @param title - Display title (optional)\n * @returns Array of values for the selected source\n */\nexport function input_source(defval: string, title?: string): number[] {\n const context = getContext();\n if (!context) {\n return [];\n }\n\n const id = generateInputId(title, defval, 'source');\n const config: InputConfig = {\n id,\n type: 'source',\n defval,\n title,\n options: ['open', 'high', 'low', 'close', 'volume', 'hl2', 'hlc3', 'ohlc4'],\n };\n\n if (!registeredInputs.has(id)) {\n context.inputs.registerInput(config);\n registeredInputs.set(id, true);\n\n if (autoRecalculateEnabled) {\n context.inputs.onInputChange((changedId) => {\n if (changedId === id) {\n recalculate();\n }\n });\n }\n }\n\n const sourceName = (context.inputs.getValue(id) as string) ?? defval;\n \n return getSourceData(context.ohlcv, sourceName);\n}\n\n/**\n * Get data array for a source name\n * @param ohlcv - OHLCV data\n * @param sourceName - Source name\n * @returns Array of values\n */\nfunction getSourceData(\n ohlcv: { open: number[]; high: number[]; low: number[]; close: number[]; volume: number[] },\n sourceName: string\n): number[] {\n switch (sourceName) {\n case 'open':\n return ohlcv.open;\n case 'high':\n return ohlcv.high;\n case 'low':\n return ohlcv.low;\n case 'close':\n return ohlcv.close;\n case 'volume':\n return ohlcv.volume;\n case 'hl2':\n return ohlcv.high.map((h, i) => {\n const l = ohlcv.low[i];\n return l !== undefined ? (h + l) / 2 : NaN;\n });\n case 'hlc3':\n return ohlcv.high.map((h, i) => {\n const l = ohlcv.low[i];\n const c = ohlcv.close[i];\n return l !== undefined && c !== undefined ? (h + l + c) / 3 : NaN;\n });\n case 'ohlc4':\n return ohlcv.open.map((o, i) => {\n const h = ohlcv.high[i];\n const l = ohlcv.low[i];\n const c = ohlcv.close[i];\n return h !== undefined && l !== undefined && c !== undefined ? (o + h + l + c) / 4 : NaN;\n });\n default:\n return ohlcv.close;\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["/**\n * @fileoverview Idempotent input registration functions\n * These functions mirror PineScript's input functions with idempotent semantics:\n * - First call registers the input with default value\n * - Subsequent calls return the current stored value (possibly user-updated)\n * @module runtime/inputs\n */\n\nimport type { InputConfig, InputOptions } from './types.js';\nimport { getContext, recalculate } from './runtime.js';\n\n// Track registered inputs for idempotent registration\nconst registeredInputs = new Map<string, boolean>();\n\n// Track if we should auto-recalculate on input change\nlet autoRecalculateEnabled = false;\n\n/**\n * Enable automatic recalculation when inputs change\n */\nexport function enableAutoRecalculate(): void {\n autoRecalculateEnabled = true;\n}\n\n/**\n * Disable automatic recalculation\n */\nexport function disableAutoRecalculate(): void {\n autoRecalculateEnabled = false;\n}\n\n/**\n * Reset registered inputs (for testing or context changes)\n * @internal\n */\nexport function resetInputs(): void {\n registeredInputs.clear();\n inputCounter = 0;\n}\n\n// Counter for generating unique input IDs when no title is provided\nlet inputCounter = 0;\n\n/**\n * Generate a unique input ID from title or default\n * @param title - Optional title\n * @param defval - Default value for fallback\n * @param type - Input type\n * @returns Unique input ID\n */\nfunction generateInputId(title: string | undefined, defval: unknown, type: string): string {\n if (title) {\n return title.replace(/\\s+/g, '_');\n }\n // Use counter to ensure uniqueness when no title is provided\n return `${type}_${inputCounter++}_${String(defval)}`;\n}\n\n/**\n * Register an integer input\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default value\n * @param title - Display title (optional)\n * @param options - Additional options: min, max, step (optional)\n * @returns Current integer value\n */\nexport function input_int(defval: number, title?: string, options?: InputOptions): number {\n const context = getContext();\n if (!context) {\n // No context - return default value\n return Math.floor(defval);\n }\n\n const id = generateInputId(title, defval, 'int');\n const config: InputConfig = {\n id,\n type: 'int',\n defval: Math.floor(defval),\n title,\n min: options?.min,\n max: options?.max,\n step: options?.step ?? 1,\n };\n\n // Check if already registered (idempotent)\n if (!registeredInputs.has(id)) {\n // First call - register the input\n context.inputs.registerInput(config);\n registeredInputs.set(id, true);\n\n // Set up auto-recalculate on change if not already done\n if (autoRecalculateEnabled) {\n context.inputs.onInputChange((changedId) => {\n if (changedId === id) {\n recalculate();\n }\n });\n }\n }\n\n // Return current value (may have been updated by user)\n const value = context.inputs.getValue(id);\n return typeof value === 'number' ? Math.floor(value) : Math.floor(defval);\n}\n\n/**\n * Register a float input\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default value\n * @param title - Display title (optional)\n * @param options - Additional options: min, max, step (optional)\n * @returns Current float value\n */\nexport function input_float(defval: number, title?: string, options?: InputOptions): number {\n const context = getContext();\n if (!context) {\n // No context - return default value\n return defval;\n }\n\n const id = generateInputId(title, defval, 'float');\n const config: InputConfig = {\n id,\n type: 'float',\n defval,\n title,\n min: options?.min,\n max: options?.max,\n step: options?.step ?? 0.1,\n };\n\n // Check if already registered (idempotent)\n if (!registeredInputs.has(id)) {\n context.inputs.registerInput(config);\n registeredInputs.set(id, true);\n\n if (autoRecalculateEnabled) {\n context.inputs.onInputChange((changedId) => {\n if (changedId === id) {\n recalculate();\n }\n });\n }\n }\n\n const value = context.inputs.getValue(id);\n return typeof value === 'number' ? value : defval;\n}\n\n/**\n * Register a boolean input\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default value\n * @param title - Display title (optional)\n * @returns Current boolean value\n */\nexport function input_bool(defval: boolean, title?: string): boolean {\n const context = getContext();\n if (!context) {\n return defval;\n }\n\n const id = generateInputId(title, defval, 'bool');\n const config: InputConfig = {\n id,\n type: 'bool',\n defval,\n title,\n };\n\n if (!registeredInputs.has(id)) {\n context.inputs.registerInput(config);\n registeredInputs.set(id, true);\n\n if (autoRecalculateEnabled) {\n context.inputs.onInputChange((changedId) => {\n if (changedId === id) {\n recalculate();\n }\n });\n }\n }\n\n const value = context.inputs.getValue(id);\n return typeof value === 'boolean' ? value : defval;\n}\n\n/**\n * Register a string input\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default value\n * @param title - Display title (optional)\n * @param options - Array of string options for dropdown (optional)\n * @returns Current string value\n */\nexport function input_string(defval: string, title?: string, options?: string[]): string {\n const context = getContext();\n if (!context) {\n return defval;\n }\n\n const id = generateInputId(title, defval, 'string');\n const config: InputConfig = {\n id,\n type: 'string',\n defval,\n title,\n options,\n };\n\n if (!registeredInputs.has(id)) {\n context.inputs.registerInput(config);\n registeredInputs.set(id, true);\n\n if (autoRecalculateEnabled) {\n context.inputs.onInputChange((changedId) => {\n if (changedId === id) {\n recalculate();\n }\n });\n }\n }\n\n const value = context.inputs.getValue(id);\n return typeof value === 'string' ? value : defval;\n}\n\n/**\n * Registers `config` once (idempotent) and returns the current stored value.\n */\nfunction registerOnce(config: InputConfig): unknown {\n const context = getContext()!;\n if (!registeredInputs.has(config.id)) {\n context.inputs.registerInput(config);\n registeredInputs.set(config.id, true);\n\n if (autoRecalculateEnabled) {\n context.inputs.onInputChange((changedId) => {\n if (changedId === config.id) {\n recalculate();\n }\n });\n }\n }\n return context.inputs.getValue(config.id);\n}\n\n/**\n * Register a multi-line text input (PineScript `input.text_area`, #184)\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default text; lines are separated by \"\n\"\n * @param title - Display title (optional)\n * @returns Current text\n */\nexport function input_text_area(defval: string, title?: string): string {\n if (!getContext()) {\n return defval;\n }\n const value = registerOnce({ id: generateInputId(title, defval, 'text_area'), type: 'text_area', defval, title });\n return typeof value === 'string' ? value : defval;\n}\n\n/**\n * Register a timeframe input (PineScript `input.timeframe`)\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default timeframe string (\"60\", \"1D\", \"W\"); \"\" means the chart timeframe\n * @param title - Display title (optional)\n * @param options - Array of timeframe options for dropdown (optional)\n * @returns Current timeframe string\n */\nexport function input_timeframe(defval: string, title?: string, options?: string[]): string {\n if (!getContext()) {\n return defval;\n }\n const value = registerOnce({ id: generateInputId(title, defval, 'timeframe'), type: 'timeframe', defval, title, options });\n return typeof value === 'string' ? value : defval;\n}\n\n/**\n * Register a session input (PineScript `input.session`)\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default session string (\"0930-1600\", \"0930-1600:23456\")\n * @param title - Display title (optional)\n * @param options - Array of session options for dropdown (optional)\n * @returns Current session string\n */\nexport function input_session(defval: string, title?: string, options?: string[]): string {\n if (!getContext()) {\n return defval;\n }\n const value = registerOnce({ id: generateInputId(title, defval, 'session'), type: 'session', defval, title, options });\n return typeof value === 'string' ? value : defval;\n}\n\n/**\n * Register a symbol input (PineScript `input.symbol`): a ticker id such as \"NASDAQ:MSFT\" (#180)\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default ticker id\n * @param title - Display title (optional)\n * @param options - Array of symbols for a dropdown (optional)\n * @returns Current ticker id\n */\nexport function input_symbol(defval: string, title?: string, options?: string[]): string {\n if (!getContext()) {\n return defval;\n }\n const value = registerOnce({ id: generateInputId(title, defval, 'symbol'), type: 'symbol', defval, title, options });\n return typeof value === 'string' ? value : defval;\n}\n\n/**\n * Register a date/time input (PineScript `input.time`)\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default UNIX time in milliseconds, e.g. `time.timestamp(\"2024-01-01\")`\n * @param title - Display title (optional)\n * @returns Current UNIX time in milliseconds\n */\nexport function input_time(defval: number, title?: string): number {\n if (!getContext()) {\n return defval;\n }\n const value = registerOnce({ id: generateInputId(title, defval, 'time'), type: 'time', defval, title });\n return typeof value === 'number' ? value : defval;\n}\n\n/**\n * Register a source input (returns a data series from OHLCV)\n * First call registers with defval, subsequent calls return current value\n * @param defval - Default source name ('close', 'open', 'high', 'low', 'volume', 'hl2', 'hlc3', 'ohlc4')\n * @param title - Display title (optional)\n * @returns Array of values for the selected source\n */\nexport function input_source(defval: string, title?: string): number[] {\n const context = getContext();\n if (!context) {\n return [];\n }\n\n const id = generateInputId(title, defval, 'source');\n const config: InputConfig = {\n id,\n type: 'source',\n defval,\n title,\n options: ['open', 'high', 'low', 'close', 'volume', 'hl2', 'hlc3', 'ohlc4'],\n };\n\n if (!registeredInputs.has(id)) {\n context.inputs.registerInput(config);\n registeredInputs.set(id, true);\n\n if (autoRecalculateEnabled) {\n context.inputs.onInputChange((changedId) => {\n if (changedId === id) {\n recalculate();\n }\n });\n }\n }\n\n const sourceName = (context.inputs.getValue(id) as string) ?? defval;\n \n return getSourceData(context.ohlcv, sourceName);\n}\n\n/**\n * Get data array for a source name\n * @param ohlcv - OHLCV data\n * @param sourceName - Source name\n * @returns Array of values\n */\nfunction getSourceData(\n ohlcv: { open: number[]; high: number[]; low: number[]; close: number[]; volume: number[] },\n sourceName: string\n): number[] {\n switch (sourceName) {\n case 'open':\n return ohlcv.open;\n case 'high':\n return ohlcv.high;\n case 'low':\n return ohlcv.low;\n case 'close':\n return ohlcv.close;\n case 'volume':\n return ohlcv.volume;\n case 'hl2':\n return ohlcv.high.map((h, i) => {\n const l = ohlcv.low[i];\n return l !== undefined ? (h + l) / 2 : NaN;\n });\n case 'hlc3':\n return ohlcv.high.map((h, i) => {\n const l = ohlcv.low[i];\n const c = ohlcv.close[i];\n return l !== undefined && c !== undefined ? (h + l + c) / 3 : NaN;\n });\n case 'ohlc4':\n return ohlcv.open.map((o, i) => {\n const h = ohlcv.high[i];\n const l = ohlcv.low[i];\n const c = ohlcv.close[i];\n return h !== undefined && l !== undefined && c !== undefined ? (o + h + l + c) / 4 : NaN;\n });\n default:\n return ohlcv.close;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -73,9 +73,10 @@ export interface InputConfig {
|
|
|
73
73
|
id: string;
|
|
74
74
|
/**
|
|
75
75
|
* Type of input. `timeframe` and `session` values are strings ("60", "1D", "0930-1600:23456";
|
|
76
|
-
* an empty timeframe means the chart timeframe), `time` values are UNIX times in milliseconds.
|
|
76
|
+
* an empty timeframe means the chart timeframe), `time` values are UNIX times in milliseconds. A `text_area`
|
|
77
|
+
* value is a string that can hold several lines.
|
|
77
78
|
*/
|
|
78
|
-
type: 'int' | 'float' | 'bool' | 'string' | 'source' | 'color' | 'timeframe' | 'session' | 'time' | 'symbol';
|
|
79
|
+
type: 'int' | 'float' | 'bool' | 'string' | 'text_area' | 'source' | 'color' | 'timeframe' | 'session' | 'time' | 'symbol';
|
|
79
80
|
/** Default value */
|
|
80
81
|
defval: unknown;
|
|
81
82
|
/** Display title */
|
|
@@ -98,7 +99,7 @@ export interface InputConfig {
|
|
|
98
99
|
confirm?: boolean;
|
|
99
100
|
/**
|
|
100
101
|
* Where the input value is shown (PineScript `display`); not set means the PineScript default: 'none' for
|
|
101
|
-
* bool, color and
|
|
102
|
+
* bool, color, time and text_area inputs, 'all' for the others
|
|
102
103
|
*/
|
|
103
104
|
display?: 'all' | 'none' | 'data_window' | 'status_line';
|
|
104
105
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;CAC7E;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;IAC/D,qCAAqC;IACrC,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IACzC,iEAAiE;IACjE,aAAa,CAAC,IAAI,YAAY,GAAG,SAAS,CAAC;IAC3C,wDAAwD;IACxD,UAAU,CAAC,IAAI,MAAM,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GACtB,MAAM,GACN;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7C;IAAE,GAAG,EAAE,cAAc,CAAA;CAAE,GACvB;IAAE,GAAG,EAAE,cAAc,EAAE,CAAA;CAAE,GACzB;IAAE,GAAG,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/runtime/types.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * @fileoverview Type definitions for OakScriptJS runtime\n * These types define the adapter interfaces and context structure for the runtime system\n * @module runtime/types\n */\n\nimport type { FillGradient } from '../types/metadata.js';\n\n/**\n * Handle returned by ChartAdapter.addSeries\n * Represents a series on the chart with ability to update data\n */\nexport interface SeriesHandle {\n /** Set the data for this series */\n setData(data: Array<{ time: number; value: number; color?: string }>): void;\n}\n\n/**\n * Options for creating a series on the chart\n */\nexport interface SeriesOptions {\n /** Series color */\n color?: string;\n /** Line width */\n lineWidth?: number;\n /** Line style (0 = solid, 1 = dotted, 2 = dashed, etc.) */\n lineStyle?: number;\n /** Price scale ID */\n priceScaleId?: string;\n /** Pane index */\n pane?: number;\n}\n\n/**\n * Chart adapter interface\n * Implementations translate library calls into chart library operations\n */\nexport interface ChartAdapter {\n /** Add a new series to the chart */\n addSeries(type: string, options?: SeriesOptions): SeriesHandle;\n /** Remove a series from the chart */\n removeSeries(series: SeriesHandle): void;\n /** Get the main price series (optional, may return undefined) */\n getMainSeries?(): SeriesHandle | undefined;\n /** Create a new pane and return its index (optional) */\n createPane?(): number;\n}\n\n/**\n * Condition on other inputs, as plain data (PineScript `active = <expression>`):\n * - `'showMa'`: the bool input `showMa` is true\n * - `{ input: 'maType', eq: 'SMA' }` / `{ input: 'maType', ne: 'None' }`: the value of an input is / is not a value\n * (strict equality; without `eq` and `ne`: the input is true)\n * - `{ not: c }`, `{ any: [c1, c2] }` (or), `{ all: [c1, c2] }` (and)\n *\n * Evaluated by `isInputActive()`.\n */\nexport type InputCondition =\n | string\n | { input: string; eq?: unknown; ne?: unknown }\n | { not: InputCondition }\n | { any: InputCondition[] }\n | { all: InputCondition[] };\n\n/**\n * Configuration for registering an input\n */\nexport interface InputConfig {\n /** Unique identifier for the input */\n id: string;\n /**\n * Type of input. `timeframe` and `session` values are strings (\"60\", \"1D\", \"0930-1600:23456\";\n * an empty timeframe means the chart timeframe), `time` values are UNIX times in milliseconds.\n */\n type: 'int' | 'float' | 'bool' | 'string' | 'source' | 'color' | 'timeframe' | 'session' | 'time' | 'symbol';\n /** Default value */\n defval: unknown;\n /** Display title */\n title?: string;\n /** Minimum value (for numeric inputs) */\n min?: number;\n /** Maximum value (for numeric inputs) */\n max?: number;\n /** Step size (for numeric inputs) */\n step?: number;\n /** Options for dropdown selection (for string, timeframe and session inputs) */\n options?: string[];\n /** Settings group header (PineScript `group`) */\n group?: string;\n /** Inputs with the same `inline` id are shown on one line (PineScript `inline`) */\n inline?: string;\n /** Info tooltip of the input (PineScript `tooltip`) */\n tooltip?: string;\n /** Ask for the value when the script is added to a chart (PineScript `confirm`) */\n confirm?: boolean;\n /**\n * Where the input value is shown (PineScript `display`); not set means the PineScript default: 'none' for\n * bool, color and time inputs, 'all' for the others\n */\n display?: 'all' | 'none' | 'data_window' | 'status_line';\n /**\n * Whether the input can be edited (PineScript `active`): an inactive input is shown greyed out in the settings.\n * UI only: an inactive input still gives its value to the script. Not set means always active. A boolean is the\n * value for the current inputs; an `InputCondition` names the inputs it depends on, so a host can apply it\n * without running the script (see `isInputActive()`)\n */\n active?: boolean | InputCondition;\n}\n\n/**\n * Configuration for plot outputs in generated indicators\n */\nexport interface PlotConfig {\n /** Unique identifier for the plot */\n id: string;\n /** Display title */\n title: string;\n /** Plot color */\n color: string;\n /** Line width in pixels */\n lineWidth?: number;\n /** Plot style */\n style?: 'line' | 'stepline' | 'histogram' | 'area' | 'circles' | 'columns' | 'cross' | 'areabr' | 'steplinebr' | 'linebr' | 'stepline_diamond';\n /** Whether the plot is visible (can be boolean or expression string for dynamic visibility) */\n visible?: boolean | string;\n /** Display mode: 'all', 'none', 'data_window', 'status_line', 'pane' */\n display?: 'all' | 'none' | 'data_window' | 'status_line' | 'pane';\n /** Offset in bars (positive = future, negative = past) */\n offset?: number;\n /** Histogram base value */\n histbase?: number;\n /** Line style (PineScript `linestyle`); default solid. A constant or an input value, not per bar */\n linestyle?: 'solid' | 'dashed' | 'dotted';\n /** Drawn on the main chart pane even when the script is not an overlay (PineScript `force_overlay`); default false */\n forceOverlay?: boolean;\n}\n\n/**\n * Configuration of a PineScript `plotarrow()` declaration: an up arrow (below the bar) for a positive value, a down\n * arrow (above the bar) for a negative value, nothing for 0 / na. The arrow height scales with the absolute value\n * between `minheight` and `maxheight` pixels (drawn by the renderer).\n */\nexport interface ArrowConfig {\n /** Unique identifier (key of the arrow data in the result) */\n id: string;\n /** Display title */\n title?: string;\n /** Color of the up arrows (PineScript default #00FF00) */\n colorup: string;\n /** Color of the down arrows (PineScript default #FF0000) */\n colordown: string;\n /** Minimal arrow height in pixels (PineScript default 5) */\n minheight: number;\n /** Maximal arrow height in pixels (PineScript default 100) */\n maxheight: number;\n /** Offset in bars (applied to the emitted arrow times) */\n offset?: number;\n /** Display mode */\n display?: 'all' | 'none' | 'data_window' | 'status_line' | 'pane';\n /** Drawn on the main chart pane even when the script is not an overlay (PineScript `force_overlay`); default false */\n forceOverlay?: boolean;\n}\n\n/**\n * Configuration of a PineScript `plotcandle()` (kind 'candle') or `plotbar()` (kind 'bar') declaration. The candles\n * are in `result.plotCandles[id]`, the bars in `result.plotBars[id]`.\n */\nexport interface CandleConfig {\n /** Unique identifier (key of the data in the result) */\n id: string;\n /** 'candle' for plotcandle, 'bar' for plotbar */\n kind: 'candle' | 'bar';\n /** Display title */\n title?: string;\n /** Static body colour (plotcandle) or bar colour (plotbar) */\n color?: string;\n /** Static wick colour (plotcandle only) */\n wickColor?: string;\n /** Static border colour (plotcandle only) */\n borderColor?: string;\n /** Display mode */\n display?: 'all' | 'none' | 'data_window' | 'status_line' | 'pane';\n /** Drawn on the main chart pane even when the script is not an overlay (PineScript `force_overlay`); default false */\n forceOverlay?: boolean;\n}\n\n/**\n * Configuration for horizontal line outputs in generated indicators\n * Matches PineScript hline() function parameters\n */\nexport interface HLineConfig {\n /** Unique identifier for the hline */\n id: string;\n /** Price level for the horizontal line */\n price: number;\n /** Display title */\n title?: string;\n /** Line color */\n color?: string;\n /** Line style: solid, dashed, or dotted (PineScript default: dashed) */\n linestyle?: 'solid' | 'dashed' | 'dotted';\n /** Line width in pixels */\n linewidth?: number;\n /** Display mode */\n display?: 'all' | 'none' | 'data_window' | 'status_line' | 'pane';\n}\n\n/**\n * Configuration for fill between plots or hlines in generated indicators\n * Matches PineScript fill() function parameters\n */\nexport interface FillConfig {\n /** Unique identifier for the fill */\n id: string;\n /** ID of the first plot or hline */\n plot1: string;\n /** ID of the second plot or hline */\n plot2: string;\n /** Fill color */\n color?: string;\n /** Per-bar fill colors (overrides static color) */\n colors?: string[];\n /** Gradient fill (PineScript `fill(hline1, hline2, top_value, bottom_value, top_color, bottom_color)`) */\n gradient?: FillGradient;\n /** Display title */\n title?: string;\n /** Whether the fill is visible (can be boolean or expression string for dynamic visibility) */\n visible?: boolean | string;\n}\n\n/**\n * Configuration for plotshape/plotchar outputs in generated indicators\n * Matches PineScript plotshape()/plotchar() declarative parameters\n */\nexport interface ShapeConfig {\n /** Unique identifier for the shape declaration */\n id: string;\n /** 'shape' for plotshape, 'char' for plotchar */\n kind: 'shape' | 'char';\n /** Display title */\n title?: string;\n /** Shape style (plotshape only) */\n style?: 'xcross' | 'cross' | 'triangleup' | 'triangledown' | 'flag' | 'circle' | 'arrowup' | 'arrowdown' | 'labelup' | 'labeldown' | 'square' | 'diamond';\n /** Character (plotchar only) */\n char?: string;\n /** Marker location relative to the bar */\n location: 'abovebar' | 'belowbar' | 'top' | 'bottom' | 'absolute';\n /** Marker color */\n color?: string;\n /** Text shown near the marker */\n text?: string;\n /** Text color */\n textcolor?: string;\n /** Marker size */\n size?: 'auto' | 'tiny' | 'small' | 'normal' | 'large' | 'huge';\n /** Offset in bars (applied to the emitted marker times) */\n offset?: number;\n /** Drawn on the main chart pane even when the script is not an overlay (PineScript `force_overlay`); default false */\n forceOverlay?: boolean;\n}\n\n/**\n * Configuration for bgcolor/barcolor outputs in generated indicators\n */\nexport interface BarColorConfig {\n /** Unique identifier */\n id: string;\n /** 'bgcolor' or 'barcolor' */\n kind: 'bgcolor' | 'barcolor';\n /** Display title */\n title?: string;\n /** Offset in bars (bgcolor only, already baked into emitted data) */\n offset?: number;\n /** bgcolor only: drawn on the main chart pane even when the script is not an overlay (PineScript\n * `force_overlay`); default false */\n forceOverlay?: boolean;\n}\n\n/**\n * Options for numeric inputs\n */\nexport interface InputOptions {\n /** Minimum value */\n min?: number;\n /** Maximum value */\n max?: number;\n /** Step size */\n step?: number;\n}\n\n/**\n * Input adapter interface\n * Implementations handle input registration and value management\n */\nexport interface InputAdapter {\n /** Register an input, returns current value (possibly user-updated) */\n registerInput(config: InputConfig): unknown;\n /** Get current value of an input */\n getValue(id: string): unknown;\n /** Set value of an input */\n setValue(id: string, value: unknown): void;\n /** Register callback for input changes */\n onInputChange(callback: (id: string, value: unknown) => void): void;\n}\n\n/**\n * OHLCV data structure\n * Provides access to price and volume time series\n */\nexport interface OhlcvData {\n /** Timestamps for each bar */\n time: number[];\n /** Open prices */\n open: number[];\n /** High prices */\n high: number[];\n /** Low prices */\n low: number[];\n /** Close prices */\n close: number[];\n /** Volume data */\n volume: number[];\n}\n\n/**\n * Global context object for OakScriptJS runtime\n * Must be set by host application before calling any indicator calculate function\n */\nexport interface OakScriptContext {\n /** Chart adapter for plot operations */\n chart: ChartAdapter;\n /** Input adapter for managing indicator inputs */\n inputs: InputAdapter;\n /** OHLCV data for the current symbol/timeframe */\n ohlcv: OhlcvData;\n /** Current bar index (typically the last bar) */\n bar_index: number;\n}\n"],
|
|
4
|
+
"sourcesContent": ["/**\n * @fileoverview Type definitions for OakScriptJS runtime\n * These types define the adapter interfaces and context structure for the runtime system\n * @module runtime/types\n */\n\nimport type { FillGradient } from '../types/metadata.js';\n\n/**\n * Handle returned by ChartAdapter.addSeries\n * Represents a series on the chart with ability to update data\n */\nexport interface SeriesHandle {\n /** Set the data for this series */\n setData(data: Array<{ time: number; value: number; color?: string }>): void;\n}\n\n/**\n * Options for creating a series on the chart\n */\nexport interface SeriesOptions {\n /** Series color */\n color?: string;\n /** Line width */\n lineWidth?: number;\n /** Line style (0 = solid, 1 = dotted, 2 = dashed, etc.) */\n lineStyle?: number;\n /** Price scale ID */\n priceScaleId?: string;\n /** Pane index */\n pane?: number;\n}\n\n/**\n * Chart adapter interface\n * Implementations translate library calls into chart library operations\n */\nexport interface ChartAdapter {\n /** Add a new series to the chart */\n addSeries(type: string, options?: SeriesOptions): SeriesHandle;\n /** Remove a series from the chart */\n removeSeries(series: SeriesHandle): void;\n /** Get the main price series (optional, may return undefined) */\n getMainSeries?(): SeriesHandle | undefined;\n /** Create a new pane and return its index (optional) */\n createPane?(): number;\n}\n\n/**\n * Condition on other inputs, as plain data (PineScript `active = <expression>`):\n * - `'showMa'`: the bool input `showMa` is true\n * - `{ input: 'maType', eq: 'SMA' }` / `{ input: 'maType', ne: 'None' }`: the value of an input is / is not a value\n * (strict equality; without `eq` and `ne`: the input is true)\n * - `{ not: c }`, `{ any: [c1, c2] }` (or), `{ all: [c1, c2] }` (and)\n *\n * Evaluated by `isInputActive()`.\n */\nexport type InputCondition =\n | string\n | { input: string; eq?: unknown; ne?: unknown }\n | { not: InputCondition }\n | { any: InputCondition[] }\n | { all: InputCondition[] };\n\n/**\n * Configuration for registering an input\n */\nexport interface InputConfig {\n /** Unique identifier for the input */\n id: string;\n /**\n * Type of input. `timeframe` and `session` values are strings (\"60\", \"1D\", \"0930-1600:23456\";\n * an empty timeframe means the chart timeframe), `time` values are UNIX times in milliseconds. A `text_area`\n * value is a string that can hold several lines.\n */\n type: 'int' | 'float' | 'bool' | 'string' | 'text_area' | 'source' | 'color' | 'timeframe' | 'session' | 'time' | 'symbol';\n /** Default value */\n defval: unknown;\n /** Display title */\n title?: string;\n /** Minimum value (for numeric inputs) */\n min?: number;\n /** Maximum value (for numeric inputs) */\n max?: number;\n /** Step size (for numeric inputs) */\n step?: number;\n /** Options for dropdown selection (for string, timeframe and session inputs) */\n options?: string[];\n /** Settings group header (PineScript `group`) */\n group?: string;\n /** Inputs with the same `inline` id are shown on one line (PineScript `inline`) */\n inline?: string;\n /** Info tooltip of the input (PineScript `tooltip`) */\n tooltip?: string;\n /** Ask for the value when the script is added to a chart (PineScript `confirm`) */\n confirm?: boolean;\n /**\n * Where the input value is shown (PineScript `display`); not set means the PineScript default: 'none' for\n * bool, color, time and text_area inputs, 'all' for the others\n */\n display?: 'all' | 'none' | 'data_window' | 'status_line';\n /**\n * Whether the input can be edited (PineScript `active`): an inactive input is shown greyed out in the settings.\n * UI only: an inactive input still gives its value to the script. Not set means always active. A boolean is the\n * value for the current inputs; an `InputCondition` names the inputs it depends on, so a host can apply it\n * without running the script (see `isInputActive()`)\n */\n active?: boolean | InputCondition;\n}\n\n/**\n * Configuration for plot outputs in generated indicators\n */\nexport interface PlotConfig {\n /** Unique identifier for the plot */\n id: string;\n /** Display title */\n title: string;\n /** Plot color */\n color: string;\n /** Line width in pixels */\n lineWidth?: number;\n /** Plot style */\n style?: 'line' | 'stepline' | 'histogram' | 'area' | 'circles' | 'columns' | 'cross' | 'areabr' | 'steplinebr' | 'linebr' | 'stepline_diamond';\n /** Whether the plot is visible (can be boolean or expression string for dynamic visibility) */\n visible?: boolean | string;\n /** Display mode: 'all', 'none', 'data_window', 'status_line', 'pane' */\n display?: 'all' | 'none' | 'data_window' | 'status_line' | 'pane';\n /** Offset in bars (positive = future, negative = past) */\n offset?: number;\n /** Histogram base value */\n histbase?: number;\n /** Line style (PineScript `linestyle`); default solid. A constant or an input value, not per bar */\n linestyle?: 'solid' | 'dashed' | 'dotted';\n /** Drawn on the main chart pane even when the script is not an overlay (PineScript `force_overlay`); default false */\n forceOverlay?: boolean;\n}\n\n/**\n * Configuration of a PineScript `plotarrow()` declaration: an up arrow (below the bar) for a positive value, a down\n * arrow (above the bar) for a negative value, nothing for 0 / na. The arrow height scales with the absolute value\n * between `minheight` and `maxheight` pixels (drawn by the renderer).\n */\nexport interface ArrowConfig {\n /** Unique identifier (key of the arrow data in the result) */\n id: string;\n /** Display title */\n title?: string;\n /** Color of the up arrows (PineScript default #00FF00) */\n colorup: string;\n /** Color of the down arrows (PineScript default #FF0000) */\n colordown: string;\n /** Minimal arrow height in pixels (PineScript default 5) */\n minheight: number;\n /** Maximal arrow height in pixels (PineScript default 100) */\n maxheight: number;\n /** Offset in bars (applied to the emitted arrow times) */\n offset?: number;\n /** Display mode */\n display?: 'all' | 'none' | 'data_window' | 'status_line' | 'pane';\n /** Drawn on the main chart pane even when the script is not an overlay (PineScript `force_overlay`); default false */\n forceOverlay?: boolean;\n}\n\n/**\n * Configuration of a PineScript `plotcandle()` (kind 'candle') or `plotbar()` (kind 'bar') declaration. The candles\n * are in `result.plotCandles[id]`, the bars in `result.plotBars[id]`.\n */\nexport interface CandleConfig {\n /** Unique identifier (key of the data in the result) */\n id: string;\n /** 'candle' for plotcandle, 'bar' for plotbar */\n kind: 'candle' | 'bar';\n /** Display title */\n title?: string;\n /** Static body colour (plotcandle) or bar colour (plotbar) */\n color?: string;\n /** Static wick colour (plotcandle only) */\n wickColor?: string;\n /** Static border colour (plotcandle only) */\n borderColor?: string;\n /** Display mode */\n display?: 'all' | 'none' | 'data_window' | 'status_line' | 'pane';\n /** Drawn on the main chart pane even when the script is not an overlay (PineScript `force_overlay`); default false */\n forceOverlay?: boolean;\n}\n\n/**\n * Configuration for horizontal line outputs in generated indicators\n * Matches PineScript hline() function parameters\n */\nexport interface HLineConfig {\n /** Unique identifier for the hline */\n id: string;\n /** Price level for the horizontal line */\n price: number;\n /** Display title */\n title?: string;\n /** Line color */\n color?: string;\n /** Line style: solid, dashed, or dotted (PineScript default: dashed) */\n linestyle?: 'solid' | 'dashed' | 'dotted';\n /** Line width in pixels */\n linewidth?: number;\n /** Display mode */\n display?: 'all' | 'none' | 'data_window' | 'status_line' | 'pane';\n}\n\n/**\n * Configuration for fill between plots or hlines in generated indicators\n * Matches PineScript fill() function parameters\n */\nexport interface FillConfig {\n /** Unique identifier for the fill */\n id: string;\n /** ID of the first plot or hline */\n plot1: string;\n /** ID of the second plot or hline */\n plot2: string;\n /** Fill color */\n color?: string;\n /** Per-bar fill colors (overrides static color) */\n colors?: string[];\n /** Gradient fill (PineScript `fill(hline1, hline2, top_value, bottom_value, top_color, bottom_color)`) */\n gradient?: FillGradient;\n /** Display title */\n title?: string;\n /** Whether the fill is visible (can be boolean or expression string for dynamic visibility) */\n visible?: boolean | string;\n}\n\n/**\n * Configuration for plotshape/plotchar outputs in generated indicators\n * Matches PineScript plotshape()/plotchar() declarative parameters\n */\nexport interface ShapeConfig {\n /** Unique identifier for the shape declaration */\n id: string;\n /** 'shape' for plotshape, 'char' for plotchar */\n kind: 'shape' | 'char';\n /** Display title */\n title?: string;\n /** Shape style (plotshape only) */\n style?: 'xcross' | 'cross' | 'triangleup' | 'triangledown' | 'flag' | 'circle' | 'arrowup' | 'arrowdown' | 'labelup' | 'labeldown' | 'square' | 'diamond';\n /** Character (plotchar only) */\n char?: string;\n /** Marker location relative to the bar */\n location: 'abovebar' | 'belowbar' | 'top' | 'bottom' | 'absolute';\n /** Marker color */\n color?: string;\n /** Text shown near the marker */\n text?: string;\n /** Text color */\n textcolor?: string;\n /** Marker size */\n size?: 'auto' | 'tiny' | 'small' | 'normal' | 'large' | 'huge';\n /** Offset in bars (applied to the emitted marker times) */\n offset?: number;\n /** Drawn on the main chart pane even when the script is not an overlay (PineScript `force_overlay`); default false */\n forceOverlay?: boolean;\n}\n\n/**\n * Configuration for bgcolor/barcolor outputs in generated indicators\n */\nexport interface BarColorConfig {\n /** Unique identifier */\n id: string;\n /** 'bgcolor' or 'barcolor' */\n kind: 'bgcolor' | 'barcolor';\n /** Display title */\n title?: string;\n /** Offset in bars (bgcolor only, already baked into emitted data) */\n offset?: number;\n /** bgcolor only: drawn on the main chart pane even when the script is not an overlay (PineScript\n * `force_overlay`); default false */\n forceOverlay?: boolean;\n}\n\n/**\n * Options for numeric inputs\n */\nexport interface InputOptions {\n /** Minimum value */\n min?: number;\n /** Maximum value */\n max?: number;\n /** Step size */\n step?: number;\n}\n\n/**\n * Input adapter interface\n * Implementations handle input registration and value management\n */\nexport interface InputAdapter {\n /** Register an input, returns current value (possibly user-updated) */\n registerInput(config: InputConfig): unknown;\n /** Get current value of an input */\n getValue(id: string): unknown;\n /** Set value of an input */\n setValue(id: string, value: unknown): void;\n /** Register callback for input changes */\n onInputChange(callback: (id: string, value: unknown) => void): void;\n}\n\n/**\n * OHLCV data structure\n * Provides access to price and volume time series\n */\nexport interface OhlcvData {\n /** Timestamps for each bar */\n time: number[];\n /** Open prices */\n open: number[];\n /** High prices */\n high: number[];\n /** Low prices */\n low: number[];\n /** Close prices */\n close: number[];\n /** Volume data */\n volume: number[];\n}\n\n/**\n * Global context object for OakScriptJS runtime\n * Must be set by host application before calling any indicator calculate function\n */\nexport interface OakScriptContext {\n /** Chart adapter for plot operations */\n chart: ChartAdapter;\n /** Input adapter for managing indicator inputs */\n inputs: InputAdapter;\n /** OHLCV data for the current symbol/timeframe */\n ohlcv: OhlcvData;\n /** Current bar index (typically the last bar) */\n bar_index: number;\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* Execution model: the host calls {@link executeScript} with the script body,
|
|
15
15
|
* the bars and the current input values. Declaration calls (indicator, input.*,
|
|
16
|
-
* plot, hline, fill, alertcondition) run as the body executes and are collected
|
|
16
|
+
* plot, hline, fill, alertcondition, alert) run as the body executes and are collected
|
|
17
17
|
* into a {@link ScriptRunResult}: the declarative configs (inputConfig,
|
|
18
18
|
* plotConfig, hlineConfig, fillConfig) plus an IndicatorResult with the plot
|
|
19
19
|
* data. Re-running the body with new bars or inputs is PineScript's
|
|
@@ -72,6 +72,11 @@ export interface ScriptRunResult {
|
|
|
72
72
|
barColorConfig: BarColorConfig[];
|
|
73
73
|
/** plotcandle() / plotbar() declarations */
|
|
74
74
|
candleConfig: CandleConfig[];
|
|
75
|
+
/**
|
|
76
|
+
* The plot(), plotshape(), plotchar(), plotarrow(), plotcandle() and plotbar() declarations in the order the
|
|
77
|
+
* script made them (the id of each in its own config). PineScript numbers a script's outputs in this order.
|
|
78
|
+
*/
|
|
79
|
+
outputs: ScriptOutput[];
|
|
75
80
|
defaultInputs: Record<string, unknown>;
|
|
76
81
|
alertConfig: AlertConditionConfig[];
|
|
77
82
|
/** Strategy properties (declared values, else the PineScript defaults) when the script declares strategy(). */
|
|
@@ -79,11 +84,17 @@ export interface ScriptRunResult {
|
|
|
79
84
|
/**
|
|
80
85
|
* The renderable output: plots keyed by plotConfig ids, plot-pair fills, markers, arrows, background and bar
|
|
81
86
|
* colours, candles and bars, and the drawings (labels, lines, boxes, linefills, polylines, tables) alive after the
|
|
82
|
-
* last bar.
|
|
87
|
+
* last bar. `outputValues`: per plotshape() / plotchar() / plotarrow() id, the value of its series on each bar where
|
|
88
|
+
* it is not na (a condition gives 1 or 0), at the bar it was computed on (the offset not applied).
|
|
83
89
|
*/
|
|
84
90
|
result: IndicatorResult & {
|
|
85
91
|
alerts?: AlertState[];
|
|
92
|
+
alertCalls?: AlertCall[];
|
|
93
|
+
outputValues?: Record<string, TimeValue[]>;
|
|
86
94
|
};
|
|
95
|
+
/** The script called alert() during the run (PineScript `hasAlertFunction` is known at compile time: a host that
|
|
96
|
+
* needs it before any bar runs reads the source). */
|
|
97
|
+
hasAlertFunction: boolean;
|
|
87
98
|
}
|
|
88
99
|
export interface AlertConditionConfig {
|
|
89
100
|
id: string;
|
|
@@ -99,6 +110,21 @@ export interface AlertState {
|
|
|
99
110
|
/** Times of the bars (as given in the input bars) on which the condition is true (not na, not 0), oldest first. */
|
|
100
111
|
times: number[];
|
|
101
112
|
}
|
|
113
|
+
/** How often an alert() call may trigger the alert (PineScript `alert.freq_*`). */
|
|
114
|
+
export type AlertFrequency = 'all' | 'once_per_bar' | 'once_per_bar_close';
|
|
115
|
+
/** One alert() call: the time of the bar it ran on (as given in the input bars), its message and frequency. */
|
|
116
|
+
export interface AlertCall {
|
|
117
|
+
time: number;
|
|
118
|
+
message: string;
|
|
119
|
+
freq: AlertFrequency;
|
|
120
|
+
}
|
|
121
|
+
/** One output declaration of a script: plot(), plotshape() ('shape'), plotchar() ('char'), plotarrow() ('arrow'),
|
|
122
|
+
* plotcandle() ('candle') or plotbar() ('bar'), with its id in plotConfig / shapeConfig / arrowConfig / candleConfig. */
|
|
123
|
+
export interface ScriptOutput {
|
|
124
|
+
kind: 'plot' | 'shape' | 'char' | 'arrow' | 'candle' | 'bar';
|
|
125
|
+
id: string;
|
|
126
|
+
title?: string;
|
|
127
|
+
}
|
|
102
128
|
/** Handle returned by plot()/hline() so fill() can reference them. */
|
|
103
129
|
export interface PlotHandle {
|
|
104
130
|
id: string;
|
|
@@ -166,6 +192,9 @@ export declare const input: {
|
|
|
166
192
|
float(defval: number, title?: string, opts?: NumericInputOptions): number;
|
|
167
193
|
bool(defval: boolean, title?: string, opts?: InputOptions): boolean;
|
|
168
194
|
string(defval: string, title?: string, opts?: StringInputOptions): string;
|
|
195
|
+
/** Multi-line text ("
|
|
196
|
+
" between the lines), e.g. a list a script parses (#184). */
|
|
197
|
+
text_area(defval: string, title?: string, opts?: InputOptions): string;
|
|
169
198
|
/**
|
|
170
199
|
* Declares a colour input. As in PineScript, the default keeps an alpha of 2 decimals: an input default
|
|
171
200
|
* `color.new(c, 90)` has the alpha byte 26 (25 in the script). A value given by the host is not changed.
|
|
@@ -671,6 +700,8 @@ export interface ChartContext {
|
|
|
671
700
|
basecurrency?: string;
|
|
672
701
|
/** Root of the symbol (PineScript `syminfo.root`): "BTC" for CME:BTC1!, "ES" for CME_MINI:ES1!, "AAPL" for NASDAQ:AAPL (#180) */
|
|
673
702
|
root?: string;
|
|
703
|
+
/** Description of the symbol (PineScript `syminfo.description`): "Apple Inc." for NASDAQ:AAPL, "Bitcoin / U.S. dollar" for BITSTAMP:BTCUSD (#184) */
|
|
704
|
+
description?: string;
|
|
674
705
|
/** Chart foreground colour (PineScript `chart.fg_color`), e.g. "#DBDBDB" on a dark chart */
|
|
675
706
|
foregroundColor?: string;
|
|
676
707
|
/** Chart background colour (PineScript `chart.bg_color`), e.g. "#0F0F0F" on a dark chart */
|
|
@@ -700,7 +731,7 @@ export interface ChartContext {
|
|
|
700
731
|
symbolInfo?: (symbol: string) => SymbolInfo | undefined;
|
|
701
732
|
}
|
|
702
733
|
/** Calendar and properties of a symbol, as in {@link ChartContext}. */
|
|
703
|
-
export type SymbolInfo = Pick<ChartContext, 'timezone' | 'session' | 'regularSession' | 'mintick' | 'minmove' | 'pricescale' | 'pointvalue' | 'mincontract' | 'symbolType' | 'currency' | 'basecurrency' | 'root'>;
|
|
734
|
+
export type SymbolInfo = Pick<ChartContext, 'timezone' | 'session' | 'regularSession' | 'mintick' | 'minmove' | 'pricescale' | 'pointvalue' | 'mincontract' | 'symbolType' | 'currency' | 'basecurrency' | 'root' | 'description'>;
|
|
704
735
|
/** A request of `request.security` for another symbol whose bars the host has not given. */
|
|
705
736
|
export interface SymbolDataRequest {
|
|
706
737
|
symbol: string;
|
|
@@ -740,7 +771,7 @@ export declare const timeframe: {
|
|
|
740
771
|
/**
|
|
741
772
|
* PineScript `syminfo.timezone`, `syminfo.tickerid`, `syminfo.session` (session type), `syminfo.mintick`,
|
|
742
773
|
* `syminfo.minmove`, `syminfo.pricescale`, `syminfo.pointvalue`, `syminfo.mincontract`, `syminfo.type`,
|
|
743
|
-
* `syminfo.currency`, `syminfo.basecurrency` and `syminfo.
|
|
774
|
+
* `syminfo.currency`, `syminfo.basecurrency`, `syminfo.root` and `syminfo.description`, from the chart context.
|
|
744
775
|
*/
|
|
745
776
|
export declare const syminfo: {
|
|
746
777
|
readonly mintick: number;
|
|
@@ -755,6 +786,7 @@ export declare const syminfo: {
|
|
|
755
786
|
readonly currency: string;
|
|
756
787
|
readonly basecurrency: string;
|
|
757
788
|
readonly root: string;
|
|
789
|
+
readonly description: string;
|
|
758
790
|
};
|
|
759
791
|
/** A calendar function: `(time, timezone?)` on a UNIX time or on a Series of times. */
|
|
760
792
|
interface CalendarFunction {
|
|
@@ -1079,6 +1111,20 @@ export declare const chart: {
|
|
|
1079
1111
|
export declare function seriesOf(values: number[]): Series;
|
|
1080
1112
|
/** PineScript `alertcondition()` — collected for the host's alert engine. */
|
|
1081
1113
|
export declare function alertcondition(condition: Series, title: string, message?: string): void;
|
|
1114
|
+
/**
|
|
1115
|
+
* PineScript `alert(message, freq)`, with the `alert.freq_*` constants: the calls are collected per bar with their
|
|
1116
|
+
* message and frequency (`result.alertCalls`) for the host's alert engine, which fires the ones made on the realtime
|
|
1117
|
+
* bar. Called inside eachBar() / strategy.eachBar() it is a call on the current bar; at the top level of the script
|
|
1118
|
+
* (which PineScript runs on every bar) it is a call on every bar, `message` then being a text or one text per bar
|
|
1119
|
+
* (a bar whose text is na makes no call). Default frequency: `alert.freq_once_per_bar`.
|
|
1120
|
+
*/
|
|
1121
|
+
declare function alertImpl(message: string | ReadonlyArray<string | undefined>, freq?: AlertFrequency): void;
|
|
1122
|
+
/** PineScript `alert()` with the `alert.freq_*` constants: `alert('Crossed', alert.freq_once_per_bar_close)`. */
|
|
1123
|
+
export declare const alert: typeof alertImpl & {
|
|
1124
|
+
readonly freq_all: "all";
|
|
1125
|
+
readonly freq_once_per_bar: "once_per_bar";
|
|
1126
|
+
readonly freq_once_per_bar_close: "once_per_bar_close";
|
|
1127
|
+
};
|
|
1082
1128
|
export { Series, BarData, isNA as na, nz };
|
|
1083
1129
|
export { STRATEGY_DEFAULTS } from '../strategy/index.js';
|
|
1084
1130
|
export type { StrategyCloseAllOptions, StrategyCloseOptions, StrategyCommissionType, StrategyDirection, StrategyEngine, StrategyEntryOptions, StrategyExitOptions, StrategyNumberVariable, StrategyOcaType, StrategyOptions, StrategyProperties, StrategyQtyType, StrategyRiskDirection, StrategyRiskRule, StrategyRiskValueType, StrategyTextVariable, StrategyTrade, StrategyVariable, } from '../strategy/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/script/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/script/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/script/index.js
CHANGED
|
@@ -32,6 +32,7 @@ __export(script_exports, {
|
|
|
32
32
|
MissingSymbolDataError: () => MissingSymbolDataError,
|
|
33
33
|
STRATEGY_DEFAULTS: () => import_strategy2.STRATEGY_DEFAULTS,
|
|
34
34
|
Series: () => import_series.Series,
|
|
35
|
+
alert: () => alert,
|
|
35
36
|
alertcondition: () => alertcondition,
|
|
36
37
|
barcolor: () => barcolor,
|
|
37
38
|
barmerge: () => barmerge,
|
|
@@ -159,6 +160,7 @@ function freshCollector(inputValues) {
|
|
|
159
160
|
fillConfig: [],
|
|
160
161
|
shapeConfig: [],
|
|
161
162
|
markers: [],
|
|
163
|
+
outputValues: {},
|
|
162
164
|
arrowConfig: [],
|
|
163
165
|
arrows: [],
|
|
164
166
|
barColorConfig: [],
|
|
@@ -167,8 +169,11 @@ function freshCollector(inputValues) {
|
|
|
167
169
|
candleConfig: [],
|
|
168
170
|
plotCandles: {},
|
|
169
171
|
plotBars: {},
|
|
172
|
+
outputs: [],
|
|
170
173
|
alertConfig: [],
|
|
171
|
-
alerts: []
|
|
174
|
+
alerts: [],
|
|
175
|
+
alertCalls: [],
|
|
176
|
+
hasAlertFunction: false
|
|
172
177
|
};
|
|
173
178
|
}
|
|
174
179
|
function slugId(title, fallback, taken) {
|
|
@@ -208,6 +213,7 @@ function executeScript(body, barsInput, inputs = {}, chart2 = {}, options = {})
|
|
|
208
213
|
arrowConfig: c.arrowConfig,
|
|
209
214
|
barColorConfig: c.barColorConfig,
|
|
210
215
|
candleConfig: c.candleConfig,
|
|
216
|
+
outputs: c.outputs,
|
|
211
217
|
defaultInputs: c.defaultInputs,
|
|
212
218
|
alertConfig: c.alertConfig,
|
|
213
219
|
strategyConfig: c.strategy?.properties,
|
|
@@ -216,14 +222,17 @@ function executeScript(body, barsInput, inputs = {}, chart2 = {}, options = {})
|
|
|
216
222
|
plots: c.plots,
|
|
217
223
|
fills: c.fills.length ? c.fills : void 0,
|
|
218
224
|
markers: c.markers.length ? c.markers : void 0,
|
|
225
|
+
outputValues: Object.keys(c.outputValues).length ? c.outputValues : void 0,
|
|
219
226
|
arrows: c.arrows.length ? c.arrows : void 0,
|
|
220
227
|
bgColors: c.bgColors.length ? c.bgColors : void 0,
|
|
221
228
|
barColors: c.barColors.length ? c.barColors : void 0,
|
|
222
229
|
plotCandles: Object.keys(c.plotCandles).length ? c.plotCandles : void 0,
|
|
223
230
|
plotBars: Object.keys(c.plotBars).length ? c.plotBars : void 0,
|
|
224
231
|
...(0, import_output.drawingOutputs)(ctxBars.bars, chartCtx.timeUnit),
|
|
225
|
-
alerts: c.alerts.length ? c.alerts : void 0
|
|
226
|
-
|
|
232
|
+
alerts: c.alerts.length ? c.alerts : void 0,
|
|
233
|
+
alertCalls: c.alertCalls.length ? c.alertCalls : void 0
|
|
234
|
+
},
|
|
235
|
+
hasAlertFunction: c.hasAlertFunction
|
|
227
236
|
};
|
|
228
237
|
} finally {
|
|
229
238
|
ctx = null;
|
|
@@ -288,6 +297,11 @@ const input = {
|
|
|
288
297
|
string(defval, title, opts = {}) {
|
|
289
298
|
return registerInput({ type: "string", defval, title, options: opts.options, ...common(opts) }, "input_string");
|
|
290
299
|
},
|
|
300
|
+
/** Multi-line text ("
|
|
301
|
+
" between the lines), e.g. a list a script parses (#184). */
|
|
302
|
+
text_area(defval, title, opts = {}) {
|
|
303
|
+
return registerInput({ type: "text_area", defval, title, ...common(opts) }, "input_text_area");
|
|
304
|
+
},
|
|
291
305
|
/**
|
|
292
306
|
* Declares a colour input. As in PineScript, the default keeps an alpha of 2 decimals: an input default
|
|
293
307
|
* `color.new(c, 90)` has the alpha byte 26 (25 in the script). A value given by the host is not changed.
|
|
@@ -421,6 +435,7 @@ function plotImpl(series, title, options = {}) {
|
|
|
421
435
|
histbase: options.histbase,
|
|
422
436
|
forceOverlay: options.force_overlay
|
|
423
437
|
});
|
|
438
|
+
c.outputs.push({ kind: "plot", id, title: title ?? id });
|
|
424
439
|
const values = series.toArray();
|
|
425
440
|
const b = bars();
|
|
426
441
|
const data = [];
|
|
@@ -549,6 +564,15 @@ function markerPosition(location, shape) {
|
|
|
549
564
|
}
|
|
550
565
|
}
|
|
551
566
|
const MARKER_COLOR = "#2962FF";
|
|
567
|
+
function outputSeries(values, b) {
|
|
568
|
+
const series = [];
|
|
569
|
+
for (let i = 0; i < b.length; i++) {
|
|
570
|
+
const v = values[i];
|
|
571
|
+
if (typeof v === "number" && Number.isFinite(v)) series.push({ time: b[i].time, value: v });
|
|
572
|
+
else if (typeof v === "boolean") series.push({ time: b[i].time, value: v ? 1 : 0 });
|
|
573
|
+
}
|
|
574
|
+
return series;
|
|
575
|
+
}
|
|
552
576
|
function emitMarkers(kind, condition, title, options) {
|
|
553
577
|
const c = collector();
|
|
554
578
|
const id = `${kind}${c.shapeConfig.filter((s) => s.kind === kind).length}`;
|
|
@@ -569,6 +593,7 @@ function emitMarkers(kind, condition, title, options) {
|
|
|
569
593
|
offset: options.offset,
|
|
570
594
|
forceOverlay: options.force_overlay
|
|
571
595
|
});
|
|
596
|
+
c.outputs.push({ kind, id, title });
|
|
572
597
|
const shapeStyle = kind === "shape" ? style : void 0;
|
|
573
598
|
const template = {
|
|
574
599
|
position: markerPosition(location, shapeStyle),
|
|
@@ -585,6 +610,7 @@ function emitMarkers(kind, condition, title, options) {
|
|
|
585
610
|
const values = condition.toArray();
|
|
586
611
|
const b = bars();
|
|
587
612
|
const off = options.offset ?? 0;
|
|
613
|
+
c.outputValues[id] = outputSeries(values, b);
|
|
588
614
|
for (let i = 0; i < b.length; i++) {
|
|
589
615
|
const v = values[i];
|
|
590
616
|
if (v === void 0 || Number.isNaN(v) || v === 0) continue;
|
|
@@ -617,9 +643,11 @@ function plotarrow(series, title, options = {}) {
|
|
|
617
643
|
display: options.display,
|
|
618
644
|
forceOverlay: options.force_overlay
|
|
619
645
|
});
|
|
646
|
+
c.outputs.push({ kind: "arrow", id, title });
|
|
620
647
|
const values = series.toArray();
|
|
621
648
|
const b = bars();
|
|
622
649
|
const off = options.offset ?? 0;
|
|
650
|
+
c.outputValues[id] = outputSeries(values, b);
|
|
623
651
|
for (let i = 0; i < b.length; i++) {
|
|
624
652
|
const v = values[i];
|
|
625
653
|
if (v === void 0 || Number.isNaN(v) || v === 0) continue;
|
|
@@ -682,6 +710,7 @@ function plotcandle(open2, high2, low2, close2, title, options = {}) {
|
|
|
682
710
|
display: options.display,
|
|
683
711
|
forceOverlay: options.force_overlay
|
|
684
712
|
});
|
|
713
|
+
c.outputs.push({ kind: "candle", id, title });
|
|
685
714
|
const b = bars();
|
|
686
715
|
c.plotCandles[id] = ohlcRows(open2, high2, low2, close2).map(({ i, ...ohlc }) => {
|
|
687
716
|
const candle = { time: b[i].time, ...ohlc };
|
|
@@ -706,6 +735,7 @@ function plotbar(open2, high2, low2, close2, title, options = {}) {
|
|
|
706
735
|
display: options.display,
|
|
707
736
|
forceOverlay: options.force_overlay
|
|
708
737
|
});
|
|
738
|
+
c.outputs.push({ kind: "bar", id, title });
|
|
709
739
|
const b = bars();
|
|
710
740
|
c.plotBars[id] = ohlcRows(open2, high2, low2, close2).map(({ i, ...ohlc }) => {
|
|
711
741
|
const bar = { time: b[i].time, ...ohlc };
|
|
@@ -1073,6 +1103,9 @@ const syminfo = {
|
|
|
1073
1103
|
},
|
|
1074
1104
|
get root() {
|
|
1075
1105
|
return chartText("root", "syminfo.root");
|
|
1106
|
+
},
|
|
1107
|
+
get description() {
|
|
1108
|
+
return chartText("description", "syminfo.description");
|
|
1076
1109
|
}
|
|
1077
1110
|
};
|
|
1078
1111
|
function calendar(fn) {
|
|
@@ -1356,7 +1389,8 @@ function runExternal(symbol, heikin, tf, expression, ignoreInvalid, own) {
|
|
|
1356
1389
|
symbolType: info.symbolType,
|
|
1357
1390
|
currency: info.currency,
|
|
1358
1391
|
basecurrency: info.basecurrency,
|
|
1359
|
-
root: info.root
|
|
1392
|
+
root: info.root,
|
|
1393
|
+
description: info.description
|
|
1360
1394
|
};
|
|
1361
1395
|
try {
|
|
1362
1396
|
result = expression();
|
|
@@ -1481,6 +1515,28 @@ function alertcondition(condition, title, message) {
|
|
|
1481
1515
|
const last = values.length ? values[values.length - 1] : NaN;
|
|
1482
1516
|
c.alerts.push({ id, title, message, triggered: !(0, import_utils.isNA)(last) && last !== 0, times });
|
|
1483
1517
|
}
|
|
1518
|
+
const ALERT_FREQUENCIES = ["all", "once_per_bar", "once_per_bar_close"];
|
|
1519
|
+
function alertImpl(message, freq = "once_per_bar") {
|
|
1520
|
+
const c = collector();
|
|
1521
|
+
if (!ALERT_FREQUENCIES.includes(freq)) {
|
|
1522
|
+
throw new Error(`alert(): freq must be alert.freq_all, alert.freq_once_per_bar or alert.freq_once_per_bar_close, not ${String(freq)}.`);
|
|
1523
|
+
}
|
|
1524
|
+
c.hasAlertFunction = true;
|
|
1525
|
+
const b = ctxBars.bars;
|
|
1526
|
+
const textAt = (i) => typeof message === "string" ? message : message[i];
|
|
1527
|
+
const call = (i) => {
|
|
1528
|
+
const text2 = textAt(i);
|
|
1529
|
+
if (text2 === void 0 || text2 === null) return;
|
|
1530
|
+
c.alertCalls.push({ time: b[i].time, message: String(text2), freq });
|
|
1531
|
+
};
|
|
1532
|
+
if (currentBar >= 0) call(currentBar);
|
|
1533
|
+
else for (let i = 0; i < b.length; i++) call(i);
|
|
1534
|
+
}
|
|
1535
|
+
const alert = Object.assign(alertImpl, {
|
|
1536
|
+
freq_all: "all",
|
|
1537
|
+
freq_once_per_bar: "once_per_bar",
|
|
1538
|
+
freq_once_per_bar_close: "once_per_bar_close"
|
|
1539
|
+
});
|
|
1484
1540
|
const math = {
|
|
1485
1541
|
...mathCore,
|
|
1486
1542
|
round_to_mintick: ((number, mintick) => {
|