Repository navigation
v0.11.0
Vost now has a user guide, a much deeper optimizer (any number of parameters with Cancel, a full results table with CSV export, and three ways to check a result: in-sample / out-of-sample, walk-forward and robustness), a richer backtest Results tab (long vs short, streaks, exit reasons, Monte Carlo, a buy and hold line and a help tooltip on every figure) and a rebuilt drawing toolset: tool families with favourites, per-drawing styles and settings, lock, rename, ordering, clone and copy and paste, and ten new line and channel tools. Saved drawings move to a new format, carried over on first start (see the upgrade notes).
Highlights
- User guide:
docs/guide/describes every area of Vost, one page each, starting from Getting started: what you see, what you do and where it is saved. A test keeps its links, images and anchors working, and every release's highlights now link the page they change. - Pine indicator names: a Pine row in the Indicators list, its Edit button and the Pine pane selector now show the title written in the script (for example "EMA cross") instead of "Pine indicator", and follow the code as you edit it.
- Exact optimizer grid: the Optimizer now tests exactly the values you set (no silent cap of 60 values per parameter,
0.1to1.0step0.1gives exactly 10), names the parameters you swept in the table and heatmap, ranks an infinite profit factor first, refuses a fractional step on a whole-number parameter, and refuses a grid above 100,000 combinations instead of running it. - Sweep any number of parameters, with Cancel: add one row per parameter with Add parameter; the heatmap gets Rows and Columns pickers, and with three or more swept parameters it pins the others to the best result. Cancel beside the progress bar stops a run and brings back the result shown before it.
- Optimizer results table and CSV: every tested combination in a sortable table, 100 rows a page, with every measure and Apply, the heatmap below it. Export results CSV saves the whole run in ranking order with
#lines recording the run's settings. - In-sample / out-of-sample: a Validation choice searches the grid on the first part of the range (50 to 95%, default 70) and re-runs the top results on the held-out rest, side by side with their in-sample figures.
- Walk-forward: the range is cut into 2 to 20 windows, Rolling or Anchored; each window's winner runs on the stretch after it, and the held-out stretches are joined into one combined result with walk-forward efficiency and a joined equity chart.
- Robustness: scores each result by its grid neighbours (1 to 3 steps) without extra backtests, so a lucky one-off peak stands out from a broad, steady area. Four new sortable columns, an optional Rank by robustness, and the most robust heatmap cell outlined.
- Long vs short, streaks and exit reasons: the Results tab breaks the trades down by side, shows the longest win and loss streaks and the current one, and counts trades by exit reason (signal, stop loss, take profit, end of data).
- Monte Carlo: shuffle or resample the trades 100 to 10,000 times with a seed to see percentiles of final return and max drawdown, where the actual run falls, the chance of ending at a loss and a histogram. Export Monte Carlo CSV saves the figures.
- Buy and hold line: the equity chart draws a dashed Buy & hold line from the same capital, with a legend of both final values, and the equity CSV gains a
buy_holdcolumn. - Help on every figure: every figure in the Results tab (metric cards, breakdown rows, legend, Monte Carlo) has a tooltip on hover, focus or tap saying what it is, how to read it and what it relates to.
- Backtest progress bar: a progress bar with the stage and a percent replaces the spinner, under the Run button and in the Results tab.
- Compare shows only differences: on
/compareunchanged code folds into an "N unchanged lines" bar, a small change inside a line is shown in that line, an empty pane reads Empty, and typing in a long reference script no longer lags. - Drawing rail by family: one button per tool family (Cursors, Lines, Fibonacci and Gann, Forecasting and measurers, Shapes, Annotations) with pop-out lists, keyboard control and a star per tool; starred tools sit on a draggable favourites bar. New Dot and Arrow cursors and an Eraser.
- Drawing styles and settings: double-click a drawing to open its settings (colour, opacity, width, line style, extend, arrows, labels, Fibonacci levels, text style, coordinates and per-timeframe visibility). Edits preview live, OK is one undo step, and Save as default keeps a tool's style for new drawings.
- Managing drawings: right-click a drawing for Settings, Rename, Clone, Copy, Lock, Bring to front, Bring forward, Send backward, Send to back and Delete; right-click the empty chart for Paste and Remove drawings. Ctrl or Cmd+C and +V copy and paste, also onto another symbol's chart, and Ctrl or Cmd+drag clones.
- Line and channel tools: ten new tools in the Lines family: Info line, Extended line, Trend angle, Horizontal ray, Vertical line and Cross line, and the channels Parallel channel, Regression trend, Flat top/bottom and Disjoint channel. Selected lines label their price and time on the axes.
- Under the hood: each optimizer run gets its own worker (so Cancel never touches a backtest or Pine run), and
coredump files in the repo root are now ignored by git and left out of the Docker build context.
Upgrade notes
- No server, API, environment or deploy change. Every change in this release is in the browser app, apart from two new
.dockerignorelines (core,core.[0-9]*). No new endpoint, variable, outbound host or proxy rule. Optimizer, Monte Carlo and walk-forward runs all happen in your browser. - Saved drawings move to a new key, migrated on first start.
- New key
vost.drawings.v2(format version 2). When it is absent, the first start of v0.11.0 reads your drawings fromvost.drawings.v1and from then on saves only tovost.drawings.v2. The oldvost.drawings.v1key is never written or removed. - Version 2 adds per-drawing
style,nameandlockedfields and the new tools. A drawing of a tool this version does not know, or a field it does not know, is kept as stored and written back unchanged, but not shown. - Downgrade: v0.10.0 reads only
vost.drawings.v1, so it shows your drawings as they were when you first opened v0.11.0; anything drawn, moved, styled or deleted since is not seen there. Those changes stay invost.drawings.v2and come back if you upgrade again, but drawings you change while on v0.10.0 are not carried forward, because v0.11.0 reads v1 only while v2 is absent.
- New key
vost.prefs.v1gains fields:drawingDefaults(a tool's saved default style),drawingFavorites,drawingLastTool,cursorKindandfavoritesBarPos. Older prefs load with defaults, and bad values are dropped. v0.10.0 ignores these fields and drops them the next time it saves your settings.- Export formats changed (for anyone reading the files with a script): the equity CSV gains a
buy_holdcolumn afterposition. The optimizer CSV is new in this release; with a split, walk-forward or robustness validation it gains context lines and extra columns. - Optimizer behaviour: a grid above 100,000 combinations (or, for walk-forward,
windows x combinations + windowsbacktests) is now refused instead of being cut short, and a fractional step on a whole-number parameter is refused. The table and heatmap now show only the swept parameters. Optimizer settings are not saved in the browser, so nothing stored changes. - New chart keys: Ctrl or Cmd+C and Ctrl or Cmd+V copy and paste the selected drawing on the active chart, and the chart's right-click menu now lists Paste and Remove drawings after Add alert. The drawing clipboard lives only in the tab.
- Clearing site data for the Vost origin removes your drawings, both keys, along with the other browser settings.
To deploy, build from the tag (git checkout v0.11.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
- Channel tools: parallel, regression, flat top/bottom, disjoint (#266)
- Drawings: lock, rename, z-order, clone, copy and paste, Ctrl+drag clone and a right-click menu (#265)
- Optimizer: Robustness validation scores each result by its grid neighbours (#264)
- Optimizer: walk-forward validation with per-window held-out results, a combined result and a joined equity chart (#263)
- Line tools: info, extended, trend angle, h-ray, vertical and cross lines (#244)
- Results tab: a help tooltip on every figure (#248)
- Monte Carlo panel in the backtest Results: shuffled or resampled trades, percentiles, chance of loss, CSV export (#237)
- Equity chart: buy and hold line, legend and buy_hold CSV column (#238)
- Optimizer: in-sample / out-of-sample validation with a held-out check (#236)
- Results tab: long vs short, streaks and exit reasons breakdown (#231)
- Backtest progress bar with stage and percent, replacing the spinner (#232)
- Optimizer: full sortable paged results table and CSV export with the run's settings (#230)
- Drawing styles, a settings dialog and saved drawings v2 (#227)
- Ignore core dump files in git and Docker context (#229)
- Group the drawing rail into tool families with flyouts, favourites bar, cursor kinds and eraser (#228)
- Optimizer: sweep any number of parameters, with Cancel (#226)
- Compare page: show only differences, fold unchanged code, smooth typing (#205)
- Make the optimizer grid search exact: swept-only params, no silent cap, Infinity ranking, grid limit (#203)
- Name Pine indicator rows by the title in their code (#193)
- Add a user guide in docs/guide and a test that keeps it current (#188)