User Manual

Ultimate Oil UTS

Powered by pressure. Driven by data. Fueled by oil.
Contents

01Overview

Ultimate Oil UTS is a smart Expert Advisor built for crude oil markets. It looks for mean-reversion in flat conditions and, when a position is open and price moves against it, scales in at predefined intervals to lower the average price. Positions close together once the combined profit reaches the configured target.

The EA recognises when oil is trading at historically extended levels and can take opposing positions in those situations to participate in the typical reversion. A push-exhaustion filter blocks new entries after sharp rallies, and a drawdown-recovery close mechanism preserves capital by exiting partially-recovered positions early.

02Setup & Recommended Account

Symbols

USOUSD, XTIUSD (WTI)
UKOUSD, XBRUSD, BRENT (Brent)

Timeframe

Any chart timeframe. The EA uses its own internal timeframes.

Min Balance

500 USD minimum
1000+ USD ideal

Broker Contract

Tuned for 1000-barrel contracts. Smaller contracts scale results proportionally lower.

How to attach: Open an oil chart on any timeframe, drag Ultimate Oil UTS from the Navigator, and allow algo trading. The on-chart panel appears in the upper-left and starts tracking immediately.

03Performance Examples

Backtest results across several account sizes (USOUSD M15, 2023.01 — 2026.05, default optimised settings):

Backtest at $500 starting balance
$500 starting balance — equity curve and key metrics
Backtest at $2000 starting balance
$2,000 starting balance — equity curve and key metrics
Backtest at $10000 starting balance
$10,000 starting balance — equity curve and key metrics

04Settings: General

InputDefaultWhat it does
InpTradeCommentUltimate Oil UTSComment string written on every trade. Helpful for filtering trades in your history.
InpMagicNumber6170115Identifies trades belonging to this EA. Change only if running multiple instances on the same account; each must have a unique magic number.
InpOrderTypeBuy OnlyTrade direction. Buy Only is the safest baseline. Both lets the EA also take sells when the high-price override fires. Sell Only restricts to short-side entries.

05Settings: Risk

InputDefaultWhat it does
InpLotModeExtremeLot sizing mode. Low (0.01 per $5K) is the most conservative; Extreme (0.01 per $1K) is the validated baseline; Aggressive and Nuclear go higher with sharply increased drawdown risk. Fixed uses a static lot size; Custom lets you specify both lot and dollar base.
InpFixedLot0.01Lot size used when InpLotMode = Fixed. Ignored otherwise.
InpCustomLotSize0.01Custom-mode lot size per the dollar base.
InpCustomDollarBase5000.0The dollar amount that InpCustomLotSize applies to in Custom mode.
InpMaxLotSize5.0Hard cap on the size of any single trade.
InpMaxTotalLots12.0Hard cap on the combined lots of all open positions.
InpAutoScaleLotsfalseIf enabled, detects broker contract size and adjusts lots so per-point dollar risk matches the 1000-barrel reference. Off by default to respect the user's explicit risk choice.

06Settings: Progressive Grid

InputDefaultWhat it does
InpUseProgressiveGridtrueEnables progressive grid spacing. Required for the optimised configuration.
InpGridMultiplier1.0Per-level lot multiplier. 1.0 = flat. Higher values create martingale-style scaling and significantly increase drawdown risk.
InpGridMaxSpacing2000Maximum spacing in points between grid additions.
InpProgressiveMaxGrid6Maximum number of grid levels per cycle.

07Settings: Trailing Stop

InputDefaultWhat it does
InpTSLActivatePct80.0The cycle trailing stop activates once profit reaches this percentage of the take-profit target. 0 disables the trailing stop entirely.
InpTSLTrailPct10.0How far below the peak profit (as a percentage of TP) the trailing stop sits.

08Settings: Time Decay TP

Reduces the take-profit target over time so positions don't sit open indefinitely waiting for a full TP that may never come.

InputDefaultWhat it does
InpUseTimeDecaytrueMaster switch for the time-decay TP feature.
InpTimeDecayStart4.0The TP starts shrinking after this many hours of the cycle being open.
InpTimeDecayEnd48.0The TP reaches its minimum at this many hours.
InpTimeDecayMinPct10.0The minimum TP value, expressed as a percentage of the original target. 0 = breakeven.
InpDecayDDClosetrueEnables the “DD recovery close”. When fully decayed and drawdown exceeds the threshold, the EA arms an exit. When DD recovers below the recover-level, all positions close to lock in the smaller loss. Recommended on — preserves capital during shocks.
InpDecayDDThresh30.0Drawdown percentage that arms the recovery-close mechanism.
InpDecayDDRecover10.0Drawdown percentage at which the armed close fires.

09Settings: Safety

InputDefaultWhat it does
InpMaxDrawdownPct50.0Emergency drawdown cap. If session drawdown reaches this percent of balance, all positions close and trading pauses for the cooldown period. 100 disables.
InpMaxTotalPos50Absolute maximum number of open positions across all cycles.
InpCooldownBars600Bars trading is paused after a cycle close.
InpUseStopLossfalseEnables a per-trade stop loss. Off by default since the strategy relies on basket recovery rather than per-trade exits.
InpStopLossPoints0Per-trade stop loss in points (used if dollar amount is 0).
InpStopLossDollar0Per-trade stop loss in account currency. Takes precedence over points if non-zero.

10Settings: Grid Drop Protection

Closes the worst-performing position in a deep-drawdown cycle to free margin and keep the rest of the cycle alive.

InputDefaultWhat it does
InpUseGridDroptrueEnable the grid-drop protection feature.
InpGridDropPct45.0Drawdown percent at which the worst position is closed.
InpGridDropCooldown2Bars between successive grid-drop closures.
InpGridDropMinPos2Minimum number of grid positions before this protection activates.

11Settings: Grid Step Timer

Optional time limits for each grid level. If a step exceeds its limit, the cycle closes.

InputDefaultWhat it does
InpUseGridTimerfalseEnables the grid step timer feature.
InpGridTimerStep1…60Maximum hours each step (1 through 6) is allowed to remain open. 0 means no limit.

12Settings: Filters

Spread & Slippage

InputDefaultWhat it does
InpUseSpreadFiltertrueBlock new entries when spread is wider than the configured maximum.
InpMaxSpread35Maximum spread (points).
InpUseSlippageFiltertrueBlock entries when execution slippage exceeds the threshold.
InpMaxSlippage30Maximum tolerated slippage (points).
InpSlippageTestSize3Number of recent samples used to estimate slippage.

Time

InputDefaultWhat it does
InpUseTimeFilterfalseBlock trading during a daily window.
InpNoTradeStartHr13Window start hour (server time).
InpNoTradeEndHr15Window end hour (server time).
InpNoFridaytrueStop opening new trades after the Friday cutoff hour.
InpFridayStopHr18Friday cutoff hour for new entries (server time).
InpFridayClosefalseClose all open positions on Friday at the configured hour.
InpFridayCloseHr20Friday close hour (GMT).

Sessions

InputDefaultWhat it does
InpUseSessionFilterfalseRestrict trading to specified market sessions.
InpTradeEuropetrueAllow trades in the Europe session (07–13 UTC).
InpTradeUSAtrueAllow trades in the USA session (14–22 UTC).
InpTradeAsiatrueAllow trades in the Asia session (23–06 UTC).

Indicators

InputDefaultWhat it does
InpUseATRFiltertrueBlock entries when current ATR is unusually high or low.
InpATRPeriod14ATR lookback period.
InpATRMaxMulti3.0Block if ATR is more than this multiple of its average.
InpATRMinMulti0.3Block if ATR is less than this fraction of its average (overly quiet markets).
InpUseADXFiltertrueBlock entries during strong trends (the strategy targets ranges).
InpADXPeriod14ADX lookback period.
InpADXMax15.0Block if ADX exceeds this value. Lower values are more selective.

Loss Streak

InputDefaultWhat it does
InpUseLossFiltertruePause trading after consecutive losses.
InpMaxConsecLoss3Number of consecutive losses that triggers the pause.
InpLossPauseHours4Pause duration in hours.

13Settings: Candle Confirmation

After the initial entry signal, the EA waits for a confirming pattern on the M1 timeframe before executing. This filters out false signals and improves entry quality.

InputDefaultWhat it does
InpUseCandleConfirmtrueMaster switch for M1 candle confirmation.
InpConfirmExpiry15Pending signals expire after this many M1 bars without confirmation.
InpConfirmNeedCandlefalseRequire a specific candle pattern (engulfing, pin bar, etc.) for confirmation.
InpConfirmNeedRSItrueRequire RSI confirmation on lower timeframes.
InpHTFOverbought60.0M15/M30 RSI level above which buys are blocked.
InpHTFOversold30.0M15/M30 RSI level below which sells are blocked.
InpLTFBuyBelow40.0M1/M5 RSI level for buy entry confirmation (looking for a dip).
InpLTFSellAbove60.0M1/M5 RSI level for sell entry confirmation (looking for a rally).
InpConfirmNeedADXfalseRequire ADX directional indicator confirmation.

14Settings: Crash Detection

Velocity Exit

InputDefaultWhat it does
InpUseVelocityExitfalseEnable price velocity exit. Off by default; testing showed it can over-trade.
InpVelocityDrop50.0Drop in points within the time window that triggers an exit.
InpVelocityMinutes30Lookback window in minutes.
InpVelocityCloseAlltrueClose all positions on trigger. If false, only freezes new entries.
InpVelocityPause60Pause after triggering, in minutes.

Daily Range Exhaustion

InputDefaultWhat it does
InpUseDailyRangeExitfalseEnable daily-range exhaustion exit.
InpDailyRangeMult2.0Close if today's range exceeds this multiple of the average daily range.
InpADRPeriod20Average daily range lookback (days).
InpDailyRangeCloseAlltrueClose all positions on trigger.

15Settings: Trade Blocker

Block trading during a specific date range. Useful for known high-impact events or scheduled time off.

InputDefaultWhat it does
InpUseTradeBlockerfalseEnable date blocking.
InpBlockStart2026.03.10 00:00Block start date and time.
InpBlockEnd2026.03.20 00:00Block end date and time.

16Settings: Sell Logic

Sell Price Floor

InputDefaultWhat it does
InpSellMinPrice90.0Minimum oil price required for normal sell entries. 0 disables the floor. The high-price sell override below is independent.

High-Price Sell Override

When oil is trading above the threshold and short-term momentum confirms exhaustion, the EA can take counter-trend sells regardless of the order-type setting.

InputDefaultWhat it does
InpUseHighSelltrueMaster switch for the high-price sell override.
InpHighSellPrice0.0Price threshold to activate. 0 means auto-detect by symbol (110 for WTI, 113 for Brent). Set a positive value to override.
InpHighSellTFM30Timeframe used for the short EMA and RSI confirmation.
InpHighSellEMA20Short EMA period. Sell fires when price is below this EMA. 0 disables the EMA path.
InpHighSellRSI14RSI period. Sell fires when RSI is overbought. 0 disables the RSI path.
InpHighSellRSIOB70.0RSI overbought threshold for the high-sell trigger.

17Settings: Buy Push-Exhaustion Filter

Blocks new buy entries after a sharp recent rally, since extended pushes have a higher probability of reversing in the short term.

InputDefaultWhat it does
InpUsePushFiltertrueEnable the push filter.
InpPushPctMax3.0Block buy entries if the price has moved up this many percent or more from the lowest low in the lookback window.
InpPushLookbackHr24Lookback window in hours. The filter compares current price to the lowest H1 low within this window.

18Settings: Display & Visuals

Display

InputDefaultWhat it does
InpShowPaneltrueShow the on-chart status panel.
InpShiftChartColorstrueApply the EA's color theme to the chart background, candles, and grid. Restored when the EA is removed.

Visual Lines

InputDefaultWhat it does
InpShowTPLinesfalseDraw an individual TP line for every open position.
InpTPLineColorCyanColor of per-position TP lines.
InpTPLineStyleSolidStyle of per-position TP lines.
InpShowGridTPLinetrueDraw the cycle-wide take-profit price line where the basket would close.
InpGridTPColorGoldColor of the cycle TP line.
InpShowNextGridtrueDraw the price levels where the next grid additions will trigger.
InpNextGridColorDodger BlueColor of the next-grid lines.
InpNextGridStyleDashStyle of the next-grid lines.

19The On-Chart Control Panel

When InpShowPanel is enabled, a status panel is drawn in the upper-left of the chart and updates in real time as the EA operates.

On-chart Ultimate Oil UTS panel
The Ultimate Oil UTS panel in action with chart theme applied

Header

Shows the EA name and tagline. The colored top stripe indicates the EA is loaded and the chart theme is applied.

Grid

Targets

P/L

Timer

Decay

Buttons

DISABLE / ENABLE

Pauses or resumes new entries. Existing positions are not closed.

CLOSE ALL

Immediately closes every open position belonging to this EA instance.

ADD RECOVERY

Manually adds a recovery position if you believe the market is about to reverse in your favour.

If the broker's contract size differs from the 1000-barrel reference, a red warning banner appears in the top-right of the chart explaining the mismatch and recommending you adjust your risk settings or contact the developer.
Risk disclaimer: Past performance does not guarantee future results. Trading carries the risk of loss. Only trade with capital you can afford to lose. Backtest performance is influenced by broker spread, swap, commission, and contract specifications, and may differ from live trading.