116 lines
8.3 KiB
Markdown
116 lines
8.3 KiB
Markdown
|
|
# CascadeGreepEA (MT5) — FX Majors & Gold
|
||
|
|
|
||
|
|
Educational, not financial advice. This EA implements ATR-based risk management with simple RSI mean-reversion plus optional trend filter. It enforces max open positions across the account and a kill-switch at a configured drawdown.
|
||
|
|
|
||
|
|
## Features
|
||
|
|
- ATR-based stop; optional ATR trailing stop and ATR take profit.
|
||
|
|
- Risk-based position sizing by percent of equity (default 1%).
|
||
|
|
- Max open positions cap (default 5) across the account.
|
||
|
|
- Kill-switch: stop trading (and optionally close EA positions) if equity drawdown from start hits threshold (default 2%).
|
||
|
|
- Signals: RSI(2) extremes on M15 with optional 200 SMA trend filter.
|
||
|
|
- Optional Master EA: dynamic auto-adjust on News, Volatility (ATR regime), and Equity regime (no blocking; scales risk/SL/cooldown instead).
|
||
|
|
|
||
|
|
## Hard Constraints & Red-Team Notes
|
||
|
|
- With $25 equity and 2% risk cap, intended per-trade risk is ~$0.50. On most brokers the minimum lot is 0.01, which risks about $1.00 per 10 pips on EURUSD, often exceeding the 2% limit for typical ATR stops. The EA will skip trades if computed size is below min lot unless you set `InpAllowTradeIfBelowMinLot = true`. This EA enables it by default but caps effective risk when forcing min lot (see Execution Safety).
|
||
|
|
- Achieving +$1,000 in 30 days from $25 with 2% max drawdown is effectively infeasible. Expect skipped trades or constraint violations without a cent account (or 0.001 lot broker) and/or more capital/time/risk.
|
||
|
|
- "No commission/slippage" is not realistic. Spreads still apply, and slippage can occur.
|
||
|
|
|
||
|
|
## Installation (MT5)
|
||
|
|
1. Open MetaTrader 5 → File → Open Data Folder.
|
||
|
|
2. Navigate to `MQL5/Experts/` and create a folder `CascadeGreepEA/` (optional).
|
||
|
|
3. Copy `CascadeGreepEA.mq5` into `MQL5/Experts/CascadeGreepEA/`.
|
||
|
|
4. Open MetaEditor, compile `CascadeGreepEA.mq5` (F7). Fix any broker-specific warnings if shown.
|
||
|
|
5. In MT5, enable AutoTrading (Ctrl+E) and allow algo trading in Tools → Options → Expert Advisors.
|
||
|
|
6. Attach the EA to charts for your chosen instruments (EURUSD, AUDUSD, USDCAD, USDJPY, XAUUSD; verify symbol suffixes). One chart per instrument.
|
||
|
|
|
||
|
|
## Recommended Inputs
|
||
|
|
- Risk Management
|
||
|
|
- `InpRiskPercent`: 1.0–2.0
|
||
|
|
- `InpKillSwitchDDPercent`: 2.0
|
||
|
|
- `InpMaxOpenPositions`: 5
|
||
|
|
- `InpAllowTradeIfBelowMinLot`: true (enabled by default; guarded by caps below)
|
||
|
|
- `InpCloseOnKillSwitch`: true
|
||
|
|
- Signals
|
||
|
|
- `InpSignalTF`: M15 (tunable)
|
||
|
|
- `InpSMAPeriod`: 200, `InpUseTrendFilter`: true
|
||
|
|
- `InpRSIPeriod`: 2, `InpRSILow`: 5, `InpRSIHigh`: 95
|
||
|
|
- Stops/Targets
|
||
|
|
- `InpATRPeriod`: 14
|
||
|
|
- `InpATRMultiplierSL`: 2.0
|
||
|
|
- `InpUseTrailing`: true, `InpTrailATRMultiplier`: 1.0
|
||
|
|
- `InpTP_ATR_Mult`: 0.0 (disabled) or 2.0–3.0
|
||
|
|
|
||
|
|
## Execution Safety Inputs (tune per broker/symbol)
|
||
|
|
- `InpMaxSpreadPoints`: 15–25 for EURUSD-type majors; 30–80 for XAUUSD (points depend on broker digits).
|
||
|
|
- `InpMaxATRPoints`: 0 to disable; else cap extreme volatility days (e.g., 300–800 for majors; higher for XAUUSD per broker digits).
|
||
|
|
- `InpDailyLossLimitPercent`: 2.0 (matches your max-DD tolerance); `InpCloseOnDailyLoss`: true.
|
||
|
|
- `InpMinBarsBetweenTrades`: 3–5 to reduce clustering/overtrading per symbol/TF.
|
||
|
|
- `InpMaxRiskPctWhenForcingMinLot`: 2.0 recommended (non-XAU); `InpMaxRiskPctWhenForcingMinLot_XAU`: 1.0 recommended. If min-lot risk exceeds cap, EA skips the trade.
|
||
|
|
|
||
|
|
### Master Adjustments (Worker EA)
|
||
|
|
- `InpUseMasterAdjust` (bool): if true, the EA reads dynamic factors published by the Master EA via terminal Global Variables.
|
||
|
|
- `InpGVNamespaceEA` (string): namespace prefix to read from (default `CGreep`). Must match the Master EA.
|
||
|
|
- Auto-adjust behavior (no blocking):
|
||
|
|
- Risk percent is scaled by `risk_mult` (0.2–1.0 typical). Only scales down, never up beyond your `InpRiskPercent`.
|
||
|
|
- Stop/take-profit and trailing ATR distances are multiplied by `sl_mult` (wider under stress).
|
||
|
|
- Cooldown bars are multiplied by `cooldown_mult` (longer under stress).
|
||
|
|
- Min-lot risk cap is tightened proportionally to `risk_mult` (cap is never loosened).
|
||
|
|
|
||
|
|
## How it trades
|
||
|
|
- On new bar of `InpSignalTF`, if no position is open for the chart symbol and total open positions < cap:
|
||
|
|
- Long: RSI <= `InpRSILow` and price above SMA(200) if trend filter on.
|
||
|
|
- Short: RSI >= `InpRSIHigh` and price below SMA(200) if trend filter on.
|
||
|
|
- SL set to ATR * `InpATRMultiplierSL` from entry.
|
||
|
|
- Position size chosen so SL loss ≈ `InpRiskPercent` of equity, respecting broker min lot and lot step.
|
||
|
|
- Trailing stop moves by `InpTrailATRMultiplier` ATR behind price.
|
||
|
|
|
||
|
|
## Multi-Symbol & Timeframes Setup
|
||
|
|
- Attach the EA to one chart per symbol you want to trade and set `InpSignalTF` to M15, M30, H1, or D1 as desired.
|
||
|
|
- The EA enforces one open position per symbol across the account; attaching multiple timeframes for the same symbol will not stack exposures.
|
||
|
|
- For unified risk control across all instances, set the same `InpMagic` on every chart so daily-loss/kill-switch closures act on all EA trades.
|
||
|
|
|
||
|
|
## Master EA (Optional) — News/Volatility/Equity Auto-Adjust
|
||
|
|
File: `CascadeGreepMasterEA.mq5`
|
||
|
|
|
||
|
|
Run this EA on a single chart to compute regime-aware adjustments per symbol and publish them as Global Variables. The worker EA (`CascadeGreepEA.mq5`) reads and applies them without blocking trades.
|
||
|
|
|
||
|
|
### How it works
|
||
|
|
- News factor: uses MT5 Economic Calendar to derive a risk multiplier around upcoming/just occurred events for the symbol currencies (e.g., `EURUSD` → EUR and USD). Near high-impact events, `risk_mult` slides toward `InpNewsWeightHigh` (e.g., 0.30). Outside news windows, factor is 1.0.
|
||
|
|
- Volatility factor: compares current ATR to an H1 ATR average and reduces risk under elevated volatility. Optionally allows slight upsize in very low volatility if desired (off by default).
|
||
|
|
- Equity factor: reduces risk after daily soft drawdown; optionally allows a tiny boost after daily profit (off by default).
|
||
|
|
- Composition: final `risk_mult = min(news, vol, equity)`, then derives `sl_mult` and `cooldown_mult` from `(1 - risk_mult)`.
|
||
|
|
|
||
|
|
### Master EA Inputs (key)
|
||
|
|
- `InpSymbols`: semicolon-separated list (e.g., `EURUSD;AUDUSD;USDCAD;USDJPY;XAUUSD`).
|
||
|
|
- `InpGVNamespace`: must match worker `InpGVNamespaceEA` (default `CGreep`).
|
||
|
|
- `InpUpdateSeconds`: publish cadence.
|
||
|
|
- News: `InpNewsWindowBeforeMin`, `InpNewsWindowAfterMin`, weights for low/medium/high.
|
||
|
|
- Volatility: `InpVolTF`, `InpATRPeriod`, `InpATRAvgLookback`, `InpVolMinRiskFactor`, `InpVolAllowUpsize`.
|
||
|
|
- Equity: `InpDailyLossSoftPercent`, `InpEquityMinRiskFactor`, `InpEquityAllowUpsize`, `InpDailyWinBoostCap`.
|
||
|
|
- Composition: `InpMinRiskFactor`, `InpMaxRiskFactor`, `InpSLMultGainOnCut`, `InpCooldownGainOnCut`.
|
||
|
|
|
||
|
|
### Setup Steps
|
||
|
|
1) Compile and attach `CascadeGreepMasterEA.mq5` to one chart (any symbol). Ensure the Economic Calendar is available in your terminal.
|
||
|
|
2) Set `InpSymbols` to match the symbols you trade and keep the namespace as `CGreep` unless you change it in the worker.
|
||
|
|
3) On each traded symbol chart, attach `CascadeGreepEA.mq5` with `InpUseMasterAdjust = true` and `InpGVNamespaceEA = CGreep`.
|
||
|
|
4) Watch the Experts log for lines like `[MASTER] EURUSD rf=0.62 sl_mult=1.76 cd_mult=2.38` and worker logs confirming adjusted cooldown and risk.
|
||
|
|
|
||
|
|
## Kill-switch behavior
|
||
|
|
- If equity drawdown from EA start >= `InpKillSwitchDDPercent`:
|
||
|
|
- Trading is disabled until EA is re-initialized.
|
||
|
|
- If `InpCloseOnKillSwitch = true`, EA attempts to close its own positions.
|
||
|
|
|
||
|
|
## Live-Use Checklist
|
||
|
|
- Broker supports the instruments and symbol names you use (e.g., `XAUUSD` may be suffixed).
|
||
|
|
- Broker min lot and lot step allow sizing within your risk limits, or use a cent account / nano-lot broker.
|
||
|
|
- MarketWatch includes all symbols you plan to trade; charts are open and EA attached.
|
||
|
|
- AutoTrading enabled; account hedging settings compatible with EA.
|
||
|
|
- `InpMagic`: use the same value across charts if you want all EA positions closed together on kill-switch/daily loss.
|
||
|
|
- `InpMaxOpenPositions`: this cap is account-wide (includes manual and other EA trades). If you prefer an EA-only cap, ask to switch to magic-filtered counting.
|
||
|
|
|
||
|
|
## Notes
|
||
|
|
- The EA limits to one position per symbol for safety. Attach to multiple charts for multi-symbol trading. The total open positions cap is enforced across the account.
|
||
|
|
- Logs will explain skipped trades (e.g., size below min lot, position cap reached, kill-switch).
|
||
|
|
|
||
|
|
## Disclaimer
|
||
|
|
This software is provided "as is", for educational purposes only. Trading involves risk, including loss of principal. Use at your own risk.
|