MT5 Expert Advisor · New research

Volatility Squeeze Breakout

Closed-bar volatility squeeze then channel breakout.

USDJPY · H1 · Original trading hours

Source + EX5 + selected preset + checksums. Strategy Tester research build.

Volatility Squeeze Breakout — actual 2019–2026 realized balance
Historical v1.01 realized balance, not open equity, live performance, or v1.02 evidence.

Repaired v1.02 selected-preset research

Version 1.02 is a separate repaired source build. It is not a profitability qualification. The generic EA defaults to mode 0 (time-series momentum). The selected Squeeze preset explicitly sets InputMode=1 and InputVariant=0; load that preset before using these Squeeze-specific observations.

For the selected H1 mode, a closed Bollinger 20/2 bandwidth must be below 75% of its prior 100-bar mean and the same close must break the preceding 20-bar channel. The entry uses the current bid/ask and a 2 ATR(14) stop; it has no fixed target and exits on an opposite channel break. Existing spread, session, daily-equity-brake, sizing and symbol constraints remain active.

The repaired build persists an owned opposite-channel exit intent before each synchronous close request, retries after 30 broker seconds, and blocks new entries while an owned exit remains pending. In the bound 2021 parity window, the known market-closed closes recovered after 64 and 68 seconds. The helper RAM-restore probe is not evidence of a full terminal or process restart.

ScenarioResetsTradesPrice P/LModelled feesNet before swapNative swap*Net with swap*Pooled PFPositive windowsWorst DDTester-endReviewed closes
Base10704$3443.45$572.95$2870.50$-91.66$2778.841.25277/107.3114%53
Stress10704$3418.71$1142.12$2276.59$-91.98$2184.611.19397/107.7327%53

*Historical swap is recorded by the tester but remains unvalidated. Each of the ten coverage-selected intervals starts with USD 10,000; these are independent resets, not a continuous account return or a fresh holdout.

The campaign comprises 20 frozen USDJPY.TFQ1 H1 Model-4 scenarios from July 2018 to September 2026: 18 new repaired-source runs and two explicitly reused repaired 2021 runs. Base uses $3.50 per filled lot-side and 0 ms delay; stress uses $7.00 and 200 ms. Real bid/ask spread was retained. Pooled PF is not a return or an average of segment PFs.

All 20 frozen scenario rows
CaseBroker datesScenarioTradesNet before swapSource ticks
sqc2-01-20180702-20181224-base-v12018-07-02 to 2018-12-24 (exclusive)base43$110.648,965,461
sqc2-01-20180702-20181224-stress-v12018-07-02 to 2018-12-24 (exclusive)stress43$77.888,965,461
sqc2-02-20190103-20190524-base-v12019-01-03 to 2019-05-24 (exclusive)base27$-4.887,833,508
sqc2-02-20190103-20190524-stress-v12019-01-03 to 2019-05-24 (exclusive)stress27$-26.707,833,508
sqc2-03-20190529-20191224-base-v12019-05-29 to 2019-12-24 (exclusive)base59$-580.8112,469,016
sqc2-03-20190529-20191224-stress-v12019-05-29 to 2019-12-24 (exclusive)stress59$-633.1212,469,016
sqc2-04-20200103-20201224-base-v12020-01-03 to 2020-12-24 (exclusive)base76$815.7124,022,410
sqc2-04-20200103-20201224-stress-v12020-01-03 to 2020-12-24 (exclusive)stress76$742.8324,022,410
sqc2-05-20210105-20220101-base-v12021-01-05 to 2022-01-01 (exclusive)base92$269.7314,750,883
sqc2-05-20210105-20220101-stress-v12021-01-05 to 2022-01-01 (exclusive)stress92$182.8714,750,883
sqc2-06-20220101-20230101-base-v12022-01-01 to 2023-01-01 (exclusive)base86$1031.3639,593,910
sqc2-06-20220101-20230101-stress-v12022-01-01 to 2023-01-01 (exclusive)stress86$957.3339,593,910
sqc2-07-20230101-20231222-base-v12023-01-01 to 2023-12-22 (exclusive)base87$274.7242,731,551
sqc2-07-20230101-20231222-stress-v12023-01-01 to 2023-12-22 (exclusive)stress87$208.1142,731,551
sqc2-08-20240103-20241224-base-v12024-01-03 to 2024-12-24 (exclusive)base81$1123.6740,179,794
sqc2-08-20240103-20241224-stress-v12024-01-03 to 2024-12-24 (exclusive)stress81$1057.7940,179,794
sqc2-09-20250104-20251224-base-v12025-01-04 to 2025-12-24 (exclusive)base94$96.5333,349,326
sqc2-09-20250104-20251224-stress-v12025-01-04 to 2025-12-24 (exclusive)stress94$27.4833,349,326
sqc2-10-20260106-20260918-base-v12026-01-06 to 2026-09-18 (exclusive)base59$-266.1717,917,413
sqc2-10-20260106-20260918-stress-v12026-01-06 to 2026-09-18 (exclusive)stress59$-317.8817,917,413

Source/native count reconciliation passed for all 20 scenarios. Across both cost scenarios, 32 source ticks in final broker seconds are excluded by the documented native tester end boundary; these are not missing source files. The sanitized results contain per-case source/native counts and omitted-final-second counts. Coverage-selected windows exclude known larger data gaps; at least 800 cached H1 prehistory bars were available, which is not an independent seed-quality audit.

Rows use broker dates; approved QDD source partitions are UTC and the broker clock uses UTC+2/UTC+3 under the documented US DST rule. Counts bind this campaign’s dataset, but do not establish universal clock correctness, indicator seeds, or complete restart and partial-fill paths.

The public generic EA uses RoundTripCommissionPerLot only in position sizing; it does not debit the wrapper’s modelled commission withdrawals. Cost-campaign results in this section therefore belong to the instrumented wrapper. The generic EX5 has the separately bounded parity proof described here. Historical v1.01 reports and charts remain explicitly labelled.

The v1.02 generic candidate was separately compared with a zero-fee wrapper for one 2021 window; full report parity established 92 entries and 92 ordinary exits before wrapper CSV ownership mapping was used. It does not prove all inputs, partial fills, historical financing, complete risk paths, indicator seeds, a full restart, or restart recovery beyond the helper RAM-restore probe.

The v1.02 ZIP contains the selected source and EX5, README, provenance, and checksums.sha256. Its publication-time ZIP hash is 302826b20c8f6e82679bd48bf578efaa9e8884dcabba0c4e68e5716bc2b4b9cf; the tested generic candidate EX5 SHA-256 is eca60e8e788404162b8debf18b40cd965cc17cc1889120a66d3c0da7e3554528.

Download repaired v1.02 selected-preset package · Sanitized research results

Strategy relationship and historical v1.01 evidence

Reviewed 23 September 2026. Separate legacy variant; profitability not established.

The old full report contains 652 trades but only 9% real ticks; its positive retrospective figures do not qualify profitability on the approved dataset. The former Promising designation remains withdrawn. The repaired v1.02 campaign above now reports approved-data cost scenarios; historical financing and broader validation remain incomplete.

Which rules and EA belong together?

Selected mode 1/variant 0 uses H 1 Bollinger 20/2. The latest closed relative bandwidth must be below 75% of the prior 100-bar mean, and the same close must break the preceding 20-bar channel. Stop 2 ATR 14; no fixed target; exit on an opposite 20-bar channel break. No time exit applies to this mode.

Library 11 uses a new 120-bar bandwidth minimum, a later breakout within 5 bars with EMA 50 confirmation, a 2 R target and separate middle-band/time exits. The legacy same-bar channel rule is a different implementation.

Library strategy 11: Bollinger Squeeze Breakout has its own EA download and evidence. Use the download on this legacy page only with the legacy rules and preset described here.

The older reports below use incomplete broker ticks and fallback data. Their old classifications and returns are historical observations, not validation on the ten-year approved bid/ask release. A profitable sample, zero-trade report or functional diagnostic is not an after-cost profitability qualification.

Strategy and EA mapping · Versioned diagnostic status

Historical v1.01: February 2024 native functionality observation

Exact historical v1.01 public binary; functionality only, not profitability. The unchanged USDJPY.TFQ1 H1 preset ran from 1 February 2024 inclusive to 1 March exclusive at broker UTC+2 with USD 10,000, 1:100 leverage, real-tick Model 4, and zero added commission and delay. It processed 3,136,638 ticks and 504 chart bars.

Native ledger: 9 entry deals, 9 exit deals, 0 partial exit deals and 0 tester-end exit deals. First entry: 2024.02.05 18:00:00 broker; buy in; 0.09 lots at 148.880 (TFPriceResearch). First exit: 2024.02.06 03:47:43 broker; sell out; 0.09 lots at 148.483 (sl 148.483). Native exit-comment categories: other_out_deals=5; sl=4; tester_forced=0; tp=0.

Native cash before any extra-cost scenario: price P/L 14.65, commission 0.00, recorded swap 6.88; balance 10000.00 to 10021.53. Historical swap validity is unverified. These observed SL/TP/comment paths do not prove every source branch, stop path, sizing path, restart behavior, or durable profitability.

Tester boundary: The native tester omitted 2 approved source ticks in the final broker second of 29 February 2024; All native cases exactly match source count with the final broker second excluded. This is a bounded tester boundary discrepancy, not a missing source file; no claim of complete inclusion of that second.

Indicator history was available to the tester, but warmup quality and every seed path were not independently audited.

Older broker reports below remain historical and use their own data assumptions. This approved-data month is a separate, hash-bound functional diagnostic.

Historical v1.01 · selected configuration

Older incomplete-tick sample passed its retrospective gates: rolling-year EUR +564.19, PF 1.44; full-period EUR +4996.33, PF 1.40. Incomplete real ticks remain a limitation; this is not live or future performance.

Strategy rules

Current v1.02 selected-preset rules

  1. Variant 0 uses H1 Bollinger bands with period 20 and 2 standard deviations. Current closed-bar bandwidth must be below 0.75 times the mean of the preceding 100 closed bandwidths.
  2. The same closed H1 bar must close beyond the preceding 20-bar high/low channel. The entry is attempted on the next available tick after the H1 close: long at ask, short at bid. Its stop distance is the greater of 2.0 × the latest closed ATR14 and the symbol’s minimum stop distance plus two points, normalized to symbol digits.
  3. On a new H1 bar, an opposite closed-bar channel break arms an owned exit. The v1.02 build persists that intent before sending a synchronous close request and before retries. After rejection, it retries on the first quote at or after 30 broker seconds; it requires a successful retcode and confirmed position absence. Pending exits block new entries, and the resolved H1 bar is consumed. No fixed profit target or time exit applies.

The selected configuration uses USDJPY / H1, variant s0. All indicator and session values used by this build are listed in the preset editor.

Historical evidence

Historical v1.01 backtest excerpts

12-month net · EUR+564.19After commission & swap
Profit factor1.4412-month review
Equity drawdown3.46%12-month review
Trades8012-month review
Volatility Squeeze Breakout realized balance, 2025.09.01 to 2026.09.01; net EUR +564.19
2025.09.01 → 2026.09.01 (end exclusive). Starting balance EUR 10,000. 66% real ticks. Available IC Markets real ticks with MT5 fallback. Realized balance includes commissions and swap; floating equity is in the original MT5 report. Open original MT5 report and equity graph.
Volatility Squeeze Breakout realized balance, 2019.01.01 to 2026.09.21; net EUR +4,996.33
2019.01.01 → 2026.09.21 (end exclusive). Starting balance EUR 10,000. 9% real ticks. Available IC Markets real ticks with MT5 fallback. Realized balance includes commissions and swap; floating equity is in the original MT5 report. Open original MT5 report and equity graph.
Separate native MT5 runs. EUR 10,000 each; 1:30 leverage; 100 ms execution delay. End dates are exclusive.
Period / modelNet EURPFTradesEquity DDNative report
Development
2019.01.01 → 2024.01.01
M1 OHLC screening
+3,154.711.424247.81%MT5 report
Validation
2024.01.01 → 2025.01.01
M1 OHLC screening
+1,167.541.97813.40%MT5 report
12-month review
2025.09.01 → 2026.09.01
Real-tick mode + fallback
+564.191.44803.46%MT5 report
Long review
2019.01.01 → 2026.09.21
Real-tick mode + fallback
+4,996.331.406527.85%MT5 report
Your next test

Adjust the strategy preset

Adjust the actual MT5 inputs below, then download a .set file. Load it through Strategy Tester → Inputs → Load. The EA ZIP includes source code and the compiled file.

Selected tested preset loaded.

Mode · 2 inputs
Risk · 6 inputs
Research session controls · 6 inputs

Changes apply to your downloaded file. They do not change the published tests.

Preview the .set file

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 selected v1.02 research

  1. Download the repaired v1.02 ZIP and copy TFPriceResearch_Sessions.ex5 to MQL5/Experts/TradeForex. For compilation keep its MQ5 and both MQH headers together; the standard Trade library is supplied by MT5.
  2. Use Strategy Tester on a demo account. Select USDJPY.TFQ1 and H1 after importing the approved data. Source quotes are UTC; the custom symbol uses broker UTC+2/+3 under US DST. Ordinary broker USDJPY is different history and cannot reproduce the bound dataset.
  3. Load selected-test.set: InputMode=1, InputVariant=0, RiskPercent=0.25, original session. The generic default InputMode=0 selects another strategy. Do not rely on defaults.
  4. Choose Every tick based on real ticks, USD 10,000 and 1:100 leverage. Use the exclusive-ended dates in the scenario table. These settings are outside the preset. For the exact generic parity case use 2021-01-05 to 2022-01-01, zero added fees and 0 ms delay.
  5. The public generic does not automatically apply the instrumented wrapper’s commission debits. A sizing commission estimate is not a charged tester fee. Review actual source coverage, costs, logs, fills and financing before comparing results.

The persistent exit helper is tested for selected close rejections and helper memory reload. Full terminal restart, daily-brake persistence and partial-fill behavior are not established. Use the package README and provenance/checksums to identify this exact build.

Historical v1.01 reproduction settings

Older reports below used EUR 10,000, 1:30 leverage, 100 ms delay and available broker real ticks with fallback, for 2025-09-01 to 2026-09-01 or 2019-01-01 to 2026-09-21. Those historical settings and outputs do not describe the repaired v1.02 campaign.

General MT5 installation guide; this package’s tester-only restriction takes precedence over normal chart activation.

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.
  • For historical v1.01 reports, available native ticks and fallback were used. 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.

Historical v1.01 arithmetic stress added 25% of the absolute commission and swap amounts: 12-month stressed net EUR +511.15; long-period stressed net EUR +4,470.17. This is not a full spread or slippage stress.

Files and reproducibility

The current v1.02 ZIP includes the frozen MQ5, EX5, both required MQH headers, selected-test.set, README.md, sanitized provenance.json and checksums.sha256. Current ZIP and EX5 SHA-256 values appear with the repaired research above. Load the selected preset to run Squeeze mode 1.

Historical v1.01 package and reports

The original source package is preserved. ZIP SHA-256: 4370f57ba97c01094027989d44e3476d57483ee1e05e6335b0f58112f2d07ec9. Original EX5 SHA-256: dde5445864f4d1abfe84c60bdfdde05c0de4f13f595d09a454eae78f8a2ff01f.

Historical v1.01 package · Historical campaign evidence · Historical frozen selection record

Selection criteria and all strategy categories

Follow on Facebook