EA: Binary Options Xtreme Binary Robot

This EA is based on the Xtreme Binary Robot Strategy. It is similar to the original strategy with some modifications.

Original Strategy:

– First of all, wait for price to cross Upper or Lower Channels
– If yes then wait for a BUY/SELL arrow
– Finally, wait for strong WAExplosion (Red for SELL and Green for BUY)


– Regression_MT4_V2 for Channels
– Either of these arrow indicators:
OR LabTrend1_v2
OR 3_Level_ZZ_Semafor
(For Arrow Signal)
– Either of these:
OR iStochastic
OR MT4-LevelStop-Reverse
(For verification)

I have found that xtreme_binary_robot_ultimate_edition indicator massively repaints. Even after current candle closes.
So, I have tried other arrow indicators like: LabTrend1_v2 and 3_Level_ZZ_Semafor.
The beauty of this EA is that you can fit any of your favorite arrow indicators. Test it out in strategy tester and know which ones are most profitable.

How the EA works:

– Checks if the price crosses the Regression Channels shown by Regression_MT4_V2 indicator
– Then waits for an arrow from one of the Arrow Indicators (your choosing)
– Then, if you want, it will verify if its a good signal using WAExplosion or iStochastic or MT4-LevelStop-Reverse Trend Indicator

Code Modification:


Code Problem: The Regression_MT4_V2 indicator does not have any buffer values for it’s channels. It just draws Objects using Trend Lines. So, I have modified it’s code: Regression_MT4_V2_Abiroid. It now has buffers for all Channels for existing candles. And for future candles it will continue to draw Objects.

You can use the Upper and Lower Channels or modify code to use inner or outer channels here:

double Channel_Up = iCustom(NULL, 0, "Regression_MT4_V2_Abiroid", 2, 1);
double Channel_Down = iCustom(NULL, 0, "Regression_MT4_V2_Abiroid", 5, 1);
double Channel_MidUp = iCustom(NULL, 0, "Regression_MT4_V2_Abiroid", 0, 1);
double Channel_MidDown = iCustom(NULL, 0, "Regression_MT4_V2_Abiroid", 0, 1);

Channel_Up and Channel_Down are used to start watching for an Arrow Signal after price crosses that channel.
And Channel_MidUp and Channel_MidDown are used to stop watching for Arrow Signal.
Because if price crossed the Mid Channel then it is too far and might reverse soon.

This gives fewer signals but makes it more accurate. To get more signals, comment the lines:

      // If price has crossed above Mid Channel turn buy off
      if(isBuySignalOn == true && isValidValue(Channel_MidUp) && Cross(2, Close[1] < Channel_MidUp)) {
         isBuySignalOn = false;
         isBuyArrowOn = false;
         myAlert("print", "Mid Channel Crossed. Buy is Off");
      // If price has crossed below Mid Channel turn sell off
      if(isSellSignalOn == true && isValidValue(Channel_MidDown) && Cross(3, Close[1] > Channel_MidDown)) {
         isSellSignalOn = false;
         isSellArrowOn = false;
         myAlert("print", "Mid Channel Crossed. Sell is Off");

Arrow Indicators:

For selecting the Arrow indicator just uncomment whichever one you like from lines, and comment the others:

//buyArrow = iCustom(NULL, 0, "xtreme_binary_robot_ultimate_edition", 0, 1);
buyArrow = iCustom(NULL, 0, "LabTrend1_v2", 0, 1);
//buyArrow = iCustom(NULL, 0, "3_Level_ZZ_Semafor", 4, 1);


//sellArrow = iCustom(NULL, 0, "xtreme_binary_robot_ultimate_edition", 1, 1);
sellArrow = iCustom(NULL, 0, "LabTrend1_v2", 1, 1);
//sellArrow = iCustom(NULL, 0, "3_Level_ZZ_Semafor", 5, 1);

If you are using your own arrow indicator, please be sure to use the correct buffer number for BUY/SELL arrows.


1. WAExplosion:

It shows the strength of a trend.
You can use my custom function isWAExplosion(OP_BUY, 1) to check if BUY Trend is good or not and only then do a BUY and same for SELL using OP_SELL.
To make sure that WA Explosion is strong, isWAExplosion checks for minimum “Point * 150” value. If you want you can change this value. Keeping it higher means it will wait for a good high explosion. But keeping it too high will make you miss signals. And it might also be near a reversal.

2. Stochastic:

Similarly, use isStochasticSafeTrade to check if Trading is Safe. Stochastic Indicator can check for S/R Area, High Risk Areas, etc.

3. MT4-LevelStop-Reverse:

You can use this indicator to detect current Trend. Original MT4-LevelStop-Reverse indicator didn’t have buffer values either. So I have modified it: MT4-LevelStop-Reverse_Abiroid.
Use this function: isSafeTrend(OP_BUY) or isSafeTrend(OP_SELL) to check if current trend is for BUY or SELL.

In Conclusion:

Arrow Indicator: Main Signal for BUY/SELL
Regression Channel: Supporting Signal for approving BUY/SELL
Verification Indicators: Indicators which show if it’s Safe to Trade

Code for Original Strategy:


if(isBuySignalOn && isBuyArrowOn && isWAExplosion(OP_BUY, 1) && TradesCount(OP_BUY) == 0) {

This will check if:
isBuySignalOn: Price has crossed Regression_MT4_V2 Lower Channel.
isBuyArrowOn: Arrow Indicator has given a BUY Arrow
isWAExplosion: Trend for previous closed candle was Bullish

TradesCount(OP_BUY) == 0: Means no already open BUY trades.


if(isSellSignalOn && isSellArrowOn && isWAExplosion(OP_SELL, 1) && TradesCount(OP_SELL) == 0) {

Use the above conditions if you want to use the original Xtreme Binary Robot Strategy.

Another Example Strategy:

Another strategy that gives very accurate albeit very few signals:

if(isBuySignalOn && isBuyArrowOn && isTrendUp && TradesCount(OP_BUY) == 0) {


if(isSellSignalOn && isSellArrowOn && isTrendDown && TradesCount(OP_SELL) == 0) {

Use it with M15, for 1 bar expiry.

But you can fine-tune it using different Arrow Indicators, Channel Indicators and verification code.


Just remember, this EA will only be as strong as the Arrow indicator you choose.

Please write to us for any suggestions to make this EA better. Also, which timeframes and which pairs you try it with.
Please try it on your DEMO account because it is still a work in progress. I’m still working on making it better 🙂

You may also like...

5 Responses

  1. lyazi says:

    does the xtreme_binary_robot_ultimate. i want to use it with rsi it gives accurate results

  2. Chif says:

    Hi,How can I modify the robot to tp on the opposite touch of the regression?

    • Abir says:

      Hi there,
      Sorry I’m not maintining the code for this EA anymore.
      Please be careful using it because I haven’t updated it with latest Metatrader versions for a while.

  3. Chif says:

    Hi Abir,do you have a similar ea to this one,it’s just that I use the manual one and it would have been perfect and many more entries with the ea

    • Abir says:

      Actually I haven’t created any EAs in a while.
      I’m mostly focused on Indicators.
      They are available on mql5 site for sale:

      The free ones are mostly here on my website. And some on mql5 too.

      About this Xtreme EA.. Since it was written for binary options, there is no take profit.
      But you can add it. Modify the myOrderSend function in common library. And change the OrderSend values to what you like.
      Here’s more info about it:

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: