Sail System Expert Advisor For MT4
WE IMPROVED THIS EXPERT ADVISOR FOR YOU!!!
PLEASE NOTE: This expert advisor was publicly available for free usage on other websites and is not programmed by us. We explain the functionality and possible improvements of the EA. Furthermore, we are convinced that fully automatic Expert Advisors will fail in the long run. On the other hand, our semi-automatic approach with detecting the best setups and then activating our Expert Advisors (e.g. V-Power EA, EdgeZone EA) produced many successful traders and some of them even got prop traders at prop trading firms. Therefore, we added a similar semi-automatic trading feature (to allow only buy or only sell trades) to the free Expert Advisors. You can download the modified version here and enjoy!
Table Of Contents:
- Sail System Expert Advisor For MT4
- The Sail System Expert Advisor For MT4 – Entry Criteria
- The Sail System Expert Advisor For MT4 – Exit Criteria
- The Sail System Expert Advisor For MT4 – Room for Improvement
The Sail System Expert Advisor for MetaTrader4 is a sophisticated automated trading system that uses the principle of hedging in trading. It is a fully automated trading system as it handles both the opening and closing of trades. Compared to other complex trading systems, this expert advisor works only on the current symbol, though. If anyone wants to trade more symbols at the same time on the same trading account, multiple instances of the robot should be run in those symbols. The user does not need to vary the magic number each time. It is taken care of by the expert advisor itself.
The trading program can work in trading accounts whose price quotes are defined in three digits for yen pairs and five digits for dollar pairs as well as in accounts whose exchange rates are expressed in two digits for yen pairs and four digits for dollar pairs. However, care should be taken when someone desires to use the robot in real trading. While it is possible to run the program in the strategy tester, the result may not be reliable. The only suitable way to test the performance of the robot is to apply it in a demo account.
The Sail System Expert Advisor For MT4 – Entry Criteria

The Sail System Expert Advisor runs a series of preliminary checks at regular intervals before working on the actual trade operations. This interval is not determined by the coming of a tick or by the formation of a new candle. Rather, it is embedded in the code as 10 milliseconds. The main trading algorithm is not run on the tick function, but on the timer function.
On each iteration, the expert advisor checks if the traded symbol has more than six characters. If so, the additional characters are stored in a variable for later use. Then it determines the value of one point for the current symbol based on the number of digits. If the OrdersID in Inputs is set to zero, the robot will generate a unique trade identifier based on the active instrument.
The expert advisor considers the stop level of the active symbol as a critical factor in its trading algorithm. It compares the values of the stop level and the freeze level and picks the bigger value as the new stop level. If this new stop level value is greater than the stop level defined in Inputs, the expert advisor will immediately terminate its operations. Therefore, the user must set a stop level in Inputs higher than the actual stop level if he desires to trade a specific trading instrument.
This trading system will only take action if the market is moving. It defines variables at the outset to store the values of ask price and bid price. If the current ask price or bid price is not equal to the previous ask or bid price, this means that a new tick has come in and the market is in motion. If so, the previous variables are set equal to the current ask and bid prices to continue the iteration process.
Further, the expert advisor will check if a time filter is used. By default, time filter is disabled, but the user can turn this function on and off in Inputs. Then the robot will count the orders on the current symbol. In this trading system, there are four possible types of orders that can be used (buy, sell, buy limit and sell limit). Finally, the current spread is checked if it is less than the maximum spread set in Inputs. If so, the algorithm moves forward.
There are several parameters that the user must understand and work through to be able to use the expert advisor successfully in trading. The most important parameters are listed below, along with their default values and explanation.
- UseVirtualLevels = true – When this parameter is true, the stop loss and take profit targets are not shown on the chart. Instead, the expert advisor keeps their values in memory, ready to be used when the time comes.
- ShowVirtualLevels = true – When this value is true, the take profit and stop loss levels are shown on the chart, meaning they are executed in the trade server when a trade request is sent.
- OrdersStopLoss = 5 – The stop loss of each trade is five pips, but the price level is not shown on the chart.
- OrdersTakeProfit = 50.0 – This figure refers to the take profit of each order in pips.
- UsePendingOrders = false – This parameter can be set to true or false. If true, the expert advisor will use buy limit and sell limit orders instead of buy and sell market orders. If false, which is the default setting, the robot will use buy and sell orders.
- DistancePending = 1.0 – This is the distance in pips between the market price and the buy or sell limit orders when pending orders are used for trade entry.
- UseTimeFilter = false – By default, this value is false, meaning the robot will not consider the time of day when looking for trade entry.
- AutoLotSize = false – This value can be true or false. By default, automatic lot sizing is disabled. Therefore, the robot will take the manual lot size set in Inputs.
- RiskFactor = 10 – When AutoLotSize variable is set to true, the expert advisor will use 10 percent of the account balance as risk amount for each trade.
- ManualLotSize = 0.01 – This is the fixed lot size of every trade.
- AcceptStopLevel = 2.0 – This variable is crucial in this trading system. It defines the maximum stop level value that the user is willing to accept for the current symbol. If the stop level happens to be bigger than this value, the robot would not take trades on the current symbol.
- Slippage = 1 – This figure is in pips. If the price has moved more than one pip from the time the trade request was sent to the trade server to the time the order was received by the server, the trade request would be rejected.
- OrdersID = 0 – The user can set any positive value for this parameter. If it is left to its default value of zero, the expert advisor will assign a different integer as magic number.
- MaxSpread = 1.0 – This number is in pips. If the current spread is greater than one pip, the expert advisor would not take a trade.
As a hedging strategy, the expert advisor does not use any technical indicator for trade entry and exit. When the algorithm gets past the preliminary checks above, it immediately puts two trades on the chart (one buy and one sell). They are separated by the spread amount. The market orders have no stop loss and take profit values as defined in the expert settings.
The Sail System Expert Advisor For MT4 – Exit Criteria
The Sail System Expert Advisor handles the closing of trades actively as it uses virtual stop loss and virtual take profit by default. However, the distances of the stop loss and of the take profit from trade entry are defined by the user. By default, the stop loss is five pips, and the take profit is 50 pips. When price reaches any of these levels, the current trade is closed forcibly.
The Sail System Expert Advisor For MT4 – Room for Improvement
It is not possible to judge the performance or get an insight into the prospects of using the Sail System Expert Advisor through back testing. This is because the algorithm considers the spread, stop level and slippage when executing and managing trades. These values cannot be obtained when historical price data is used, and it is not possible to simulate these values through a code. Therefore, the user must run the robot in demo trading to get an idea of its performance.