MT5 Expert Advisor · New research

Currency Carry Risk

Policy-rate carry CSV portfolio with margin, risk and calendar filters.

EURUSD · H1 · Original trading hours

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

Currency carry risk Expert Advisor
Concept illustration; the measured backtest graphs are below.

Current EA identity and test status

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

Approved-tick February 2024 functionality fixture: four 0.01-lot entries with USD 25000, then four explicit wrapper-cleanup exits. The USD 10000 case correctly rejected minimum-lot risk. Natural exits and historical performance are not validated. The EA does not validate the CSV retrieved_utc/source fields; external vintage evidence remains necessary.

Which rules and EA belong together?

This EA ranks seven currencies by supplied monthly carry_z scores and separately requires at least a 1-percentage-point policy-rate gap between its two long and two short currencies. It trades mapped spot pairs, with 4 ATR 20 daily emergency stops,0.15% equity risk per leg and 0.60% maximum portfolio risk. The configured CSV needs complete historical monthly vintages; the default release lag is 10 days and maximum age 50 days.

This is a policy-rate/score spot-basket variant. Library 29 ranks observed spot/forward quotes; the two data contracts are not interchangeable. Neither trades an actual forward contract in the current EA implementation.

Library strategy 29: Monthly Currency Carry 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

New research · selected configuration

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 net is not positive; full period profit factor below gate; full period has too few trades; full period loses under 25% commission/swap stress; historical signal vintages unavailable.

Strategy rules

How this strategy works

  1. Read dated currency scores and policy rates from the configured common-files CSV. Apply a 10-day release lag and reject data older than 50 days.
  2. Rank a basket of two currencies on each side and require at least a 1 percentage-point policy-rate gap. Monthly changes, missing signals and execution gates control reallocation.
  3. Inputs limit risk to 0.15% per leg and 0.60% in aggregate, with 4 × D1 ATR20 emergency stops and a 10% margin-use ceiling. Daily, weekly, monthly and peak-drawdown limits apply.
  4. Historical signal vintages are unavailable for the selected period. The current snapshot is not a valid historical substitute; the download cannot substantiate a carry profitability claim.

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

Historical evidence

Measured backtests

12-month net · EUR+0.00After commission & swap
Profit factor0.0012-month review
Equity drawdown0.00%12-month review
Trades012-month review
Currency Carry Risk realized balance, 2025.09.01 to 2026.09.01; net EUR +0.00
2025.09.01 → 2026.09.01 (end exclusive). Starting balance EUR 10,000. 41% 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.
Currency Carry Risk realized balance, 2019.01.01 to 2026.09.21; net EUR +0.00
2019.01.01 → 2026.09.21 (end exclusive). Starting balance EUR 10,000. 6% 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
+0.000.0000.00%MT5 report
Validation
2024.01.01 → 2025.01.01
M1 OHLC screening
+0.000.0000.00%MT5 report
12-month review
2025.09.01 → 2026.09.01
Real-tick mode + fallback
+0.000.0000.00%MT5 report
Long review
2019.01.01 → 2026.09.21
Real-tick mode + fallback
+0.000.0000.00%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.

Data · 6 inputs
Risk · 10 inputs
Execution · 10 inputs
Calendar · 4 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 test

  1. Download and extract the ZIP. Copy TF_Currency_Carry_Risk_Assistant_Sessions.ex5 into MQL5/Experts/TradeForex in the MT5 data folder. Keep MQ5 and all MQH headers together if compiling.
  2. Open Strategy Tester, select the EA, EURUSD and H1. The build rejects normal chart execution.
  3. Load the included selected-test.set or a preset downloaded above. Symbol, chart timeframe, dates, deposit and tick model are tester settings outside the .set file.
  4. 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.
  5. 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

  • Historical point-in-time rate vintages are unavailable.
  • CSV and calendar availability are required.
  • 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.
  • Available native ticks and fallback are accepted. Missing ticks, historical spread paths and cost assumptions limit confidence; profitable history does not guarantee future profitability.
  • Point-in-time historical carry signal vintages are unavailable. Zero or sparse trades do not establish profitability; this package is incomplete for a historical carry claim.

Additional cost stress adds 25% of the absolute commission and swap amounts: 12-month stressed net EUR +0.00; long-period stressed net EUR +0.00. 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-2565f110963e71719b08b4d1cd93030cde191a3d59a66d1cb677dbc472e4de6fdbc

Tested EX5 SHA-256cfc509d4f982e80324532a85b41586e8dee5313e6d145412905985191ada0b8a

Selection criteria and all strategy categories · Frozen selection record

Follow on Facebook