EA-17044 · Multi-Timeframe

ExpPricePosition

This Expert Advisor trades based on a multi-indicator confluence system combining PricePosition and StepUpDown indicators across multiple timeframes. It uses SMMA/SMA moving average crossovers and price position relative to signal lines to generate buy/sell signals, with dynamic lot sizing, trailing stops, and opposite-signal closing capabilities.

Open the interactive view (equity curve, symbol switch)

Key facts

RiskMedium
Blow-up riskLow
Rating★★☆☆☆
TypeTrading EA
TimeframesH1, H4, D1
IndicatorsSMMA, SMA, PricePosition, StepUpDown
AuthorRoberto Jacobs (3rjfx) ~ By 3rjfx ~ Created: 2016/11/28

Backtest results (H1, about 1 year)

SymbolP&LAnnualMax DDTradesWin rateSharpeRecoveryLosing streakPer tradeStatus
EURUSD-4.34%-3.79%5.35%14447.60%-0.84-0.814−$3.27Reliable
GBPUSD-5.61%-4.89%8.36%14446.20%-0.88-0.677−$4.09Reliable
USDJPY-7.28%-6.36%10.22%14446.90%-1.34-0.717−$4.98Reliable
XAUUSD-17.25%-14.48%65.05%15247.70%-0.15-0.275−$9.78Reliable

Profitable on 0 of 4 markets with reliable results.

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.

Against the other Multi-Timeframe EAs with a reliable result on the same market: EURUSD: better than 0% of 11 · GBPUSD: better than 8% of 12 · USDJPY: better than 0% of 12 · XAUUSD: better than 33% of 12

Month by month

MarketMonths with a gainBest monthWorst month
EURUSD38%+1.03% 2026-07-1.47% 2026-08
GBPUSD15%+2.02% 2026-07-1.82% 2026-08
USDJPY46%+2.18% 2026-09-3.52% 2025-12
XAUUSD54%+35.92% 2026-01-23.24% 2026-06

From the backtest equity curve, sampled about every two days; only reliable results.

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 a dual-confirmation mechanism using the PricePosition indicator for price direction and the StepUpDown indicator for trend direction. Entry conditions require multiple confluences: PricePosition direction alignment (1 or -1), StepUpDown trend agreement, current candle being bullish (for buy) or bearish (for sell), price pulling back to the fast SMMA line, fast MA direction confirmation, and multi-timeframe momentum comparison (pwr0 > pwr1). Exit conditions include: trailing stop activation, closing on opposite signal (CloseByOppositeSignal), and profitable closing when StepUpDown direction reverses. Position sizing supports both fixed lot and dynamic lot modes, where the dynamic mode calculates lot size based on account balance and risk percentage, distributed across open positions. Money management calculates stop loss based on risk percentage and tick value, with take profit set as a multiple (TPvsSLRatio, default 3x) of the stop loss, and a minimum 38-pip stop loss distance as protection.

Strengths

  • Multi-indicator multi-timeframe confluence entry provides strong false signal filtering with strict entry conditions
  • Supports dynamic position sizing based on account balance and risk percentage, keeping risk controlled
  • Dual exit mechanism with trailing stop and opposite signal closing provides solid profit protection

Weaknesses

  • Severe memory leak: CTrade, CSymbolInfo, CPositionInfo, CAccountInfo objects are created with 'new' in OnTimer every minute but never deleted
  • Uses timer-driven trading (OnTimer) instead of tick-driven (OnTick), potentially missing fast market opportunities
  • The pwr calculation compares daily close with hourly close but doesn't account for gaps or cross-session discontinuities
  • CheckOpenPosition calls PositionSelect before iterating PositionsTotal, which may cause logical inconsistency

Possible improvements

  • Fix memory leak: move CTrade and other object creation to OnInit or add proper delete calls; best to use global objects initialized once
  • Migrate trading logic from OnTimer to OnTick with new bar detection to ensure timely response to market changes
  • Add spread filter to avoid opening positions during high spread periods; add maximum position limit to prevent over-concentration on a single symbol

Risk assessment

Overall risk: Medium

  • Memory leak may cause EA crash or platform slowdown during extended runtime
  • Timer-driven trading (checking every minute) is slow to respond in volatile markets, potentially increasing slippage
  • Default trailing stop of only 10 pips may be too tight for volatile instruments, causing premature stops
  • Hardcoded minimum 38-pip stop loss in CalculatePips may not suit all trading instruments

Evaluation scores

Code quality2.0
Strategy logic3.0
Risk management3.0
Robustness2.0
Innovation2.0
Documentation1.0
Overall2.2

Parameters

ParameterDefaultDescription
TimeFramesPERIOD_H1EA operating timeframe
RiskPercentage3.0Risk percentage per trade
TPvsSLRatio3.0Take-profit to stop-loss multiplier ratio
MoneyManagementTypeDynamicLotSizeMoney management type: fixed or dynamic lots
TradeLotSize0.1Lot size in fixed lot mode
CloseByOppositeSignalYesClose position on opposite signal
UseTrailingStopYesEnable trailing stop
Trailing_FixedPipsSL10Trailing stop value in points
Magic1234EA magic number (max 8 digits)

Similar Multi-Timeframe EAs

Backtests are historical simulations and do not guarantee future results. Not financial advice.

Get the weekly Arena report

One email a week: ranking changes, new signals and new research. No spam; unsubscribe any time.