Limen
Limen is a manifest-driven Bitcoin alpha research engine. It turns market data into searchable experiments, benchmark-style analytics, backtest results, and decoder cohorts.
Limen brings data preparation, feature construction, target shaping, parameter search, and post-run analysis into one Python workflow. It supports both machine learning and rule-based research, but it stays focused on signal research rather than decisioning or execution.
What Limen Is Not
Limen is not:
- a trade execution system
- a downstream trade decision engine
- a generic multi-asset research platform
In the wider Vaquum architecture, Origo sits upstream as the data layer. Nexus, Praxis, and Veritas sit downstream for decisioning, execution, and oversight.
Capabilities
- Manifest-driven experiment pipelines
- Search across models, rules, features, targets, and hyperparameters
- Extensive built-in indicator and feature library for Bitcoin research
- Support for both machine learning and rule-based strategy research
- Bitcoin-native transforms, scaling, and target construction
- Leakage-safe train, validation, and test workflows
- Built-in backtesting, confusion analytics, and parameter diagnostics
- Decoder cohort construction and regime-diversified model pooling
- Reproducible runs with checkpointing, resumption, and retraining
First Experiment
The fastest first success is a small parameter sweep on the bundled BTC/USDT kline dataset with the built-in logistic-regression decoder.
- Install the package:
pip install vaquum_limen
- Load data and run a first experiment:
import polars as pl
import limen
data = pl.read_csv(
"https://raw.githubusercontent.com/Vaquum/Limen/refs/heads/main/datasets/klines_2h_2020_2025.csv",
try_parse_dates=True,
)
uel = limen.UniversalExperimentLoop(data=data, sfd=limen.sfd.logreg_binary)
uel.run(
experiment_name="logreg-first",
n_permutations=25,
prep_each_round=True,
)
- Inspect the core outputs:
uel.experiment_logfor the parameter sweep resultsuel.experiment_confusion_metricsfor confusion analyticsuel.experiment_backtest_resultsfor backtest results
That path is the simplest way to get a real Limen run on your machine. If you want richer run directories, checkpoints, resumability, and stored round artefacts, continue into the UEL documentation below.
Learn More
- Start with the full docs hub in docs/README.md
- Define research units in docs/Single-File-Decoder.md, docs/Built-In-SFDs.md, and docs/Experiment-Manifest.md
- Run experiments in docs/Universal-Experiment-Loop.md and extend the artifact-rich path through docs/Advanced-Search.md and docs/Reducers-And-Feedback.md
- Analyze results in docs/Log.md, docs/Benchmark.md, and docs/Backtest.md
- Understand the model layer in docs/Reference-Architecture.md and the helper layer in docs/Utilities.md
- Promote finished runs into reusable outputs with docs/Trainer.md and docs/Regime-Diversified-Opinion-Pools.md
- Contribute through docs/Developer/README.md
Contributing
The simplest way to start contributing is by joining an open discussion, contributing to the docs, or by picking up an open issue.
Before contributing, start with docs/Developer/README.md.
Vulnerabilities
Report vulnerabilities privately through GitHub Security Advisories.
Citations
If you use Limen for published work, please cite:
Vaquum Limen [Computer software]. (2026). Retrieved from https://github.com/Vaquum/Limen.
