RSI Divergence Trader
Try the default settings on M5 - EURUSD, EURCAD, EURAUD; M15 - USDJPY
Monitoring Signal: https://www.mql5.com/en/signals/1113703
Monitoring Signal with more aggressive settings: https://www.mql5.com/en/signals/1160841
Recommended broker: IC Markets
I believe that the RSI is the best indicator out there and most of the times, a divergence on the RSI is a strong hint for a good entry. But what do you do if, after the entry, the trend is strong? And how can you isolate the best and most profitable RSI divergences? Those where my questions when I started working on this EA.
First of all, there are two terms that I want to define. One is "signal" - which I call the RSI peak; and the other one is "entry" - which I call the actual opening of a trade, where the divergence is present.
So here are some of the answers I came up with to the questions in the first paragraph:
-> For choosing the right signals:
- Filter based on RSI values
- Filter based on Price Action - the signal should only appear after X points already traveled, because divergences tend to happen at the end of a trend
- Filter based on ADX values - you can use ADX as an additional indicator, along with RSI
- Cancel the signal if a counter-signal appears - this means, you cannot have a buy signal and a sell signal at the same time. The trend will go either up or down
-> For choosing the right entry:
- Define min and max distance from the signal - in terms of time and price difference
- Filter based on Price Action - buy only if price is in the lower Y% of the past Z bars = buy low, sell high
- Filter based on ADX +DI and -DI values, or on ADX divergences
- Only enter in case of a multi timeframe divergence
-> Order management:
- Exit trades at fixed take profit or based on a divergence in a different direction (DTP - dynamic take profit)
- Fixed or trailing SL
- Automatic lot size calculation
- Manage your trades with a grid option
- Increase or decrease lot size
- Increase or decrease grid entry distance
-> In case something goes wrong:
- Lock trades after a certain drawdown percent
- After locking, the EA can continue to look for divergences on the same or on a different timeframe and use the new profit to partially close the loss
- Or use a fixed or a trailing stop-loss
If you start to use this EA, you will find it's a very versatile software, that could help you isolate some cases and choose only those entries that you find worth the risk. With the standard settings you can expect around 3-5% a month per pair, but with more aggressive settings you can achieve a steady 10% profit/month/pair.
I will work on offering a detailed description for each variable in the future and more screenshots, but be my guest and try it out. I am happy to answer any questions!
- New variable: "Reset Peak Logic" - If RSI continues to stay oversold/overbought, the entry is being delayed. From testing, it is not good to enter the trade if the trend is still strong.
- New variable: "Min Bounce" - The trade is possible only if there is a move in the counterdirection of at least this value in points.
- New variable: "Max Pairs" - Max number of pairs open at the same time. EA checks if there are other trades open and will not open another trade.
- Removed Moving Average filter - If someone was using it, please contact me.
- Removed some other functions that were not so useful
- Reduced number of maximum orders in a basket to 8
Big thanks to addyleslie for helping me develop and test the EA!
- IMPORTANT: Corrected SL inconsistency: In the old version, at the variable "Fixed SL", the value was positive. In this version, to define the SL, you need to specify a negative value. Meaning, at how many points in loss should the SL kick in. Please update your settings immediately if you use an SL. If you use the default settings, no change needed.
- New TP Type: At Bar Close > Fixed TP - with this new TP, the check to see if TP is reached is performed only after bar close, not at every tick. This could generate more profit, but may be a little more risky
- Removed the option to select different RSI periods between peak and entry. That made no sense, now the same period is used to check for divergences
- New variable: "No Trade - Notifications Only" -> if this is set TRUE, the EA will only send you a notification that a divergence was found on symbol XYZ, timeframe ABC. You can decide if you want to open a trade manually or not
- New variable: "USA Compliance" -> Necessary only to traders that use an american broker (like OANDA). If it is set to TRUE it won't open buy and sell positions on the same symbol at the same time
- New SL option: "Fixed at First, Trailing After" -> If selected, the SL is set at "Fixed SL At" and if the trades go into profit, starts trailing after "Activate Trailing SL At"
- Trades are now closed FIFO -> Oldest trades in a basket are closed first when TP is reached
- Increased default maximum spread to 45
- Rebranding to "PRO"
- Changed text description of some inputs
No other changes
- Bug fix to "Recovery Trades": After a recovery trade hit TP, the EA would open a new recovery trade immediatly, instead of waiting for the next bar. Fixed.
- Small update of default settings
No other changes
- Small fix to "Recovery Trades": All recovery trades respect the R-timeframe, not the chart timeframe. In the old version, only the first trade was taken using the R-timeframe.
- Added Moving Average Filter. With this filter, entries can be additionally limited so that you are working with the main trend if you want to. There are 2 possible strategies:
- Strategy 1 - Only Buy Orders above MA, only Sell Orders below MA
- Strategy 2 - Only Sell Orders above MA, only Buy Orders below MA
- Filter can also be turned off
How it works: The EA looks for divergences, like it normally does, but now if it receives a command to open a buy, also looks at the moving average. Is the price above the moving average and we are working with Strategy 1? Then that buy can be performed.
Additionally, the MA can also be used as a stop loss if you select "Use MA as SL in Strategy 1" as TRUE.
- Updated default values (M5 is still the default timeframe)
- Updated display names for the variables
- Added an order comment field
- Added a new variable: Close Trades At New RSI Extreme -> Example of how it works: Imagine the EA found a divergence with a signal RSI at 75.2, entry RSI at 70 and entered a sell trade. With this variable turned ON, if the trade is still open and there is a new RSI greater than 75.2, the sell will be closed at candle close. Reason: the RSI divergence was not respected and price continues with greater strength up.