Exp_ExchangePrice
This EA trades based on the custom ExchangePrice indicator, generating buy signals when the indicator line crosses above the signal line and sell signals when it crosses below. It uses a new-bar check to avoid repeated entries on the same bar, and manages positions with configurable Stop Loss, Take Profit, and multiple money management modes including lot-based and margin-based sizing.
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 core strategy of this EA is based on the crossover of two lines (main line Ind and signal line Sign) from the custom ExchangePrice indicator to determine trend direction. Entry conditions: when Ind[1]>Sign[1] (main line above signal line on the previous bar) and Ind[0]<=Sign[0] (main line below or equal on the bar before that), an uptrend is confirmed and a buy position is opened; conversely, when Ind[1]<Sign[1] and Ind[0]>=Sign[0], a downtrend is confirmed and a sell position is opened. Exit conditions include: closing long positions when a downtrend signal appears, closing short positions when an uptrend signal appears, with StopLoss and TakeProfit applied to every trade for risk control. Position sizing supports five modes: based on free margin, based on balance, based on free margin after losses, based on balance after losses, and fixed lot size. The EA uses the IsNewBar mechanism to ensure signals are calculated only once per bar cycle, avoiding repeated trades, and employs a Recount flag to re-fetch data when CopyBuffer fails.
Strengths
- Clear strategy logic based on indicator crossover, a classic and reliable trend-following approach
- Five position sizing modes offer high flexibility to accommodate different risk preferences
- New-bar check mechanism prevents repeated entries on the same bar, reducing overtrading
- Complete StopLoss and TakeProfit parameters ensure risk control on every trade
- Buy/sell open and close can be independently toggled, allowing flexible configuration
Weaknesses
- Depends on a custom ExchangePrice indicator whose internal logic is opaque and unverifiable
- StopLoss of 1000 points and TakeProfit of 2000 points are very wide, potentially leading to significant single-trade losses
- No trailing stop mechanism means profitable positions cannot lock in floating gains
- No spread filter, potentially allowing unfavorable entries in high-spread environments
- Signal judgment relies on only two bars of crossover data, lacking multi-timeframe confirmation or filters, prone to false signals
Possible improvements
- Add a trailing stop feature to gradually lock in profits as price moves favorably
- Implement multi-timeframe confirmation, such as a higher-timeframe trend filter, to reduce false signals
- Add spread and volatility filters to avoid entering trades under unfavorable market conditions
Risk assessment
Overall risk: Medium
- StopLoss of 1000 points is very wide, potentially causing a single trade loss to represent a large portion of the account
- No spread filter may result in additional slippage losses in low-liquidity markets
- Indicator logic is opaque, making it impossible to evaluate signal quality and reliability
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Money management parameter for lot calculation |
MMMode | LOT | Lot mode: free margin/balance/margin minus loss/balance minus loss/fixed lots |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Maximum allowed slippage in points |
BuyPosOpen | true | Allow buy position opening |
SellPosOpen | true | Allow sell position opening |
BuyPosClose | true | Allow buy position closing (close longs) |
SellPosClose | true | Allow sell position closing (close shorts) |
InpInd_Timeframe | PERIOD_H8 | Timeframe for indicator calculation |
countBarsS | 96 | Number of bars for short-term calculation |
countBarsL | 288 | Number of bars for long-term calculation |
SignalBar | 1 | Bar index for retrieving signal data |
Similar Trend Following EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.