Skip to main content

A modular library for synthetic time series generation.

Project description

tsg – Modular Time Series Generator Library

tsg is a lightweight Python library for generating synthetic time series data using modular and composable generators.
It is designed for research, simulation, and testing of sequential decision-making algorithms, especially in finance and machine learning.


🚀 Features

  • 📈 Core generators: linear trend, periodic trend, constant value
  • 🎲 Noise wrappers: add Gaussian noise or build your own modifiers
  • 🔁 Stateful generators with reset() support
  • 🧱 Easy to extend with your own generator or modifier classes

📦 Installation

🔧 Option 1:

Install through GitHub from any location:

pip install git+https://github.com/MSCA-DN-Digital-Finance/tsg.git

🛠️ Example Usage

Here’s how to generate a noisy linear trend time series using tsg:

from tsg.generators import LinearTrendGenerator
from tsg.modifiers import GaussianNoise

# Create a linear trend generator (increasing by +1 each step)
base_generator = LinearTrendGenerator(start_price=100, up=True)

# Wrap it with Gaussian noise (mean=0, std=1)
noisy_generator = GaussianNoise(base_generator, mu=0.0, sigma=1.0)

# Generate a few data points
prices = []
for _ in range(10):
    price = noisy_generator.generate_price(None)
    prices.append(price)

print(prices)

🧠 API Overview

Core Generators (tsg.generators)

Class Description
LinearTrendGenerator Linearly increases or decreases the price at each step
ConstantGenerator Returns a fixed price (e.g., simulates cash)
PeriodicTrendGenerator Generates a sinusoidal time series with set amplitude and frequency

Modifier Wrappers (tsg.modifiers)

Class Description
GaussianNoise Adds Gaussian noise (N(mu, sigma)) to any base generator

All components implement the BaseGenerator interface with:

  • generate_price(last_price) – returns the next value in the sequence
  • reset() – resets any internal state (optional for stateless generators)

Acknowledgments

Funded by the European Union. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or European Research Executive Agency (REA). Neither the European Union nor the granting authority can be held responsible for them.

EU Logo

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tsg_lib-0.1.1.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tsg_lib-0.1.1-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file tsg_lib-0.1.1.tar.gz.

File metadata

  • Download URL: tsg_lib-0.1.1.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for tsg_lib-0.1.1.tar.gz
Algorithm Hash digest
SHA256 523e0d1ee680dd03b3d752629e5d37dac270d558a295941e2a4b7dd166e3449b
MD5 463a1328a8155e3512bb7ec124b33829
BLAKE2b-256 f71e9f94a1494d8333ea211f0172ab0cf81c23e0ca9db513f803fa4dce8b1d54

See more details on using hashes here.

File details

Details for the file tsg_lib-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: tsg_lib-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 3.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for tsg_lib-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cc4d7a943984a897343b9aa1a9fe991a02c8b377a538a1d896d1bc58f665efaa
MD5 dbda5a9d63658802daba30b5f29d04d6
BLAKE2b-256 a27d4d9beddd5a053793a94a86c81923f5fe42c5d150354eb28a3addb3c36114

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page