Why are new walkforward re-opt results different from previous re-opt?
[Note: If you have MultiWalk Pro, the re-optimization date issue and, to some extent, the changing parameter issue can be avoided by using Calendar Period Types]
Sometimes the results of a previous walkforward do not match the results when it comes time to re-optimizated the strategy. There are several reasons that current previous walkforward dates and/or parameters may be different from your previous walkforward.
For example, occassionally I will see changes such as this:
The left side is the original walkforward. Several months later I ran the re-optimization, which is displayed on the right side.
Notice that there was a one day shift in the data–Jan 20, 2011 to Jan 21, 2011. This was enough to completely change the parameterization for many of the walkforward re-optimization periods. Data changes are the most prevelant reasons for changes in walkforward parameters. See this article for an in-depth working example of the effect data changes can have on your walkforward strategies.
Many times it is difficult to pin-point the cause of these changes. But the following list are causes that I and other users have experienced over the years. They may provide a clue and solutions or work-arounds.
MultiWalk Settings
Make sure that you use the identical settings from the original MultIWalk project, such as MaxBarsBack and LIBB. Even a slight change in settings can make a large impact on results. One element that is easy to forget are slippage and commission values. If the slippage or commission files have been changed, either manually by the user or through a MultiWalk update, the new values could change the equity curve results of your walkforward. The slippage and commission values used for your walkforward are written in the header comments of the strategy. It is good practice to set these manually in your reopt walkforward project if you want your results to match the previous reopt backtest:
TradeStation Chart Settings
If the strategy is on a chart, make sure that your TradeStation chart settings match the same settings used in MultiWalk.
TradeStation Platform Settings/Sessions
Check to make sure that your default TradeStation settings have not changed. Since MultiWalk uses TS’s optimziation API, it is using TradeStation in order to optimize the strategies. One user had inadverdently changed their default Regular Session settings from the Default session to 24 Hour in TS Preferences:
This led to a shift in MultiWalk’s walkforward date ranges.
TradeStation Data Corrections
Walkforwards in MultiWalk are based on trading days as found in TradeStation’s symbol data streams. They are not based on fixed calendar dates. Therefore, when TradeStation makes changes to the data, this will have a direct impact on the walkforward backtest. If dates were added or removed from the data stream, then the dates will also shift in MultiWalk. This can impact how MultiWalk selects parameters during the walkforward process.
If you believe that the issue is data related, then you can use Kevin Davey’s practice of simply copying the new parameters to the end of the old walkforward parameter list and adjust the begin/end dates of the new set accordingly so that there is no gap in dates with the previous parameters.
Another option would be to run the walkforward again, but use “neighboring” in/out walkforward trading day ranges. For example, if the walkforward was 252/252, then you might try some neighboring combinations using MultiWalk’s range based in/out syntax, such as: 242-262×2/242-262×2. If any of the resulting equity curves match the original strategy, then you may have a viable alternative that once again matches the new data. You may, however, want to incubate the strategy for a while to ensure that it performs as expected.
Corrupted TradeStation Data Cache
A user recently asked me this question as his dates were wildly different from a previous walkforward from just 3 months ago. The walkforward regenerated correctly on my system, but his TS data was very different from mine. This can occur from a corrupted data cache (and sometimes from differences in TS data servers being accessed). Click here to review this article for instructions on how to refresh TradeStation’s data cache.
TradeStation Data Server Differences
TradeStation uses different data servers across the globe. I have experienced three different data server issues that have effected my walkforward parameters and results:
- Data servers are not in sync. I have had users ask me why their parameters were different from their last re-optimization and found that the data on the server I was accessing was different than the data on theirs. I contacted TradeStation and they said that the servers are not always in sync as they update across the globe.
- Live data server is different than Delayed data server. I have two TradeStation logins — one for live trading and one for development. It is cheaper to use delayed data for my development. However, as I explain in this knowledge base article, I have found there are situations where the data on the live server is different than the delayed server. The missing data on the live server had missing days, causing the walkforward strategy to calculate differently.
- TradeStation causing erroneous data updates. There have been situations where TradeStation itself “breaks” their data. See two examples I have experienced — email with TS support when they incorrectly changed a scaling factor and email when they incorrectly changed daylight savings time.
MultiOpt or MultiWalk Beta (pre March 2023 versions)
If your walkforward was generated using MultiOpt or the pre-database versions of MultiWalk Beta, then the difference may be due to the different way that MultiWalk handles “real” floating point numbers. This can lead to different results. See MultiOpt vs MultiWalk Walkforward Strategy Results for more information.