EA-32616 · Pivot Point

EA_PUB_FibonacciPotentialEntries

This EA places pending limit orders at Fibonacci 50% and 61% retracement levels, with stop losses calculated using spread-adjusted offsets from adjacent Fibonacci levels and a common take-profit target. It supports both bullish and bearish market bias selections, and implements a partial-close mechanism that halves position size and moves stop-loss to breakeven when price reaches the target. Lot sizing is risk-based, allocating 0.7% of account balance to the 50% trade and the remaining risk percentage to the 61% trade.

Open the interactive view (equity curve, symbol switch)

Key facts

CategoryPivot Point
RiskMedium
Blow-up riskLow
Rating★★☆☆☆
TypeTrading EA
TimeframesH1, H4, D1
IndicatorsFibonacci Retracement
AuthorForex Jarvis. info@fxweirdos.com

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

  • Can hold up to 2 positions at once

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

This EA is based on Fibonacci retracement theory, placing limit orders at the 50% and 61.8% retracement levels under the assumption that price will find support or resistance at these key levels and reverse. Entry conditions are straightforward: when the market bias is set to Bull, BuyLimit orders are placed at the 50% and 61% price levels; when set to Bear, SellLimit orders are placed instead, and both orders are submitted only once when the trade flags are both zero. For stop-loss placement, the 50% trade's SL is set 3 spreads below the 61% level, while the 61% trade's SL is set 3 spreads beyond the midpoint between the 61% and 100% levels. Position sizing uses a fixed percentage risk model, calculating lot size based on account balance, risk percentage, and stop-loss distance in pips, with 0.7% risk allocated to the 50% trade and the remainder of the user-specified risk percentage allocated to the 61% trade. The exit strategy uses a unified take-profit at the dTarget2 level, and when the ask price exceeds this target, a partial close is triggered — halving the position and moving the stop-loss to the entry price for a breakeven scenario. A major drawback is that all Fibonacci levels and targets are hardcoded as input parameters requiring manual entry, with no dynamic calculation or market-adaptive capability, and the partial close logic only triggers after price exceeds the target rather than using trailing stops or dynamic profit management.

Strengths

  • Risk-based position sizing automatically calculates lot size using account balance percentage, providing sound money management
  • Limit order entries avoid market slippage and align with established Fibonacci retracement technical analysis principles
  • Partial close with breakeven stop-loss modification locks in partial profits and reduces the risk of giving back gains

Weaknesses

  • All Fibonacci levels and target prices are hardcoded input parameters requiring manual calculation and entry, with no automatic swing detection or dynamic level calculation
  • The partial close logic has a critical bug: iterating PositionsTotal() with PositionGetTicket while closing positions can cause index shifts leading to skipped positions
  • Lacks pending order lifecycle management — no expiration, deletion, or reset mechanism, so the EA cannot adapt if orders go unfilled or market conditions change
  • The 3-spread offset in stop-loss calculation may result in disproportionately wide or narrow stops on high-spread or low-spread instruments, lacking instrument adaptability

Possible improvements

  • Add automatic Fibonacci level calculation by detecting recent swing highs and lows to dynamically compute retracement levels instead of requiring manual input
  • Fix the position iteration logic by using reverse-order traversal or collecting position tickets before operating, avoiding index shift from partial closes; add pending order status monitoring and timeout cancellation mechanisms

Risk assessment

Overall risk: Medium

  • Position iteration during partial closes can cause index shifts that skip positions, leaving some trades improperly managed
  • All price levels are manually entered — any input error will cause stop-loss and take-profit settings to deviate significantly from intended values
  • No pending order expiration or reset mechanism means orders may remain active indefinitely, leading to stale entries

Evaluation scores

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

Parameters

ParameterDefaultDescription
dP50Level1.08261Fibonacci 50% retracement level price
dP61Level1.07811Fibonacci 61% retracement level price
dP100Level1.06370Fibonacci 100% retracement level price
dTarget21.10178Unified take profit target price
dRisk2Total risk as percentage of account balance
bTypeA1 (Bull)Market direction selection: bull or bear

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.