Bollinger RSI Range
Bollinger-band reversion with RSI and ADX filters.
EURUSD · H1 · London-New York market overlap; entries only
Source + EX5 + selected preset + checksums. Strategy Tester research build.

Current EA identity and evidence status
Sparse cost evidence; profitability is not established.
Twenty frozen EURUSD H1 cost cases contain one underlying October 2020 long take-profit in each cost scenario and nine inactive windows per scenario. They are not 20 independent trades. Base/stress net before unverified funding is USD 32.31 / USD 31.77; native historical swap is displayed separately and remains unverified.
Five wrapper fixtures covered no-order, ordinary-close and tester-end paths. One October 2020 exact-public-EX5 run matched the zero-fee wrapper ledger for that window only. The multi-year campaign uses a tester-only cost wrapper, so it does not establish full public-EX5 equivalence, complete risk, restart, indicator-seed, partial-fill, or real-account behavior.
Library strategy 16: Bollinger-Band Range Mean Reversion has a different executable and evidence record.
Frozen EURUSD H1 cost-research campaign
Only one underlying historical trade: profitability is not established. The same October 2020 long take-profit appears once in each cost scenario; nine of ten segments per scenario have no trades. Replaying that event in different scenarios or fixtures does not create independent trading evidence. Twenty frozen cases comprise ten independent USD 10,000 resets over documented EURUSD coverage windows from 2018 to 2026. Each window was run with USD 3.50 per lot-side and no added delay, and with USD 7.00 per lot-side and 200 ms delay. The selected 0.25% risk and session-2 configuration were fixed; there was no optimisation or fresh holdout.
The new campaign used genuine Dukascopy bid/ask ticks from the approved shared release, tested as EURUSD.TFQ1. Ten eligible windows were selected by documented data coverage, not returns; gaps outside those windows were excluded. Stored timestamps were already broker time (UTC+2 winter, US daylight-saving rule), so no second timezone conversion was applied. Each reset used USD 10,000 and 1:100 leverage. These segmented tests are not a continuous ten-year account history.
The public ZIP and preset remain unchanged. It contains the original tester-only EA; the separately audited cost wrapper supplied the modelled commission withdrawals for this campaign. The historical broker-data instructions below therefore do not reproduce these added fee scenarios by themselves.
Five accounting fixtures checked no-order, ordinary-close and tester-end behavior. A separate October 2020 run of the exact public EX5 matched the zero-fee wrapper trade ledger in that one window. This is limited behavioral evidence, not proof of complete source/binary equivalence. The campaign itself uses a tester-only cost wrapper, not the downloadable public EX5. This does not prove complete risk, restart, or indicator-seed behavior.
Bollinger/RSI/ADX filters can produce very few eligible entries. A zero-entry segment or a loss is retained as observed; neither is attributed to a single cause here. Price P/L, modelled fee withdrawals, and native tester swap are shown separately. Historical swap remains unverified.
| Scenario | Fee/lot-side | Delay ms | Price P/L | Declared fees | Net before swap | Native swap | Net with swap | Pooled PF | Worst segment equity DD % | Tester-end closes | Rejected entries |
|---|---|---|---|---|---|---|---|---|---|---|---|
| base | 3.50 | 0 | 32.94 | 0.63 | 32.31 | -0.75 | 31.56 | not meaningful | 0.1950 | 0 | 0 |
| stress | 7.00 | 200 | 33.03 | 1.26 | 31.77 | -0.75 | 31.02 | not meaningful | 0.1950 | 0 | 0 |
PF would be pooled across closed positions after declared fees and before the unverified native-swap field; here it is not meaningful because each scenario has one winning close and no losses. The same October 2020 long take-profit is the sole closed trade in each scenario, so the two scenario rows are cost variants, not two independent market observations. Resets are separate, so no continuous equity curve or compounded return is implied.
All 20 fixed segment observations
| Case | Broker dates | Scenario | Fee/lot-side | Delay ms | Positions | Net before swap | Native swap | Net with swap | Tester-end closes | Rejected entries |
|---|---|---|---|---|---|---|---|---|---|---|
| bollinger-cost-eurusd-20180702-20181224-base-v1 | 2018-07-02 to 2018-12-24 (exclusive) | base | 3.50 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0 | 0 |
| bollinger-cost-eurusd-20180702-20181224-stress-v1 | 2018-07-02 to 2018-12-24 (exclusive) | stress | 7.00 | 200 | 0 | 0.00 | 0.00 | 0.00 | 0 | 0 |
| bollinger-cost-eurusd-20190104-20190524-base-v1 | 2019-01-04 to 2019-05-24 (exclusive) | base | 3.50 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0 | 0 |
| bollinger-cost-eurusd-20190104-20190524-stress-v1 | 2019-01-04 to 2019-05-24 (exclusive) | stress | 7.00 | 200 | 0 | 0.00 | 0.00 | 0.00 | 0 | 0 |
| bollinger-cost-eurusd-20190529-20191224-base-v1 | 2019-05-29 to 2019-12-24 (exclusive) | base | 3.50 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0 | 0 |
| bollinger-cost-eurusd-20190529-20191224-stress-v1 | 2019-05-29 to 2019-12-24 (exclusive) | stress | 7.00 | 200 | 0 | 0.00 | 0.00 | 0.00 | 0 | 0 |
| bollinger-cost-eurusd-20200104-20201224-base-v1 | 2020-01-04 to 2020-12-24 (exclusive) | base | 3.50 | 0 | 1 | 32.31 | -0.75 | 31.56 | 0 | 0 |
| bollinger-cost-eurusd-20200104-20201224-stress-v1 | 2020-01-04 to 2020-12-24 (exclusive) | stress | 7.00 | 200 | 1 | 31.77 | -0.75 | 31.02 | 0 | 0 |
| bollinger-cost-eurusd-20210105-20220101-base-v1 | 2021-01-05 to 2022-01-01 (exclusive) | base | 3.50 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0 | 0 |
| bollinger-cost-eurusd-20210105-20220101-stress-v1 | 2021-01-05 to 2022-01-01 (exclusive) | stress | 7.00 | 200 | 0 | 0.00 | 0.00 | 0.00 | 0 | 0 |
| bollinger-cost-eurusd-20220101-20230101-base-v1 | 2022-01-01 to 2023-01-01 (exclusive) | base | 3.50 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0 | 0 |
| bollinger-cost-eurusd-20220101-20230101-stress-v1 | 2022-01-01 to 2023-01-01 (exclusive) | stress | 7.00 | 200 | 0 | 0.00 | 0.00 | 0.00 | 0 | 0 |
| bollinger-cost-eurusd-20230101-20231222-base-v1 | 2023-01-01 to 2023-12-22 (exclusive) | base | 3.50 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0 | 0 |
| bollinger-cost-eurusd-20230101-20231222-stress-v1 | 2023-01-01 to 2023-12-22 (exclusive) | stress | 7.00 | 200 | 0 | 0.00 | 0.00 | 0.00 | 0 | 0 |
| bollinger-cost-eurusd-20240103-20241224-base-v1 | 2024-01-03 to 2024-12-24 (exclusive) | base | 3.50 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0 | 0 |
| bollinger-cost-eurusd-20240103-20241224-stress-v1 | 2024-01-03 to 2024-12-24 (exclusive) | stress | 7.00 | 200 | 0 | 0.00 | 0.00 | 0.00 | 0 | 0 |
| bollinger-cost-eurusd-20250103-20251224-base-v1 | 2025-01-03 to 2025-12-24 (exclusive) | base | 3.50 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0 | 0 |
| bollinger-cost-eurusd-20250103-20251224-stress-v1 | 2025-01-03 to 2025-12-24 (exclusive) | stress | 7.00 | 200 | 0 | 0.00 | 0.00 | 0.00 | 0 | 0 |
| bollinger-cost-eurusd-20260106-20260918-base-v1 | 2026-01-06 to 2026-09-18 (exclusive) | base | 3.50 | 0 | 0 | 0.00 | 0.00 | 0.00 | 0 | 0 |
| bollinger-cost-eurusd-20260106-20260918-stress-v1 | 2026-01-06 to 2026-09-18 (exclusive) | stress | 7.00 | 200 | 0 | 0.00 | 0.00 | 0.00 | 0 | 0 |
Download the 20 segment results and scenario totals (JSON).
These retrospective observations do not establish future profitability, historical funding accuracy, full risk behavior, restart recovery, partial-fill behavior, or real-account execution.
Research result: did not pass both development and validation; rolling year net is not positive; rolling year profit factor below gate; rolling year has too few trades; rolling year loses under 25% commission/swap stress; full period has too few trades.
How this strategy works
- On completed H1 bars, use 20-period Bollinger bands at 2 standard deviations, RSI14 and ADX14 ≤ 22.
- Buy when the earlier bar closed below the lower band with RSI below 30, then the latest bar closes back above the lower band. Sell the mirrored upper-band / RSI-above-70 pattern.
- Set an initial stop at 1.8 × ATR14, respecting the broker minimum. The target is the closed-bar middle band; skip entries with less than 1.2 times stop distance available to that target.
- Selected RiskPercent is 0.25%. The London–New York overlap entry filter is combined with the original 06:00–20:00 broker-hour window and a 1.5-pip spread ceiling.
The selected configuration uses EURUSD / H1, variant s1. All indicator and session values used by this build are listed in the preset editor.
Historical broker-data backtests


| Period / model | Net EUR | PF | Trades | Equity DD | Native report |
|---|---|---|---|---|---|
| Development 2019.01.01 → 2024.01.01 M1 OHLC screening | +32.71 | 91.86 | 1 | 0.20% | MT5 report |
| Validation 2024.01.01 → 2025.01.01 M1 OHLC screening | +0.00 | 0.00 | 0 | 0.00% | MT5 report |
| 12-month review 2025.09.01 → 2026.09.01 Real-tick mode + fallback | +0.00 | 0.00 | 0 | 0.00% | MT5 report |
| Long review 2019.01.01 → 2026.09.21 Real-tick mode + fallback | +32.71 | 91.86 | 1 | 0.20% | MT5 report |
Adjust the strategy preset
MT5 also validates parameter combinations and may reject incompatible inputs. Session modes use local London, New York and Tokyo hours. Broker-time conversion uses the configured winter UTC offset and DST rule. A session filter limits eligible entries; it does not change the underlying strategy signal or create trades where none qualify. Policy 2 also closes before the chosen session ends.
Install and reproduce the historical broker-data setup
- Download and extract the ZIP. Copy
TF_Bollinger_RSI_Range_Assistant_Sessions.ex5intoMQL5/Experts/TradeForexin the MT5 data folder. Keep MQ5 and all MQH headers together if compiling. - Open Strategy Tester, select the EA, EURUSD and H1. The build rejects normal chart execution.
- Load the included
selected-test.setor a preset downloaded above. Symbol, chart timeframe, dates, deposit and tick model are tester settings outside the .set file. - For confirmation choose “Every tick based on real ticks”, EUR 10,000, 1:30 leverage and 100 ms delay. Use 2025.09.01–2026.09.01 or 2019.01.01–2026.09.21; retain the generated report and Journal.
- Allow MT5 to obtain the available broker history. Compare actual date coverage, costs, trade count and history quality; a later download or different broker server can change the result.
Read the general MT5 installation guide; this package’s tester-only restriction takes precedence over normal chart-activation steps.
What these results can establish
- Tested values are research settings, not a profitability claim.
- Broker history, spread, swaps and fills can change outcomes.
- These are retrospectively selected historical tests. Development, validation and review periods overlap previously inspected history; this is not a fresh independent holdout.
- The balance plots show realized outcomes. Equity drawdown includes floating positions and must not be inferred from the balance line alone.
- The older broker-data reports below used available native ticks and fallback. Missing ticks, historical spread paths and cost assumptions limit confidence; profitable history does not guarantee future profitability.
- RiskPercent is an entry-sizing estimate, not a hard loss cap. Costs, gaps and slippage can exceed that estimate; some legacy sizing excludes transaction costs.
The older broker-data arithmetic stress added 25% of the absolute commission and swap amounts: 12-month stressed net EUR +0.00; long-period stressed net EUR +32.34. This is not a full spread or slippage stress.
Files and reproducibility
Each ZIP includes MQ5 source, required headers, EX5, README, selected-test.set, selection.json and SHA256SUMS.txt. Compiled builds and measured results are unchanged by this documentation update.
ZIP SHA-256de98e4d95f615e93fbbcec235db0d09cff4c4a92f96034fbdde56b083139bc94
Tested EX5 SHA-2562015e8b3b18f468ce611303dd1196743ddb2908eb7309fc42e37d99ac8a92272
Selection criteria and all strategy categories · Frozen selection record
