Exp_PPO_Cloud
This EA trades based on the PPO (Percentage Price Oscillator) Cloud indicator, which uses dual smoothing methods for fast and slow PPO lines plus a signal line. It opens buy positions when the PPO crosses above the signal line from below, and sell positions when the PPO crosses below the signal line from above, with configurable stop-loss and take-profit levels.
Open the interactive view (equity curve, symbol switch)Key facts
Backtest results (H1, about 1 year)
| Symbol | P&L | Annual | Max DD | Trades | Win rate | Sharpe | Recovery | Losing streak | Per trade | Status |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| GBPUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| USDJPY | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| XAUUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
Why this EA never traded: no entry rule survived the conversion.
Converted from MQL5 to Python and run with the same rules for every EA. Positions use MT5 lot sizes (100,000 units per FX lot, 100 oz per gold lot) with 1:100 leverage, one order at a time, and a stop-out below 10% of the starting balance. Sharpe is computed from the equity curve. Results marked as unreliable are shown for completeness only.
Blow-up risk: No blow-up pattern found
None of the usual blow-up patterns were found in the code, and the account was not stopped out in our backtests. That is not a guarantee: any EA can lose money.
High: stopped out in our backtest, or martingale/grid sizing without a stop loss. Elevated: martingale or grid sizing with a stop loss, or several positions at once without a stop loss. What the label means and what we found →
Strategy analysis
The strategy concept is based on the PPO (Percentage Price Oscillator) Cloud indicator, an improved version of the traditional MACD that uses customizable smoothing algorithms instead of fixed EMAs. Entry conditions are: a buy signal is generated when the fast line Ind crosses above the signal line Sign (Ind[1]>Sign[1] and Ind[0]<=Sign[0]), and a sell signal is generated when the fast line crosses below the signal line (Ind[1]<Sign[1] and Ind[0]>=Sign[0]). Exit conditions rely on separate stop-loss and take-profit parameters (default 1000 and 2000 points respectively), while opposing crossover signals also trigger position closure (e.g., a bearish crossover closes long positions). Position sizing is controlled through the MM parameter and MMMode enumeration, supporting five modes: free margin-based, balance-based, loss-free margin-based, loss-balance-based, and fixed lot sizing. Money management uses the MM parameter (default 0.1) as a position ratio combined with different margin modes for flexible capital allocation. The strategy also employs the IsNewBar mechanism to ensure signals are only calculated at new bar openings, preventing redundant tick-by-tick trading.
Strengths
- Uses PPO Cloud indicator instead of traditional MACD, offering multiple smoothing algorithm choices (JJMA, JurX, ParMA, T3, VIDYA, AMA) to adapt to different market conditions
- Provides complete bidirectional trading control switches, allowing flexible enabling or disabling of opening and closing in each direction
- Employs IsNewBar mechanism to prevent redundant trades within the same bar, avoiding overtrading
- Full stop-loss and take-profit parameters with default SL 1000 and TP 2000 points, giving a reasonable 2:1 reward-risk ratio
- Supports five money management modes with high flexibility
Weaknesses
- Default stop-loss of 1000 points and take-profit of 2000 points are relatively large, potentially leading to significant single-trade losses in short-term trading
- No spread filter mechanism; trades may still be opened during high-spread conditions, increasing transaction costs
- Custom indicator call (iCustom) depends on external PPO_Cloud indicator file; if missing, the EA fails to run with insufficient error messaging
- Lacks trailing stop or break-even mechanism, unable to lock in floating profits
- Simple signal logic (relying only on PPO crossover) is prone to frequent false signals in ranging markets
Possible improvements
- Add spread filter and volatility filter to avoid opening positions during high-spread or low-volatility periods
- Add trailing stop or break-even functionality to lock in profits after favorable price movement
- Add a trend filter (e.g., higher timeframe MA direction) to avoid frequent trading in ranging markets
- Add position checking logic to prevent duplicate openings in the same direction
Risk assessment
Overall risk: Medium
- Default stop-loss of 1000 points is large and may cause significant losses in extreme market conditions
- No spread filter; trading costs may be excessive in high-spread environments
- Depends on external custom indicator file; EA initialization fails if the indicator is missing
- PPO crossover signals in ranging markets can easily produce consecutive losses
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Money management ratio, controls trade lot size |
MMMode | LOT | Lot calculation mode: Fixed lot or margin-based ratio |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Maximum allowed slippage |
BuyPosOpen | true | Allow buy positions |
SellPosOpen | true | Sell position opening signal mode |
BuyPosClose | true | Allow close buy positions |
SellPosClose | true | Sell position closing signal mode |
InpInd_Timeframe | PERIOD_H4 | CandlesticksBW indicator timeframe |
FastMethod | MODE_EMA_ | Fast line smoothing method |
FastLength | 12 | Fast line period length |
FastPhase | 15 | Fast line phase parameter (for JJMA/VIDYA/AMA) |
SlowMethod | MODE_EMA_ | Slow line smoothing method |
SlowLength | 26 | Slow line period length |
SlowPhase | 15 | Slow line phase parameter |
SignMethod | MODE_EMA_ | signal linesmoothing method |
SignLength | 9 | Signal line period length |
SignPhase | 15 | Signal line phase parameter |
IPC | PRICE_CLOSE_ | Applied price type for indicator calculation |
SignalBar | 1 | Signal bar index (0=current, 1=last closed bar) |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.