EA-21939 · Session Trading

Pending orders by time 2

This EA places pending buy and sell orders at user-specified times during the trading day, allowing traders to capture moves at specific session times. It manages order lifetime with expiration and optionally deletes unfilled orders. The strategy relies on time-based entry rather than technical indicators.

Open the interactive view (equity curve, symbol switch)

Key facts

RiskMedium
Blow-up riskLow
Rating★★☆☆☆
TypeTrading EA
TimeframesM15, H1, H4
IndicatorsTime
AuthorCopyright © 2017, Vladimir Karputov

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 strategy concept is time-based scheduled pending order trading, placing buy and/or sell pending orders at user-defined times to capture market moves during specific sessions. Entry conditions are purely time-driven; when server time reaches the user-specified hour and minute, pending orders are automatically placed at a configurable distance from the current price. Exit conditions rely on the stop loss and take profit settings attached to each pending order, as well as order expiration time which cancels unfilled orders automatically. Position sizing uses a fixed lot size approach, with the trade volume set by the user through a parameter, lacking any dynamic position adjustment mechanism. Money management allows users to set stop loss and take profit in points to control per-trade risk, but lacks overall account-level risk controls such as maximum position limits or percentage-based position sizing.

Strengths

  • Time-triggered mechanism is simple and intuitive, ideal for capturing moves at specific session times like market opens or news releases
  • Placing both buy and sell pending orders allows trading breakouts without needing to predict direction
  • Order expiration auto-cancellation effectively prevents stale orders from being unexpectedly filled

Weaknesses

  • Lacks technical indicator confirmation; purely time-driven entries may produce ineffective trades during low volatility periods
  • No dynamic position sizing or account-level risk control; fixed lots cannot adapt to different account sizes
  • Missing new bar detection and duplicate order protection, potentially causing repeated orders at the same time and position stacking
  • No spread or trading cost filter, placing orders during high-spread periods may be disadvantageous

Possible improvements

  • Add technical indicator filters (e.g., ATR volatility, MA direction) to improve entry quality
  • Implement percentage-based dynamic position sizing and maximum position limits based on account balance
  • Add new bar detection and duplicate order protection logic to prevent multiple orders at the same time point

Risk assessment

Overall risk: Medium

  • Lack of duplicate order protection may cause multiple pending orders at the same time point, leading to unintended position stacking
  • Fixed lot size without account risk percentage control; large lot trading could cause significant losses
  • No spread filter; placing orders during high-spread periods could increase trading costs

Evaluation scores

Code quality2.0
Strategy logic2.0
Risk management2.0
Robustness2.0
Innovation2.0
Documentation1.0
Overall1.8

Parameters

ParameterDefaultDescription
BuyStopHour0Buy pending order trigger hour
BuyStopMinute0Buy pending order trigger minute
SellStopHour0Sell pending order trigger hour
SellStopMinute0Sell pending order trigger minute
LotSize0.1Fixed lot size, used when MMRec is disabled
StopLoss500Stop loss in points
TakeProfit500Take profit in points
OrderDistance100Pending order offset from current price in points
OrderExpiration0Pending order expiration time in minutes
DeleteUnfilledfalseDelete unfilled pending orders after specified time
MagicNumber12345EA unique ID to distinguish orders across instances
MaxSlippage3Maximum allowed slippage

Similar Session Trading 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.