T TRADINGAGENTS FORECAST LAB
{{ liveStatus() === 'connected' ? 'DSE live' : liveStatus() === 'connecting' ? 'Connecting' : 'Historical mode' }}
@if (loading()) {

Loading market prediction

Reading the saved backtest and chart series…

} @if (errorMessage()) {
NO PREDICTION RUN

Generate the forecast first.

{{ errorMessage() }}

dohasecuritiesstockai-dgt-predict GP --resolution 1d --open-ui
} @if (result(); as report) {

{{ report.model.name | uppercase }} {{ report.model.version }} · PRICE FORECAST

{{ report.symbol }}

{{ report.data.resolution_label }} {{ report.currency }}

The first {{ report.data.context_points | number }} bars are the only model context. The following {{ report.data.holdout_points | number }} real bars remain unseen until scoring.

Holdout accuracy {{ report.metrics.accuracy_score | number: '1.1-2' }}%

100 − sMAPE across the full hidden holdout

Mean error {{ price(report.metrics.mae) }} MAE per bar
Direction calls {{ percent(report.metrics.directional_accuracy_percent) }} Up/down matched
80% band coverage {{ percent(report.metrics.interval_80_coverage_percent) }} Actual inside Q10–Q90
Vs. last-price baseline {{ signedPercent(report.metrics.skill_vs_naive_percent) }} MAE skill score
Live traded price {{ price(livePrice()) }} {{ report.live_feed.stock_code }}

HISTORICAL BACKTEST + FORWARD PATH

Actual candles against {{ report.model.name }}

Actual OHLC Held-out prediction Future forecast Live actual
Context {{ report.data.first_timestamp | date: 'mediumDate' }} → {{ report.history[report.data.context_points - 1].time | date: 'mediumDate' }} Hidden test {{ report.backtest[0].time | date: 'mediumDate' }} → {{ report.data.last_timestamp | date: 'mediumDate' }} Next forecast {{ report.future.length }} bars

REAL-TIME MATCH

Prediction vs. latest trade

@if (latestLiveMatch(); as match) {
Predicted{{ price(match.predicted) }}
Observed{{ price(match.actual) }}
Live accuracy{{ match.accuracyPercent | number: '1.1-2' }}%

Matched to the nearest forecast bar at {{ match.targetTime | date: 'medium' }}.

} @else {

Waiting for the next {{ report.live_feed.topic }} update for {{ report.live_feed.stock_code }}.

}

MODEL & HARDWARE

{{ report.model.name }} {{ report.model.version }}

Checkpoint
{{ report.model.checkpoint }}
Parameters
{{ report.model.parameters / 1000000 | number: '1.0-0' }}M
Compute
{{ report.model.gpu_name || report.model.device }}
Recursive chunks
{{ report.model.recursive_chunks }}

LAST 12 HELD-OUT BARS

Point-level audit

Every displayed score comes from real data withheld from the model.
@for (point of recentBacktest(); track trackBacktest($index, point)) { }
TimeActualPredictedAbsolute errorQ10–Q90
{{ point.time | date: 'medium' }} {{ price(point.actual) }} {{ price(point.predicted) }} {{ price(point.absolute_error) }} {{ price(point.q10) }} – {{ price(point.q90) }}
}