MT5 - BTCUSD Optimisation - Any ideas where to start with the settings?

Avatar
  • updated
  • Under review

Hello, 

Just wondering if anyone has any ideas where to start with settings for crypto?

MT version:
EA version:
Symbol:
BTCUSD
TimeFrame:
5 minutes
Avatar
Kishan Bhatt

Hi Andrey, 

You are right. Such a feature rich set of options. You could really get yourself into trouble with martingdale for example. It has been real fun to test everything though. I have literally spent hours on mt5 strategy tester to get some meaningful results. 

I have been going through them one by one to see which ones have an effect. My method was to start with a range of the signals to use and then try the various time ranges. It is a good thing i am on holiday as a teacher and making myself stay inside because of covid. 

Doing 4200 combinations was interesting! It did yield some interesting outcomes with the various backtest. But when I tried to reproduce one successful one I couldn't (couldn't remember where I saved it)! So today I went back to the drawing board to test them again. And eventually came out with something to work from at least that could detect some successful signals and achieve a reasonable ratio for a number of trades it could make. 

I am working now to optimise some settings for ETHUSD. I will publish the results in due course. 

Avatar
Andrey Khatimlianskyi
Quote from Kishan Bhatt

Hi, 

I'm just using evolve markets. Currently running a massive batch test for ETHUSD. Concurrently testing all the major parameters in relation to the indicator 1. I've got 4 200 tests. Not sure how well my laptop is handling it 🤔. MetaTrader is surprisingly stable. 

I'll publish my results tomorrow morning. 

It is bad idea to brute force all parameters.

You should understand how they works and set range for each parameter. Or even try some strategies my hands and only then find the best parameters for the strategy you like.

Avatar
Kishan Bhatt

Hi, 

I'm just using evolve markets. Currently running a massive batch test for ETHUSD. Concurrently testing all the major parameters in relation to the indicator 1. I've got 4 200 tests. Not sure how well my laptop is handling it 🤔. MetaTrader is surprisingly stable. 

I'll publish my results tomorrow morning. 

Avatar
Andrey Khatimlianskyi

What broker do you use for backtests?

Avatar
Andrey Khatimlianskyi
Quote from Kishan Bhatt

Hi, on the note about methodology, making a standardised set of control variables, so time length, time frame etc is probably going to be involved?

Yes, but it will be only my point of view.

Avatar
Kishan Bhatt

Hi, on the note about methodology, making a standardised set of control variables, so time length, time frame etc is probably going to be involved?

Avatar
Kishan Bhatt

Hi, 

I am actually a science teacher, so i love that kind of stuff! Ensuring fair testing and all that. So my basic thing would be to change 1 thing, measure profit and control everything else. Right now I am running a test on the following


1 month time length - This is just to manage the times, running a whole year on a laptop isn't feasible

Changed variable - Stop Loss

measure the overall net profit

control everything else.


One suggestion I would like to make is "peer review" - we can check if people's results are reproducible following 
some sort of test. 

Avatar
Andrey Khatimlianskyi

I'm going to write about testing and optimization methodology, but working on improvements at the moment.

Avatar
Andrey Khatimlianskyi
Quote from Kishan Bhatt

Hi, 

You do you mean the points below. Do you have an idea where I could start?


MA Filter Type

(starting from v2.15)

Type of MA filter:

  • Disabled: MA filter disabled
  • Buy below MA / Sell above MA:
    • BUYs are allowed if MA - Ask >= Distance
    • SELLs are allowed if Bid - MA >= Distance
  • Buy above MA / Sell below MA:
    • BUYs are allowed if Ask - MA>= Distance
    • SELLs are allowed if MA - Bid >= Distance

Distance can be set in 2 modes (Distance type parameter):

  • In points: fixed distance in points
  • Volatility * Coefficient: distance is calculated as “current volatility * Coefficient”

Distance can be negative (so, in Buy below MA mode BUYs will be allowed if Ask above the MA, but not more than by distance points).

Volatility Indicator, TimeFrame and Period
(starting from v2.15)

Indicator used for the Distance calculation in the MA Filters.

Can be one of the following:

  • ATR
  • StDev
  • ATR based on “Close-Open” (high and low prices not used)
  • WATR

Volatility Filter Indicator
(starting from v2.15)

Indicator for the Volatility Filter:

  • Disabled: Volatility Filter disabled
  • ATR
  • StDev
  • ATR based on “Close-Open” (high and low prices not used)
  • WATR

Volatility Filter TimeFrame

TimeFrame for the Volatility Filter

Indicator Period

Selected Volatility indicator period

Min Volatility

Min volatility (in points) to allow new trade (both buy and sell).

Set 0 to disable minimum volatility value.

Max Volatility

Max volatility (in points) to allow new trade (both buy and sell).

Set 0 to disable maximum volatility value.

Smoothing Filter

Smoothing Volatility filter. Can be one of following:

  • Disable Smoothing Filter: filter disabled
  • Allow trade on growth (Volatility > MA): new trade is allowed only if the Volatility indicator is greater than MA based on it.
  • Allow trade on reduce (Volatility < MA): new trade is allowed only if the Volatility indicator is lower than MA based on it.

Smoothing Period

MA period for Smoothing Volatility filter

I meant all parameters marked with "(in points)" text.

StopLoss, TakeProfit, Min/Max Volatility.

Other parameters (orders number, oscillator level, MA periods, etc) can be used as on FX pairs.

Avatar
Kishan Bhatt

Hello, 

I am trying to get some testing done. But my problem is that I am using a my laptop and it is nowhere the speed of my desktop setup. The main issue is the volatility I guess. I am curious about the development of the volatility indexes, Not sure where they are in the settings. but I am running v2.14. So far, cryto-USD pairs seems to kill robots (I have tried a few free ones)! I need to experiment with the oscillator values I think for. 

Stochastic/MACD - Possibly using smaller values with respect to the timeframe. M5

Can anyone think of other parameters I need to investigate?  Or any suggestions for a testing methodology? I was thinking the following


2 weeks of a time length.

Time frame to use - M5 (Just feel that it is so volatile that you need to look at the smaller times

Actual full on visualisations to see what the bot is doing. 

On the other hand, this bot does well on FX in general where the volatility is lesser to an extent.