Документация
Техническое руководство CT Lab by Verida. Без воды — каждый раздел описывает реальный модуль продукта, с инструментами, параметрами и примерами цепочек.
1. Установка
CT Lab by Verida is a desktop application (Electron). Download the installer for macOS, Windows or Linux directly from the website.
Requirements
- OS: macOS 11+, Windows 10+, or Ubuntu 20.04+
- RAM: 4 GB minimum (8 GB recommended for ML)
- Disk: 500 MB for the app + series cache
- Internet: Required to fetch market data
First run
- Open CT Lab by Verida. No sign-up — the app is local.
- Go to Data Sources and fetch a series (e.g.:
BTCUSDT 15m Binance). - The series is persisted at
ct://series/binance/BTCUSDT/15m. - Apply indicators, build pipelines, run backtests — everything is composable.
Composition principle: Each tool reads and/or writes a named series. The output of one tool is the input of the next. The system does not restrict what connects to what — it only guarantees two things: timestamp alignment (join) and as-of-T reads (no look-ahead). Whether the composition is worthwhile is your decision.
2. Источники данных
CT Lab by Verida fetches OHLCV candles from two providers. Raw series
are persisted locally as ct://series/.
Binance
- Type: Crypto (Spot and USDⓈ-M Futures)
- Timeframes: 1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w
- Real-time: Yes — WebSocket for candles, trades and book
- Order book: Yes — aggregated book (L2) at 1s
- Trade flow: Yes — aggregated trades at 1s
- Deep history: Available via
buscar_binance_historico - Symbols: Any listed pair (BTCUSDT, ETHUSDT, etc.)
Yahoo Finance
- Type: Stocks, ETFs, indices, forex, crypto
- Timeframes: 1m, 5m, 15m, 30m, 1h, 1d, 1wk, 1mo
- Real-time: No — historical data only
- Order book: No
- Symbols: AAPL, PETR4.SA, BTC-USD, ^GSPC, etc.
CSV Import
Local OHLCV files can be imported into the cache with
importar_csv.
Useful for broker data or proprietary sources.
3. Индикаторы
40 classic indicators available at no cost. Each takes a
series (raw or derived), computes and persists the result at
ct://derived/.
The output becomes input for any other tool.
Trend
Momentum
Volatility
Volume
Custom indicator recipes
Composite indicators via vectorized Rhai script. Each recipe reads a series, computes and persists the result as derived:
zscore_indicador — Z-score of any indicator (e.g.: RSI vs its mean) distancia_media_em_atr — Distance from price to mean in ATR units momentum_normalizado — Momentum scaled to [-1, +1] range composto_osciladores — Weighted sum of multiple oscillators envelope_adaptativo — Bands that adjust by volatility razao_cross_asset — Ratio between two assets (e.g.: BTC/ETH) 4. Микроструктура
Premium module. Microstructure indicators analyze the internal dynamics of the market — range, trend, intrabar strength, order flow, book pressure. Each covers a causal aspect, not a descriptive one.
CT Indicators
Flow and book pressure
Microstructure indicators require a premium license and real-time book/trades access (Binance).
5. Пайплайн
The pipeline is a declarative DAG of steps. Each step applies an operation (indicator, arithmetic, comparison, transformation) over a source or over the output of a previous step. The final output is persisted as a derived series.
Available operations
All 40 classic + 15 microstructure indicators usable as steps.
add, subtract, multiply, divide between series or with a scalar.
greater, less, greater_equal, less_equal, crosses_above, crosses_below — generates signals.
if condition then series_A else series_B — logical branching.
abs, neg, log, sqrt, clamp, sign — unary operations per column.
Discretizes a series into N bins by rolling quantiles (adaptive ruler).
rma, smm, std_dev, linear_regression — rolling windows.
Inner-join of columns from multiple steps into a synthetic series.
Inline Rhai script with named inputs — total freedom.
Ready-made recipes
6. Бэктест
The backtest takes a price series (OHLCV), a strategy in Rhai (inline or file), optional indicators, initial capital and parameters. Returns performance metrics: Sharpe, Sortino, max drawdown, win-rate, profit-factor, total PnL and number of trades. Persists results for comparison across sessions.
Strategy (Rhai)
The strategy is a Rhai script that reads price (close[0]),
indicators (ind["name"][0]),
current position, and returns a decision:
long(),
short(),
flat() or
decision(...).
// example: moving average crossover
if ind["ema_short"][0] > ind["ema_long"][0] {
long()
} else if ind["ema_short"][0] < ind["ema_long"][0] {
short()
} else {
flat()
}Experiment comparator
Define a base experiment (control) and N variants, each swapping one factor: strategy, indicators, fee_pct or parameters. Variants run side by side with everything else held fixed.
Structure measurement
Measures the price path of a series: variance ratio (below 1 = anti-persistent, above 1 = persistent) and kurtosis by scale. Reports overall, by volatility tercile and by temporal blocks. Answers: is there exploitable structure in this asset, on this timeframe?
Survival test
The pair test. Fires N moments spaced across the chosen period. At each moment, opens long and short with the same adaptive manager (grid with stop, trailing, pyramid and breakeven). Measures the arbitrary-side floor of the doctrine: if the net sum ≥ 0 without fees, the manager survives on either side. If it doesn't survive even on long, it doesn't survive.
Don't test if your reading has edge. Test if your floor holds.
Search and persistence
All backtests are persisted with spec and metrics. Search supports filters (field, operator, value) and sorting — basis for comparing experiments across sessions: filter by Sharpe greater than 1.0 and drawdown less than 20%, for example.
7. Машинное обучение
Premium module. The ML pipeline is a declarative DAG of components. Trains, validates and materializes the prediction as a derived series — the model becomes a live indicator, NO re-training at serving.
Backends
Pipeline components
feature_set selects columns.
gerar_lags creates temporal lags.
features_calendario adds hour/day (sin/cos).
interagir_colunas combines features (ratio, product, difference).
target_direcao classifies +1/0/-1 with dead band.
target_retorno continuous regression.
target_conjunto multi-label categorical.
target_custom labeling via Python script.
imputar (ffill, bfill, mean, median, constant).
Scalers: zscore,
minmax,
robust,
maxabs.
winsorize clips outliers by quantile.
reduzir_pca reduces dimensionality.
selecionar_correlacao /
selecionar_variancia filter features.
holdout simple temporal split.
purged_kfold K-fold with embargo (prevents leakage).
walk_forward expanding or rolling.
custom partitioning via Python script.
modelo trains with a backend.
modelo_custom trains via Python script.
otimizar_hiperparametros grid or random search via cross-validation.
prever materializes prediction at ct://derived/.
aplicar_modelo applies a trained model to a series without re-training — the model as a live indicator.
avaliar computes custom metrics via Python script.
Economic evaluation
The pipeline can optionally run a ct_backtest
over the materialized prediction. Default: long if pred is positive, short
if pred is negative. A custom Rhai strategy can be provided.
8. Доктрина
The doctrine of CT Lab by Verida is not a strategy. It is a method to decide whether a strategy has the right to exist.
Central thesis
Before winning, learn not to lose. The future is unknowable. Indicators are features of the past. Without structure, E[P&L] = 0. Risk is derived from probability, not from preference.
The method
- Foundation. Measure the structure of the price path (
ct_medir_estrutura). If there is no structure, there is no possible edge — any setup is an illusion. - Floor. Run the survival test (
ct_testar_sobrevivencia). If the manager doesn't survive even on an arbitrary side, no reading can save it. - Setup. Only after the floor validates: look for a reading that beats the pair test result. If the setup doesn't beat the floor, discard.
- Optimization. Refine parameters, validate with walk-forward, measure robustness. No overfitting — always compare against the floor.
The pair test
N moments spaced across the period. At each moment, opens long and short with the same adaptive manager. If the net sum ≥ 0 without fees, the manager survives on either side. If it doesn't survive even on long, it doesn't survive. It's not a profitability test. It's a test of the right to exist.
Recommended flow
buscar_seriect_medir_estruturasalvar_lib (manager)ct_testar_sobrevivencia9. Лицензирование
CT Lab by Verida has two access tiers. Everything runs locally — there is no server, no sign-up, no telemetry.
Free
- ✓ Fetch series (Binance + Yahoo)
- ✓ 40 classic indicators
- ✓ Pipeline (indicator DAG)
- ✓ Backtest with Rhai strategy
- ✓ Experiment comparator
- ✓ Structure measurement
- ✓ Survival test
- ✓ CSV import
- ✓ Custom indicators (Rhai)
Premium
- ✦ Everything in Free, plus:
- ✦ ~15 microstructure indicators
- ✦ Real-time book collection (1s)
- ✦ Real-time trades collection (1s)
- ✦ Flow imbalance (BFI, OBI, TFI, MPO)
- ✦ Machine Learning (8 backends, ~40 components)
- ✦ Apply trained model without re-training
- ✦ Deep history (trade backfill)
- ✦ Recurring collection tasks
How to activate
Activation is done inside the CT Lab by Verida app via payments processed by Stripe. The license is tied to the host (per machine). No auto-renewal by default — you control it.
- Buy:
comprar_premium(plan)— returns Stripe URL. - Cancel renewal:
cancelar_assinatura— license valid until end of paid period. - Refund (7 days, CDC art. 49):
cancelar_pagamento— full refund + immediate cancellation.