GECKO

INSIGHTS

What Gecko is teaching me.

A growing record of findings from Gecko's experiments with trading strategies, historical market data and systematic backtesting.

Each row below is one hypothesis tested against the historical dataset, with a verdict at a glance:

The hypothesis proved correct

The hypothesis was proven incorrect

Cautiously promising, but with caveats worth reading before trusting it

Reference point, not a hypothesis test

That verdict is relative — it says whether the change improved on whatever it was tested against, not whether the result makes money.

Note that for ORB backtesting we complete the trade within the day. So it will either hit its Take Profit or Stop Loss level, or it will simply time out. Many trades time out in these tests. In real trading we might be inclined to wait a trade out for longer than just the same day we entered. In any case the relative differences between backtests are what we focus on. Therefore the relative net figures under each summary are of most interest. ORB's results are negative across every configuration tested at full scale so far. TFM's tuned baseline is the first genuinely positive net result on this site, and a permutation test now confirms that edge beats 98.9% of random direction-shuffles — stronger evidence than ORB's own banks result (96.8%) needed to earn "genuine signal" status.

Curious how this project started? Read how Gecko was born.

Gecko research universe

ORB

–

A plain ORB strategy, entered on a market order with no filters, produces no trading edge — statistically flat before costs, net-negative once commission is included. The reference point every later test is measured against. Read backtest →

Net result: −£100,417.14 (did not include Stamp Duty; assumed perfect fills)

✓

Entering on a buy-stop with a small 0.2% confirmation buffer past the breakout candle's high produced a significant improvement in average R — but pushing the buffer any larger was actively damaging. Read backtest →

Net result: −£70,672.14 (did not include Stamp Duty; assumed perfect fills)

✗

Shrinking the opening range from 30 to 15 minutes barely moved average R and left profit factor completely unchanged — a much weaker lever than the confirmation buffer, and not a real improvement. Read backtest →

Net result: −£109,034.89 (did not include Stamp Duty; assumed perfect fills)

✗

Extending the trade-entry cutoff from 11am to noon had a negative impact on average R — the extra late-morning breakouts it captured were net negative EV on their own. Read backtest →

Net result: −£109,128.29 (did not include Stamp Duty; assumed perfect fills)

~

Restricting entries to only the smallest opening ranges produced the best average R of the series so far — but on a sample 90% smaller than the baseline, so it's the least statistically robust result yet and needs treating cautiously. Read backtest →

Net result: −£8,783.04 (did not include Stamp Duty; assumed perfect fills)

✓

Rejecting a breakout that runs against a strong recent trend consistently improved average R over the baseline across every variant tested — the best configuration nearly matched the series' best-ever average R, but on a far larger, more robust sample. Read backtest →

Net result: −£52,803.88 (did not include Stamp Duty; assumed perfect fills)

–

Across the 28-stock universe, most of the pooled return happens during the trading session rather than overnight — but that split varies enormously by stock, and the 5 UK banks cluster heavily toward the intraday-favoured end, which is exactly the kind of instrument-level difference a single pooled backtest hides. Read backtest →

~

Every one of the 12 ORB configurations tested so far performs better on the five UK banks than on the full 28-stock universe, and a permutation test on the strongest configuration confirms the banks result beats 96.8% of random direction-shuffles — genuine evidence of a signal. The same test on the full 28-stock universe only beats 83.7% of shuffles: not statistically distinguishable from chance. Read backtest →

Net result: £1,450.90 (did not include Stamp Duty; assumed perfect fills)

✗

Every ORB result published on this site through backtest_run #130 was silently LONG-only — a filtering bug dropped every SHORT trade before execution. Fixing that bug and re-running the strategy's baseline configuration against the full 42-stock basket over a full decade, with both directions genuinely in play, turns an already-marginal 28-stock result into a clear net loss: −£509,099.31 on 81,402 trades, average R −0.0027, profit factor 0.99. Read backtest →

Net result: −£509,099.31 (did not include Stamp Duty; assumed perfect fills)

✗

The open was within 20% of the day's range from the high or low on 55% of 300,000 UK stock-days (2016-2026), not the claimed 70% - and a random walk does it 52% of the time. Trading in the direction away from the open after 30 minutes, with the stop at the open, made about nothing before costs over 203,000 trades and lost 0.11R-0.60R a trade after them. Read backtest →

~

The Advanced School Run (Tom Hougaard): stop orders 2 points above and below the DAX's 4th five-minute bar, the stop at the other order. On 1-minute bars, 2012-2026, it made +0.15R to +0.18R a trade before costs on the DAX (6,300 trades), and similar on the Euro Stoxx 50 (+0.18R), Nikkei 225 (+0.22R) and Hang Seng (+0.14R) - but not the FTSE or the Dow. After IBKR's measured CFD spread and commission it made about nothing (DAX +0.00R, Nikkei -0.01R, Hang Seng -0.01R, Euro Stoxx 50 -0.10R). It could only pay at futures-level costs, which Gecko hasn't tested live. Read backtest →

TFM

✓

A same-day-only bug in TFM's entry logic meant EMA and MACD effectively had to cross on the identical calendar day to ever trigger a trade — fixing that alone flipped the baseline from a small net loss to net-positive, and tuning the take-profit target (from the third-nearest resistance/support zone down to the nearest) plus the trade-expiry window (from 7 days out to 14) together turned a marginal £2,730 edge into a £21,214.65 one, on nearly 4,700 real trades. Read backtest →

Net result: £21,214.65 (did not include Stamp Duty; assumed perfect fills)

~

TFM's tuned baseline (NEAREST target, 14-day expiry) nets £21,214.65 on the full 42-stock, bidirectional basket - beating ORB's best-ever result (£1,450.90, on a narrow 5-bank, LONG-only subset) on every axis, under harder test conditions than ORB's best number ever faced. A 1000-shuffle permutation test now confirms the edge is real: TFM's directional call beats 98.9% of random shuffles, clearing the bar ORB's own banks result (96.8%) needed to earn 'genuine signal' status. Read backtest →

~

Four ATR-based exit-plan variants tested against the same baseline #150 scope: an ATR-sized stop-loss at 1.0x/1.5x/2.0x multipliers, and a fourth run that also caps the take-profit at the reward:risk-ideal level instead of riding the full support/resistance zone. The 1.0x stop-loss (#153) is the strongest performer on a per-trade basis - profit factor 1.26 and average R 0.1559, both beating baseline - but every single variant, including that one, nets less total £ than baseline's £21,214.65. ATR sizing improved trade quality here; it didn't improve total profit. Read backtest →

Net result: £15,087.76 (did not include Stamp Duty; assumed perfect fills)

~

TFM's reward:risk ladder (1.5 through 8.0) was re-run with dedup, daily re-validation of pending orders, and capital-capped position sizing, against the full 110-stock backtest_core basket. RR 3.0 gives the best total profit (£12,018, PF 1.23, 30% win rate); RR 8.0 gives the best per-trade quality (PF 1.36, avg R 0.36) but on far fewer, thinner-win-rate trades (16%). Both now beat 100% of 1,000 random direction-shuffles - the strongest, most rigorously checked result on this site so far. Read backtest →

Net result: £12,017.51 (did not include Stamp Duty; assumed perfect fills)

~

With RR 3.0 established as the profit-maximising point on the reward:risk ladder, the remaining exit-plan levers were tested one at a time: target-zone selection, trade-expiry window, and entry buffer. Targeting the second-nearest support/resistance zone instead of the nearest one is a real, permutation-validated improvement (net profit £16,001 vs £12,018, +33%). The 14-day expiry window and the existing entry buffer both turned out to already be close to optimal - every tested alternative did the same or worse. Alongside this, a first pilot correlating ADX and market cap against real trade outcomes turned up a striking, not-yet-fully-validated result: small-cap trades are a net loser in this strategy, and mid-range ADX outperforms both low and high ADX. Read backtest →

Net result: £16,000.56 (did not include Stamp Duty; assumed perfect fills)

✓

Three separately-validated improvements to TFM - the reward:risk ratio, the take-profit zone selection, and a market-cap entry filter - were combined into one configuration and tested together for the first time. Net profit rises from £12,018 (the RR 3.0 baseline alone) to £16,845, a 40% improvement, with profit factor and win rate improving in step rather than trading off against each other. Permutation-validated at the 100th percentile - the strongest result on this site so far. Read backtest →

Net result: £16,845.12 (did not include Stamp Duty; assumed perfect fills)

✓

Trading exactly the same signals as IBKR share CFDs instead of shares removes UK Stamp Duty (0.5% on every purchase). The CFD overnight financing that replaces it cost £1,687 over ten years against the £58,106 of duty it avoids, turning a ten-year loss of £39,306 back into a £17,966 profit. Position sizes and risk per trade were kept identical to share trading; the capital CFDs free up (20% margin instead of 100% cash) is a benefit still to be tested. Read backtest →

Net result: £17,966.28 (assumed perfect fills)

~

Adding one rule to TFM - skip any signal whose day closed on the wrong side of its VWAP - raised net profit from £14,439 to £22,251 (+54%), cut the worst peak-to-trough drop from £5,554 to £3,258, and improved the win rate and average R. The trades it removes lost money in 8 of 11 years, and the filtered strategy beats all 1,000 permutation shuffles. It came out of a new trade-grading experiment that records 15 factors on every trade, and it's now switched on for the paper-traded tips. Update 30 Sep: backtests had never charged UK Stamp Duty (0.5% on every share purchase - known as STT in Sth Africa). With it, the same strategy loses £39,306 over the ten years - the signals are still good, but as share trading the costs outweigh them. Read backtest →

Net result: £22,250.73 (did not include Stamp Duty; assumed perfect fills)

✗

Gecko's backtests filled every buy-stop and stop-loss exactly at its price. Real orders fill at the price actually available, and 46% of TFM's entries and 34% of its stops were hit by the market opening beyond them. Re-run with realistic fills, the CFD version goes from +£17,966 to −£61,623 over ten years; average R from +0.20 to −0.24. Stop-limit entries and ATR stops reduce the damage but none of eight variants - including simply entering at the next day's open - made money. Read backtest →

Net result: −£61,622.78

EVS

~

When a stock trades at least 5x its usual volume and closes 3%+ higher, it tends to keep drifting up for weeks. Buying at the next open and holding 20 trading days made +0.18R a trade after all costs over ten years (CFDs, £10,000 account at 2% risk), positive in 9 of 11 years, and beat all 1,000 random-entry shuffles. Shorts, regime filters, trailing stops, breakeven stops and longer holds all made it worse. Its Sharpe ratio (0.48) sits just under the 0.5 bar, so it goes to paper trading next. Read backtest →

Net result: £10,134.12

FCA disclosures

~

Claude Haiku read 10,572 regulatory statements (2016-2026) for $8.72. For swing trades bought the next morning, nothing it read mattered. But for the day itself it did: statements out before the open saying 'ahead of expectations' and raising guidance rose +1.45% from the open to the close (against the market), and as a same-day CFD trade (buy the open, sell the close) made +0.50R a trade with a Sharpe ratio of 1.02 on Gecko's original stocks (run #391) and +0.65R, Sharpe 1.53 on 143 stocks it had never seen (#399). Bid-offer spread is not yet included. Read backtest →

~

From 33,284 FCA notices (2016-2026), under one director dealing in ten is a genuine open-market purchase. Buys of £250k-£5m in a day were followed by the shares beating the market by +1.5% on average over 20 trading days, on both the original 109 stocks and 141 new FTSE 350 companies. Backtested as CFDs with realistic timing - buying 15 minutes after an announcement made during market hours, when it reaches the FCA archive (run #415): 167 trades, +£6,358, about half of them winners. Two-thirds of the big buys come out while the market is open, and waiting for the next open gave away a further +0.7% on average. The apparent weakening since 2021 is mostly the Covid crash: directors who bought in 2020 were rewarded hugely, and without 2020 the earlier and later years look much the same. Read backtest →

Net result: £4,408.68

✗

55,690 disclosed short positions in 239 UK stocks, 2016-2026. Shares with more disclosed short interest did not do steadily worse over the next 20 trading days: 3-5% shorted did -0.54% against the market, 5-8% did +0.76%, 8%+ did nothing. Changes in short interest didn't help, and the results disagreed between Gecko's original stocks and new FTSE 350 companies. Read backtest →

Chart patterns

✗

1,929 bull flags in 115 UK stocks over ten years. With a sensible stop, flags after any sharp rise were no better than random (-£5,817 after costs); the textbook tight stop under the flag lost heavily. Flags whose pole contained a 5x volume spike made +£2,762 - but EVS Drift, buying the morning after the same kind of spike, made +£7,269. Waiting for the flag skips half the trades and earns less on each. Read backtest →

Net result: −£5,817.23

✗

A rules-based cup-and-handle detector found patterns that look right to the eye - but only 24 of them across 115 UK stocks in ten years, and they didn't lead to rises: 40 days after the breakout the price was higher in only 9 of 24 (average -1.4%), and the trades lost money after costs. Read backtest →

Net result: −£361.66

✗

Using Lo, Mamaysky and Wang's (2000) definitions across 296,361 stock-days: no bullish pattern was followed by better returns than an ordinary day, the results changed sign depending on how much the prices were smoothed, and many detections don't look like their names. Only the double top was consistently followed by slightly weaker returns - a bearish signal smaller than trading costs. Read backtest →

✗

955 head-and-shoulders bottoms (bullish, buy) and 983 tops (bearish, sell short) in UK stocks, 2016-2026, built with Schwager's two rules (a major prior move; act only on the first close through the neckline). Bottoms lost slightly after costs on every version (-0.00R to -0.18R a trade). Tops made a little on the 109 stocks Gecko was developed on (up to +0.07R) but lost on every version on 141 it had never seen (-0.05R to -0.16R). Neither is an edge. Read backtest →