Backtestd / Tests

Test · Crypto + Stock market + Forex + Commodities · 15m · 8 min read

Troy horse ICT method

By Thomas Jamais (Backtestd) · Published · Updated

No edge after costs
64versions tested
100%lost money after costs
−0.11typical version, R per trade
−0.08best version, R per trade

Does troy horse ICT method work?

No, not in our test. We coded the rule, tested 64 versions of it on 36 crypto perpetual futures, 10 stock indices, 12 currency pairs and 3 commodities from 2022 to 2025, fees, slippage and funding included. 100% of the versions lost money. The best version did not survive older data it had never seen (2020–2022).

Key facts

Versions tested64
Markets36 crypto perpetual futures, 10 stock indices, 12 currency pairs and 3 commodities
Period2022-11-10 → 2025-07-09
Candles15m
Costsfees, slippage and funding on every trade
Versions that lost money100%
VerdictNo edge after costs

Watch the videos

Short videos about this test. Each one has its own page.

Videos
Troy horse ICT method: we tested 64 versions →

Markets tested

Tested on 36 crypto perpetual futures (leveraged crypto derivatives, open 24/7, with funding paid every 8 hours), 10 stock indices (indices of traditional stock exchanges, with trading hours and overnight gaps), 12 currency pairs (currency pairs, open 24 hours a day, 5 days a week) and 3 commodities (gold, silver and oil prices), 2022–2025.

MarketPeriodMarketsVersionsMade money after costsTypical version, R per trade
Crypto (perpetual futures)2022–202530640 %−0.091
Stock market (indices)2022–202510560 %−0.218
Forex (currency pairs)2022–202512600 %−0.113
Commodities2022–20253260 %−0.166
Stock market (indices)2010–20229648 %−0.113
Forex (currency pairs)2010–202212640 %−0.125

Results are never pooled across market kinds: a strategy can behave very differently on crypto perpetuals, stock indices and currencies. Leverage changes the size of a position, not its result in R. What leverage costs is counted: funding on crypto perpetuals and on the OKX contracts that track indices and commodities (2022 on). The 2010–2022 stock-index and forex history is tested on the plain price, without leverage or overnight swap.

The rule people share

As it is usually explained:

“London close stays inside the New York morning range. Then trade the retest of a fair value gap toward the morning low.”
— the rule as people share it

How we tested it

  1. 01

    Data

    15m candles of 61 markets (Crypto (perpetual futures): AAVE, ADA, APR, ARB, AVAX, BAT, BCH, BNB, BTC, DOGE, DOOD, DOT, ENA, ETH, FIL, HYPE, INJ, IOST, LINK, LTC, NEAR, OKB, ONDO, PEPE, PUMP, SOL, STRK, SUI, TAO, TIA, UNI, WLD, XPL, XRP, ZEC, ZRO; Stock market (indices): ASX-IDX, CAC-IDX, DAX-IDX, FTSE-IDX, HSI-IDX, NDX-IDX, NIKKEI-IDX, QQQ, SPX-IDX, SPY; Forex (currency pairs): AUDJPY-FX, AUDUSD-FX, EURCHF-FX, EURGBP-FX, EURJPY-FX, EURUSD-FX, GBPJPY-FX, GBPUSD-FX, NZDUSD-FX, USDCAD-FX, USDCHF-FX, USDJPY-FX; Commodities: BZ, XAG, XAU), from 2022-11-10 to 2025-07-09. Crypto prices come from OKX perpetual futures; the 2020–2022 check uses Binance's public archive (median price gap to OKX: 0.06%). US index data comes from HistData.

  2. 02

    Costs

    Every trade pays a 0.05% taker fee per side, 2–5 basis points of slippage per side, and, on crypto perpetual futures, funding every 8 hours at each market's measured average rate. Stock indices and forex pairs (2010–2022 history) pay their own costs: about 0.03% per side for indices, 0.013% for major currency pairs, without funding. Results are in R: 1 R is the amount risked on one trade (entry to stop), so strategies with different stops compare fairly.

  3. 03

    Versions

    A rule shared online is never fully specified (which stop? which holding time? which timeframe?). So we test every reasonable reading: each combination of the settings below is one version.

  4. 04

    Two halves

    The data is split in two halves (a rising market, then a flatter one). A real edge should work in both.

  5. 05

    Against the market

    A long trade in a rising market makes money without any skill. We subtract what simply holding the crypto market (an equal-weight basket) on the same side over the same days would have made: what remains is what the rule adds.

  6. 06

    Older data, never seen

    The best version is then run, unchanged, on 2020–2022 data that played no part in choosing it (a crash, a bull market and a bear market).

Read the full method →

The words of a test

Tap a card to flip it

Results

All 64 versions

Every version result per trade, after costs · hover a bar
020≤ −1−0.50+0.5≥ +1Average result per trade of one version, in R, after costsVersionsbest version −0.08 Rlost moneymade money

Each bar counts versions by their average result per trade after costs (clipped to ±1 R). Green: made money; red: lost money.

The best of 64 versions

5743 trades, 51% winners, −0.082 R per trade on average, −470.8 R in total, worst drawdown −488.0 R.

Equity curve R added up, trade after trade · hover the line
−400−20002,0004,000Trade numberTotal, in Rsecond half starts

Cumulative result after costs, trade after trade (dashed line: start of the second half).

The checks, in numbers

Why “the best version” misleads

With 64 versions, some look good by luck alone. The typical version made −0.105 R per trade; the best made −0.082. If the rule had no edge at all, the spread of results would look like this anyway: the best of many random tries always looks impressive. That is why we never trust the best version until it works on data it was not chosen on.

Quick check

The best of the 64 versions made −0.082 R per trade. What does that tell you?

Verify it yourself

  1. Write the rule exactly (below: our specification and every setting we tried).
  2. Get free data: Binance's public archive (data.binance.vision) has years of candles; OKX and most exchanges offer an API.
  3. Include costs: fees on both sides, slippage, and funding for perpetual futures.
  4. Count results in R (risk per trade), not in %, and look at the typical version, not the best one.
  5. Split your data in two and keep a part you never look at until the end.
  6. Compare with simply holding the market over the same days.

Get the data

↓ Download every trade of the version shown (CSV, 5743 rows)

The exact specification we coded

(the lab's own words, in English)

Troy horse: the "Trojan Horse ICT Order Flow Quantum Method" from an Instagram reel, written down as rules.

What it does: the reel (Micro Nasdaq futures, 5-minute chart) draws a wooden horse over one day of price.
"The soldiers build up inside the horse": during the London-close killzone price stays inside the range
of the New York morning killzone. Then price "displaces lower out of the mouth of the horse" and leaves a
fair value gap (FVG); you sell when price comes back into the gap and aim for the New York morning low.
The reel never states a rule; this file is the closest testable reading of what it shows. Long is the
mirror image (displacement up, target the New York morning high).

Rules (fixed a priori from the reel, not tuned on results), times in New York local time (DST handled):
- NY AM killzone: am_start..am_end (default 07:00-10:00). Its high and low are the horse's frame.
- London-close killzone: lc_start..lc_end (default 10:00-12:00). Its high (short) / low (long) is the head.
- Inside the horse (require_inside): the whole London-close range stays inside the NY AM range.
  Both sessions must be complete that day (markets that are closed then give no signal).
- Mouth: between lc_end and win_end (default 15:00), the first three-candle fair value gap of the day whose
  middle candle is a displacement (body >= disp_mult x ATR, gap >= min_gap_atr x ATR) gives the side:
  bearish gap = short, bullish gap = long. Price must still be inside the NY AM range.
- Entry (entry = "retest"): the first later candle (before win_end) that trades back into the gap and closes
  inside or beyond it; a close through the far side of the gap, or reaching the target first, cancels the day.
  entry = "immediate": enter right after the gap forms (no retest).
- Stop (stop = "head"): beyond the highest high (short) / lowest low (long) since the London-close killzone
  began, + stop_buf x ATR. stop = "fvg": beyond the far side of the gap. Optional floor: at least
  min_stop_adr x average daily range away (0 = pure structure, as in the reel).
- Target (target_r = 0): the NY AM killzone low (short) / high (long). target_r > 0: that many times the stop
  distance. Every trade is closed by flat_h (default 16:00 New York) at the latest. One trade per day.
- Needs intraday candles (<= 1 hour). The reel used 5-minute candles; our history is 15-minute.
Source: Instagram reel, "New trojan horse method" (caption tagged #funny); idea only.
Every setting tried (64)
SettingValues
require_insideFalse, True
disp_mult0.5, 1.0
entryimmediate, retest
stopfvg, head
target_r0.0, 2.0
min_stop_adr0.0, 0.25
The settings of the version shown
am_start_h7.0
am_end_h10.0
lc_start_h10.0
lc_end_h12.0
win_end_h15.0
flat_h16.0
require_insideFalse
entryimmediate
stophead
stop_buf0.1
min_stop_adr0.25
target_r0.0
atr_len14
disp_mult1.0
min_gap_atr0.1

Limitations

Questions

Did you include fees?

Yes: fees, slippage and funding on every trade, from real exchange schedules.

Maybe it works on another timeframe?

We tested several timeframes and holding times: see “Settings tried”. The result does not depend on one choice.

Maybe it works with better risk management?

We tried stops of different widths, targets, trailing stops and partial exits. Risk management changes the shape of the results, not the sign of the edge.

Why should I trust you?

You should not: verify. The rule, every setting and every trade are on this page.

Does this mean nobody makes money with it?

Some traders will, by skill elsewhere or by luck. This test only says the rule itself does not give an edge after costs.

Disclaimer

Educational content based on historical backtests. Not financial advice. Past results do not predict future results. Trading leveraged products can lose more than you invest.

More tests

Fair value gap (FVG)
772 · No edge after costs
→
Moving-average trend following
1249 · Too weak to trade
→
New York open · 12 EMA on Nasdaq
28 · No edge after costs
→

Follow the tests: TikTok · Instagram · YouTube · Contact

← All tests