Repository navigation
release: 3.2.0 - #15
Merged
Merged
Conversation
Williams %R looked back over period + 1 candles; it now reads period. The simple, volume and internal moving averages kept a running sum, so one close that was not a number turned every later average into NaN. They now count the missing values in the window and leave only the windows that hold one empty.
…eek buckets A market-profile candle with no range sitting on a level edge counted nothing, and a zero tick size threw. An option payoff that crossed zero exactly on a strike was reported as a break-even twice. A decimal histogram bin width such as 0.1 added an empty bin. The pair hedge ratio fell back to 1 for prices quoted in tiny numbers. A treemap item with an infinite value starved every other tile. Weekly time buckets began on a Thursday and a 180-day step bucketed by quarter. Renko and range bars stop at CandleTransforms.maxBlocks instead of looping for millions of bricks.
A replay that caught up with the end of its series stopped its timer without telling its listeners, leaving a play/pause button stale. play(interval:) while playing is applied instead of ignored, a series shrunk to nothing keeps one candle in play, and a zero interval is held to a millisecond. A chart removed from a ChartLink before the post-frame spread no longer moves the others.
Reports how far a replay has got, from 0 to 1, for a scrub bar or a progress indicator. The replay tests cover it and the fixes above.
A candle chart threw while painting when a pane was squeezed below its own padding, or when every value in a pane was equal (a single candle, a flat market, MACD at zero), and drew a flat negative range upside down. A candle, volume bar or depth rung whose price is NaN or infinite is left as a gap and no longer poisons the price or volume scale. The funnel, bubble, footprint, order-book and option-payoff charts no longer throw on a NaN, and the R-multiple chart no longer overflows in a box too short for its figures.
The divergences were worked out again on every frame of the entry animation, a scan of the lookback window for each bar.
The data classes the charts take compare by value, so a parent that rebuilds with the same numbers in a new list no longer restarts the chart's entry animation. A chart keeps still when it is rebuilt with equal data and animates when the values change. ParallelAxis.formatter and PieSection.badge are left out of the comparison, since an inline closure or widget is new on every build. PieChart and HeatmapChart now animate on a change of value, not only of count.
…changelog The README is now a landing page of under 100 lines; the full gallery and feature list live in doc/gallery.md and doc/features.md. The pub description is shortened to fit the listing, indexRangeCovering's documentation says what it does for a span past the data, and the changelog records this release's fixes.
audit_fixes_test covers the calculation fixes. degenerate_input_test builds every chart widget with empty, single, flat, negative, huge and non-finite data in a normal, a 1x1 and a 0x0 box, and touches it.
Plots every trade by how far it went against the position (MAE) or for it (MFE) against what it made, with the limit line no trade can pass and reference lines for a stop or a target. ExcursionStats and winnersStoppedAt work out the edge ratio and what a stop would have cost. Shared axis, range and tooltip helpers live in utils/xy_plot.dart.
Draws implied volatility across strike and expiry as a heatmap built on HeatmapChart, with the skew against the at-the-money strike on touch. atTheMoneyIndex and surfaceSkew are the numbers behind it.
Plots portfolios by risk and return and traces the efficient frontier through the ones nothing beats, marking the best return per unit of risk, the least risky portfolio, the capital market line and the portfolio held now. efficientFrontierIndices, maxSharpeIndex and minRiskIndex are the numbers behind it.
Shows a set of returns as a histogram with the loss tail picked out and the value at risk and expected shortfall marked. ValueAtRisk.fromReturns works the figures out by the historical method, and varBins colours the tail for a histogram of your own.
Plots futures prices against delivery month, one or more curves at a time, with the first curve's shape (contango or backwardation) and slope in the corner and the calendar spread on touch. curveShape, curveSlope and calendarSpreads are the numbers behind it.
Lays a week out as a clock face, the hours of the day round the dial and a weekday on each ring, coloured by what happened then. It takes the same SeasonalSample as SeasonalityChart. layOutClock and clockSegmentAt are the layout and hit test behind it.
The statistics row of the R-multiple chart, and of the new value-at-risk chart, shared the column with the histogram as an equal flex child, so the histogram took half the box. The row is now limited to part of the box and clipped, and the histogram fills the rest. The efficient frontier's marker names sit above and to the left of their markers, off the frontier line.
Adds MAE/MFE, volatility surface, efficient frontier, value at risk, futures curve and the activity clock, with sample data, to the gallery catalogue. The tab and the screenshot tool both build from it, so each gets a page in the app and a scene for its documentation image.
Each new chart's page shows its image, the gallery page lists them, and the README's preview has a row of three. The README highlights name the volatility, futures and risk charts.
Rendered from the current chart, which now gives the histogram the full height the figures leave.
PlotScaffold holds what plot charts repeat: sizing, the entry animation, one hit per pointer position and a tooltip beside it. paintXyAxes takes logX and logY, and mapAcrossLog and log10OrNull map values onto a logarithmic scale.
Draws the loss and accuracy curves of one or more training runs with exponential smoothing over faint raw readings, a logarithmic axis, the best checkpoint, the step a run diverged at and the train/validation gap. smoothValues, bestIndex and divergenceIndex are the numbers behind it.
niceStep and niceLogTicks took a power of ten of two ints, which Dart computes as an integer and wraps past 1e18, so the axis of a very large number was noise. They take it as a double.
Plots loss against parameters, tokens or compute on log-log axes with the fitted power law, a residual band, an extrapolation and the scale at which the law reaches a target loss. fitPowerLaw and PowerLawFit are the numbers behind it.
SweepChart lays a two-setting hyperparameter sweep out as a grid of scores with the best combination starred and the mean of each setting alongside. TrainingTimelineChart shows training jobs by machine, coloured by how each finished, with the running count underneath. BenchmarkMatrixChart compares models across benchmarks, each score coloured by its standing in its column, the leaders starred and an average column to rank by.
ModelParetoChart plots models by cost against quality with the Pareto frontier traced through the ones nothing beats, bubbles sized by context window and models grouped by provider; paretoIndices is the number behind it. LatencyBandChart shows p50, p95 and p99 latency over time as bands with an objective drawn across and the intervals that broke it marked; sloBreaches is the number behind it.
TokenUsageChart shows tokens served over time as stacked cached, input and output columns with the cost as a line on its own axis; usageTotals, UsageBucket.cacheHitRate and compactCount are the numbers behind it. EvalBreakdownChart shows an evaluation by category as bars of passed, failed and skipped tasks, worst first, with the pass rate, how many tasks stand behind it and a threshold; wilsonInterval, overallPassRate and sortedByPassRate are the numbers behind it.
Shows a model's text with each token shaded by a score — its surprisal, an entropy, an attribution — flowing and wrapping like text, with a legend and the perplexity. summarizeTokens and flowTokens are the numbers behind it.
…charts Log axes over more than six decades tick on powers of ten, not on every 1, 2 and 5. The scaling-law chart writes its axis in clean scientific form and puts point and target names off the fitted line. The training timeline draws taller lanes and lists the statuses in use, dropping the legend in a box too small to hold it. The evaluation breakdown's bars grow to fill the box. Token heatmap tokens have a hairline between them.
A new Models and training group with sample data for training curves, scaling laws, a hyperparameter sweep, training jobs, a benchmark matrix, model cost against quality, latency bands, token usage, an evaluation breakdown and a token heatmap. The screenshot tool builds from the same list, so each has a scene for its documentation image.
…charts Each page shows its image, the gallery has a Models and training section, the README preview has a row of three, and the counts in the README, the pub description and the example README are brought up to date.
A tooltip card wider than its chart shrinks to fit it, and so does the widget placed in the middle of a sunburst, a doughnut or a gauge. The equity curve's time labels no longer throw when the plot is narrower than a label, and the training timeline's legend shrinks its items in a narrow box. The degenerate-input test now builds every chart in boxes from 60 to 800 pixels across as well, with overflow counted as a failure.
Touching a token opens a readout of its score, rank, probability and what the model was weighing instead. highlightTop rings and numbers the most doubtful tokens, focusAbove leaves the confident ones unshaded, showStrip draws every token's score in order for a long text, showWhitespace writes spaces and line breaks as middle dots and arrows, and selectedIndex holds one outlined. The legend marks the mean, and rank badges are no longer clipped on the first line.
A variant's title and figure share the row and give way, with an ellipsis, when it is narrow. The Gallery is now built at widths from 240 to 1,400 pixels with overflow counted as a failure, and the token heatmap has two variants showing its new options.
Rendered with the corrected panel headers, and the token heatmap with its ringed tokens, strip and readout options. The changelog records the overflow fixes and the heatmap's additions.
Each token is a rounded box with padding round its text. A token that begins a word, where the tokenizer put a space, sits apart from the one before it, and one that carries a word on sits close. The colour is a tint with a line of the full colour under the text, so the text stays readable and tokens no longer run together; TokenShading.solid keeps the old look. New horizontalPadding, wordGap, tokenGap and shading parameters, and a tokenText helper.
The screenshot scene for the token heatmap uses the short frame, so the panels are not half empty.
ProgressCard wraps any widget in a card whose whole background is the progress, in one of three modes: sweep (a wedge round the card like a clock), circle (a circle growing from the left edge) or linear. ProgressBars was already in the tree; this adds its tests, export and the gallery entries for both widgets.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release 3.2.0.
Added
ProgressBars— pill, block or segmented progress bars with a target mark, touch and a draw-in animation.ProgressCard— a card around any widget whose whole background is the progress, insweep,circleorlinearmode.TokenHeatmap.Changed
PieChartandHeatmapChartanimate in again when their values change.See
CHANGELOG.mdfor the full list.Checks
flutter analyze,dart formatandflutter test(4624 tests) all pass.