along with pynescript. If not, see https://www.gnu.org/licenses/.
Current Status (as of 2026-08-19, hoox-pyne 0.3.17): Strong core support (parser + evaluator + 2474 collected tests). Open-source corpus set01โ04 (local measurement, not shipped in git): parse 99.96% (2476/2477), Runtime interpret 100% excl. EXPECTED_FAIL (2466 OK + 11 intentional demos), set01 249/249 โ not a claim of 100% TradingViewยฎ platform parity. Drawing max_*_count GC landed. Alert engine + L2 webhooks closed on Pro API and pyne-worker. Warm-compile (H2) + series caps (T1) + incremental TA (bb/kama/cmo/stochrsi/wma/hma/linreg + 0.3.10 volume obv/wad/wvad/cmf/klinger) landed. Package Runtime SoT + pyne-worker thin wrap landed (H1 largely done). Compile object-mode residuals (0.3.16โ0.3.17): UDF locals / free-series, nopython None/unicode, matrix handles, x = switch, UDT returns, drawing/chart.point copy, Pine int(na), sanitize chrome, round() extras, import stubs as na, color/bool/float UDF type dispatch, nested UDT method field types. Residual: interpretโcompile plot MISMATCH corpus tail (P1p). Incremental ta.nvi/ta.pvi and Supertrend midยฑfactorยทATR goldens landed.
Last Updated: 2026-08-19 (align with docs/ROADMAP.md + 0.3.17; pine-worker is not colocated)
Overall Support Assessment: ~99%+ for core v6. Multiline strings + export const integrated. Remaining gaps are mostly by-design (mock/foreign request data, platform/editor-only) plus long-tail Runtime fails on truncated scrape sources โ not missing alert/webhook/drawing-GC product surface.
- Parser: Excellent for v5/v6 core + multiline, soft keywords, bitwise, typed UDF returns.
- Evaluator/Builtins: Broad coverage + data context injection + incremental hot-path TA + alert freq engine.
- Recent: corpus sanitize, series caps, warm-compile, dual-host alerts + L2 webhooks, drawing GC, plot parity harness.
- Full test runs + lint clean targeted. See details.
Pine Script v6 launched December 2024, followed by monthly updates. Key sources: official release notes and migration guide.
- โ Dynamic requests (series strings for symbol/tf by default, inside loops/conditionals/scopes) โ partial-to-good support in request.py + extensive tests.
- โ
Strict
bool(neverna); short-circuitand/orโ implemented in expressions.py. - โ
text_sizeasint(points) +text_formatting(bold/italic) โ partial (noted in plotting.py, drawing). - โ
Enums, polylines, runtime logging (
log.*), negative array indices,truediv(5/2=2.5), strategy improvements โ supported or stubbed. - โ
Full dynamic
request.*()for every function + all contexts โ expanded with shared _resolve_symbol + _get_request_data helpers. security/lower_tf + dividends/earnings/splits/financial/quandl/economic/currency/footprint now support dynamic symbols (list/series last), data_feed scaling where applicable.
- Footprint requests (Jan 2026):
request.footprint(),footprinttype,volume_rowtype + methods (buy_volume(),vah(), etc.).- Status: โ Mock data generator + methods + now dynamic symbol + data_feed volume scaling in _handle_request_footprint.
- active parameter on
input.*()(July 2025):activeto enable/disable inputs in settings.- Status: โ Integrated โ accepted across all input handlers, stored in metadata dict (default true). Metadata-driven for backends/LSP.
- Multiline strings (
"""..."""/'''...''', April 2026): Literal strings spanning lines (auto newlines, literal indentation).- Status: โ
Fully wired (2026-07-20). Generated lexer includes
TRIPLE_*rules; LexerBase skips wrap-indent stripping for triple quotes; unparser prefers"""..."""when value has newlines.
- Status: โ
Fully wired (2026-07-20). Generated lexer includes
- Library
export const(June 2025): Export const int/float/bool/color/string from libraries.- Status: โ
Implemented (2026-07-20). Parser
EXPORT?on name initialization; Assign.export in ASDL; builder + unparser.
- Status: โ
Implemented (2026-07-20). Parser
- Sorting UDT collections with
sort_field(April 2026):array.sort(),array.sort_indices(),matrix.sort()acceptsort_field(const int index or string name) for UDT arrays/matrices.- Status: โ Implemented (arrays pre-existing; matrix added with UDT key support + basic numeric sort).
- Binary search in UDT arrays (August 2026):
array.binary_search(),array.binary_search_leftmost(),array.binary_search_rightmost()acceptsort_field(const int index, default 0, or const string name).- Status: โ Implemented (interpret + compile object-mode; same field-key rules as UDT sort).
onceconditional structure (August 2026): fire a block the first time the optional condition is true on a closed bar; no return value.- Status: โ
Implemented in 0.4.4 (grammar + ASDL
Once, interpret confirmed-bar latch, compile historical flags, LSP keyword, VS Code TextMate). Soft keyword soonceas an identifier still parses.
- Status: โ
Implemented in 0.4.4 (grammar + ASDL
- Other updates (multiline in editor, line wrapping changes, dynamic loops, bid/ask on 1T, etc.): Mostly editor or minor; runtime support varies (bid/ask referenced in tests).
- โ
Multiline string literals (
"""/'''delimiters) โ resource lexer rules + committed generated lexer; LexerBase preserves triple-quoted newlines/indent (does not strip wrap-indent); unparser emits triple quotes for multiline values; real tests assert content + roundtrip. - โ
Library
export const(June 2025) โ parse/AST/unparse + runtime: library scripts register exports;import user/Lib/1 as xresolves via in-process registry /register_library_source;x.MEMBERattribute access; exported functions callable; exported types (export type+.new) and enums (export enum+ members) via import alias. - โ
UDT collection sorting with
sort_fieldโ arrays had support; matrix.sort + matrix.sort_indices now fully implemented in Matrix class + evaluator mixin with int index or str name + UDT get_field keys. - โ
Binary search in UDT arrays (August 2026) โ
array.binary_search*honorsort_field(int index default 0, or string name) on UDT collections, matching sort. - โ
onceconditional structure (August 2026, 0.4.4) โ statement-only; interpret commits onbarstate.isconfirmed; compile is historical. - โ Additional v6 syminfo/timeframe constants (isin, current_contract, main_tickerid, main_period) added to default context.
- โ behind_chart on indicator/strategy/library, force_overlay on drawing objects (line, box, label, polyline, table) and plot() - captured in metadata and ctors.
- โ timeframe_bars_back documented and accepted in time()/time_close().
- โ
Full
request.footprint()+ footprint/volume_row types and methods. Mock data generator + all listed methods (buy/sell/delta/vah etc) implemented in request.py. (Real data by design not present.) - โ
activeparameter on allinput.*()functions โ accepted in all handlers (generic + specific bool/int/float/.../enum/color), stored in returned metadata dict with default True. Runtime/UI effect is metadata-driven (for backends/LSP); integrated July 2025+ followups. - โ
Complete
text_formatting+ integertext_sizeโ text_size now supports int (points) or size.* consts in Label (and context has size.auto/tiny/...). text_formatting wired for labels. Extended to plot(). Real size values supported. - โ Dynamic requests full coverage: all major request.* now use dynamic resolution; works inside loops/conditionals (args visited by evaluator). Datafeed provides live values.
- โ
Dynamic
forloop end bounds (v6): now re-evaluated each iteration in visit_ForTo. - โ Enums full runtime + type integration โ visit_EnumDef, member .attr access, symbolic + value support, context storage, works in expr/switch/assign. Added BuiltinTypeKind.ENUM + registry entry. input.enum supported (metadata + defaults). LSP semantic tokens + metadata; completion/hover for user enums partial.
- โ strategy.exit() v6 pair evaluation (limit/profit + stop/loss) โ chooses based on current price which activates first.
- โ ticker renko/pointfigure/kagi support "PercentageLTP" style (v6).
- โ Realtime data feeds (CCXT Pro + Mock/Composite) โ full module, sync wrappers, broker for orders/positions, wired to request.security + lower_tf + evaluator context + backend. (July 2026)
- โ
Strict boolean semantics โ core short-circuit, na->false in conditions implemented in expressions/statements. Edge cases covered in v6 tests; no
nabools in main paths.
- Real (non-mock) data for
request.*()(by design for this library). request.securityforeign data on compile โ still not filled. Compile lowers only chart-symbol simple OHLCV; foreign tickers and complex security expressions emitna(no invent of chart series as foreign fundamentals / advance-decline volume). Interpret path may still serve mocks or wired feeds. Parity tests expect all-naforeign UDF plots on both hosts when data is absent (tests/test_dividend_yield_parity.py).- Auto Fib Extension/Retracement (and similar pivot scripts) โ need real pivot/swing structure (or a registered
TradingView/ZigZaglibrary). Flat synthetic bars intentionally surface the same insufficient-pivotruntime.erroron interpret and compile (both_error_sameinscripts/compare_interp_compile.py); do not โfixโ by inventing pivots. - โ Real effects for plots โ Plot dataclass + PlotRegistry; plot(), plotshape, plotarrow now register instances. Other plot* lightweight. Extended ticker styles with PercentageLTP support for renko/kagi/pointfigure.
- Some strategy backtest trimming / unlimited history behaviors (high-level support exists).
- โ
Strategy runtime depth (2026-07-20): open trades list, signed
strategy.position_size,opentrades/closedtradescounts,netprofit/openprofit/equity/grossprofit/grossloss/wintrades/losstrades, mark-to-market vsclose, partial closes; golden multi-bar tests intests/test_strategy_runtime.py. - โ
Strategy extended series (2026-07-20):
avg_trade/avg_winning_trade/avg_losing_trade+ percent forms,*_percentfor net/open/gross,cash,account_currency,position_entry_name,opentrades.capital_held,closedtrades.first_index,eventrades,max_drawdown/max_runup(+ percent),max_contracts_held_*,margin_liquidation_price(na). - โ
Drawing
*.allcollections (2026-07-20):line/box/label/table/polyline.allreturn non-deleted DrawingRegistry objects;linefill.allempty until modeled. - โ
last_bar_index/last_bar_timeresolve as series (context override or bar_index/time fallback). - โ
strategy.risk.max_position_size(percent)caps entry qty by equity %. - โ
Plotting real effects (2026-07-20): all
plot*/hline/bgcolor/barcolor/fillregister onPlotRegistry;plot()returns Plot id forfill. - โ
request.* data_feed depth: shared
_ohlcv_closes/_ticker_last; MockDataFeed syncfetch_latest_*; currency_rate prefers feed pair; seed stored in context. - โ
Numba compile path (MVP, 2026-07-20):
pynescript.compiler.compile_script/Runtime.run(mode="compile")โ Pine โ@numba.njitbar loop for ta.sma/ema/rsi, plots, history, inputs. Seedocs/COMPILER_PLAN.md. - โ
Compile object mode (2026-07-20): UDTs, maps, full drawing surface auto-switch to Python/numpy bar loop;
__drawingsevents + plots. - โ
Compile object-mode corpus residuals (0.3.16โ0.3.17): UDF
if/for-in locals, nested UDF free-series (a_arr/vol_arr), nopythonNone/timezonetimestamp, objectvaluewhen/running_max, matrix UDF/kronhandles, statementx = switch, UDTType.new()returns,chart.point.copy/box.copy,pine_int(na), sanitize of Hugo//* *//jinja chrome,round()extras, import stubs asna, color type dispatch, nested UDT methods. Leftover: INV expected-fail fixtures, P1p plot MISMATCH tail. - Editor-specific (word wrap defaults, etc.) โ irrelevant for this runtime/parser.
- Minor post-2025 behaviors (specific request.* changes, updated wrapping rules if they affect AST).
- Dynamic requests (core), short-circuit bool logic, negative array indices, truediv, polylines, logging, bid/ask refs, var/varip, most TA/strategy builtins, UDTs, collections, full parser for pre-2026 v6.
- โ
Official TV matrix linear algebra:
det,inv,pinv,eigenvalues,eigenvectors,kron,pow,trace,rank,mult,diff - โ
Official names:
matrix.avg/min/max/mode/sum/median/stdev/variance,row/col/submatrix/sort/sort_indices/reverse/swap_* - โ
Predicate suite:
is_square/zero/identity/diagonal/antidiagonal/symmetric/antisymmetric/triangular/binary/stochastic - โ
runtime.error,input.text_area,ta.percentile_linear_interpolation,ta.percentile_nearest_rank - โ
input.*now returns values (Pine semantics) with metadata side-channel_input_declarations
- โ 0 missing vs official TV v6 function reference list (434 symbols checked against live dispatch)
- โ
TA:
ta.alma,ta.bbw,ta.cmo,ta.correlation - โ
Drawing: full
linefill.*,line.get_price/set_xy*/set_*_point, box text setters, labelset_point/set_size/set_textalign, table cell/frame setters - โ
strategy.risk.max_drawdown/max_cons_loss_days/allow_entry_in - โ
max_bars_back,ticker.inherit - โ
Footprint/volume_row accessors (
rows,total_volume,get_row_by_price, imbalances) - โ Runtime plot values are bar scalars (not nested full-series lists)
- โ
Bar-mode TA (
_pine_bar_mode):ta.sma/ema/rma/vwma/atr/trreturn current scalar in Runtime, full series in unit/list mode - โ
strategy.risk.allow_entry_in/max_drawdown/max_cons_loss_daysenforced atstrategy.entry(blocked entries emitorder+risk_blocked) - โ Inventory summary regenerated from live dispatch (640 callables)
- โ
Broker:
process_pending_ordersfills limit/stop/stop-limit (and market next bar); partial fills viamax_fill_per_bar; stop/limitstrategy.entrypending;naprices coerced - โ
ta.kama/dema/temabar-mode scalars;request.seedseeds stdlib + numpy for reproducible mocks - โ
OCA:
strategy.oca.none/cancel/reduce+ oca_name/type on orders; fill cancels/reduces siblings - โ
Commission (
percent/cash_per_order/cash_per_contract) + slippage ticks fromstrategy()kwargs; applied on fills - โ
Compile-mode strategy (object mode):
CompileStrategyBrokeremits entry/close/order/cancel events;Runtime.run(..., mode="compile")returnsevents; position_size/equity/netprofit available - โ
Compile pending fills: limit/stop/stop-limit/market pending orders + OCA reduce/cancel;
process_pending_orderseach bar before script body (interpreter-aligned) - โ
Datafeed wiring:
ChartOHLCVProviderfrom Runtime bars;resolve_request_sources(); Composite syncfetch_latest_*;/runacceptsdata_source/data_options/symbol
Open-source Pine corpus (tests/data/set01โset04) and bar-loop throughput work. Plan:
.opencode/plans/2026-07-28-runtime-performance.md, skill .grok/skills/pynescript-perf/.
- โ
Soft keywords, bitwise ops,
=reassignment, typed UDF returns (int f(n) => โฆ) - โ
corpus_sanitizefor scrape chrome (fences, FMZ footers, missing commas betweenvardecls) - โ Parse rate set01โ04 99.96% (2476/2477); residual 1 intentional invalid line-wrap docs demo (not a grammar hole). Truncated scrapes recovered via sanitize where high-confidence
- โ
_pine_defs_lockedafter first bar (pynescript backend + pyne-worker) โ stops O(barsยฒ) FunctionDef/method multi-dispatch growth - โ
Append-only
current_seriesOHLCV lists (no per-barlist(reversed(history))rebuild) - โ
One-pass derived prices (
hl2/hlc3/โฆ) per bar on worker host - โ
Worker aligns with backend:
_pine_bar_mode+_pine_ta_incremental(default on)
Call-site state (_ta_call_i reset each bar), one sample per site per bar (safe with _SERIES_MAX):
| Builtin | Notes |
|---|---|
โ
ta.sma / ta.ema / ta.rma / ta.rsi |
O(period) / O(1) vs full-history recompute |
โ
ta.macd |
Fast/slow/signal internal EMAs, one slot |
โ
ta.atr |
Matches current full path (EMA of TR after warm-up mean) |
- Golden:
tests/test_ta_incremental.py(inc โก full last values; Runtime on vsPYNE_TA_INCREMENTAL=0) - Disable: env
PYNE_TA_INCREMENTAL=0 - Bench (โ3264 BTC daily bars, worker Runtime): ~9.5ร
ta_sma, ~4.9ร sma+ema+rsi, ~3ร macd, ~10ร atr, ~8.5ร macd+atr+rsi+sma combo vs flag off
| ID | Item | Pri |
|---|---|---|
| H1 | Dual-host Runtime unify | P1 โ
package SoT pynescript.runtime + backend shims + pyne-worker thin wrap (sibling repo, not colocated) โ residual CF deploy smoke only |
| H2 | Product warm-compile path (SLOs, prewarm, IR cache on in deploy) | P1 โ (2026-08) |
| C1 | Corpus Runtime residual | P1 โ (2026-08-09) โ set01โ04 Runtime interpret 100% excl. EXPECTED_FAIL (2466 OK + 11 intentional demos); parse 99.96%. Residual = intentional demos only. set05 long-tail separate |
| T1 | Cap unbounded current_series lists to max_bars_back / _SERIES_MAX |
P2 โ
R7 โ PYNE_SERIES_CAP (default ON), PYNE_SERIES_MAX, goldens tests/test_series_cap.py |
| T2 | Incremental for remaining heavy kernels | P2 โ
R7: bb/kama/cmo/stochrsi + wma/hma/linreg; 0.3.10 obv/wad/wvad/cmf/klinger + nvi/pvi; aroon/dpo/donchian/kst |
| L2 | Webhook alerts productization | P3 โ
pyne-worker + Pro API /run export + outbound ALERT_WEBHOOK_URL / webhook_url |
| F1 | ta.atr is Wilder RMA of TR (interpret + Numba). Supertrend is simplified midยฑfactorยทATR (not TV ratchet); goldens lock that contract |
P2 โ |
| โ | Bit-identical recursive smoothers vs live TV | numerical-parity track |
| โ | Drawing max_*_count GC / alert engine |
โ shipped (not missing) |
Canonical priority table: docs/ROADMAP.md.
| Stage | Parse | Runtime interpret |
|---|---|---|
| Historical baseline (pyne-worker) | โ | 1851 / 2477 (74.7%) |
| After early fail re-runs | โ | ~2224 / 2477 (89.8%) projected |
| After C1 8-agent pass (2026-08-01) | ~94.8% era | ~2337 / 2477 (94.3%) projected |
| Current (pynescript Runtime, 2026-08-09) | 2476 / 2477 (99.96%) | 2466 OK + 11 EXPECTED_FAIL โ 100% excl. intentional demos |
- set01 Runtime: 249 / 249 (100%)
- EXPECTED_FAIL (11): intentional library
runtime.errordemos, lower-TF security guards, invalid line-wrap docs demo, truncated mid-call scrape, pathological nested-loop demo - Not shipped in-repo (legal / ToS hygiene); measured locally from pre-drop restore
- Not a claim of TradingViewยฎ platform or bit-identical execution parity
- Prefer golden tests vs current oracle before changing TA seed rules (ATRโRMA, VWMA volume, etc.).
- Land evaluator/TA math in
src/pynescript/ast/evaluator/; keep pyne-worker as thin host (timeout/R2/CF). - Re-run corpus fails only via
scripts/corpus_rerun_fails.py/ pyne-workerscripts/corpus_rerun_fails.pyafter each fix. - Update
pinescript_implementation_status.mdand this file after each addition. - Current overall: Excellent for most real-world scripts (parser + common builtins + bar Runtime). Not drop-in 100% for latest 2026 platform/editor-only or exotic broker edges.
See also:
docs/pine_v6_full_surface_inventory.mdโ full schema + every inventory name (dispatch, series, language, graphs)docs/pinescript_implementation_status.md(detailed โ matrix)tests/test_v6_features.py(good coverage of dynamic requests, footprint, etc.)- Official: https://www.tradingview.com/pine-script-docs/release-notes/ and migration guide to v6.
PyneScript core is mature, with significant July 2026 enhancements:
- โ Strategy Events - Full StrategyEvent capture, parity corpus (13+ tests), strategy.long/short constants, var/varip + ReAssign support.
- โ
pine-worker โ legacy TypeScript Cloudflare Worker in sibling
hoox-sh/pine-worker(not colocated). New TS library work is@hoox-sh/pynets(pynets/submodule here). - โ 200+ Built-in Functions (including advanced strategy)
- โ 1000+ Tests (core + parity + strategy events green)
- โ Complete Parser - Full support for Pine Script v5-v6 grammar
- โ Full AST Support - Complete abstract syntax tree representation
- โ Expression Evaluator - Evaluate deterministic expressions and functions
- โ Type System - All Pine Script types implemented
- โ Collections - Arrays, matrices, and maps fully supported
- โ Drawing Objects - All plot and drawing functions available
- โ Strategy Functions - Strategy execution framework implemented
- โ Full Pine Script v5-v6 grammar support
- โ ANTLR4-based parsing with robust error handling
- โ Complete type system (int, float, bool, string, color, series, array, matrix, map)
- โ User-defined types (UDT) and objects
- โ Control flow (if/else, for, while)
- โ Functions and methods
- โ Comments and annotations
- โ String interpolation and formatting
- โ Moving averages: SMA, EMA, WMA, VWMA, HMA, DEMA, TEMA, SWMA
- โ Oscillators: RSI, MACD, Stochastic, Williams %R, CCI, CMO
- โ Trend: ADX, Keltner Channels, Bollinger Bands, Supertrend
- โ Volume: OBV, MFI, Volume Rate of Change
- โ Momentum: ROC, KDJ, Ichimoku, Zigzag, Linear Regression
- โ Correlation: RCI, Rank Correlation Index
- โ Pattern Detection: Pivots, Support/Resistance
- โ Basic: abs, max, min, pow, sqrt, log
- โ Rounding: round, floor, ceil, round_to_mintick
- โ Trigonometry: sin, cos, tan, asin, acos, atan
- โ Statistical: sum, avg, stddev, variance
- โ Case conversion: upper, lower
- โ Search: contains, startswith, endswith, substring
- โ Formatting: tostring, tonumber, format
- โ Length and manipulation
- โ Basic: size, get, push, pop, slice, join
- โ Searching: includes, indexof, lastindexof, findindex
- โ Statistics: sum, avg, min, max, stddev, variance
- โ Percentiles: percentile_linear_interpolation, percentile_nearest_rank
- โ Binary search: binary_search_leftmost, binary_search_rightmost
- โ Sorting: sort, reverse, sort_indices
- โ Time extraction: year, month, dayofmonth, dayofweek, hour, minute, second
- โ Timestamps: time, timestamp, time_close, weekofyear
- โ Utilities: timenow, time_tradingday
- โ Plotting: plot, plotarrow, plotbar, plotcandle, plotchar, plotshape
- โ Overlays: fill, hline, bgcolor, barcolor
- โ All with styling options
- โ Orders: entry, exit, close, closeallornoorder
- โ Position management: position management hooks
- โ Risk management: stop loss, take profit
- โ Accounting: entry price, position size
- โ All input types: int, float, bool, string, symbol, session, source, time, timeframe, color, price
- โ Input validation and constraints
- โ Group organization
- โ Security data requests
- โ Economic indicators
- โ Splits and dividends data
- โ Mock implementations for testing
- โ Type checking: na, nz, fixnan
- โ Type conversion: int, float, bool, string
- โ Color operations: color.new, color.rgb
- โ Alerts: alert, alertcondition (+ freq rules, host export, pyne-worker last-bar + webhooks)
- โ Arrays with full manipulation support
- โ Matrices with linear algebra operations
- โ Maps with key-value storage
- โ Statistical operations on all collections
- โ Series history access (close[0], close[1], etc.)
- โ Expression evaluation engine
- โ AST transformation framework
- โ Complete round-trip parsing (parse โ transform โ unparse)
- โ Type inference and checking
| Metric | Value |
|---|---|
| Built-in Functions Implemented | 149+ |
| Total Test Coverage | 997 tests |
| Test Pass Rate | 100% |
| Grammar Completeness | ~95% |
| Parser Success Rate | ~99% |
| Lines of Code | 15,000+ |
| Documentation Coverage | 100+ pages |
- Mock / host data -
request.*uses mock or host-injected feeds; foreign symbols on compile emitna(no invented multi-asset series) - Not a TV chart host - Plot/drawing/fill are registry + export for AXIS/clients; pixels are external
- Deterministic bar evaluation - Interpreter + optional Numba compile (
mode=auto/ warm-compile); not a licensed broker - Realtime optional - CCXT Pro / composite feeds exist; live multi-symbol TV-grade data remains host responsibility
- Performance - Interpret is Python-first; compile + incremental TA + series caps harden bar loops (not HFT microsecond infra)
- Numerical Precision - IEEE 754 float-based; interpretโcompile plot parity harness tracks residuals (not bit-identical every smoother vs live TV)
- Memory - Series capped via
PYNE_SERIES_CAP/max_bars_back; large matrices/arrays still proportional - Unicode - Limited support for non-ASCII characters in some edge cases
-
Real Data Integration
- Live market data feeds
- Actual economic indicators
- Real stock split/dividend data
-
Performance Optimizations
- JIT compilation for critical paths
- Vectorized array operations
- Caching for repeated calculations
-
Extended Analysis
- Machine learning indicator wrappers
- Advanced statistical functions
- Complex derivation functions
-
Developer Experience
- IDE integration and autocomplete
- Debugging tools and profiling
- Better error messages
-
Documentation
- Video tutorials
- Interactive examples
- Real-world trading examples
-
Integration
- Jupyter notebook support
- API server for remote execution
- โ
Webhook support for alerts (pyne-worker + Pro API L2;
ALERT_WEBHOOK_URL/webhook_url)
-
Experimental Features
- Parallel execution
- Distributed computing
- Graph-based optimization
-
Research Tools
- Formal verification
- Symbolic execution
- Constraint solving
- โ Use pynescript for Pine Script analysis and transformation
- โ Leverage 149+ built-in functions for calculations
- โ Parse and unparse scripts for validation and normalization
- โ Transform ASTs for custom script modifications
- โ Evaluate expressions for deterministic computations
- Contribute real data adapters for request functions
- Optimize hot paths for performance-critical use cases
- Extend evaluator for additional deterministic functions
- Add domain-specific analysis tools
- Improve error messages and diagnostics
- โ Suitable for offline script analysis
- โ Good for batch processing and validation
- โ Excellent for educational purposes
โ ๏ธ Limited for real-time trading (mock data only)โ ๏ธ Requires additional components for live integration
- Implementation Status - Detailed feature matrix
- Progress Report - Historical development notes
- Phase 8 (advanced indicators) completed as part of core implementation. See consolidation plan for details.
- Consolidation Plan (2026-07-09) - Current remaining work and integration
- Full strategy event system:
StrategyEventdataclass, event emission from all strategy.* calls, bar_index/time threading, parity fixtures for testing against TS port. - pine-worker is not in this tree (removed 0.3.7). Sister
hoox-sh/pine-workerholds the legacy TS Worker + historicalscripts/convert-python-to-ts.py. PyneTS (pynets/submodule / standalonehoox-sh/pynets) is the TS library. - var / varip declaration modes and ReAssign handling.
- Updated test coverage with dedicated
test_strategy_events.pyandtest_parity.py.
Conclusion: Core Pine Script language/builtins are mature. JulyโAugust 2026 work added strategy events, package Runtime SoT, corpus hardening, incremental TA (through 0.3.10 volume kernels), and dual-host hosts. The TypeScript Worker is a sister repo, not an in-tree extra. Remaining work is plot-parity residual, leftover full-list TA (nvi/pvi), optional fidelity goldens, and real data adapters โ not missing syntax.
Last updated: 2026-08-17
Version: 1.3 (0.3.12)