• Overview
  • Reviews (2)
  • Comments (56)
  • What's new

SpikeRebound Trader

The EA catches the rebounds during price spikes.

Entry is made using stop orders at a specified distance from the currently occurred spike. When the price goes upwards a pending sell stop order is placed and vice versa. If the price continues its movement in the initial direction after a pending order is opened, the stop orders "follow" the price at the specified distance. The pending orders that were not activated within the specified time are deleted. The time trigger for the movement start is the price crossing the price channel.


  • Works only on М1 chart
  • Suitable for only ECN accounts, as the stops and prices are set in a single action, preferably with Market Execution.
  • Only 5 or 3-digit quotes or XAUUSD (2 digits)
  • Suitable for any currency pair and XAUUSD.
  • It can be configured for various currencies and is able to work simultaneously on different charts, provided there are different Magic numbers.
  • Profitable orders are closed by trailing or Take profit.
  • Stop orders are preliminarily placed beyond the spread.
  • Hourly and daily filters. It uses the local time of your broker.
  • Optional spread filter.
  • Optional automatic lot size calculation.
  • The log file contains the data on the spread at the time of opening the pending orders and on the first tick after execution; slippage is calculated (the difference between the pending order and the executed quote).


  • Magic - magic number.
  • Com - custom comment.
  • TradeAllowed - enable/disable trading. Open market positions are maintained as normal.
  • MaxAllowableOrders - maximal number of pending and market orders at same time (limited to 10).
  • MaxPendingOrders - maximum number of pending orders.
  • Ent2EntRange - the minimum price difference in points (5 digits), between 2 successive pending orders. It is the distance from the market price at the time when the next pending order is placed.
  • isAutoLot - Select between automatic and fixed lot.
  • BaseEquity0_01 - Risk calculation (isAutoLot == false). The amount of the base currency corresponding to 0.01 lot. So, if this parameter is set to 50, then at equity of 300 the positions will have 0.06 lot
  • Lot - initial lot size if isAutoLot == false.
  • MaxSpead - spread filter. If the spread exceeds this value, new pending orders will not be placed.
  • MaxSpread2Closed - spread filter. If the spread exceeds this value, new pending orders will not be placed, the existing pending orders will be deleted.
  • TP - take profit.
  • SL - stop loss.
  • TR_Start - trailing start.
  • TR_Stop - trailing stop.
  • ChannelWidth - width of the price channel.
  • Zig - the minimum value of a price spike to place a pending order.
  • ZigTimeSec_Max - the maximum value of time for a price spike in seconds. Measured after the price crosses the price channel.
  • EnterStep - distance of the pending stop order from the current price, after which the current spread is added.
  • OverDueTime - time to delete the pending order in seconds, calculated from the moment of opening/modification of the pending order.
  • CustomFilter - addition filter based on analysis of the last two М1 bars, enabled when 'true'.
  • CustomRange - parameter in points (5 digits) for evaluating the movement for the last two М1 bars, required when CustomFilter == true.
  • AdjustHour - simplified adjustment of the time to the broker time zone. Negative values shift the time zone back, positive - forward. For example, SessionStartH 0 and AdjustHour 0, then the trading session will actually start at 23:00.

The remaining parameters apply to the daily and hourly filters.

Yaotang Liu
2017.01.08 18:07 

Interesting idea and author keep optimize the settings.

I think this would be a success EA.

Plamen Ivanov
2016.10.03 09:15 

Interesting idea with good results on Demo. Start testing it on real today with the .set files from the author. So far 5* :)

Version 4.4 - 2017.03.06
Significant changes compared to the previous version:
1. Ability to open and maintain multiple positions simultaneously
2. Added an optional filter, which allows filtering new entries based on the characteristics of the last M1 bars.
3. Improved output of comments to the log file
Version 3.51 - 2016.12.14
Fixed bug with modification of pending order.
Due to floating spread and slippages, in some situation request to modification was sent too close to a position or at a wrong price.
Version 3.41 - 2016.09.21
Performance optimized, low impact parameters removed.
Version 3.1 - 2016.06.03
Revised parameters.
Fixed bugs.
Improved logging.
Version 2.5 - 2016.03.14
Changed the spread control.
Now 2 parameters are used. MaxSpread - already placed pending orders will be not removed, new orders will not be placed. MaxSpread2Close - already placed pending orders will be deleted.
Version 2.2 - 2016.02.23
Fixed a bug occurring only during real trading.
Version 1.4 - 2016.01.27
1. Added new parameter: EXC_TIME_DELAY; Added pause to msec after the order placement/modification and before the order deletion.
It is done to prevent sending the "delete" order at the time when the modification might take place or during the execution of a pending order. Does not affect backtesting.
2. Once the price reaches the NoLossStart, SL is moved to NoLossClose.
Version 1.2 - 2016.01.20
Added adaptation to slippage
Corrected the entry logic