Technical analysis · Trend following
Percentage Filter Strategy: Trend Rules, Historical Profits and Limits
A percentage filter changes direction only after price moves a specified distance from a tracked high or low. This analysis explains its historical forex evidence, defines an unambiguous daily rule and shows how costs, delayed execution and sideways markets can change the outcome.
Historical profits, with the missing context included
Levich and Thomas tested six filter sizes and three moving-average rules on five currency futures markets over 1976–1990. Their working paper’s Table 3A reports 7.5% annual average gross profit for the 1% British-pound filter, with 424 recorded trades. The result is before transaction costs and is not a leveraged account CAGR. Their institutional cost discussion uses approximately 0.025%–0.04% per transaction; implementation costs reduce the reported gross figures. NBER Working Paper 3818, Table 3A and cost discussion.
Later evidence matters. Neely, Weller and Ulrich found that the genuine profitability of previously studied filter and moving-average rules in the 1970s and 1980s had disappeared by the early 1990s in the markets they examined. That is direct evidence against assuming a permanent edge. The Adaptive Markets Hypothesis: Evidence from the Foreign Exchange Market (2009).
Verdict: percentage filters have documented historical profits, but the old results do not validate a profitable strategy today. The precise spot-market specification below is an educational model, with no Trade-Forex backtest or live performance claim.
What the filter is trying to capture
The filter waits for a meaningful directional move before entering, then stays with that direction until a sufficiently large reversal. It therefore enters after the initial turning point and gives back part of a trend before changing sides. Those delays are part of the method, not errors to fix by moving entries retrospectively.
For this model, a 1% filter means a proportional change in the quoted exchange rate. It does not mean a 1% chance of loss, 1% of account equity or a fixed number of pips. At 1.1000, a 1% move is 0.0110: 110 pips. At a different price, the pip distance changes.
The main favourable environment is sustained movement interrupted by pullbacks smaller than the filter. The main adverse environment is repeated reversal around the threshold. Unlike a Donchian breakout, the reference levels here follow the current signal state rather than a fixed number of preceding bars.
Exact daily signal rules
Use EUR/USD daily midpoint observations at 17:00 America/New_York, with daylight saving handled consistently. This is an explicit educational spot-market version, not an exact reproduction of the historical futures study. Use only completed observations; do not combine signals from different broker day boundaries.
Let C be the latest completed close and set x = 0.01. Maintain a state: flat during initialization, long, or short. A reference high H and low L are ordinary running closing-price extrema, never swing points that require future candles for confirmation.
- Initialize: on the first valid observation, set H = L = C and remain flat. On each later flat observation, update H = max(H, C) and L = min(L, C). A close at or above L × 1.01 creates the first long signal; a close at or below H × 0.99 creates the first short signal. If both conditions ever apply while initializing, remain flat and reset H = L = C.
- While long: update H = max(H, C). Hold the long signal until C ≤ H × 0.99. At that close, switch the signal to short and initialize L = C.
- While short: update L = min(L, C). Hold the short signal until C ≥ L × 1.01. At that close, switch the signal to long and initialize H = C.
- Execute after observation: use the first executable quote at or after 17:05 New York time. If the market is closed, use the first tradable quote after reopening. A close-generated signal cannot receive an earlier closing-price fill.
- Reverse once: close the old exposure before opening the new one. Do not add positions while the signal stays unchanged. Keep full costs for both closing and opening during a reversal.
The initial reference tracking starts before the scored test period. Carry the signal state through the boundary into an out-of-sample period; specify how any opening position is established and charge its entry cost. Do not choose the starting direction after viewing the later trend.
Entry, exit and position specification
| Item | Base research model |
|---|---|
| Instrument | EUR/USD spot, tested independently of the historical futures results |
| Filter | 1% of price; no intraday confirmation or secondary indicator |
| Entry | New long or short signal under the state rules above |
| Size | 25% of current account equity as USD-equivalent notional at each new entry |
| During a position | Keep units fixed; no daily resizing or pyramiding |
| Exit | Opposite close-generated signal, executed at the defined later quote |
| Profit target | None; remain with the signal until reversal |
| Missing data | Do not invent a close or signal; log the gap and resume at the next valid observation |
On a $10,000 account with EUR/USD at 1.1110, a $2,500 notional limit permits 2,250.23 EUR, or 0.02250 standard lots if the contract is 100,000 EUR. Rounding down to a 0.01-lot increment gives 0.02 lots. Check the broker’s contract specification and minimum size first; skip if the smallest permitted trade exceeds the target.
The reference reversal is evaluated only at the daily close. It is not a guaranteed protective stop and may be crossed substantially before execution. A weekend gap, rapid move or missing quote can produce a much larger loss than the threshold distance suggests.
Worked trend and whipsaw examples
Start with a tracked closing low of 1.1000. The upward threshold is 1.1000 × 1.01 = 1.1110. A completed close at that level creates a long signal; suppose the actual later buy fill is also 1.1110 for this fictional example.
The highest subsequent close reaches 1.1400, making the downward reversal threshold 1.1400 × 0.99 = 1.1286. A completed close at 1.1280 triggers a reversal. If the later closing sell fill is 1.1278, the long has earned 168 pips gross. The trade did not enter at the low or exit at the high.
At 0.02 lots, assuming $10 per pip per standard EUR/USD lot, that is $33.60 before commission and financing. If the account charges $7 round trip per standard lot, commission is $0.14. Swap remains an additional signed cash flow determined by the actual holding dates.
Now consider a separate failed breakout from the same 1.1110 entry. The highest close reaches only 1.1140. Its downward threshold becomes 1.10286. A later close at 1.1025 triggers a reversal, with an illustrative exit fill at 1.1023: a loss of 87 pips, or $17.40 at 0.02 lots, before commission and financing.
A succession of such whipsaws can outweigh occasional trend profits. All prices and outcomes above are invented to demonstrate the rule, not selected historical trades or evidence for its profitability.
A protective-stop variant is a separate experiment
For a demo variant, add a broker-side protective stop two times the completed Wilder ATR(14) from the entry. Set it once; do not widen it after entry. This is an extra safety mechanism whose performance is not established by the historical filter study.
Limit units to the smaller of the base notional cap and the units implied by an illustrative 0.25% equity risk budget, allowing for commission and an explicit slippage reserve. The risk calculators can check the pip arithmetic. Stops can execute beyond their requested level, so the risk budget is a planned amount, not a maximum guaranteed loss.
If that stop closes a trade, continue updating a separate copy of the original daily signal state but remain flat. Re-enter only when that signal next changes direction, using the normal entry schedule and a newly calculated stop. This avoids repeatedly buying back into the same stopped signal. Report the base model and this stop variant separately.
Costs and a fair profitability test
Signals based on midpoint closes are convenient for measurement; fills must use tradable bid and ask. Buying uses ask and selling uses bid. If P/L already uses actual fills, do not subtract the same spread a second time. Include commissions, financing, slippage and the additional turnover created by reversals.
For perspective, applying the historical paper’s conservative 0.04% transaction-cost assumption to its 424 recorded British-pound trades over 15 years implies roughly 1.13 percentage points a year of cost drag. Subtracting that from 7.5% gives approximately 6.37%. This is our simple reconstruction using the paper’s trade count, not a separately reported net result, exact compounding calculation or retail forecast. Source inputs: Levich and Thomas, Table 3A and cost discussion.
Run the new spot model on its own chronological data. Freeze x, timestamps, cost assumptions, position rules and any stop overlay before opening the final test sample. If you compare 0.5%, 1% and 2%, retain and report all three; choosing the winner after the test destroys its status as an untouched test.
Report annual net returns, drawdown, longest recovery time, number of trades, average holding time, turnover and concentration of profits in the best few trades. Show sideways periods and trend reversals. Stress doubled spreads and delayed execution. A smoother curve created by omitting financing is not an improvement in the trading method.
Accept the historical decline in profitability as a real possibility for the current model. If the untouched sample fails after realistic costs, the correct conclusion is that this implementation lacks demonstrated profitability. Increasing leverage changes exposure, not the underlying edge.
Tools, comparison and sources
This method needs accurate closing prices and state tracking; it does not require a paid indicator. Start by checking a small signal log manually against the chart. If implementing an EA, verify signal timing, restart recovery, old-position closure and the stop-variant cooldown in demo. The EA installation guide covers the platform steps, not proof that a robot implements these rules.
Compare currency momentum, which ranks multiple currencies, and weekend gap reversal, which takes the opposite side of an extreme opening move.
Primary sources:
- Levich, R.M. and Thomas, L.R. (1991), “The Significance of Technical Trading-Rule Profits in the Foreign Exchange Market: A Bootstrap Approach,” NBER Working Paper 3818, especially Table 3A and the transaction-cost discussion. Subsequently published in Journal of International Money and Finance, 12(5), 451–474 (1993).
- Neely, C.J., Weller, P.A. and Ulrich, J.M. (2009), “The Adaptive Markets Hypothesis: Evidence from the Foreign Exchange Market,” Journal of Financial and Quantitative Analysis, 44(2), 467–488. Published article · Federal Reserve working-paper version.
Reviewed 8 September 2026. Historical profits are documented above; current profitability of this educational specification remains unverified.
