No description
| EA1.mq5 | ||
| README.md | ||
EA1 — Simple Moving Average 12/26 Crossover Bot
Timeframe: M15 (15-Minute)
Strategy: SMA 12 / SMA 26 Crossover
Platform: MetaTrader 5 (MQL5)
Indicator Setup
Two Simple Moving Averages (SMA) are applied to the closing price of each 15-minute candle:
| Line | Period | Role |
|---|---|---|
| Fast SMA | 12 | Short-term momentum |
| Slow SMA | 26 | Long-term trend direction |
When the two lines cross each other, a trade signal is generated.
Trade Entry Logic
Signals are confirmed only on fully closed M15 bars (no repainting).
The EA compares the last two closed bars to detect a fresh crossover.
🟢 BUY Signal
Condition: SMA 12 crosses above SMA 26
Bar [2]: SMA12 <= SMA26 (fast was below or equal to slow)
Bar [1]: SMA12 > SMA26 (fast is now above slow)
Action:
- Close any open SELL position immediately.
- Open a BUY market order at the current Ask price.
- Attach Stop Loss and Take Profit to the order (see below).
🔴 SELL Signal
Condition: SMA 12 crosses below SMA 26
Bar [2]: SMA12 >= SMA26 (fast was above or equal to slow)
Bar [1]: SMA12 < SMA26 (fast is now below slow)
Action:
- Close any open BUY position immediately.
- Open a SELL market order at the current Bid price.
- Attach Stop Loss and Take Profit to the order (see below).
Stop Loss & Take Profit
Every trade is opened with a fixed pip-based Stop Loss and Take Profit calculated from the entry price.
| Level | Pips | Direction | Purpose |
|---|---|---|---|
| Take Profit | 1000 pips | In trade direction | Lock in profit when price moves favourably |
| Stop Loss | 500 pips | Against trade direction | Limit loss if price moves the wrong way |
BUY Trade Levels
Entry = Ask price
Take Profit = Ask + 1000 pips (price rises 1000 pips → trade closes in profit)
Stop Loss = Ask - 500 pips (price drops 500 pips → trade closes at a loss)
SELL Trade Levels
Entry = Bid price
Take Profit = Bid - 1000 pips (price drops 1000 pips → trade closes in profit)
Stop Loss = Bid + 500 pips (price rises 500 pips → trade closes at a loss)
Trade Exit Logic
A trade is closed under one of three conditions:
| Condition | Type | Triggered By |
|---|---|---|
| Price hits Take Profit level | Profit exit | Broker / MT5 automatically |
| Price hits Stop Loss level | Loss exit | Broker / MT5 automatically |
| Opposite crossover signal fires | Signal exit | EA closes trade before opening new one |
Visual Flow
M15 Chart
─────────────────────────────────────────────────────► Time
SMA12 crosses ABOVE SMA26
│
▼
┌───────────────┐
│ BUY ORDER │
│ Entry: Ask │
│ TP: +1000pip │
│ SL: -500pip │
└───────┬───────┘
│
┌──────────────────┼──────────────────┐
▼ ▼ ▼
Price hits TP Price hits SL SMA12 crosses below
(profit +1000p) (loss -500p) (EA closes → SELL opens)
SMA12 crosses BELOW SMA26
│
▼
┌───────────────┐
│ SELL ORDER │
│ Entry: Bid │
│ TP: -1000pip │
│ SL: +500pip │
└───────┬───────┘
│
┌──────────────────┼──────────────────┐
▼ ▼ ▼
Price hits TP Price hits SL SMA12 crosses above
(profit +1000p) (loss -500p) (EA closes → BUY opens)
Input Parameters
| Parameter | Default | Description |
|---|---|---|
FastPeriod |
12 | Period of the fast SMA |
SlowPeriod |
26 | Period of the slow SMA |
LotSize |
0.1 | Volume per trade |
TakeProfitPips |
1000 | Take Profit distance in pips |
StopLossPips |
500 | Stop Loss distance in pips |
PipSize |
0.0001 | Pip value (0.0001 for FX; 0.01 for JPY pairs) |
MagicNumber |
112600 | Unique ID to identify EA trades |
Notes
- One trade at a time — the EA never opens a second trade in the same direction.
- New bar logic — signals are only evaluated once per new M15 candle to prevent noise.
- JPY pairs — change
PipSizeto0.01when trading symbols like USDJPY or EURJPY. - Always backtest in MetaTrader 5 Strategy Tester before running on a live account.