Personal Project · Work In Progress

Damus

A Work In Progress: From Forecasting Models To A Research Workbench.

My contribution
Personal project — desktop application, data pipeline and forecasting models
Context
Local time-series research and paper-trading prototype
Focus
Software & AI · Data & research
Damus experiment workspace showing synthetic data with orange historical context, a blue future target and controls for context, horizon and training stride.
Inspecting the training window: historical context, future target and stride shown over synthetic data.
Damus visual analysis screen comparing four model forecasts and sampled trajectories at the same origin on a synthetic dataset.
Four model outputs at a shared forecast origin. This synthetic workflow check demonstrates comparison features, not market performance.

Experience In Practice

Skills Applied

View All Skills

A Model Is Only Part Of An Experiment.

Extending household-energy forecasting research into financial time series introduced a broader engineering problem: preparing data, comparing models fairly and understanding each result without losing track of how it was produced.

Damus brings those tasks into one local application, from dataset selection and training windows to forecast overlays and historical simulation.

Connect The Research To A Usable Tool.

The project adapts recurrent and Transformer diffusion architectures from my thesis research to signed financial returns, alongside naive and ridge baselines. A shared model interface keeps preprocessing, evaluation and experiment records consistent across them.

The desktop workflow adds an interactive window designer, queued jobs, data-provider adapters and visual analysis. Context, horizon and stride can be inspected directly, making the relationship between a model's input and training target visible.

  • Four built-in models, including two diffusion models that generate forecast trajectories.
  • Chronological train, validation and test boundaries with training-only scaling.
  • Dataset provenance, immutable experiment configurations and saved model manifests.

Respect Time, Data Quality And Compute Limits.

Financial experiments are sensitive to information becoming available at the wrong time. Forecast windows crossing split boundaries are excluded, scalers learn only from training data and historical entries occur after the forecast origin.

Bounded Parquet reads, batch construction and memory admission checks keep experiments within explicit resource limits. Download workers isolate provider failures, while requested dates, actual coverage and missing observations remain visible.

The Engineering Journey

Adapt The Models

Retain recurrent and attention-based conditioning while changing the target to standardized signed returns and updating the diffusion objective.

Make Comparisons Reproducible

Centralize chronological splits, feature scaling, configuration records and metrics so each model follows the same evaluation contract.

Expose The Experiment

Show context and target windows, align forecast origins and overlay observed values, model outputs and generated trajectories.

Check The Whole Workflow

Use synthetic data to verify training, multi-model analysis, exports, safe execution defaults and background-worker shutdown.

What This Experience Achieved

The result

A working local prototype with four built-in forecasting models, queued experiments and visual comparison. Saved synthetic smoke tests show all four models completing, with forecast overlays, chart exports and controlled shutdown.

A Closer Look

Technical decisions & tools

The Python application separates desktop-independent services, worker processes, model adapters and the PySide6 interface. SQLite stores metadata; compressed Parquet holds datasets. Provider capabilities and credential schemas are explicit, and data adapters are independent of execution adapters.

The diffusion implementations use recurrent or Transformer history encoders, projected conditioning, diffusion-time embeddings and matching denoisers. They are financial adaptations of the thesis architectures and do not load the original household-energy checkpoints.

Engine tests cover leakage-sensitive boundaries: held-out extremes cannot change training scalers, label windows cannot cross splits, rolling refits cannot use future labels and a signal cannot fill at its originating close. Overlapping windows are assembled only for the current batch.

The supplied smoke-test report records four completed models, four overlays, five analytical chart types, PNG/SVG exports and a disarmed execution default. It used synthetic data with zero market connections. Damus remains a research prototype; these results establish workflow behavior rather than profitability.

PythonPySide6PyTorchNumPypandasApache ArrowParquetSQLitepytest