EA-1073 · Trend Following

Exp_Bezier

This EA trades based on the Bezier curve smoothing indicator, generating buy signals when the curve slopes upward and sell signals when it slopes downward. It operates on a multi-timeframe basis, using a higher timeframe indicator to signal trades, and includes both entry and exit logic with configurable stop loss and take profit levels.

Open the interactive view (equity curve, symbol switch)

Key facts

RiskMedium
Blow-up riskLow
Rating★★★☆☆
TypeTrading EA
TimeframesH1, H4, D1
IndicatorsBezier
AuthorCopyright © 2012, Nikolay Kositsin

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

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 the Bezier curve smoothing indicator to identify trend direction, comparing three consecutive Bezier curve values to detect trend reversals. Entry conditions: a long position opens when Value[1]<Value[2] and Value[0]>Value[1], indicating the curve transitions from descending to ascending; a short position opens when Value[1]>Value[2] and Value[0]<Value[1], indicating the curve transitions from ascending to descending. Exit conditions rely on fixed stop loss and take profit levels in points, while also allowing opposite signals to close positions. Position sizing is controlled by the MM parameter, where negative values represent fixed lot sizes and positive values represent deposit share-based sizing. Money management is implemented through the included TradeAlgorithms.mqh file, which uses signal timestamps to prevent duplicate entries. The strategy employs multi-timeframe analysis, calculating indicator signals on a higher timeframe while executing trades on the current chart.

Strengths

  • Multi-timeframe analysis helps filter noise and improve trade quality
  • Bezier curve smoothing reduces lag compared to simple moving averages, providing more timely signals
  • Flexible stop loss and take profit configuration supports a 1:2 risk-reward ratio
  • Supports both deposit share-based and fixed lot position sizing modes
  • New bar detection prevents duplicate trades within the same bar

Weaknesses

  • Core logic depends on an external custom Bezier indicator; the EA cannot run if the indicator is missing
  • No spread filter, which may result in unfavorable entries in high-spread environments
  • Signal logic is overly simplistic, relying only on three consecutive curve value comparisons, prone to frequent false signals
  • Default stop loss of 1000 points and take profit of 2000 points are excessively large and may not suit all instruments
  • Lacks maximum position limits and consecutive loss protection mechanisms

Possible improvements

  • Add a spread filter to avoid entering trades during high-spread conditions
  • Add trend strength confirmation such as ADX or volume filtering to reduce false signals
  • Embed the Bezier curve calculation directly into the EA to eliminate dependency on the external indicator

Risk assessment

Overall risk: Medium

  • Dependency on external custom indicator; missing indicator causes initialization failure but does not prevent loading
  • Default stop loss and take profit in points are very large, potentially causing excessive risk exposure on low-volatility instruments
  • No maximum drawdown protection or consecutive loss limits
  • Simultaneous opening and closing on signal reversal may cause position conflicts

Evaluation scores

Code quality3.0
Strategy logic2.0
Risk management3.0
Robustness3.0
Innovation3.0
Documentation2.0
Overall2.7

Parameters

ParameterDefaultDescription
MM-0.1Trade deposit fraction, negative for fixed lot
StopLoss_1000Stop loss in points
TakeProfit_2000Take profit in points
Deviation_10Max price deviation in points (slippage tolerance)
BuyPosOpentrueAllow opening long positions
SellPosOpentrueAllow opening short positions
BuyPosClosetrueAllow closing long positions
SellPosClosetrueAllow closing short positions
InpInd_TimeframePERIOD_H4Indicator calculation timeframe
BPeriod8Bessel curve smoothing period
T0.5Sensitivity ratio (0 to 1)
IPCPRICE_WEIGHTEDPrice constant type
SignalBar1Bar index for entry signal

Similar Trend Following 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.