---
title: 'Fiaingen: Graph-Based Synthetic Financial Series'
url: https://www.emergentmind.com/topics/fiaingen
type: topic
---

# Fiaingen: Graph-Based Synthetic Financial Series

Searching arXiv for the primary paper and closely related context papers.
Fiaingen is a training-free, graph-based generative approach for producing realistic synthetic financial time series by converting short windows of time series into visibility graphs that encode temporal structure and then sampling new sequences by walking those graphs [2510.01169]. It was introduced to address the quantity, quality, and variety limitations of financial data, particularly under licensing restrictions, privacy concerns, missing spans per asset, and the scarcity of labeled episodes and regimes. The method is evaluated on three criteria—overlap of real-world and synthetic data on a reduced dimensionality space, performance on downstream machine learning tasks, and runtime performance—and is reported to achieve state-of-the-art performance across these criteria, with synthetic data that more closely mirrors original time series while keeping generation time close to seconds [2510.01169].

## 1. Problem setting and scope

Financial data is described as abundant in raw historical extent yet limited in ways that matter operationally for machine learning: practical datasets are constrained by quantity, quality, and variety, and many assets lack sufficient data to train robust models [2510.01169]. The same source states that models calibrated to one regime frequently fail to generalize out-of-sample as distributions shift. Within that setting, synthetic data is presented as a mechanism for augmenting training for trading and investment models, stress-testing strategies under unseen conditions, and expanding coverage across assets or regimes.

Fiaingen is designed for downstream machine learning tasks such as classification or forecasting while preserving key temporal structures [2510.01169]. It is explicitly not a neural generative model: there is no GAN, VAE, or diffusion training stage. Instead, it uses an explicitly constructed graph representation and stochastic sampling over that graph. This places it in a distinct methodological position relative to TimeGAN, cGAN, Structural Time Series (STS), and DiffusionTS, which serve as baselines in the reported experiments [2510.01169].

A plausible implication is that Fiaingen targets a practical niche in which data augmentation must be both computationally cheap and structurally interpretable. That interpretation is consistent with the paper’s emphasis on graph topology, restart-based sampling, and the absence of a learned generative objective.

## 2. Graph-based formulation and variants

Fiaingen comprises three variants that transform time-series windows into graphs and generate sequences by graph walks [2510.01169]:

| Variant | Graph construction | Intended structure |
|---|---|---|
| NVG | Natural Visibility Graphs | Convexity-based visibility between time points |
| HVG | Horizontal Visibility Graphs | Horizontal line-of-sight visibility |
| NVMG | Natural Visibility Multigraphs | Combined per-ticker NVGs with cross-ticker links |

For a window $x = \{x_1, x_2, \ldots, x_T\}$, the Natural Visibility Graph connects nodes $i$ and $j$ with $i<j$ if every intermediate $k$ satisfies
$$
x_k < x_j + \frac{x_i - x_j}{j - i}(j-k).
$$
The Horizontal Visibility Graph connects nodes $i$ and $j$ with $i<j$ if every intermediate $k$ satisfies
$$
x_k < \min(x_i, x_j).
$$
These definitions encode geometric relations among observations rather than fitting a parametric stochastic law [2510.01169].

The multivariate extension, NVMG, is built by combining NVGs for multiple tickers over the same window and adding cross-ticker links to encode co-occurrence and value similarity. The construction uses time co-occurrence linking, value-similarity linking, and identical-node consolidation where appropriate [2510.01169]. Cross-asset edges are defined by aligned timestamps or sufficiently similar values:
$$
(i_a, j_b) \in E^{\mathrm{cross}} \;\;\text{if}\;\; t(i_a)=t(j_b) \;\text{or}\; |x_{i_a}-x_{j_b}|<\tau.
$$

The paper characterizes visibility graphs as preserving local extrema and convexity relationships. Large moves and volatility bursts create highly connected nodes, or hubs, which preserve the temporal topology without assuming stationarity [2510.01169]. This is central to the method’s stated handling of nonstationarity and volatility clustering: no explicit differencing or volatility models are used.

## 3. Sampling mechanism and generation workflow

The generative step in Fiaingen is a random walk with restarts on the constructed graph. Let $A$ be the adjacency matrix and $w_{ij}$ an edge weight, either degree-weighted or uniform. A synthetic sequence is generated by choosing a start node $s$ and then iteratively selecting the next node $j$ from current node $i$ according to
$$
p(j \mid i) = r \cdot \mathbf{1}\{j=s\} + (1-r)\cdot \frac{w_{ij}}{\sum_k w_{ik}},
$$
with restart probability $r = 0.15$ in the reported experiments [2510.01169].

The node values are then emitted into the synthetic series. If nodes store multiple candidate values, as in NVMG, the value is selected via random choice or round-robin cycling [2510.01169]. The overall workflow is specified as follows: choose a panel of tickers with daily closing prices; select window length $T \in \{20,60\}$; construct NVG or HVG per ticker and merge them into NVMG when needed; initialize the start node and restart probability; sample $T$ successive node values; and repeat across windows and tickers to assemble the synthetic dataset.

No scaling or re-normalization is applied in Fiaingen after graph construction: the synthetic values are drawn directly from graph nodes built from real windows [2510.01169]. By contrast, the baselines rely on normalization schemes such as Min–Max scaling for TimeGAN and $[-1,1]$ normalization for DiffusionTS. This methodological asymmetry matters because the Fiaingen pipeline is framed as a deterministic transformation plus stochastic sampling, rather than representation learning in a normalized latent space.

The training objective section reinforces that distinction. Fiaingen has no training objective. TimeGAN uses adversarial and supervised embedding losses, cGAN uses a conditional GAN objective, DiffusionTS trains a denoising network with an $L_1$ reconstruction loss across diffusion timesteps, and STS uses a probabilistic state-space model fitted via variational inference [2510.01169]. This suggests that Fiaingen’s reported runtime advantage is structurally linked to the absence of optimization-based training.

## 4. Data representation, experimental setup, and evaluation protocol

The reported experiments use daily closing prices for equities in the Financial sector, retrieved from Yahoo Finance over approximately 10 years from February 2015, with some tickers having shorter spans [2510.01169]. The primary window length is $T=20$, with additional tests at $T=60$. Univariate price windows are converted into NVG or HVG, while multivariate panels are combined into NVMG.

Realism is evaluated through reduced-dimensional visual overlap using t-SNE visualizations for windows of length 20 and 60 [2510.01169]. Overlap is assessed qualitatively by the intermixing of real (blue) and synthetic (yellow) points. The reported observation is that Fiaingen variants show substantial intermixing and overlap, whereas cGAN, STS, and DiffusionTS show noticeable separation, and TimeGAN achieves partial overlap.

Utility is evaluated via a binary classification task: predict the direction of the final value in the window. For window length $T$, features are computed from the first $T-1$ values, and the label is
$$
y = \mathbf{1}\{x_T - x_{T-1} > 0\}.
$$
Features include linear or polynomial trend, average change, RSI, number of peaks, mean, variance, among others [2510.01169]. The classifier is CatBoost; models are trained on real-only, synthetic-only, or mixed real-plus-synthetic data and evaluated on a fixed real test set using ROC AUC.

The baseline configurations are explicitly specified. TimeGAN uses windows sliced with Min–Max scaling, hidden dimension 24, 3 recurrent layers, batch size 128, 1,000 epochs, per-time-series training, and generated-sequence downsampling either via random selection (DS) or similarity-based selection using DTW (SimDS). cGAN uses the `tsgm` library with `cgan_base_c4_l1`, Adam with learning rate $2\times 10^{-4}$ and $\beta_1=0.5$, batch size 32, 700 epochs, and RSI as the condition. STS uses an AR(1) trend, `num_variational_steps = 150`, forecasts the next 20 steps, and is trained per window in parallel. DiffusionTS uses a cosine beta schedule, 500 diffusion timesteps, $L_1$ loss, sequence length 20, hidden size 64, 2,500 epochs, `ReduceLROnPlateau`, EMA, normalization to $[-1,1]$, batch size 64, and DS/SimDS based on DTW [2510.01169].

Implementation details include Python, a Kedro pipeline, TensorFlow 1.15.0 for TimeGAN in Python 3.6, TensorFlow 2.15.1-compatible packages in Python 3.10, the `tsgm` library for cGAN and STS, DiffusionTS per reference implementation, and CatBoost 1.2.7 [2510.01169]. The experiments are described as version-pinned and reproducible across environments via subprocess and file-based I/O.

## 5. Empirical performance

On 255 tickers, the real-only CatBoost benchmark attains ROC AUC 0.85212 across all methods [2510.01169]. Under synthetic-only training, the reported scores are NVG 0.74520, HVG 0.74891, NVMG 0.74613, TimeGAN-DS 0.60665, TimeGAN-SimDS 0.59581, cGAN 0.74699, STS 0.63390, and VRP 0.71443. Under mixed training, the reported scores are NVG 0.84040, HVG 0.84095, NVMG 0.83920, TimeGAN-DS 0.80136, TimeGAN-SimDS 0.80691, cGAN 0.83356, STS 0.80652, and VRP 0.83661 [2510.01169].

On 160 tickers, including DiffusionTS, the real-only ROC AUC is 0.82366 [2510.01169]. Synthetic-only training yields NVG 0.73071, HVG 0.72598, NVMG 0.71841, TimeGAN-DS 0.59583, TimeGAN-SimDS 0.61375, cGAN 0.66635, STS 0.62778, DiffusionTS-DS 0.61257, DiffusionTS-SimDS 0.62082, and VRP 0.72200. Mixed training yields NVG 0.80331, HVG 0.81206, NVMG 0.80053, TimeGAN-DS 0.75867, TimeGAN-SimDS 0.73463, cGAN 0.79626, STS 0.77936, DiffusionTS-DS 0.73136, DiffusionTS-SimDS 0.75252, and VRP 0.79514 [2510.01169].

An additional window-length analysis reports, for $T=60$, synthetic ROC AUC values of NVG 0.73463, HVG 0.72972, and VRP 0.70947; mixed values of NVG 0.90189, HVG 0.90090, and VRP 0.89849; and real-only 0.90501 [2510.01169]. For $T=20$, synthetic values are NVG 0.85495, HVG 0.85133, and VRP 0.82868; mixed values are NVG 0.92954, HVG 0.93023, and VRP 0.92619; and real-only 0.93629.

The paper’s stated takeaway is that the graph-based variants consistently outperform deep generative baselines on synthetic-only and mixed training [2510.01169]. It also notes that mixing synthetic and real improves over synthetic-only but remains slightly below real-only, indicating that synthetic data approximates but does not fully capture all real signal. That interpretation is directly aligned with the reported practical guidance: when enough real data exists, training solely on real remains best.

## 6. Runtime, computational properties, and operational implications

Runtime is measured on Ubuntu/Linux using dual Intel Xeon E5-2630 CPUs with 2 sockets, 12 cores total, 24 threads, at 2.30GHz and 24 logical processors [2510.01169]. TimeGAN is run in an isolated Python 3.6 environment for TensorFlow 1.15.0 compatibility, while the main pipeline uses Python 3.10 with TensorFlow 2.15.1-compatible packages.

The total serialized runtimes reported are NVG `0 00:00:39`, HVG `0 00:00:41`, NVMG `0 00:43:05`, TimeGAN `4 15:10:40`, cGAN `59 21:12:51`, STS `0 21:10:55`, DiffusionTS `2 23:06:15`, and VRP `0 00:00:04` [2510.01169]. The runtime measurement sums per-ticker runtimes in serialized form, except that NVMG is measured per time segment; the reported wall-clock time is shorter for methods executed in parallel.

These measurements support the paper’s characterization of Fiaingen as training-free and extremely fast, with execution in seconds to minutes rather than hours to days [2510.01169]. NVG and HVG complete in under a minute, whereas NVMG requires about 43 minutes. The gap is particularly stark relative to cGAN in the reported setup.

This suggests that Fiaingen is optimized less for asymptotic expressivity than for a specific operating point: structurally faithful synthesis with minimal computational overhead. The paper explicitly recommends it when speed and stability matter, when deep generative models are too slow or unstable, or when interpretability of the generation process is desired [2510.01169].

## 7. Limitations, risks, and place among related methods

The method does not explicitly model macro regimes, seasonality, or volatility dynamics [2510.01169]. Trend and seasonal components are not separately decomposed; instead, Fiaingen relies on structural visibility. For comparison, the paper notes that DiffusionTS explicitly decomposes trend via polynomial regression and seasonal components via Fourier bases. NVMG addresses multivariate dependence by adding inter-ticker edges at aligned timestamps and between similar-valued nodes, offering what the paper calls a simple copula-free mechanism for multivariate dependence [2510.01169].

The realism assessment is also limited. The paper does not report formal statistical tests such as KS, energy distance, autocorrelation functions $\rho(k)$, or volatility clustering measures; realism is assessed via t-SNE and downstream task performance [2510.01169]. Future work is suggested to include ADF, Ljung–Box, KS, and tail index matching. This is an important caveat because higher-order moments, tails, and autocorrelation structure are central to financial time-series validation.

Several operational risks are identified. Potential data leakage may arise if graph construction inadvertently encodes future information, so windows should be strictly causal and sampling should not peek beyond them [2510.01169]. Sensitivity to parameter choices is also acknowledged, including window length, restart probability $r$, and the similarity threshold $\tau$ in NVMG. Ethical and compliance safeguards are stated in minimal but explicit form: synthetic data should not be misrepresented as real, and labeling and documentation are necessary, especially for regulated use.

Relative to the baselines, Fiaingen occupies a distinct methodological position. TimeGAN, cGAN, STS, and DiffusionTS depend on explicit training objectives and model fitting, whereas Fiaingen is a deterministic transformation plus stochastic sampling over visibility graphs [2510.01169]. The reported comparisons indicate stronger intermixing in latent-space visualizations than cGAN, STS, and DiffusionTS, and downstream ROC AUC superior to TimeGAN and DiffusionTS in synthetic-only and mixed settings. The method is therefore presented not as a universal replacement for real data, but as a pragmatic augmentation strategy under data scarcity.

In summary, Fiaingen denotes a family of visibility-graph-based generators—NVG, HVG, and NVMG—for synthetic financial time series that emphasize structural fidelity, computational simplicity, and runtime efficiency [2510.01169]. Its core mechanism is the transformation of price windows into visibility graphs followed by random walks with restarts, using direct node-value emission rather than learned latent decoding. The reported evidence indicates that this approach preserves latent structural overlap with real data, supports competitive downstream classification performance, and does so with minimal computational overhead, while still leaving open questions about formal statistical validation, regime modeling, and sensitivity analysis.

Source: https://www.emergentmind.com/topics/fiaingen