EA-13233 · Scalping

HFT Spreader 4 FORTS

This is a high-frequency trading spreader EA designed for the FORTS (Russian derivatives) market. It places buy and sell limit orders on both sides of the order book when the spread is wide enough, and actively manages those orders by canceling and repositioning them as market conditions change. The strategy profits from capturing the spread by being the best bid and best offer in the order book.

Open the interactive view (equity curve, symbol switch)

Key facts

CategoryScalping
RiskHigh risk
Rating★★☆☆☆
TypeTrading EA
TimeframesM1, M5, Tick
IndicatorsOrder Book (Market Depth)
AuthorSerhiy Dotsenko

Backtest results (H1, about 1 year)

Not backtested yet — this EA could not be converted automatically.

Strategy analysis

Strategy concept: This is a classic market making strategy where the core idea is to simultaneously place orders on both sides of the order book to profit from the bid-ask spread. Entry conditions: When the market spread is greater than or equal to SpreadToPutOrders multiplied by the minimum tick size, the EA places a sell limit order one tick below the Ask and a buy limit order one tick above the Bid, effectively becoming the best bid and best offer in the order book. Exit conditions: After a pending order is filled, the EA places a limit order in the opposite direction at twice the filled volume—one lot to close the existing position and one lot to open a new position in the opposite direction, creating a continuous market-making cycle. Position sizing: Initial lot size is controlled by the Lots parameter, and upon fill, a 2x volume order is placed in the opposite direction (1x to close, 1x to reverse). Money management: There are no stop-loss or take-profit levels configured, and no maximum position limits, making money management quite weak. Order management: The EA continuously monitors whether pending orders need to be moved—if the order price deviates from the current best price by more than one tick, or if the order is the sole best price in the book with a large gap to the next level, it deletes and replaces the order.

Strengths

  • Utilizes order book depth data for a refined market-making strategy with clear logic
  • Actively manages pending order positions, promptly adjusting to best bid/offer to improve fill rates
  • Includes a spread filter mechanism that only places orders when the spread is wide enough, avoiding being trapped in narrow spread conditions
  • Automatically closes positions and deletes pending orders in OnDeinit, ensuring no unmanaged positions remain when the EA is removed

Weaknesses

  • No stop-loss or take-profit configured, which can lead to significant losses during trending markets
  • The 2x volume reverse order mechanism means position size effectively doubles after each fill, creating a risk of uncontrolled position growth
  • Potential array out-of-bounds risk in isBestBidOrOfferOnlyMy function when accessing book[index+1] or book[index-1] without boundary checks
  • In checkPriceInPendingOrder, OrderSelect is called but the COrderInfo object is not properly initialized via Select/SelectByIndex, which may lead to incorrect data retrieval
  • Creating new CTrade objects on every OnBookEvent call for order deletion leads to unnecessary object creation/destruction overhead

Possible improvements

  • Add stop-loss, take-profit mechanisms and maximum position limits to prevent unlimited losses in trending markets
  • Fix COrderInfo initialization issue to ensure order data is properly loaded after OrderSelect
  • Add boundary checks for order book array access to prevent out-of-bounds crashes
  • Make CTrade a global or class member variable to avoid frequent object creation and destruction
  • Add position sizing limits to prevent the 2x volume reverse order mechanism from causing uncontrolled position growth

Risk assessment

Overall risk: High risk

  • No stop-loss configured, trending markets can cause massive losses
  • The 2x volume reverse order mechanism can lead to exponential position growth
  • Lack of boundary checks on order book array access can cause EA crashes leaving positions unmanaged
  • COrderInfo initialization issues may lead to incorrect trading decisions

Evaluation scores

Code quality2.0
Strategy logic3.0
Risk management1.0
Robustness2.0
Innovation3.0
Documentation1.0
Overall2.0

Parameters

ParameterDefaultDescription
Lots1Lot size per pending order
SpreadToPutOrders4Min spread multiplier to trigger pending orders
Magic99Magic number for identifying EA orders

Similar Scalping 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.