Limen — The Research Engine
Manifest-driven Bitcoin alpha research engine that turns market data into searchable signals, backtested outcomes, and decoder cohorts.
Limen unifies parameter search across machine learning and rule-based strategies, with built-in analytics that show not just what works, but why it works. It evolves from Talos, the hyperparameter optimization framework for TensorFlow and Keras cited in over 1,000 scientific papers with zero breaking bugs in six years.
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 with pluggable selection
- 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 limen
historical = limen.HistoricalData()
data = historical.get_spot_klines(kline_size=7200, row_count_limit=2000)
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 without relying on repo-local fixture files. 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/Cohort.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.
