Popular Posts

Editor'S Choice - 2019

Force Trader - a long-term robot according to the system of Alexander Elder

We have all heard about the importance of diversification, but for the Forex market, where most of the currency pairs are tied to the US dollar, it is not so easy to solve the problem of diversification. Since diversification in currency pairs is not possible, we have to go to some tricks. For example, use several strategies different in type and period of work. Often, traders try to combine in one portfolio of strategies and scalpers, and trend strategies, and reversal, working at the same time on different periods - from M5 to D1.

Moreover, quite often advisers are used in addition to manual strategies. Profitable advisers, in turn, are not so many, and the authors most often strive to create a universal scalper that would be “one in the field warrior”. This approach has several advantages: the lower the time frame, the more transactions in the same unit of time. The more trades, the higher the profit and the yield curve looks smooth and stable. And today we’ll just talk about such an adviser - Force trader, which can fit well into almost any portfolio of strategies.

But there are, of course, disadvantages. To create an adviser that works well and stably in any market conditions for quite a long time is rather difficult. In addition, the smaller the timeframe, the greater the influence of various market factors, such as spread, swaps and slippage on the final result. The quality of testing and historical data with decreasing timeframes are growing exponentially.

And, nevertheless, there is an increased interest in such advisers, since the potential positive aspects outweigh the negative ones. Hence the serious drawback of long-term trading strategies, which, in fact, are directly opposed to short-term strategies. Their main disadvantage is unhurried trading with low profitability, long drawdowns and a small number of transactions. But this class of TS is easier to create and the testing requirements there are the mildest.

Similar strategies can be launched with any broker, with any trading conditions and differences in trading results will be small. The only thing to remember is the different form of day candles due to the difference in GMT servers and, occasionally, the different number of trading days in a week can still slightly affect the trading results.

Advisor Characteristics

Platform: Metatrader 4
Advisor Version: 1.0
Currency pairs: AUDCAD, AUDNZD, AUDUSD, EURUSD, NZDCAD, NZDUSD, CADCHF, USDCAD, USDJPY, USDCHF
Timeframe: D1
Working hours: round the clock
Recommended Brokers: Roboforex, Alpari, Exness

Advisor Installation

We install the adviser as usual. Detailed installation instructions are described in the article on the site. If this is your first time encountering Forex robots and you have a bunch of questions, download and watch the free Forex course on Autopilot.

After restarting Metatrader, Force Trader v1.0 appears in the Navigator panel, then we drag it into the selected window of the currency pair of the D1 timeframe.

Instead of restarting the terminal, you can also click the refresh button and the adviser will appear in the list:

Attention!

Do not forget to load the preset of the settings corresponding to the traded pair. In order to load the preset, when installing the adviser on the chart, in the settings window, click Download and select the desired set:

In this advisor, the settings significantly affect the trading results, use the recommended set files (see archive at the end of this article).

Advisor Strategy

This is a long-term adviser, which is the adaptation of the classical system of Alexander Elder to the Forex market. This is not an original system, but its free adaptation. In addition to the force index used in the original system for entry, the indicators Momentum, RSI, WPR, DeMarker are also used according to the original principle - the intersection of the midline by the indicator.

The input signal is generated in a complex manner, and if at least one of the conditions does not match, the input will not be made.

Let's look at the entry rules by points.

  1. First, to determine the current trend, the Momentum indicator with a period of MomTrendPer is used. If the current reading is above 100, only purchases are possible. When the indicator reads below 100, only sales are considered.
  2. If the filter of correlated inputs (BalancePairFilter) is enabled, then before opening a position, the adviser will analyze already opened transactions. For example, if a purchase transaction has already been opened on EURUSD, then only sales can be opened on GBPUSD. If a purchase transaction is open at GBPUSD, then sales at USDCHF are prohibited. A not so strict filter can be obtained by turning on the OnlyCurrPair parameter. It allows you to track transactions only in the currency in which it is planned to open a new transaction. That is, an open sale on USDJPY will not allow to open another sale on this pair.
  3. The next filter is UseMaxRiskFilter. It tracks the maximum risk on the account. Everything is simple here - if the potential loss of already open positions and a new position exceeds the MaxRisk value as a percentage of the deposit, the transaction will not be opened. In this case, transactions are taken into account, the stop on which has already been transferred to the breakeven level - there is no longer any risk for a deposit and such transactions are not taken into account. If you set MaxRisk = 10%, while the current risk is 9%, and the risk per trade is 1.5%, then 9 + 1.5 = 10.5 is greater than MaxRisk and the deal will not open. Speaking of current risk, it is calculated based on the current lottery and stop levels of all transactions on the account. That is, this is the loss that would have happened if at the moment all the deals were closed in stop.
  4. Then, the adviser looks at the position of the last closing price relative to the exponential moving average with the TrendMAPer period. If the last closing price is above the moving average, only purchases are possible, otherwise - only sales.
  5. Further it is possible to use one of the five oscillator options: Momentum, Force, RSI, WPR or Dem. If several oscillators are used, a signal from one of them is sufficient. The following settings are responsible for the inclusion of an oscillator: UseForce, UseMom, UseRSI, UseWPR, UseDem. To enter the purchase, it is enough that the Force on the last candle crossed the zero level from top to bottom, or Momentum crossed the level 100 from top to bottom, or RSI was below the RSILev level, or WPR was below the WPRLev-100 level, or DeMarker was equal to zero. All this is flexibly configured in the corresponding settings block. For sales, the signal is formed in the same way.

Here is a typical sell signal:

An example of a buy signal:

As you noticed, the EA opens two orders at once. The first order can be according to the rules of the system, while each rule can be disabled in the settings and they act independently of each other. Let's analyze the exit rules:

  1. The rule for updating minima or maxima is enabled by the UseClassExit setting. After ExitProfitMinutesClass after opening a position, the adviser begins to track the possibility of exit by this rule. It calculates the maximum for sales and the minimum for purchases during the ExitHist of the last days, and if the closing price of the last day falls below this minimum, the purchase will close. In turn, if the closing price of the last day is above the maximum, the sale will close.
  2. The next rule, ADX output with an EADXPer period, is enabled by the UseADXExit setting. You can set three different options for its action using the EADXVariant configuration. The first option is if the current ADX reading exceeds EADXLevel, an exit occurs. The second option is to cross this level from top to bottom. And the third option is when ADX grew for a while, and then fell below the EADXLevel level. This rule becomes relevant only after ExitProfitMinutesADX days after entering the position.
  3. DEM output with an EDEMPer period is enabled by the UseDEMExit setting and also contains three EDEMVariant execution options to choose from. Option 1 - exit from purchases occurs when DeMarker is above the level of 1-EDEMLevel, from sales - below EDEMLevel. The second option: exit from purchases occurs when DeMarker crosses the level of 1-EDEMLevel from top to bottom, from sales - the level of EDEMLevel from bottom to top. The third option is similar to the second, only level 0.5 is taken. The rule is activated after ExitProfitMinutesDEM days from the moment of entry.
  4. WPR output with an EWPRPer period is enabled by the UseWPRExit setting and also contains three options for EWPRVariant execution to choose from. Option 1 - exit from purchases occurs when WPR is above the level - EWPRLevel, from sales - below EWPRLevel-100. The second option: exit from purchases occurs when WPR crosses the level - EWPRLevel from top to bottom, from sales - the level of EWPRLevel-100 from bottom to top. The third option is similar to the second, only the level -50 is taken. The rule is activated after ExitProfitMinutesWPR days from the moment of entry.
  5. Exit via Stochastic with a period of ESTOKPer, ESTODPer and ESTOSPer, constructed by the ESTOMode method is enabled by the UseSTOExit setting and contains six options for ESTOVariant execution to choose from. Option 1 - exit from purchases occurs when Stochastic is above the level of 100-ESTOLevel, from sales - below ESTOLevel. The second option: exit from purchases occurs when Stochastic crosses the 100-ESTOLevel level from top to bottom, and from sales, the ESTOLevel level crosses from bottom to top. The third option is similar to the second, only level 50 is taken. The fourth option is to close purchases when the signal line crosses the main line from top to bottom, sales - when the signal line crosses the main line from bottom to top. The fifth option is similar to the fourth, but the intersection should occur in the area above 50 for purchases and below 50 for sales. The sixth option is similar to the fifth, but instead of level 50, 100-ESTOLevel is used for purchases and ESTOLevel for sales. The rule is activated after ExitProfitMinutesSTO days from the moment of entry.
  6. And the last exit rule - the RVI indicator with the period ERVIPer is applied and is enabled by the UseRVIExit setting. This rule contains three ERVIVariant execution options to choose from. Option 1 - exit from purchases occurs when the RVI crosses zero from top to bottom, for sales it is vice versa. The second option: exit from purchases occurs when the RVI signal line crosses the main line from top to bottom, from sales - vice versa. The third option is similar to the second, only intersections above zero for purchases and below zero for sales are taken into account. The rule is activated after ExitProfitMinutesRVI days from the moment of entry.

While all two trades are open, the EA expects a signal to exit and waits for the opportunity to transfer trades to breakeven if UseBE is enabled. Moreover, if the price has passed BEPerc percent of the entire distance from the opening price to the take-profit level, then stops on transactions are transferred to the breakeven level plus BEPlusPips points as a margin for slippage and to compensate for possible costs of swaps.

After closing the first order, a trailing stop is included in the work if UseMATral is enabled. At the same time, if the UseMATralOnStart setting is also enabled, the EA will not wait for the first order to close and will start trailing immediately. Trailing Stop uses a moving average to calculate with an iMAPeriod period and iShift deviation. You can set the method for calculating movings yourself using the iShift parameter, and the iIndent parameter will help you set the minimum distance from the current price to the moving average.

Of course, all advisor orders use stop loss and take profit. There are two options for setting SLVariant stop levels: a fixed SL in points or depending on the readings of the daily ATR indicator (20) with the SLCoef coefficient. Take profit is set as a percentage of TPProc of the stop level.

And finally, let's deal with money management. There are only four LotVariant options:

  1. The first option is FixLot. Since the EA opens two orders at once, if you set a lot of 0.01, then two orders of 0.01 will open - in the amount of 0.02. If you set 0.02, two orders of 0.01 (0.02 / 2 = 0.01) will also open. By analogy, if you set 0.1 lot, two orders of 0.05 will open.
  2. Option two - a fixed percentage. Here you can set the Risk parameter, which will allow you to risk no more than Risk percent of the deposit.
  3. You can also set a fixed proportion by specifying the amount of money to open with a minimum Lot of MoneyForMinLot. If you set MoneyForMinLot = 100, having a deposit of $ 200, two orders of 0.01 will be opened. For a deposit of $ 100, two transactions of 0.01 will also be opened. For a deposit of $ 400, two transactions of 0.02 lots will open.
  4. The last version of MM takes into account the drawdown obtained during testing. For example, you have a drawdown of 20%. So that in real trading the maximum drawdown is approximately the same, set MaxDD = 40, and RiskDD = 1. With a set of MaxDD = 40 and RiskDD = 2, the drawdown will be twice as high as calculated, or 40%. With a set of MaxDD = 20 and RiskDD = 1, the drawdown will also be twice as high as calculated, or 40%. I think the principle is clear.

And, perhaps, this is all that can be said about the trading strategy used in this adviser.

Monitoring

Advisor works in Robot Test

Advisor Testing

Before installing any Expert Advisor on the account, it is necessary to test it in order to subsequently avoid disappointment and make sure that the current settings are working. This will help you identify outdated or unacceptable sets for you, make sure the correct broker is selected, and calculate the appropriate money management. It is best to conduct tests on the most complete period of historical data, after checking the quality of your quotes and pumping up the missing data. In addition, do not forget to set a realistic level of spread, laying also on slippages, which will certainly be.

Backtests are made for each pair separately, as MetaTrader 4 platform does not allow multicurrency tests. During testing, the original settings files (presets) were used. Tests made using quotes Alpari with original time settings. When testing with a start date of 2000, closing price quotes were used.

First of all, let's compare the test results of the same pair on the same time interval in different test modes.

M1 all ticks:

D1 all ticks:

D1 at opening prices:

As you can see, the difference is minimal. Therefore, the quality of testing on this adviser has little effect and you can run tests at opening prices without worrying about the final results.

Let's look at the tests with a fixed lot now. They have been made separately since 2000 for Alpari quotes and since 1970 at closing prices found in a quote network from an unknown source.

AUDCAD 2000:

AUDCAD 1980:

On the AUDCAD currency pair, the adviser shows fairly stable growth. Drawdown periods can reach up to three years; periods of steady growth last for decades. The profit factor is quite high, the maximum drawdown is small. The average profitable transaction is slightly less than the average unprofitable, but the number of profitable transactions is high.

AUDNZD 2000:

AUDNZD 1985:

On the AUDNZD currency pair, the EA shows very stable growth. Periods of drawdown last for several months, periods of steady growth last for decades. Profit factor is very high, maximum drawdown is small. The average profitable transaction is slightly less than the average unprofitable, but the number of profitable transactions is high.

AUDUSD 2000:

AUDUSD 1971:

On the AUDUSD currency pair, the adviser shows an acceptable result. The drawdown periods last for a very long time. The profit factor is below average, the maximum drawdown is quite large. The average profitable transaction is slightly less than the average unprofitable, and the number of profitable transactions is not so high. In addition, the last year, the adviser for this pair loses a deposit. Nevertheless - for a longer period, the results look acceptable.

CADCHF 2000:

CADCHF 1971:

On the CADCHF currency pair, the adviser shows an acceptable result. The drawdown periods last for a very long time. The profit factor is below average, the maximum drawdown is large. The average profitable transaction is slightly less than the average unprofitable, and the number of profitable transactions is not so high. It is clearly seen that the adviser is increasing the deposit in a wave-like fashion, alternating long periods of drawdowns with periods of effective work. However, for a longer period, the results look acceptable. But it is worth paying attention to the last section in comparison with the previous one - the angle of inclination of the yield curve has clearly slowed down, which may indicate a partial loss of effectiveness of this strategy in pairs with the Swiss franc.

EURUSD 2000:

EURUSD 1971:

On the EURUSD currency pair, the adviser shows a good result. The drawdown periods last for a very long time.The profit factor is above average, the maximum drawdown is within normal limits. The average profitable transaction is higher than the average unprofitable, the number of profitable transactions is not so high. Obviously short positions for this pair are given to the adviser better than purchases, so it makes sense to limit the use of this set only to sales. Over a longer period, it is noticeable how, from about the late nineties, the strategy lost its effectiveness, but then continued to earn again.

NZDCAD 2000:

NZDCAD 1985:

On the NZDCAD currency pair, the adviser shows a good result. The yield curve is growing quite stably. Profit factor is high, the maximum drawdown is very small. The average profitable transaction is decently lower than the average unprofitable, but the number of profitable transactions approaches 80%. Over a longer period, it is noticeable that since about 2015 the strategy has lost its effectiveness, so you should be careful with this set.

NZDUSD 2000:

NZDUSD 1971:

On the NZDUSD currency pair, the adviser shows an acceptable result. The yield curve is growing quite stably, although periods of drawdowns last quite a long time. The profit factor is below average, the maximum drawdown is acceptable. The average profitable transaction is almost equal to the average unprofitable, the number of profitable transactions is acceptable. Profitable long positions are much larger than profitable short ones, so it makes sense to set the advisor settings for this set only in purchases. Over a longer period, it is noticeable that since about 2015 the strategy has lost its effectiveness, so you should be careful with this set and, apparently, with all sets of NZD currency.

USDCAD 2000:

USDCAD 1971:

On the USDCAD currency pair, the adviser shows an acceptable result. The yield curve is growing quite stably, although periods of drawdowns last quite a long time. The profit factor is not bad, the maximum drawdown is too big. The average profitable transaction is slightly less than the average unprofitable, the number of profitable transactions is quite high. Over a longer period, it is noticeable that since about 2010, the strategy has significantly increased in effectiveness. However, the last year - one and a half drawdowns are observed.

USDCHF 2000:

USDCHF 1971:

On the USDCHF currency pair, the adviser shows an acceptable result. The yield curve is growing, periods of drawdowns are overcome quite quickly. The profit factor is acceptable, although on the verge, the maximum drawdown is average. The average profitable transaction is decently less than the average unprofitable, but the number of profitable transactions is quite high. It is noticeable that since about 2017 the strategy has entered a drawdown, but it seems that the bottom has already been passed. Nevertheless, since the beginning of the 2000s, the strategy has lost a little in effectiveness, like all advisor sets with the participation of the Swiss franc.

USDJPY 2000:

USDJPY 1971:

On the USDJPY currency pair, the adviser shows quite a good result. The yield curve is growing, although periods of drawdowns sometimes last quite a while. The profit factor is acceptable, the maximum drawdown is a bit high. The average profitable transaction is quite a bit less than the average unprofitable, and the number of profitable transactions is around 60%. It is noticeable that since about 2000 the strategy has entered a long drawdown, but from about 2007-2009 it again went into growth mode. Recently, the strategy is also experiencing a drawdown.

Now consider the combined tests of all currency pairs:

Since 1971:

Since 2000:

And with the use of money management 1% of the deposit per transaction since 1971:

Since 2000:

Since 2015:

The adviser showed fairly stable results on major currency pairs over a long period of time. Of course, as an independent EA, it has a rather modest result, but it will prove to be excellent in a diversified long-term portfolio.

Recommended Money Management

A transaction risk of 1 to 2 percent of the deposit is recommended. You can simply set the risk level in the EA parameters and everything will be calculated automatically. Before choosing an acceptable level of risk, I recommend testing with the level of deposit that you plan to use and evaluate the level of drawdown. The minimum recommended deposit for use on all pairs is $ 1,000.

Description of parameters and settings

Block "Service Settings"

Expertname - the name of the expert, what is written in the commentary on the order;

Magic - magic number of orders;

RealTrade - switch real trading / test. The fact is that the adviser opens real transactions at 00:30 instead of 00:00. This is done to wait for the period of the day, when the spread is very stretched, and some brokers disable the possibility of trading. For tests, it is possible to trade at 00:00, so that testing can be carried out at the opening prices of the day on the period D1.

Input Signal Block

Momtrendper - period of the Momentum indicator to determine the current impulse;

TrendMaper - period of the moving average to determine the current trend;

RSILev - level for the signal on the RSI indicator;

WPRLev - level for the signal on the WPR indicator;

UseForce - inclusion of a signal on the Force indicator;

Usemom - inclusion of a signal on the Momentum indicator;

UseRSI - inclusion of a signal on the RSI indicator;

UseWPR - inclusion of a signal on the WPR indicator;

UseDem - inclusion of a signal according to the DeMarker indicator.

Block "MM Settings"

Lotvariant - MM option:

- fixed lot

- fixed percentage

- Fixed proportion of Ralph Vince

- Fixed percentage for maximum drawdown

Fixlot - fixed lot;

Risk - risk as a percentage of the deposit;

MoneyForMinLot - deposit money on a minimum lot;

Maxdd - maximum drawdown;

Riskisk - risk as a percentage of drawdown;

Block "SL and TP Settings"

SLVariant - SL installation option:

- fixed stop

- stop on APR

SL - fixed stop value;

SLCoef - ATP stop coefficient;

TPProc - value in% of stop.

Block "Exit in the classics"

UseClassExit - exit rule switch;

Exithist - the number of candles in the history to track extremes;

ExitProfitMinutesClass - the minimum number of candles to turn on the signal.

Block "Exit on ADX"

UseADXExit - exit rule switch;

EADXVariant - rule work option:

- above level

- crossed the level

- 3 candles fall in a row and crossed the level

Eadxper - ADX period;

EADXLevel ADX level

ExitProfitMinutesADX - the minimum number of candles to turn on the signal.

BB Exit Block

UseBBExit - exit rule switch;

EBBVariant - rule work option:

- above the upper BB

- was higher than the upper BB, became lower

- below the lower BB

EBBPer - period BB;

EBBDev - deviation of explosives;

ExitProfitMinutesBB - the minimum number of candles to turn on the signal.

Block “DEM Output”

UseDEMExit - exit rule switch;

EDEMVariant - rule work option:

- above the top level

- was above the upper level, became lower

- crossed zero

EDEMPer - period of DeMarker;

EDEMLevel - DeMarker level;

ExitProfitMinutesDEM - the minimum number of candles to turn on the signal.

Block “WPR Output”

UseWPRExit - exit rule switch;

EWPRVariant - rule work option:

- above the top level

- was above the upper level, became lower

- crossed zero

EWPRPer -WPR period;

EWPRLevel - WPR level;

ExitProfitMinutesWPR - the minimum number of candles to turn on the signal.

Block “Exit by Stochastic”

UseSTOExit - exit rule switch;

Estovariant - rule work option:

- above the top level

- was above the upper level, became lower

- crossed zero

- crossed the signal

- crossed the signal above zero

- crossed the signal above the level

Estomode - indicator calculation method;

Estokker - period k of the Stochastic indicator;

Estodper - period d of the Stochastic indicator;

Estosper - period s of the Stochastic indicator;

Estolevel - indicator level;

ExitProfitMinutesSTO - the minimum number of candles to turn on the signal;

Block "RVI Output"

UseRVIExit - exit rule switch;

Ervivariant - rule work option:

- crossed zero

- crossed the signal

- crossed the signal above zero

ERVIPer - period of the RVI indicator;

ExitProfitMinutesRVI - the minimum number of candles to turn on the signal.

Trawl block

UseMATral - The inclusion of trailing on a moving average;

UseMATralOnStart - The inclusion of trailing by moving average from the moment of entering the position (without waiting for the closure of the first order);

iShift - shift of the moving average;

iIndent - indent from the moving average;

Mamethod - type of moving average;

iMAPeriod - period of the moving average.

Block "BU"

Usebe - inclusion of the function of transfer to breakeven;

Becerc - percentage of profit, upon reaching which you can transfer the stops of the order to the breakeven level;

BEPlusPips - margin in points to the breakeven level.

Block "Correlation Filter"

Described in detail above.

BalancePairFilter - inclusion of the function;

OnlyCurrPair - work only for the current pair.

Block "MaxRisk Filter"

Described in detail above.

UseMaxRiskFilter - inclusion of a maximum risk filter;

Maxrisk - maximum risk on deposit.

Block "Other trading settings"

Usecomments - enable / disable the use of the output of comments on the work of the adviser in the log (mainly used for debugging).

Conclusion

The Force Trader Expert Advisor is a conservative impulse robot built on a modified classic strategy and is able to generate profit over a long time period. He is a multi-currency expert who has been applying an effective trading strategy for many decades. However, in the short term, profitability may for some time be in a neutral or negative zone.

The adviser can be used as part of a portfolio of conservative advisers, as well as in addition to manual trading. Also note that the adviser does not trade often.

This is a fairly robust classic strategy with modern improvements. You should not expect fast and huge profits, but if you have been in the market for a long time, you will understand what the true value of this robot is: a reliable, proven system for years, which gives confidence during drawdowns and good income over a long period of time.

Important!

For the EA to work correctly, the trading terminal must be switched on from the market opening on Sunday evening until it closes on Friday evening. If you are unable to keep the computer operational 24/5, it is recommended to use the VPS server service.

Watch the video: ts20090821nkebnhFrame (December 2019).

Leave Your Comment