Skip to content

v0.13.0

Choose a tag to compare

@github-actions github-actions released this 30 Oct 16:11
6a94c84

Charts now open live on their own, on their latest 1000 bars, and page older history in as you scroll back; a backtest or optimizer run loads the older history its range needs. A new Settings popup (the gear in the top bar) brings back loading everything at once, and Reset view shows a window sized to the timeframe. Pine scripts run with the chart's real symbol, timeframe and market, and draw much more of what they ask for: fills, custom candles, bar colours, arrows, every plot style, and line, box, polyline, linefill, label and table objects. request.security reads other timeframes and other symbols (from the data source the prefix names), an indicator can declare its own timeframe, inputs get a control per type, and a Messages list shows alerts and logs. Six drawing tools join the Forecasting and Measurers sections, and indicator panes get legends. Several behaviours change on upgrade (see the upgrade notes).

Highlights

  • Charts open live: every chart of a provider that streams opens live on its own, every chart of a layout included, and stays live through symbol, timeframe and provider changes. Turning Live off sticks for that chart until you turn it back on. Picking a chart range now pauses Live (with one notice) instead of being refused, and clearing the range goes live again.
  • 1000 bars and scroll-back paging: a chart opens on its latest 1000 bars and loads older bars in pages of 1000 as you scroll or zoom back, until the provider's history starts (or 200000 bars). The quick ranges and Reset view page in what they need before they zoom.
  • Backtests load the history they need: a backtest or optimizer run whose From lies before the loaded bars first loads the older history ("Loading history", with Cancel in the optimizer), tests the whole range and moves the chart to show it.
  • Settings popup: the gear at the right end of the top bar opens Settings. Under Charts, Chart history picks Load as you scroll back (the default) or Load all bars at once, which brings back the Number of bars menu. The choice is saved and open charts reload at once.
  • Reset view sized to the timeframe: Reset view shows the last day on minute charts, the last 5 days on hourly charts and the last month on daily charts; weekly and monthly charts still fit all the data.
  • Indicator pane legends: each RSI, MACD and own-pane Pine script pane gets a legend with its name, parameters and each plot's value at the crosshair, scale labels for last values and levels, a modest default height, and a dragged height that survives adding, removing or editing indicators.
  • Pine sees the real chart: a script runs with the chart's symbol, timeframe and market details (syminfo.*, timeframe.*, math.round_to_mintick) on the chart, in the backtester and in the optimizer, instead of a fixed VOST on D.
  • Pine request.security: a script can read the chart's symbol at other timeframes, aligned so a backtest, the optimizer and replay never see the future, and other symbols, from the data source the prefix names (BYBIT:ETHUSDT on a Binance chart). request.security_lower_tf and request.currency_rate work too. An indicator that declares its own timeframe= runs on that timeframe's bars and shows its values on the chart's bars.
  • Pine fills: fill() shades the area between two plots or hlines, such as an RSI band or a moving-average cloud.
  • Pine custom candles, bar colours and arrows: plotcandle, plotbar, barcolor and plotarrow are drawn instead of dropped.
  • Pine plot styles: plots honour linewidth, offset, step lines, areas, histbase, plotshape text and size, plotchar characters and hline styles. A script with overlay=false draws its shapes in its own pane, not on the candles.
  • Pine drawing objects: a script's line, box, polyline, linefill, label and table objects show on the chart, read-only, in the pane it draws in, with label and table-cell tooltips on hover.
  • Pine inputs: every input type gets a fitting control (colour with opacity, source, date-time, timeframe, symbol, session, text area), laid out in the script's groups and inline rows with its tooltips, in the Pine and Backtest panes. Text inputs now reach backtests and every optimizer run.
  • Pine alerts and logs: after a run the Pine pane's Messages section lists the alert() calls that fired, the alertcondition()s that came true and the log.* lines. They are listed only, not sent to Vost's alerts.
  • Forecast and Projection tools: Forecast draws a source-to-target line that turns Success or Failure once later bars arrive, and Projection measures a projection against a leg with an arc.
  • Bars pattern and Ghost feed: Bars pattern copies a run of bars ahead (mirrored, flipped, as HL bars, OC bars or a line), and Ghost feed draws hand-placed future bars that look the same on every repaint.
  • Range tools: Price range, Date range and Date and price range are saved, undoable measurers with change, percent, ticks, bars, elapsed time and volume.
  • Under the hood: the Pine coverage probe now trips each of the six strategy risk rules (all honoured), drafts upstream PineTS bug reports in docs/spikes/pine-coverage/upstream/, and a test fails when the installed PineTS version differs from the probe output's. API errors carry their HTTP status inside the client. New capture scenarios cover the new features.

Upgrade notes

  • Charts open live by default: every chart of a provider that streams now opens a live stream on load, so a layout of several charts opens several streams (the server still shares one exchange connection per feed). The Live choice is not saved: after a reload every chart is live again. Picking a chart range pauses Live instead of refusing the range.
  • History loads in pages by default, and the Bars menu is hidden: a chart now opens on its latest 1000 bars, whatever Number of bars you had saved, and the Number of bars menu is gone from the top bar and the More menu. To get the v0.12.0 behaviour back, pick Settings, Charts, Chart history, Load all bars at once; your saved bar count is kept and used again. Opening a chart fits its 1000 bars, so one older page usually loads right away.
  • Backtests may load history and move the chart: a backtest or optimizer run whose From is before the loaded bars now fetches older history first and then moves the chart to show the range. A range inside the loaded bars, an empty From, Load all bars at once, a dataset, a chart range and a replay run as before.
  • Reset view no longer always fits all data: on minute, hourly and daily charts it shows a window sized to the timeframe. Use the All quick range to see every loaded bar.
  • Pine lines draw thinner: a plot or hline with no linewidth is now 1 pixel wide (Pine's default) instead of 2. Set linewidth=2 for the old look. A new indicator pane (RSI, MACD or an own-pane Pine script) opens at a smaller default height, and Pine log.* lines go to the Messages list, not the browser console.
  • vost.prefs.v1 gains fields: historyLoading (scroll or all; a missing or bad value reads as scroll), and the saved backtest settings btConfig gain an optional pineInputs (a Pine strategy's text, colour, source, timeframe, symbol and session inputs; old saves load without it). No key is renamed and no migration runs; saved drawings stay vost.drawings.v2, format version 2, and the drawing tools add new tool kinds to it.
    • Downgrade: v0.12.0 ignores historyLoading and pineInputs (it may drop them the next time it saves your settings, so a strategy's text inputs fall back to their defaults), and keeps drawings of the six new tools as stored without showing them.
  • More requests to market providers, no new hosts: scroll-back paging, backtest history loads and Pine request.security at other timeframes and symbols and indicators with a declared timeframe make more /api history requests. A script that reads another symbol makes the server fetch from that symbol's provider (for example Bybit for BYBIT:ETHUSDT on a Binance chart), which may be a provider the deployment did not use before. Every request still goes through Vost's own /api and the providers Vost already supports; there is no new host, proxy rule or endpoint.
  • No server, API, environment or deploy change. No server code changed, there is no new endpoint or variable, nothing in Dockerfile, docker-compose.yml or .dockerignore changed, and no dependency changed (PineTS stays 0.13.0).
  • Clearing site data for the Vost origin removes your drawings, the picture store and the other browser settings.

To deploy, build from the tag (git checkout v0.13.0, then docker compose up -d --build); no registry image of the app is published. Nothing in your environment or .env needs to change.

Changes

  • Pine indicators that declare a timeframe run on it and show on the chart's bars (#343)
  • Pine request.security reads another symbol from the provider its prefix names (#342)
  • Pine plots draw line width, offset, step, area, shape text, characters (#340)
  • Pine label and table objects are drawn read-only on the chart (#341)
  • Settings popup from a top bar gear: choose how chart history loads (#338)
  • Pine inputs get a control per type, in the script's groups and rows, in the Pine and Backtest panes (#339)
  • Pine line, box, polyline and linefill objects are drawn read-only on the chart (#331)
  • Pine coverage probe trips each strategy risk rule, upstream bug drafts, engine version test (#332)
  • Backtest and optimizer runs load the older history their range needs and move the chart to it (#330)
  • Pine request.security reads the chart symbol at other timeframes (#328)
  • Pine pane lists a script's alerts, alert conditions and log lines after a run (#329)
  • Forecasting: Bars pattern and Ghost feed drawing tools (#325)
  • Indicator panes get a legend with live values, scale labels and a default height that a drag keeps (#327)
  • Pine plotcandle, plotbar, barcolor and plotarrow are drawn on the chart (#326)
  • Price range, Date range and Date and price range drawing tools (#324)
  • Open charts on 1000 bars and page older history in on scroll (#323)
  • Pine fill() shows as a shaded area between its two plots or hlines (#321)
  • Pine scripts run with the chart's real symbol, timeframe and market details (#322)
  • Forecasting: Forecast and Projection drawing tools (#319)
  • Charts open live by default; a chart range pauses Live (#318)
  • Reset view shows a window sized to the timeframe (#320)
  • Separate-pane Pine scripts draw their shapes in their own pane (#196)