One of the lesser known features of the メタト レーダー backtester is the optimization feature. It’s so small that you could be forgiven for overlooking it.
Optimization is the process to maximize a certain outcome. この場合, it’s profit. Any EA developer wants to maximize the amount of profit made over a given period of time. The MetaTrader optimizer allows the trader to search for the combination of inputs that yielded the maximum profit over a given period of time.
The process is identical to running a バックテスト, except that MT4 runs multiple backtests at the same time. It then organizes the results and offers up the best combination.
Telling the backtester to run in optimization mode is easy. Simply put a check next to the word 最適化. MetaTrader will then sort through the combinations that you tell it to consider.
The next step is to click on the Expert properties button to the right. A new window appears that contains three tabs: テスト, Inputs and Optimization. These screens allow the trader to inform MetaTrader which variables to consider for testing and how to weight the results.
The top of the testing section applies to every type of バックテスト. Here you can select the starting balance. MetaTrader defaults the option to $10,000, although you can make this any amount of your choosing.
The second default option allows the trader to restrict the direction of trades. It’s a frequent expert advisor programming request. It’s also one that is unnecessary. Both the backtester and expert advisor options screen allow the trader the option of restricting trades to long only or short only without additional programming. If the EA is not well programmed, this setting may cause errors 4110 または 4100 to appear all over the trading journal. It’s harmless. The only effect should be that the backtester slows down. It’s the result of writing to the journal hundreds of times or more.
A groupbox appears underneath these options that inexplicably relates to the optimization process. You’d think it would make more sense to place it in its namesake tab. That’s typical MetaQuotes logic at work.
The first line contains numerous parameters for choosing the best option. User overwhelmingly select for the largest account balance, but other options include the profit factor, expected payoff, maximum drawdown and drawdown percent.
The last line automatically uses a genetic algorithm. Optimization processes use either brute force methods or genetic algorithms. Brute force strikes most people as intuitive although obviously exhausting. The software tests every combination possible. Genetic algorithm’s attempt to make the process more intelligent. When the software sees that certain parameters almost inevitably lead to a losing performance, the algorithm skips similar tests where it expects to lose.
This is a great idea if you have a quality genetic algorithm. My opinion of the メタト レーダー backtester is less than stellar. I don’t feel very confident about the algorithm at all. If you don’t mind spending extra time waiting for test results then I suggest unchecking this option. You don’t want to miss a potentially important combination.
Most people find this screen confusing. The first column, called 値, strictly controls inputs for simple backtests. 、 値 column is totally ignored during an optimization run.
The important columns for this task are Start, ステップ と 停止. Start is the lowest number that the MT4 backtester will consider. Step refers to the interval between the lowest value and the highest value. Tightly controlling this setting allows the user to gain quick insights into how changing the variable values affects performance without dragging the tests out for a full week. 停止 is the highest number that the expert advisor will use.
The most obvious candidate for testing in this example is the Take Profit value. The default setting is listed at 50. If you trade the majors, you might want to consider settings ranging between 10 pips and 200 ピップ. That means that you set Take Profit row to 10 ため、 Start column and 200 ため、 停止 column. The real trick here is selecting the ステップ. If you choose ステップ = 1, then MetaTrader will run a separate test for every value between 10 と 200. That’s 190 テスト, which is overkill. A step of 10 cuts the total number of tests down to 19.
This section is the nit-picky part. If a trader feels it’s unacceptable to have 10 consecutive losses in a row, he can place a check next the the Consecutive wins box. MT4 automatically discards any tests which yield a result that contains anything checked off.
When you finish going through each of the tabs, push OK in the bottom right corner. It’s time to launch the tests.
Curve fitting in the MT4 Optimizer
A word of warning: my personal opinion is that optimizing an expert advisor is usually a very bad idea. The unique settings that yield the most profit in 2012 are unlikely to yield the most profit in 2013. If you don’t control for random chance, there’s a good probability that the 2012 best combination may result in catastrophic losses in 2013.
I recommend that traders pursue any strategy development work in NinjaTrader. I don’t like the idea of optimizing at all. 代わりに, I always focus on testing strategies for 入口と出口の効率. I know from years of experience that these values never fundamentally change on instruments of the charts traded. Entry and exit efficiencies make wonderful metrics for automated trading because they are so stable.