Product Links
INFO
Working Specifications:
- Symbols: XAUUSD, GOLD, XAUEUR (multi-symbol support)
- Timeframe: H1 (1-hour)
- Minimum Deposit: $500 for Low Risk (recommended $1000+ for Medium, $2000+ for High)
- Leverage: 1:100 or higher recommended
- Account Type: Any (Hedging account preferred for MT5)
- Broker: ECN broker with tight gold spreads recommended
- VPS: Highly recommended for uninterrupted 24/5 operation
Core Features:
- 4-indicator confluence entry (SMA + RSI + Cycle + Price Action)
- Three risk modes: Low (single order), Medium (grid), High (aggressive grid)
- Dynamic grid system with linear lot progression
- Multi-symbol support (XAUUSD, GOLD, XAUEUR simultaneously)
- Live News Filter with economic calendar integration
- Per-weekday trading hour controls
- Optional trailing stop, recovery mode, and weekly pivot levels
- Real-time on-chart dashboard with signal breakdown
- 3 pre-optimized preset files included
STEP 1 - INSTALLATION
For MT5:
- Purchase Bullion Horizon EA from the MQL5 Market
- The EA installs automatically into your MetaTrader 5 terminal
- Open the Navigator panel (Ctrl+N)
- Find "Bullion Horizon EA" under Expert Advisors > Market
- Drag it onto any Gold chart (XAUUSD, GOLD, or XAUEUR) set to H1 timeframe
For MT4:
- Purchase Bullion Horizon EA from the MQL5 Market
- The EA installs automatically into your MetaTrader 4 terminal
- Open the Navigator panel (Ctrl+N)
- Find "Bullion Horizon EA" under Expert Advisors > Market
- Drag it onto any Gold chart (XAUUSD, GOLD, or XAUEUR) set to H1 timeframe
Important: Enable WebRequest for News Filter
The News Filter requires internet access to fetch the economic calendar.
MT4: Go to Tools > Options > Expert Advisors > Check "Allow WebRequest for listed URL" and add:
https://nfs.faireconomy.media
MT5: Go to Tools > Options > Expert Advisors > Check "Allow WebRequest for listed URL" and add:
https://nfs.faireconomy.media
Also make sure "Allow algorithmic trading" is enabled.
Load a Preset
In the EA Inputs tab, click Load and select a preset matching your risk tolerance:
- BH_Conservative_LowRisk.set - Single order mode, lowest exposure
- BH_Balanced_MediumRisk.set - Grid mode, balanced risk/reward
- BH_Aggressive_HighRisk.set - Extended grid, maximum opportunity
Click OK to start.
STEP 2 - RISK MODE SELECTION
Bullion Horizon EA offers three distinct risk modes controlled by the SelectRisk parameter:
Low Risk (SelectRisk = Low)
- Opens a single trade per confluence signal
- Closes all existing orders before opening a new position
- Uses fixed TakeProfit and StopLoss distances (default 500 points each)
- Optional Recovery Mode with martingale-style lot multiplication after losses
- Recovery Multiplier: 1.59x per failed cycle, max 3 cycles
Best for: Conservative traders, smaller accounts ($500+). Defined risk per trade with no grid exposure.
Medium Risk (SelectRisk = Medium) — DEFAULT
- Opens an initial trade on confluence signal, then adds grid orders as price moves against the position
- Grid expands up to OrdersMax (default 8) orders
- Each grid level adds LotsStep (default 0.01) to the lot size
- Closes the entire basket when combined profit reaches OrdersProfit ($100 default)
- Optional fixed SL/TP per individual order via FixedTotalSLTP
Best for: Balanced approach with grid recovery capability. Recommended $1,000+ account.
High Risk (SelectRisk = High)
- Same grid logic as Medium but with more aggressive defaults
- Up to 15 orders, tighter spacing (50 points), faster lot stepping
- Higher profit potential with proportionally higher risk
Best for: Experienced grid traders with $2,000+ accounts who understand martingale-style exposure.
STEP 3 - LOT SIZE CONFIGURATION
Risk-Based Lot Sizing (Default)
When FixedLot = 0 (default), the EA calculates lot size based on your account equity and the RiskPercent parameter:
- RiskPercent = 2 (default) means 2% of equity is risked per trade
- The EA uses the StopLoss distance to calculate appropriate lot size
- Only applies to Low Risk mode and Medium/High with FixedTotalSLTP enabled
Fixed Lot Mode
Set FixedLot to a specific value (e.g., 0.05) to use the same lot size regardless of account size.
Grid Lot Progression (Medium/High Risk)
In grid mode, each subsequent order increases the lot size by LotsStep:
| Grid Level | Calculation (Lots=0.01, LotsStep=0.01) | Lot Size |
|---|---|---|
| Level 1 | 0.01 + (0 × 0.01) | 0.01 |
| Level 2 | 0.01 + (1 × 0.01) | 0.02 |
| Level 3 | 0.01 + (2 × 0.01) | 0.03 |
| Level 4 | 0.01 + (3 × 0.01) | 0.04 |
| Level 5 | 0.01 + (4 × 0.01) | 0.05 |
| Level 6 | 0.01 + (5 × 0.01) | 0.06 |
| Level 7 | 0.01 + (6 × 0.01) | 0.07 |
| Level 8 | 0.01 + (7 × 0.01) | 0.08 |
All lots are normalized to your broker's lot step constraints.
Recovery Mode (Low Risk Only)
When RecoveryMode = true, the EA increases lot size after a losing trade:
| Cycle | Calculation (Multiplier=1.59) | Example (Base=0.01) |
|---|---|---|
| Cycle 0 | Base lot | 0.01 |
| Cycle 1 | 0.01 × 1.59 | 0.02 |
| Cycle 2 | 0.01 × 1.59² | 0.03 |
| Cycle 3 | 0.01 × 1.59³ | 0.04 |
Recovery resets to Cycle 0 after a profitable trade. Maximum cycles capped by RecoveryMaxCycle (default 3).
STEP 4 - GRID SETTINGS
These parameters control how the grid is built and expanded (Medium/High Risk only):
| Parameter | Default | Description |
|---|---|---|
| OrdersMax | 8 | Maximum number of grid orders per side |
| OrdersStep | 500.0 | Points between grid levels |
| OrdersProfit | 100.0 | Basket profit target in $ (closes all when reached) |
| Lots | 0.01 | Base lot size for the first order |
| LotsStep | 0.01 | Lot size increase per grid level |
| FixedTotalSLTP | false | Place fixed SL/TP on each individual order |
| Pending | false | Use pending stop orders instead of market orders |
Grid Expansion Logic
BUY Grid: First order opens on a buy signal. Additional orders are placed when price drops OrdersStep points below the last buy order's entry price.
SELL Grid: First order opens on a sell signal. Additional orders are placed when price rises OrdersStep points above the last sell order's entry price.
Basket Close
When the combined floating profit of all buy orders (or all sell orders) reaches the OrdersProfit target, the entire side is closed. The StopAtProfit parameter (default 0) can trigger an earlier close at a percentage of OrdersProfit.
STEP 5 - TAKE PROFIT & STOP LOSS
Per-Order SL/TP (FixedTotalSLTP = true)
When enabled, each individual order receives:
| Parameter | Default | Description |
|---|---|---|
| TakeProfit | 500.0 | Take profit distance in points |
| StopLoss | 500.0 | Stop loss distance in points |
These are placed directly on the order via the broker server.
Basket Stop Loss (StopLossPercent)
| Parameter | Default | Description |
|---|---|---|
| StopLossPercent | 100.0 | Close all orders of one side when loss exceeds this % of balance |
Set to a value less than 100 to activate (e.g., 30 = close basket if loss exceeds 30% of balance). Set to 100 to disable.
Independent for buy and sell sides - each side is evaluated separately.
Stop at Profit
| Parameter | Default | Description |
|---|---|---|
| StopAtProfit | 0.0 | Close basket at this % of OrdersProfit (0 = disabled) |
Example: OrdersProfit=100, StopAtProfit=50 means close when basket profit reaches $50.
Disable After Loss
| Parameter | Default | Description |
|---|---|---|
| DisableAfterLoss | false | Completely stop the EA after a StopLossPercent event |
When enabled, the EA halts after a loss event. You must remove and reattach the EA to resume.
STEP 6 - TRAILING STOP
The trailing stop activates after individual orders reach a minimum profit threshold.
| Parameter | Default | Description |
|---|---|---|
| TrailingStopStart | 0.0 | Points of profit before trailing activates (0 = disabled) |
| TrailingStopStep | 0.0 | Trailing step distance in points |
How it works: Once an individual order's profit exceeds TrailingStopStart, the EA sets a stop loss at that distance behind the current price. The SL only moves in the profitable direction and advances in TrailingStopStep increments.
Note: Set TrailingStopStart = 0 to disable trailing entirely. When disabled, the EA relies on basket profit target and StopLossPercent to close positions.
STEP 7 - SIGNAL SETTINGS
All entries require a minimum confluence score from 4 independent indicators. All indicators analyze the H1 timeframe on confirmed (closed) bars.
SMA Trend Strength
Uses 20-period and 50-period Simple Moving Averages:
- BUY: Close > SMA20 > SMA50 (bullish alignment) = +1 point
- SELL: Close < SMA20 < SMA50 (bearish alignment) = -1 point
RSI Momentum
| Parameter | Default | Description |
|---|---|---|
| RSI_Oversold | 35 | Buy signal threshold (RSI below this = +1 point) |
| RSI_Overbought | 65 | Sell signal threshold (RSI above this = -1 point) |
Uses 14-period RSI on H1.
Cycle Momentum
Compares 20-bar momentum vs recent 5-bar momentum:
- Upward cycle (positive long-term and short-term momentum): +1 point
- Downward cycle (negative long-term and short-term momentum): -1 point
Price Action Patterns
Detects candlestick patterns and support/resistance proximity:
- Bullish engulfing pattern: +1 point
- Bearish engulfing pattern: -1 point
- Bullish pin bar (long lower wick): +1 point
- Bearish pin bar (long upper wick): -1 point
- Near 20-bar support with bullish close: +1 point
- Near 20-bar resistance with bearish close: -1 point
Confluence Scoring
| Parameter | Default | Description |
|---|---|---|
| MinSignalScore | 2 | Minimum combined score to trigger a trade (1-4) |
Total score = SMA + RSI + Cycle + PriceAction (range: -4 to +4)
- Score >= +MinSignalScore = BUY signal
- Score <= -MinSignalScore = SELL signal
ATR Volatility Filter
| Parameter | Default | Description |
|---|---|---|
| MinATR_Filter | 0.0 | Minimum H1 ATR value for entry (0 = disabled) |
When enabled, blocks entries during low-volatility choppy conditions where false signals are more likely.
STEP 8 - NEWS FILTER CONFIGURATION
Activation
Set NewsFilter = true to enable live economic calendar filtering.
How It Works
- The EA fetches the weekly economic calendar from the FairEconomy API every 4 hours
- It filters events by currency (USD, EUR) and impact level (High only)
- Trading pauses 60 minutes before and resumes 60 minutes after each matching event
- If the API is unavailable, a built-in fallback detects major events (NFP, FOMC, CPI, GDP, ECB Rate)
Currency Filter
| Parameter | Default | Description |
|---|---|---|
| ReportForUSD | true | Filter USD high-impact events |
| ReportForEUR | true | Filter EUR high-impact events |
Timing
| Parameter | Default | Description |
|---|---|---|
| doNotTradeBeforeInMinutes | 60 | Stop trading X minutes before event |
| doNotTradeAfterInMinutes | 60 | Resume trading X minutes after event |
Holiday Blocking
| Parameter | Default | Description |
|---|---|---|
| AllowTradingOnHolidays | false | Block trading on bank holidays detected in calendar |
Keyword-Based Important News Detection
| Parameter | Default | Description |
|---|---|---|
| FindKeyword | false | Enable keyword matching for important events |
| FindKeywordsList | ECB, FOMC, Fed, Federal Funds Rate, Non-Farm | Keywords to match |
| StopLossImportantNews | 100.0 | Special SL (% of balance) during keyword events |
| StopAtProfitImportantNews | 0.0 | Special TP (% of OrdersProfit) during keyword events |
When FindKeyword is enabled and a matching event is detected, the EA applies stricter SL/TP rules during the news window.
WebRequest Setup (REQUIRED)
You MUST add the news URL to your platform's allowed list:
MT4/MT5: Tools > Options > Expert Advisors > Allow WebRequest for listed URL > Add:
https://nfs.faireconomy.media
Without this step, the news filter will use only the built-in fallback calendar.
STEP 9 - TRADING HOURS
Per-Weekday Schedule
Bullion Horizon uses local time for trading hour configuration. Each weekday can be independently enabled/disabled with custom start and end times:
| Day | Default Enabled | Default Hours |
|---|---|---|
| Monday | true | 08:00 - 22:00 |
| Tuesday | true | 08:00 - 22:00 |
| Wednesday | true | 08:00 - 22:00 |
| Thursday | true | 08:00 - 22:00 |
| Friday | true | 08:00 - 20:00 |
Friday has an earlier close (20:00) by default to reduce weekend gap risk.
24-Hour Mode
Set Trading24h = true to bypass the schedule entirely and trade 24/5.
Timed Close-All
| Parameter | Default | Description |
|---|---|---|
| ClosingAllOrders | false | Enable daily close-all at a specific time |
| ClosingTime | 22:00 | Time to close all positions (server time) |
When enabled, all open positions across all symbols are closed at the specified time daily.
STEP 10 - GENERAL SETTINGS
| Parameter | Default | Description |
|---|---|---|
| Trading | GOLD, XAUUSD, XAUEUR | Comma-separated list of symbols to trade |
| TradeComment | Bullion Horizon | Comment text attached to all orders |
| MagicNumber | 378579 | Unique EA identifier for order management |
| MaxSpread | 100.0 | Maximum spread filter in points (0 = disabled) |
| Slippage | 50 | Maximum acceptable slippage in points |
| Pending | false | Use pending stop orders instead of market orders |
| FIFO | false | Close oldest orders first (US broker compliance) |
| System | true | Master enable/disable for the EA |
| tradeDirection | Buy and Sell | Allow both directions (BuyOnly/SellOnly available) |
Important: If running multiple instances of Bullion Horizon on the same account, each instance MUST have a unique Magic Number to prevent order conflicts.
PANEL
Once running, the EA displays a real-time dashboard on your chart showing:
- EA name (BULLION HORIZON EA v2.00) and server time
- Current symbol and live spread
- Risk mode (Low / Medium / High)
- Trade direction (Buy & Sell / Buy Only / Sell Only)
- Grid status: Buy order count, Sell order count, and max orders
- Weighted average entry prices for buy and sell sides
- Total P/L, drawdown percentage
- Account balance and equity
- Current signal with individual indicator scores (SMA, RSI, Cycle, PA)
- EA status message (Trading Active, News Filter Active, Outside Trading Hours, etc.)
- Next scheduled news event with countdown
- Recovery cycle progress (Low Risk with RecoveryMode only)
Panel Customization
Set Panel = false to hide the dashboard (reduces CPU usage on VPS).
Weekly Gold Levels
Set GoldWeeklyLevels = true to display weekly pivot points on the chart:
- Gold dashed lines: Weekly High and Low
- Blue dotted line: Weekly Pivot
- Green dotted lines: R1 and R2 (resistance)
- Red dotted lines: S1 and S2 (support)
PRESETS
3 pre-optimized preset files are included for immediate deployment:
| Preset | Risk Mode | Max Orders | Grid Step | Basket Profit | SL% | Lots | LotsStep | Account |
|---|---|---|---|---|---|---|---|---|
| Conservative | Low | 15 (unused) | 70 pts | $50 | 100% | 0.05 | 0.01 | $500+ |
| Balanced | Medium | 10 | 70 pts | $50 | 30% | 0.05 | 0.01 | $1,000+ |
| Aggressive | High | 15 | 50 pts | $75 | 100% | 0.05 | 0.02 | $2,000+ |
To load a preset: Open EA Inputs tab > Click Load > Select the matching .set file > Click OK.
RECOMMENDED SETTINGS FOR BEGINNERS
If you are new to Bullion Horizon, use these settings:
- Load the Balanced preset ( BH_Balanced_MediumRisk.set ) for a good starting point
- NewsFilter = true (always filter news, especially for gold)
- Keep default trading hours (08:00-22:00 weekdays, 08:00-20:00 Friday)
- tradeDirection = Buy and Sell (allow both directions for maximum opportunity)
- Panel = true (monitor the EA's behavior and signal quality)
- Start on Demo (test for at least 2-4 weeks before going live)
- Do not increase OrdersMax until you understand grid risk and have tested extensively
IMPORTANT NOTES
-
Symbol: Bullion Horizon is optimized for gold instruments (XAUUSD, GOLD, XAUEUR) on H1. The EA will warn you if attached to a non-gold symbol but will still run. Results on non-gold symbols are not guaranteed.
-
Timeframe: The EA is designed for H1 (1-hour). Using other timeframes will produce different signal characteristics and is not recommended without re-optimization.
-
Multi-Symbol: The Trading parameter accepts a comma-separated list of symbols. The EA validates each symbol exists on your broker. Each symbol is managed independently with its own grid state.
-
VPS: For best results, run on a VPS located close to your broker's server. H1 signals are less time-sensitive than M1, but consistent connectivity ensures proper grid management.
-
Broker: Choose an ECN broker with tight gold spreads (under 50 points). Wide spreads will trigger the MaxSpread filter and prevent trading.
-
WebRequest: The news filter REQUIRES the WebRequest URL to be added in platform settings. Without it, only the pattern-based fallback works.
-
Grid Risk: Medium and High risk modes with grid expansion increase exposure as price moves against you. A 10-level grid with LotsStep=0.01 results in total lots of 0.01+0.02+...+0.10 = 0.55 lots. Always test on demo first and use StopLossPercent to cap maximum loss.
-
FIFO Compliance: If your broker requires FIFO order closing (common with US brokers), set FIFO=true. The EA will close oldest orders first instead of newest first.
-
Broker Digits: The EA automatically detects 2-digit vs 3-digit gold pricing and adjusts point calculations accordingly.
CONTACT & SUPPORT
- Email: info@forexobroker.com
- Questions: Use the Comments section on the product page or send a private message
- Bug Reports: Please include your broker name, account type, and a screenshot of the Experts tab log
-
✅ All MQL Tools: https://www.mql5.com/en/users/forexobroker/ ✅
--------------------------------------------------------------------------------------------------------------
🏦 **Broker I use**: https://icmarkets.com/?camp=55869
🏦 **Broker I use 1**: https://affs.click/2coEm
🏦 **Broker I use 2**: https://one.exnessonelink.com/boarding/sign-up/a/c_thuv62ocfq
💻 **VPS**: https://chocoping.com/processing/aff.php?aff=738
💼 **Companies I use for getting funded**:
Fundednext: https://fundednext.com/?fpr=kestutis39
The5ers: https://www.the5ers.com/?afmc=16kl
FTMO: https://trader.ftmo.com/?affiliates=nRAyOhmFRnEnFdOpdLeh


