Skip to content
Research
9 min read

Ranking Borsa İstanbul on momentum, near the highs

Rank the market on trailing return and you fill the book with wrecks bouncing off the floor. Screening for proximity to the recent high first changes what the ranking selects, and it is the one part of this design that came out of research rather than convention.

Universe
678 Borsa İstanbul tickers, point-in-time
Test period
2020–2026

The companion piece to this one describes a breakout book: it waits for an event, buys it, and rides the position until a trend line breaks. This is the other kind of momentum strategy. It does not wait for anything. On a fixed cycle it ranks the whole market on trailing return and holds the leaders, whether or not anything happened that day.

Over 6.7 years it returned 115.4% a year against BIST 100's 48.8%, with a worst drawdown of 42.1%.

The rules

On a fixed rebalance cycle, whose length is Withheld: this is the firm's own calibration. The mechanism is described in full, and every result on this page was produced with the real value.:

  1. Build the eligible pool. 678 of the 747 Borsa İstanbul tickers that existed at some point in this window, namely the ones with usable price history, point-in-time, delisted names retained. Require a minimum length of listing history, a minimum price, and a floor on average daily turnover, and cap any order at a fixed share of the bar's volume. Those four thresholds are Withheld: this is the firm's own calibration. The mechanism is described in full, and every result on this page was produced with the real value..
  2. Apply the near-high screen. A name is only eligible if its close sits within Withheld: this is the firm's own calibration. The mechanism is described in full, and every result on this page was produced with the real value. of its highest close over a trailing window of Withheld: this is the firm's own calibration. The mechanism is described in full, and every result on this page was produced with the real value.. This is the one piece of the design that came out of research rather than convention, and it is doing the most work. The next section explains why it matters, which does not depend on the numbers.
  3. Rank the survivors by trailing return, highest first, positive only, over a lookback of Withheld: this is the firm's own calibration. The mechanism is described in full, and every result on this page was produced with the real value.. No skip period.
  4. Hold the top names, equally weighted. How many is Withheld: this is the firm's own calibration. The mechanism is described in full, and every result on this page was produced with the real value..
  5. Sell with hysteresis. A holding is not sold the moment it drops out of the buy list. It is sold only once it falls out of a wider band, and the width of that band is Withheld: this is the firm's own calibration. The mechanism is described in full, and every result on this page was produced with the real value.. That buffer is why average holding periods run to months rather than to the rebalance cycle.
  6. Stand aside in a downtrend. When the equal-weight market index is below its own long-run moving average, no new positions are opened. Existing holdings are left alone rather than liquidated. The length of that average is Withheld: this is the firm's own calibration. The mechanism is described in full, and every result on this page was produced with the real value..

There is one exchange-specific guard: reject any name whose daily move is larger than the exchange physically allows. Borsa İstanbul has had a 10% daily limit since March 2020, so a bigger move in the data is a corporate action that was not adjusted, not a price. Left in, those artefacts look like enormous winners.

Costs are 0.5% per fill.

Why the near-high screen is the interesting part

Ranking by trailing return sounds like it should be enough. It is not, and the reason is the shape of what wins a return ranking.

A stock that fell 80% and then rebounded 150% off the floor has a magnificent trailing return and is nowhere near its high. It is a wreck bouncing, and the bounce tends not to continue. A stock with the same trailing return that is sitting close to its own recent high is in an established uptrend.

The screen separates those two populations before the ranking ever sees them. Rank first and you fill the book with rebounds, because a violent recovery from a low base produces the largest trailing numbers in the market.

I want to be careful about how much credit to give this. The direction of the effect is robust and the specific threshold is not: moving the near-high fraction around moves the annual return by tens of percentage points, which is far too sensitive to treat any one value as a discovered constant. What survives is "screen for proximity to the high before ranking." What does not survive is the particular number I settled on, which is why withholding it costs the reader less than it looks. The idea is the transferable part. The setting is fitted to this market and this window.

What it did

CAGR
115.4%
Max DD
-42.1%
Sharpe
2.55
MAR
2.74
TrainHoldout
CAGRMax DDSharpeSortinoVolatilityMARCAGRMax DDSharpeSortinoVolatilityMAR
BookMomentum Leaders115.4%-42.1%2.553.4931.6%2.7448.8%-36.1%1.591.9027.6%1.35

Left block is the strategy, right block a point-in-time BIST 100 basket. A Sharpe of 2.55 is high enough to be suspicious, and the section on what I do not know deals with that.

Momentum Leaders169.73×BIST 10014.39×
0×50×100×150×200×2020202120222023202420252026
Fig. 1Growth of one lira against a point-in-time BIST 100 basket. Switch to the log scale to read the early years, which a linear axis flattens onto the baseline.
Momentum Leaders-12.19%BIST 100-9.30%
-40.0%-30.0%-20.0%-10.0%0.0%2020202120222023202420252026
Fig. 2Drawdown from the running peak, against the same benchmark.

What it is measured against

The exchange publishes index membership at quarterly reviews. The comparison line holds exactly the names that were in BIST 100 during each review period, equally weighted, rebalanced only on review dates, and paying the same 0.5% per fill the book pays. No name enters the basket before the review that admitted it.

CAGRMax DDSharpeMAR
BIST 100 basket, equal weight48.8%-36.1%1.591.35
BIST 100 basket, traded-value weight47.1%-38.3%1.461.23
BIST 30 basket, equal weight48.2%-35.3%1.491.37
BIST 30 basket, traded-value weight48.4%-38.2%1.451.26
Whole universe, equal weight73.3%-40.2%2.271.82

The weighting scheme barely moves the answer, which is convenient, because the published indices are float-capitalisation weighted and those weights are not in this data. Equal weight and traded-value weight land within about two points of each other everywhere, so the comparison does not depend on which approximation I picked.

The last row is the one that should give a reader pause. An equal-weight basket of all 678 names returned 73.3% a year, well clear of either index, because Turkish small caps beat Turkish large caps badly over this window. This book ranks that whole universe, so it was fishing in the pond that happened to be full. The index rows say what an ordinary index fund would have paid; the last row says what buying everything and never trading would have paid.

Year by year

YearJFMAMJJASONDYear
2020-15-17164121342-1161435%
2021241310-5-9-10-02-91551-2050%
202217-102181042721-102821-5214%
2023-17-4-331432174136-4-855%
20244114-36-10153-13-80330%
20254112356-81921244312-5370%
2026762526523172-7154%

Monthly return in percent. Colour saturates at 40%.

The standout is 2025: 370.48% against an index that returned 13.43%. That single year does a large amount of work in the compounded figure, and a strategy whose record rests on one exceptional year is a strategy with a short effective sample.

2022 is the mirror image. The book made 214.17% and the index made 221.47%, so a spectacular absolute year was mostly the market being spectacular. The weakest year on this measure is 2024, where 29.6% against 17% is a real margin but a thin one for a book that can lose 42.1% from a peak.

How the money is made

Realised return per closed position, by percentile

10th
-29.2%
25th
-18.2%
median
-4.4%
75th
19.5%
90th
83.8%
99th
512.2%

Percentiles of realised return per closed position, after costs.

493 closed positions, right 42.6% of the time, median position -4.4%. The same fat-tailed shape as the breakout book, further out: average winner 88.58% against an average loser of 18.22%, a ratio of five to one, and a profit factor of 4.03.

8.9% of positions at least doubled. The best made 2491.7%. The ten best closed positions produced 65.9% of the gross gains.

The mechanism for that tail is the hysteresis. Selling a name only once it leaves the wider band, rather than the moment it leaves the buy list, means a holding that stays strong is left alone for a long time. The median holding period is 56 days, far longer than the rebalance cycle. Without the buffer this would be a higher-turnover strategy that cuts its winners on ordinary noise.

Exposure

The book is essentially never in cash, but unlike the breakout sleeve it spends a good deal of its life carrying fewer names than it is allowed to, because the pool screen and the positive-return requirement can both come up short.

The regime filter blocks new entries below the market's long-run average but does not liquidate, so exposure falls gradually through a downtrend as positions exit and are not replaced, rather than dropping to zero on a single signal. That is a milder instrument than it sounds, and the section below says why it should not be mistaken for a risk control.

The currency problem

Everything above is lira. Over this window the dollar went from about 5.95 to about 48.49, so the lira lost 87.7% of its value, and depreciation flatters a return without touching a drawdown.

The same trades, repriced daily into dollars:

CAGRMax DDSharpeMAR
In lira115.4%-42.1%2.552.74
In dollars57.4%-54.5%1.421.05

Roughly half the annual return was the currency. The drawdown moves the other way, 42.1% in lira against 54.5% in dollars, because the sharpest devaluations landed while the book was already down. The two currencies even disagree about when the worst moment was: March 2020 in lira, December 2021 in dollars.

Return over drawdown falls from 2.74 to 1.05. That is still a good number. It is not the number at the top of this article, and if you do not pay rent in lira it is the one that applies to you.

What I do not know

  • The Sharpe is too high to take at face value. 2.55 on a long-only equity book is not a normal number. Some of it is a genuinely exceptional market period, some is lira denomination, and I cannot cleanly separate those without a rate series.
  • The near-high fraction and the moving-average length were both chosen on the full period. They are in-sample choices. The direction of the near-high effect is robust, the exact threshold is not, and this article should be read as describing a book fitted on the same window it is measured on.
  • One year carries too much. Remove 2025 and this is a different and much less impressive record.
  • No bear market. The regime filter has never been tested by a sustained decline in this sample, so its main job is untested.
  • Capacity. A concentrated book screened on a turnover floor this modest is a small book. The strategy has not been shown to work at size.

The third piece in this series runs this book alongside the breakout one, which is where the interesting question lives: two strategies with similar returns and similar drawdowns, holding different things on different days.

Written by

Koray GocmenFounder

Builds and runs the systematic strategies behind this research.

Full source

The code, the data and the parameter files behind this article.

All research