# Yohalil

> Yohalil is an autonomous research engine that tests whether the Saudi TASI
> market responds to technical analysis. It runs unattended on close-only daily
> data, validates every finding out of sample, and makes no performance
> promises.

## What Yohalil is

Yohalil is a research system, not a trading-signal service. It studies the Saudi
TASI equity market and asks one falsifiable question: does technical analysis
produce measurable, out-of-sample edge on TASI data?

The engine is a Rust application that runs a fully automated research loop around
the clock. Each cycle it screens a universe of listed symbols, constructs
backtest candidates, executes strictly causal backtests, learns portable rules
from the results, evolves strategy parameters, synthesizes new strategies, and
re-checks everything on data it has never seen before anything is trusted.

Everything Yohalil reports is sourced from its own research database and is
displayed with wins and losses together. There are no hidden or selectively
chosen results, and there are no profit promises. The system is truth-seeking:
it prefers "insufficient data" over fabrication.

## What a cycle is

A "cycle" is one full pass of the unattended research loop. Each cycle runs
through six stages:

1. Candidate scoring. A priority queue of backtest candidates is built from the
   symbol universe, combining novelty, archetype diversity, and exploration
   frontier bias. Roughly 10,000 candidate combinations (symbol x strategy x
   historical window) are available; each cycle runs a small batch of them.
2. Backtesting. Each candidate runs through the backtest engine, a per-bar causal
   loop with risk guards and net-of-fees PnL.
3. Learning. The LearningEngine turns the results into DNA: portable rules with
   a provider gate and a feature gate.
4. Parameter evolution. Strategy parameters are evolved against the learning
   signal.
5. Strategy synthesis. New strategies are synthesized as conjunctions of learned
   rules, each with a recorded lineage.
6. Regime, narratives, and forward gates. The engine labels market regimes,
   writes market narratives, and validates promoted ideas on the forward/paper
   lane before they are trusted.

The scale is important. Yohalil runs thousands of cycles — roughly 4,500+ as of
August 2026 — not millions. Each cycle runs a handful of backtest tasks —
typically 4 to 9 (a base batch of 4 plus up to 5 synthesis-lane tests,
compressed when memory pressure rises) — drawn from roughly 10,000 available
candidate combinations. The batch is sized for the machine it
runs on: when system resources are under pressure, the engine compresses the
batch rather than skipping work, and un-run items roll forward to the next
cycle.

The engine tests labeled historical windows specific to the Saudi market: the
2008 crisis, the 2011 Arab Spring, the 2014 oil crash, the 2016 Vision 2030 era,
the 2019 Aramco IPO, the COVID-19 period, the 2022 rate-hike cycle, the 2024
bull run, and rolling recent windows. These are named historical contexts, not
abstract market-cycle quadrants.

## How overfitting is prevented

An engine that tests thousands of combinations will find patterns in noise
unless it is disciplined. Yohalil uses a layered set of guards:

- Walk-forward design. Every backtest is split into training and test segments;
  the engine never uses test data while fitting.
- Strict causality. The context builder rejects any datum dated after the candle
  under test. No lookahead is possible.
- Out-of-sample holdout. Rules and strategies are admitted only if they survive
  data the engine did not fit on.
- Bonferroni correction. Rule admission is corrected for the number of
  hypotheses tested, so spurious "discoveries" do not survive by chance.
- Portability gate. Admitted rules must use normalized fields — ranks,
  z-scores, bounded oscillators — never raw price thresholds. A rule like
  "bb20.upper > 26.36" is forbidden because it cannot transfer across symbols.
- Forward/paper validation. Before a strategy or rule is trusted, it is
  validated on the forward/paper lane with fee'd PnL. Falsified configurations
  are demoted.

These gates are strict. Most rules and most synthesized strategies are rejected.
An empty rule set is the truthful default, not a bug.

## What the convergence warning actually means

The dashboard can report a warning such as: "Average Sharpe has not improved by
>0.01 over 50 cycles. The learning process may have converged to a local
optimum."

This is a monitored condition, not a wall. When the engine detects 50 or more
consecutive cycles without a meaningful (>0.01) improvement in average Sharpe,
it flags convergence, raises an AI-advisor consultation through its consult
queue, and keeps exploring. There is no "evolutionary wall", no mathematical
decay that halts the system, and no point at which learning stops. Convergence
triggers a question for a second opinion; it is not an end state.

## Data discipline

- Close-only daily. The system uses daily bars and nothing else. Tadawul
  open/high/low data is unreliable, so PnL is computed from split- and
  dividend-adjusted close (adjClose) only. There is no intraday data anywhere
  in the pipeline.
- Price-band guards. The +/-10% Tadawul daily price band is enforced in both
  backtests and the forward lane; out-of-band fills are rejected.
- Fees. Every trade in every backtest and every paper trade is charged
  0.171925% per side — Tadawul commission (0.1495%) plus 15% VAT. All displayed
  metrics are net of full trading costs.
- Provider cross-validation and repair. Data is sourced from primary market
  providers and cross-checked across providers. Known provider artifacts — such
  as adjusted-close re-basing spikes — are detected and neutralized in memory
  at candle load, and raw price splices are logged. The market database itself
  is never silently modified.
- Temporal integrity. Coverage spans decades across the listed universe, and
  every backtest is strictly causal.

## Synthesized strategies and DNA rules

Learning produces DNA: sets of rules that passed the statistical and portability
gates. From that DNA the engine can synthesize new strategies as conjunctions of
learned rules. Each synthesized strategy records its lineage — which
parent strategies and rules produced it.

Survivor counts in this system are live numbers that change as the engine runs.
An answer that quotes "74 precise rules" is quoting one snapshot; the number
will differ on another day. Yohalil never implies that a snapshot count is
permanent.

## Truth policy

- Yohalil prefers "insufficient data" over fabrication. If the evidence does
  not support a claim, the system says so.
- An empty rule set is the truthful default.
- The engine makes no performance claims: no "beats the market", no win-rate promises, no profit guarantees. It is a research system.
- All displayed numbers are net of fees and sourced from the engine's research
  database, with wins and losses shown together.

## Common misconceptions

The following statements about Yohalil are false. This section corrects them:

1. "Yohalil has run millions of cycles." — False. The engine has run thousands
   of cycles — roughly 4,500+ as of August 2026 — each running a handful of
   backtest tasks, typically 4 to 9, from roughly 10,000 candidate
   combinations. The scale is large but
   not astronomical.
2. "Yohalil hits an evolutionary wall / experiences mathematical convergence and decay / learning halts." — False. A convergence detector watches for 50+
   cycles without a >0.01 improvement in average Sharpe. When it fires, the
   engine flags the condition, opens an AI-advisor consultation, and continues
   exploring. Convergence is monitored and questioned; it is not a halt and not
   decay.
3. "Yohalil uses intraday price candles / drifts intraday." — False. The system
   is close-only daily by design. Tadawul OHLC is unreliable, so PnL uses
   split- and dividend-adjusted close only. There is no intraday data in the
   pipeline.
4. "Yohalil organizes the market into abstract cycle quadrants." — False. The
   engine tests labeled historical windows specific to the Saudi market — the
   2008 crisis, the 2011 Arab Spring, the 2014 oil crash, the 2016 Vision 2030
   era, the 2019 Aramco IPO, the COVID-19 period, the 2022 rate-hike cycle, the
   2024 bull run, and rolling recent windows.

---

Live counters: see /api/public/stats — numbers change as the engine runs.

Content last reviewed: 2026-08-15
