Momentum
Price and earnings momentum blocks, computed point-in-time.
Quant Lab
Build a strategy as a no-code recipe, walk it through fourteen real validation gates, and size it into a tradable portfolio — with every gate it hasn't cleared yet shown, not hidden.
Every strategy starts as a Recipe-JSON — ranking signal, universe, rebalance frequency, holding period, selection rule — assembled through a form, not a notebook.
Price and earnings momentum blocks, computed point-in-time.
Classic value ratios, built from point-in-time BIST fundamentals, not a restated number.
Profitability and balance-sheet quality factors.
Realized-volatility ranking blocks for a defensive tilt.
The same point-in-time foreign-ownership data the discovery engine and the Optimizer's foreign-ownership sleeve both draw on.
The catalogue is tiered and expanding — every new block ships point-in-time correct, or it doesn't ship.
Every block in the catalogue is built with no look-ahead — the feature you see backtested is the feature that would have actually been computable on that date.
Build a specific recipe by hand, or run Discover and let an automated search surface candidates across the recipe space.
Ranking signal, universe, frequency, holding period, and selection rule are set through the UI — nothing here requires writing or reading backtesting code.
A thesis becomes a formula. A formula becomes a recipe. No code in between.
Every candidate — hand-built or discovered — walks the same chain, from a stated mechanism to a genuinely unseen holdout, before it's ever called a candidate factor.
Thesis and sources captured for curated recipes — a human-judgment step, not automated, but never skipped silently.
The no-code feature catalogue turns the thesis into an actual computable variable — momentum, value, quality, low-vol, foreign flow, and more.
The Recipe-JSON — formula, direction, horizon, universe — freezes the moment you choose to track a candidate.
Every single backtest produces a Q5–Q1 quintile spread. No exceptions.
The fraction of adjacent quintile transitions that move the right direction — does the signal actually rank, or just separate the extremes?
A real per-period Fama-MacBeth regression: signal against forward return, controlling for size, value, and momentum at once.
Does the signal survive real, live BIST FF5 + Momentum exposure? Alpha, loadings, and t-stats, from actual OLS.
Re-run as separate walk-forward passes across XU030/XU050/XU100/XU500 and ADV liquidity tiers — to rule out a microcap-driven result.
Holding-period, top-N, and cost-sensitivity grids, swept and compared.
A 3-block subperiod split, plus Combinatorial Purged Cross-Validation with Deflated-Sharpe correction for multiple testing.
Excess return sliced by real market regime — trend, momentum, volatility — and by real sovereign 5-year CDS trend, both point-in-time.
The Q5–Q1 spread at 1, 5, 10, 20, 40, 60, and 120 trading days out, from fixed formation dates — exactly how fast the edge fades.
A cost-model grid — low, standard, conservative, stress basis points — priced against every candidate.
Three independent layers: an internal 20% reserved split, CPCV's out-of-fold distribution, and a genuine frozen-validation replay from the moment you tracked it.
All fourteen feed one 0–100 confidence score — the number a strategy actually has to earn before it's worth sizing into a portfolio.
Confidence isn't asserted here. It's fourteen numbers you can go check yourself.
The Portfolio Optimizer takes a validated signal, or FinCore's curated BIST factors, and sizes it — with the institutional controls exposed, not buried.
Mean-variance optimization with the institutional controls exposed in the UI, not buried in a config file. Choose the risk model, set a CVaR constraint, cap turnover. Liquidity-aware sizing keeps the optimizer from oversizing into a name the market can't actually absorb, a rule-based regime layer adjusts stance between risk-on and risk-off, and sector rotation plus two purpose-built BIST sleeves — low-volatility and foreign-ownership — are ready out of the box.
The validation tearsheet is a walk-forward backtest of the Optimizer's actual output against a naive 1/N equal-weight control, with bootstrap confidence intervals around the difference — so "does this add anything over just diversifying equally" has a real, statistically honest answer, not a chart that only shows the optimizer's own equity curve.
An optimizer without a control group is just a chart. This one has to beat 1/N to earn the word alpha.
Tracking a discovered candidate freezes its Recipe-JSON and its validation window at that moment. That freeze is the platform's actual pre-registration lock, not a naming convention.
A strategy that decays doesn't quietly disappear from the list — its decay curve keeps updating as it ages, and gates the platform hasn't finished building yet are flagged as open, not silently skipped.
A pipeline that hides its gaps isn't rigorous. It's just quiet.
Short, specific answers — the same understated register as the rest of this platform.
No — mechanism, why a signal should predict returns, is still a human judgment call, captured as a thesis and sources field on curated recipes. Quant Lab automates everything downstream of that judgment: the feature computation, the fourteen validation gates, and the sizing — the part that used to take a researcher weeks of backtesting code.
The freeze happens at the moment you choose to track a discovered candidate — its Recipe-JSON and validation window lock at that instant, and the frozen-validation holdout layer replays only against data from after that moment. It's a real timestamp, not a policy.
The decay curve — Q5–Q1 spread at 1 through 120 trading days out — keeps updating as the strategy ages, and untracking is explicit and visible rather than a strategy quietly vanishing from the list.
Two things, stated plainly: a true per-signal lookback-window parameter sweep isn't built yet, and capacity/market-impact modeling goes only as far as ADV liquidity tiers, not a full impact model. Both are known gaps in the confidence score's inputs, not hidden ones.
No — it's a disclosed input, not a verdict. The BIST foreign-flow crowding prior flags when a signal already looks broadly held or traded; its exact calibration is still being refined, and it's shown alongside the other thirteen gates for you to weigh, not used to silently kill a candidate.
Request a walkthrough focused on your factor universe, your BIST coverage, and what a first validated candidate would look like in week one.