EA-1054 · Pivot Point

gpfTCPivotLimit

This EA trades based on daily pivot point levels, opening buy positions when price touches support levels and sell positions when price touches resistance levels. It offers five variants of entry/exit level combinations based on pivot-derived Support1-3 and Resist1-3, with optional lot reduction after consecutive losses and breakeven stop-loss modification.

Open the interactive view (equity curve, symbol switch)

Key facts

CategoryPivot Point
RiskMedium
Blow-up riskLow
Rating★★★☆☆
TypeTrading EA
TimeframesM15, H1, H4
IndicatorsPivot Point, Support/Resistance
AuthorInteger

Backtest results (H1, about 1 year)

SymbolP&LAnnualMax DDTradesWin rateSharpeRecoveryLosing streakPer tradeStatus
EURUSD0.00%0.00%0.00%0—————Not convertible yet
GBPUSD0.00%0.00%0.00%0—————Not convertible yet
USDJPY0.00%0.00%0.00%0—————Not convertible yet
XAUUSD0.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

  • Has no stop loss or trailing stop

On its own this is not a typical blow-up pattern, 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 calculates classic pivot points along with three support and three resistance levels from the previous day's high, low, and close prices. Entry conditions: a buy signal requires the previous bar's low or close to break below the buy level while its open was above it, and the current close returns above that level; sell signals follow the mirror logic. Exit conditions are determined by the TgtProfit parameter offering five combinations of stop-loss and take-profit levels, e.g., variant 1 buys at Support1 with stop at Support2 and target at Resist1. If the primary variant cannot be placed due to stops being too close, a second alternative set of SL/TP is attempted. Position sizing defaults to a margin-based calculation using MaxR when Lots is zero, and the DcF parameter implements lot reduction after consecutive losing trades. The fLotsNormalize function ensures lot sizes conform to symbol volume step and limits. Additionally, the ModSL parameter enables moving the stop-loss to breakeven when the first target level is reached. The isTradeDay parameter supports intraday-only mode by forcing position closure at 23:00.

Strengths

  • Based on the classic pivot point strategy with clear logic; support/resistance levels carry psychological market significance
  • Five different SL/TP level combinations give traders flexibility to match their risk appetite
  • Lot reduction mechanism after consecutive losses helps control drawdown risk
  • A second fallback SL/TP variant increases order fill probability, avoiding missed trades due to stops being too close
  • The breakeven stop-loss modification (ModSL) locks in risk-free trades after the first target is reached

Weaknesses

  • Pivot levels derived only from the previous day's data may be too narrow or invalid during volatile or trending markets
  • Only one directional position at a time with no hedging; frequent stop-outs likely in ranging markets
  • SL/TP based on fixed pivot levels without ATR or volatility adjustment leads to inconsistent risk-reward ratios across varying volatility environments
  • The 23:00 forced close only checks the hour without accounting for server time versus actual trading session alignment
  • Code contains redundant assignments (e.g., SolveSellSLTP2 assigns 0 then overwrites) and poor variable naming readability

Possible improvements

  • Introduce ATR or volatility multipliers to dynamically adjust SL/TP distances for consistent risk-reward across varying market conditions
  • Add multi-timeframe confirmation (e.g., H4 or daily trend filter) to avoid entering against the dominant trend at pivot levels
  • Improve intraday close logic to use instrument trading sessions rather than a fixed 23:00 hour check
  • Add maximum drawdown limit and maximum consecutive trade count as additional risk management layers

Risk assessment

Overall risk: Medium

  • Pivot levels may fail in low-volatility or strong trending markets, leading to consecutive losses
  • The second SL/TP variant (e.g., SolveBuySLTP2 using Support2/Resist3) can have significantly larger stop distances than the primary variant, creating inconsistent risk exposure
  • The DcF lot reduction mechanism reduces size but doesn't prevent trading itself; consecutive losses can still accumulate significant drawdown
  • No slippage protection beyond Sym.Spread()*3 deviation, which may be insufficient in fast markets

Evaluation scores

Code quality3.0
Strategy logic3.0
Risk management3.0
Robustness2.0
Innovation2.0
Documentation2.0
Overall2.5

Parameters

ParameterDefaultDescription
Lots0.1Order lot size; when 0, calculated via MaxR
SndMltrueSend email notification on open and close
DcF3Lot decrease factor on loss; 0=disabled, smaller values=larger decrease
MaxR0.02Max risk ratio of free margin (0-1); active when Lots=0
TgtProfit4Level scheme (1-5); determines entry, SL, and TP combination
isTradeDayfalseIntraday-only; forced close at 23:00
ModSLfalseMove SL to breakeven when first target reached

Similar Pivot Point 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.