EGX · US equities · research only

Trade EGX by rule,
not by feel.

Backtest a strategy against real EGX history, run it forward in a paper wallet, and see exactly why every signal fired — the indicator values, the bar it fired on, and what it cost you.

Request early access

No live order routing. Paper wallets only.

EGX history in the engine
11 years
daily closes, adjusted
Strategies ready to test
9 + custom
clone and re-parameterise
Paper wallet ticks
after every close
Sun–Thu, 15:00 EET
100140180220EQUITYHIGH WATER · 225.572019202120232025

How it works

Three steps, in dependency order. Each one needs the output of the one before it.

  1. 01

    Build a watchlist from EGX listings

    Search the exchange by ticker or company, add what you actually follow, and group it. Add US tickers to the same watchlist if you trade both sides.

    COMI · TMGH · SWDY · ETEL · ABUK

  2. 02

    Backtest a strategy over years of real history

    Pick a strategy, set its parameters, choose a date range, and run it on adjusted daily closes with your commission and slippage assumptions applied per side.

    2019-01-02 → 2025-12-31 · 61 trades · 0.20% per side

  3. 03

    Run it forward in a paper wallet

    Promote the strategy to a paper wallet with a starting balance in EGP. It ticks after every close, logs each fill, and keeps the reason the signal fired attached to the trade.

    Ticks Sun–Thu after the 15:00 EET close

cross · bar 8EMA 12 / EMA 26

01 · Determinism

A rule, not a feeling

A NileQuant strategy is an explicit rule, written once and evaluated against every symbol on your watchlist, in every session. EMA 12 crosses above EMA 26 on the close — that is the entire entry condition. There is no interpretation step in between, so the same inputs produce the same output on the tenth run as on the first.

That constancy is the point. The rule does not hesitate on the third losing trade, does not size up to win back yesterday, and does not skip a signal because the week felt wrong. When a result disappoints you, you can read the rule and the bar it fired on and know exactly what produced it.

overnight gapsignal — close, bar tfill — open, bar t+1stop carried as a distance from the fill

02 · Execution model

The signal is not the fill

The signal fires on today’s close; the order fills at tomorrow’s open. That gap is where most backtests quietly lie to themselves, marking the entry at the closing price the rule actually saw — a price nobody could have traded. News lands inside the gap, and on EGX it lands across a weekend twice every week.

NileQuant models the gap explicitly. Position size is fixed at signal time from the equity you held when the rule fired, so sizing never borrows information from the future. The stop is then carried as a distance from the actual fill rather than an absolute price guessed the evening before, so a wide open moves the stop with it.

EGP 100,000 · one watchlistEMA CrossMACDDonchianRSI MomentumGolden Cross5 wallets · independent · never pooled

03 · Wallets

One universe, many channels

Every enabled strategy gets its own wallet. Each is seeded with the same starting capital and trades the same watchlist over the same sessions, but keeps its own cash balance, its own open positions and its own trade log. Nine strategies means nine parallel accounts running forward from one shared origin.

Nothing is pooled. Pooling averages the results together and lets one rule’s good quarter cover another’s bad one, which is precisely the comparison you need to see. Sitting side by side on equal footing, a strategy that only works on two of your five symbols has nowhere to hide.

median +2.90%2021 Q12025 Q413 / 20 windows profitable

04 · Out of sample

Tested out of sample, not just backwards

A single backtest number is one draw from a distribution. Walk-forward splits the same period into consecutive quarterly windows, holds the parameters fixed, and reports what the rule did inside each window on its own: twenty separate readings instead of one cumulative figure that a single extraordinary quarter can carry.

So read the count, not the headline. A strategy that made everything in one lucky quarter and drifted through nineteen others is a different animal from one that ground out a small positive result in thirteen of twenty. The first needs that quarter to repeat; the second describes a mechanism.

same startsame end · +112.43%61 trades reshuffled · 10,000 runs · 40 drawn

05 · Path risk

Separating risk from luck

Monte Carlo takes a strategy’s own closed trades and reshuffles their order thousands of times. Nothing is invented: the same trades, the same returns, the same sizing, dealt in a different sequence. Because the multiplication does not care about order, the final equity is identical in every reshuffle by construction.

Only the path varies — and the path is where drawdown lives. Four losses arriving consecutively cut far deeper than the same four spread across a year. Reading the spread of worst drawdowns across ten thousand orderings separates damage caused by arrival order from risk genuinely present in the rule.

SunMonTueWedThuFriSatEGX trading week · 5 sessions10:0014:15session · EGPwallets tick once, after the close

06 · Calendar

Built for the Egyptian market

EGX trades Sunday to Thursday, from 10:00 to 14:15, and closes on Egyptian public holidays. Prices are in EGP. A backtest that assumes a Monday-to-Friday week borrowed from New York miscounts bars, misplaces every weekend gap, and averages indicator periods over sessions that never happened.

The engine ticks once after each session’s close on that calendar. Wallets mark to the close, stops are checked against it, and every figure — balances, drawdowns, position values — is denominated in the currency the market actually trades in. US symbols run on their own calendar in USD, alongside rather than mixed in.

Strategy library

Every strategy is defined by explicit rules and explicit parameters. You can read them, change them, and see the trade list they produce.

9 built-in · unlimited custom

  • EMA Cross

    12 / 26

    Enters when the fast exponential average crosses above the slow one, exits on the reverse cross.

  • MACD

    12 / 26 / 9

    Trades the MACD line against its signal line, with an optional histogram filter to skip flat regimes.

  • RSI Momentum

    14, 55 / 45

    Buys strength rather than dips: entry above the upper band, exit when RSI falls back through the lower band.

  • Donchian Breakout

    20 / 10

    Enters on a close above the 20-day high, exits on a close below the 10-day low. No indicator smoothing.

  • Golden Cross

    50 / 200

    The long-horizon version: 50-day simple average over the 200-day. Few trades, long holds.

  • ADX Breakout

    14, ADX > 25

    Takes breakouts only while directional strength confirms a trend, which cuts entries in choppy weeks.

  • Bollinger Breakout

    20, 2.0σ

    Enters on a close outside the upper band after a volatility squeeze, exits back at the middle band.

  • Aroon Trend

    25

    Reads how recently the high and low were set, and holds while Aroon Up leads Aroon Down.

  • Chandelier Exit

    22, 3.0 ATR

    A volatility-scaled trailing stop that ratchets under price. Usable alone or bolted onto any entry above.

  • Custom

    cloned

    Clone any strategy above, change its parameters, rename it, and it backtests exactly like the built-ins.

Evidence, not promises

A single backtest is one sample. It tells you what happened once, in one ordering, with parameters you already knew the answer to. So we report the tests that try to break the result, and we show you the losing windows next to the winning ones.

Walk-forward analysis

We split the range into quarterly windows, fit the parameters on the prior eight quarters, and report what the strategy did in the next one — out of sample, every time.

7 of 12 windows positive · worst window -11.62% · best window +14.09%

  • 2021 Q1+6.42%
  • 2021 Q2-3.18%
  • 2021 Q3+1.07%
  • 2021 Q4+9.85%
  • 2022 Q1-11.62%
  • 2022 Q2-2.41%
  • 2022 Q3+14.09%
  • 2022 Q4+7.33%
  • 2023 Q1-0.86%
  • 2023 Q2+4.58%
  • 2023 Q3+12.74%
  • 2023 Q4-5.09%

Monte Carlo

The order your trades happened in was luck. We reshuffle the same trade sequence thousands of times and report the spread, so you can tell genuine risk from a fortunate ordering.

Monte Carlo outcome percentiles across 10,000 reshuffles
OutcomeFinal returnMax drawdown
5th percentile+31.86%-38.47%
Median+108.71%-24.95%
95th percentile+214.30%-15.62%
Runs
10,000
Trades reshuffled
61
Runs ending below zero
2.10%
Runs breaching -30% drawdown
18.40%

One run, reported in full

EMA Cross 12/26 · COMI · 2019-01-02 → 2025-12-31

Backtest metrics for the strategy against the EGX 30 benchmark
MetricStrategyEGX 30
Total return+112.43%+41.19%
CAGR+11.36%+5.06%
Max drawdown-23.81%-38.02%
Sharpe0.870.41
Sortino1.240.58
Win rate46.30%—
Profit factor1.38—

Figures above come from one sample backtest on historical data and are shown to illustrate the report format. Past results do not predict future returns.

Built for EGX

The calendar is the Egyptian one, the currency is EGP, and the listings carry their real names. A backtest that assumes a Monday–Friday week miscounts every bar.

Trading week

  • Sun
  • Mon
  • Tue
  • Wed
  • Thu
  • Fri
  • Sat

Sunday to Thursday. Friday and Saturday are closed, and official holidays are excluded from the bar count.

Sample watchlist

Close, EGP

Sample EGX watchlist with illustrative closing prices
TickerCompanyCloseChange
COMICommercial International Bank84.17+1.24%
TMGHTalaat Moustafa Group52.90-0.63%
SWDYElsewedy Electric78.35+2.08%
ETELTelecom Egypt41.62-1.17%
ABUKAbu Qir Fertilizers66.04+0.41%

Illustrative closes for layout purposes. US equities use their own calendar and are priced in USD.

What NileQuant is, and is not

NileQuant is a research and paper-trading tool. It does not place live orders, hold client funds, or connect to your brokerage account. You execute through your own broker, at your own discretion.

Nothing on this site is investment advice, and we are not a licensed broker or portfolio manager. Backtested and simulated results are hypothetical: they include no live execution, and they do not indicate future performance.