MultiWalk Change Log
December 19 2024 Release
Change Log
- A change to the MultiWalkSetup.txt/MultiWalkTraderSetup.txt IMPORT process has been made to support David Shuvalov’s Portfolio Tracker. This change effects the distribution of MW/MWT setup files. When the setup file exists in a folder that does NOT match the folder specification contained in the setup file, the following actions will occur:
1. If the folder does NOT contain MultiWalk data files, then the assumption is made that this setup file was received from someone else. The paths in the setup file will be redefined to use your default MultiWalk project path.
2. If the folder DOES contain MultiWalk data files and the physical path location of the setup file does not match the paths defined within the setup file itself, then the assumption is made that you are MOVING a MultiWalk folder. The paths in the setup file will be updated to use the new path location of the setup file. - The trades and walkforward periods displayed in the performance report would always display all trades/walkforward regardless of the IS (walkforward) or OOS (incubation) period chosen on the report spreadsheet. Now only IS or OOS results will be displayed appropriately.
- When MultiWalk checked the strategy logic code for “unsafe” walkforward function usage (such as RSI, ADX, etc), it would sometimes give a false pop-up warning that the unsafe portion of the function was optimized (such as the length parameter).
November 27 2024 Release
Change Log
- DLL debug output was left on by mistake. On Dec 1, regenerated Nov 27 release with this option turned off. Re-download if downloaded before Dec 1.
- Custom symbols were not always being recognized during the walkforward process and would generate a “missing symbol” error.
- Added keyword “popupalert” for Post Processing Commands. This will give a popup message box after a MultiWalk project completes, just like the “popup” keyword, but will also give an audible alert sound.
- Added MultiWalkHighW, MultiWalkLowW, MultiWalkHighM, MultiWalkLowM, MultiWalkHighY, MultiWalkLowY to user functions. These and many other functions can be found in the MULTIWALK USER FUNCTIONS.ELD file.
- If a walkforward date began before the year 2000, the equity graph displayed from the walkforward reports screen would give the error “argument out of range”.
- The calendar period date alignment option “Last day of each month (or quarter)” was being ignored and did not actually set the walkforward periods to the last day of each month/quarter.
- When using trade count walkforward period types, MW would crash if there were too many errors due to insufficient number of trades in the optimized iteration.
- Several walkforward options have been moved to a new screen tab “Walkforward Options”. TradeStation’s Gui API does not have the ability to scroll screen options and I ran out of room on the primary Walkforward tab screen.
October 25 2024 Release
Please see this short video on considerations for existing strategies when using this release: https://app.screencast.com/aZBSwiivs0QDi
Change Log
- MultiWalk now stores equity and trade data in native binary floating point format and compresses this data before writing to optimization files or to the walkforward database. The result is over 80% LESS disk usage!
- Storing equity and trade data in native binary format resulted in faster project execution. Compressing the data resulted in slower project execution. However, the gains for storing in native binary format out-weighed the cost of compression, resulting in an overall 5-15% faster project execution time.
- Sometimes it is easy to hit “Run” when you really meant to click “Resume”. Overwriting a project by mistake can be particularly painful if it took days to run. To prevent inadvertently deleting existing project data, I have added a confirmation dialog popup box when clicking “Rerun” project. The following “Are you sure” confirmation message boxes will now be displayed before re-running a project and destroying existing data.
- Symbol data for margin and other symbol attribute data is now consolidated and maintained in the the database file MultiWalkSymbolData.db instead of separate CSV and XML files. This creates a more robust, centralized handling of this data and is updated and managed behind-the-scenes without interrupting your work.
- Futures margin values corrected. TradeStation has changed their futures margin rate structure. They now have two margin rates for long and short positions instead of one for both. They changed their website to accommodate this change. MultiWalk “scrapes” the margin rates from their margin webpage behind-the-scenes when MultiWalk is run for the first time on any given day. Since MultiWalk did not understand the new webpage format, the margin values were being set to zero. MultiWalk has been updated to correctly parse the new webpage format. Instead of adding new short/long margin columns to the MultiWalk database and reports, it will continue to use one margin rate and use the maximum long/short margin rate as a “worst case” scenario.
- Correction to MultiWalk’s range parser. There were two issues with MultiWalk’s range parser for optimized parameter on the Settings->Strategy Code screen. (1) Negative numbers did not parse correctly unless spaces were included. Thus, “-170-0x10” would give a parsing error, while “-170 – 0 x 10” would parse correctly. (2) In some situations the calculated number of iterations was incorrect which resulted in some iteration combinations being excluded from the optimization.
- Corrected a calculation error for the metric Annualized NP/AvgDD that was inadvertently introduced in Aug 30 release.
- The chart verification setting in the walkforward strategy code was not correct when using TradeStation’s pyramiding option.
- If a project was run that used Fixed Input Parameters and you used the existing project to import one of the “FixedVarSet” sub-projects, MultiWalk would not complete the analysis of the imported project. This only occurred if the import was done from the existing Fixed Input Parameter project. Importing the sub-project into a new MultiWalk instance ran the entire analysis correctly. Either approaches are now supported.
August 30 2024 Release
Change Log
- Export Trades or Period Daily Data to CSV File: Added export-to-csv-file button to Trades list and Period Daily Data screen. The format of the CSV file is the same format used when using the “Create individual WF equity” files option on the Settings->Walkforward screen. This new option gives you the ability to easily export and create these CSV files on a case-by-case basis instead of creating them for every walkforward in the project. The export buttons are found on the Trades and Periodic Daily Data screens.
- The Limited Feasibility Testing report was not being correctly tabulated for Fixed Input Parameter projects. Only the last FIP project results were being saved to the report. The results from all FIP projects are now represented in the report.
August 13 2024 Release
Change Log
- If TradeStation gives an OFFLINE error while optimizing, MultiWalk will re-queue the optimization and go on to the next optimization. MultiWalk will attempt to re-establish a connection to the TradeStation data server three times before stopping the entire project for user intervention.
- If your computer had a loss of power (due to a power outage or some other failure), MultiWalk’s journal file that is used to resume projects would become corrupted. MultiWalk will now ignore any corrupted entries and begin with the last valid entry in the file.
- Negative numbers for parameter ranges on the Settings->Strategy Code screen such as “-5 – 0 x 1” (optimized or fixed input variables) were not being parsed correctly and would give a syntax error message.
- When running an Algo Building Block or Fixed Input Parameter project, text files generated (El Code, equity CSV, etc.) will have (FixedVarSet N) in their filenames to indicate which sub-project they belong to.
- The limited feasibility testing count for passing combinations was incorrect on the report display.
- In the previous release, I enabled a different storage/retrieval mode for the database (called “WAL” or “write-ahead logging”) to increase walkforward speed and efficiency. However, this is now periodically causing “database is locked” errors, especially on networked drives. This release reverts back to the previous database mode used for better compatibility.
- MultiWalk operation options are now mirrored on MultiWalk Trader’s batch operations. This includes the following changes to options and processes:
- “optimize only” added to MultiWalk Trader
- “optimize only” option now includes use of Limited Feasibility Testing as a prefilter in both MultiWalk and MultiWalk Trader. Disable LFT on operations screen if not wanted before optimization.
- Re-use Limited Feasibility Testing added to MultiWalk Trader
- MultiWalk Trader can now also run MultiWalk projects that contain Fixed Input Parameters. The FIP project results will be stored in the sub-folder “MultiWalk Projects” within each MultiWalk’s project folder.
- TS chart integrity checks for walkforward strategies:
- When using natural hours, the integrity check logic inaccurately said that the “Symbol bar building method is not correct” even though both MultiWalk and the chart were set to natural hours.
- Pyramiding/Position limits options were not being checked.
July 4 2024 Release
This is an unannounced itermin release that has minor bug fixes.
June 30 2024 Release
Two errors have been discovered in the June 28 release due to last-minute changes on my part. There were two effected areas:
- Trade data from optimizations were not being saved and resulted in zero values for all trade-based metrics. Due to the nature of the issue, my testing platform did not catch the trade discrepancies. That has now been rectified.
- The new “Suppress informational messages” option also suppressed the creation of walkforward reports! This means that, if you had enabled this option, that walkforward reports were not created.
You must import both MULTIWALK APP.ELD and MULTIWALK USER FUNCTIONS.ELD to correct these two issues.
June 28 2024 Release
Please see this video that demonstrates a new MultiWalk option to recover your project after a TradeStation crash.
Be sure to import this release’s “MULTIWALK USER FUNCTIONS.ELD” file to any machine that is running MultiWalk walkforward strategies. It includes new and updated functions that will be needed for those strategies.
This release is more robust, especially if running simultaneous MultiWalk or MultiWalk Trader sessions. Several important changes have been made to MultiWalk’s multi-threading implementation and error recovery system, especially as it relates to two areas:
- There is an internal issue with TradeStation’s data server process (ORCAL—“Client Access Layer”). This process will periodically crash when performing optimizations. This will happen when optimizing on a chart in TS or optimizing within MultiWalk. See this video for more information.
- There were still some situations when the error “FOREIGN KEY constraint failed” would occur. This was due to an issue within MultiWalk when sharing access to the walkforward database with multiple threads.
Change Log
- TradeStation has implemented constraints for charts that use LIBB (Look-Inside-Bar Backtesting). MultiWalk will now also enforce these constraints. The primary bar interval on data stream 1 must be evenly divisible by the LIBB bar interval and must not be the same as the primary bar interval. MultiWalk will not allow a project to run if any of the bar intervals on data stream 1 violate this constraint.
- If a strategy contained non-English characters (such as Korean characters), then the MultiWalk setup file would not import correctly. Non-English characters within strategy logic code are now replaced with ‘?’ to ensure compatibility with the import process.
- If running a Building Blocks/Fixed Input Parameter project with “Create individual WF equity text files” options selected, the text files were being created in the main project folder. They are now created in each individual project under the project sub-folder “MultiWalk Projects” so that they do not overwrite each other.
- MultiWalk Pro/MultiChart users: you will need to import “MULTIWALK FUNCTIONS FOR MULTICHARTS.PLA”. This includes the new function “MultiWalkFloatingPointCompareIsEqual”.
- Added “Import Project” button to MultiWalk Trader operations screen.
- Added “Suppress information messages” option to Settings->General screen. This is useful if you run TradeStation minimized during a MultiWalk project and do not want to see informational pop-up messages. Error messages will continue to be displayed.
- Added “Skip current task when resuming” to Settings->Progress Log screen. This enables you to resume the project after a TradeStation crash by skipping the task that caused the crash.
Apr 6 2024 Release
Enhancements:
- Low disk space or memory (RAM) handling – The error handling when disk space or memory is low has been improved. If MultiWalk ran out of memory during the walkforward process, the project was being aborted. Now, the walkforward will continue. I have found that while one optimization symbol/bar interval may exceed TS memory limits, another will not. I decided that I would rather have MW process as many symbol combinations it can rather than abort because of a few unwieldy symbol/bar interval combinations.
- Optimization post processing now in background – When TradeStation completes an optimization, MultiWalk has been performing post-processing operations on the optimization in the foreground, which would make TradeStation’s user interface unresponsive until the processing was completed. This meant that clicks on menus or buttons would be ignored until the processing was done. If the optimization was large, this could “freeze up” TradeStation’s user interface for several seconds or more. MultiWalk will now do this processing in a background thread, which means that optimizations are now both more efficient and faster as well as more well behaved since the user interface will no longer appear to be “locked up”!
Bug Fixes:
- There were two errors that have been tracked down to a race condition between walkforward threads as they were writing new walkforward data to the database. To prevent these errors, the section of code that was responsible is now protected so that all threads take turns before writing walkforward data to the database. Please re-run projects if you received the following errors:
- “Could not add equity metrics data for walkforward ID into database table EquityMetrics. Could not execute SQL insertion statement in table EquityMetrics.” or
- “Strategy Error: Walkforward optimization could not READ database. DB error 101 (no more rows available)”
- Due to an inadvertent change I made I the last release, symbol/bar intervals that had bar or other errors while optimizing were being skipped with the error “TradeStation had an error optimizing strategy. Re-run optimization for this strategy. Optimization will be skipped.“. These strategies should have been run through the optimizer again to avoid TS bar errors. The correct MultiWalk behavior has been reinstated to recalculate the symbol/bar interval automatically rather than skipping it.
- In some situations, MultiWalk Trader was taking a long to start up the application if there were a large number of walkforwards to populate in the reports.
- The new chart configuration check had two errors:
- Session/natural bar building was being checked on daily bars (and should have only been checked on intraday/minute bar strategies).
- The walkforward strategy would complain that LIBB was not correct, even if it was set correctly on the TS chart.
- If optimization timed out while “waiting for TradeStation”, the entire project was incorrectly aborting instead of simply moving on to the next optimization.
- Exchange time zones were not being updated which led to incorrect handling of mulitstream strategies, presumably because of Daylight Savings Time. TradeStation does not permit multistream strategies to use Exchange Time if the symbols are in exchanges in different time zones. MultiWalk ensures that all symbols are in the same time zone and, if not, forces the use of Local time for the strategy. However, MultiWalk was only updating a symbol’s exchange time zone once, so would occasionally enforce Local Time when Exchange Time could be used. MultiWalk now checks at startup to see if the symbol exchange time zone table needs to be updated.
Mar 4 2024 Release
MultiWalk releases are based on Update 65 for compatibility with all TS 10 versions. This has been a working solution for many months until the March 3 MultiWalk release. The March 3 release had more C++ DLL functions that tripped across an internal issue in TradeStation Updates 72 and 73. This caused the verification phase of the ELD import to crash those versions of TS.
This has been corrected in Update 74, which is rolling out now. See https://community.tradestation.com/Discussions/Topic.aspx?Topic_ID=218958
This MultiWalk release should install correctly for all versions of TS 10, from Update 65 to the current TS release.
Mar 3 2024 Release
Enhancements:
- Walkforward strategies will now include a startup check that compares the current chart settings against the MultiWalk settings that were used to create the walkforward strategy. This will help ensure that the strategy is configured correctly for trading.
- Calendar periods can now be aligned with the 1st of the month or 1st of the quarter.
- Report filters have been enhanced. A new “minimum” column has been added. The min and max columns refer the minimum and maximum values found in the walkforward data for that metric. These are read-only columns and used for reference only to help identify whatever threshold you might want for that filter. The column headers now indicate if the min/max refer to IS or IS+OOS results. Added many new report filters: Percent time in market, Percent Trades Profitable, Average Trade, etc.
- New Strategy Integrity Checks: Missing Symbol Data/Data Gap Detection and Walkforward Incompatible Function Detection
- Added many new salkforward safe functions
- Optimization Only/Non-Walkforward capability expanded
- Virtual drives deprecated unless absolutely necessary
- Limited Feasibility Testing module can now use Fixed Input Parameter projects in the project. Fixed Input Parameters are displayed in the last column of the LFT report.
Bug Fixes:
- The Limited Feasibility Testing criteria commentary was not updating correctly when changes were made to the selection model.
- If symbols were overridden in MultiWalk Trader, Data Prefetch was still using the symbols from all MultiWalk projects, not just the symbol overrides.
- If the option “Create individual WF and EL code text files” was checked, then the EL code files created did not have the walkforward parameters in the code.
- Various corrections when using the “optimize only” option.
- If EasyLanguage “methods” are contained in the strategy logic code, they are now automatically moved to the correct location in the walkforward strategy to avoid verification errors.
- If a parameter was disabled in an Algo Building Block project, the parameter was being initialized to a zero value. This caused some building block strategies divide-by-zero errors. Disabled parameters will now default to “1” instead of “0”.
- If TradeStation went offline for all prefilter tasks, the project could not be resumed and would abort with the error “Could not open file [path]Preliminary Optimization Results.csv”. The entire preliminary/prefilter task will now be re-run instead when resuming.
- The estimated reopt date for calendar type periods was 1 day off during leap years.
- MultiWalk’s disk usage checks were not stopping project when disk space was low. The project would stop when the optimization file could not be found. Project will now stop with an appropriate “disk space low” message.
- The error ‘bad allocation’ could occur if TS was hitting it’s upper 32-bit memory limitation before MultiWalk’s memory usage checks could intervene. This caused a ‘bad allocatoin’ ambiguous error to occur.
Nov 15 2023 Release
- TradeStation Update 72 introduced a bug into their report column objects. If the column title is changed after the column is created or the columns are cleared in certain situations, the entire TS platform CRASHES. This works correctly in previous TS releases. I have implemented a workaround to avoid these situations that trigger this TS bug.
- Replaced Data Prefetch help text with formatted text window to conform to other MW help windows.
Nov 7 2023 Release
- If pre-filter (using limited feasibility tests) was enabled for the project, pre-filter tasks during optimization were saving results even if an optimization error occurred. If an optimization error occurs during the pre-filter/limited feasibility stage of a project’s run, results for that particular pre-filter task will not be saved and effectively be removed from the project’s limited feasibility results.
- Developer screen tab is now available for all users. Originally, the developer options were only enabled for beta testers. Now that beta testing has concluded, you can enable this tab if needed using the “Enable Debugging/Developer Screen Tab” on the Settings->General screen.
- More Limit Fill options have been added to Developer screen. DO NOT change the default from the required Strategy Factory setting unless you have very good reason to do so.
Oct 31 2023 Release
- This release will create a temporary MultiWalk Pro license for ALL MultiOpt users. It can be used during the month of November.
- While I was testing the optimization process for the official release, I was printing a description of each optimization task to the log file/window display. This caused a long delay (potentially up to several minutes) when starting the optimization tasks for large projects. This has been removed.
- The MULTIWALK USER FUNCTIONS.ELD distributed in the previous release was created with TS Update 71. The ELD may cause earlier versions of TradeStation to crash when imported. The ELDs in this release have been created with TS Update 65 (base).
- Walkforward in/out periods text box on Settings->Walkforward now updates the total count display when leaving the periods text box, whether you hit [enter] or not.
- If a fixed input parameter was disabled in an Algo Building Block project, it defaulted to zero. A safe value of “1” is used now instead to avoid divide-by-zero issues in strategies.
Oct 26 2023 Release
- Temporary beta licenses were not being copied from beta program folder to production program folder. This meant that MultiWalk ran in trial mode for previous beta users. License is now copied from beta to production.
Oct 24 2023 Release
- First official, non-beta version.
- Calendar in/out period types (such as 1Y/6M, 2Y/3W, etc.) and Trade Count in/out period type (such as 50T/3M) have been fully implemented and tested. (See this knowledge base article on their use)) There were several issues corrected, so if you have walkforward strategies using these, you will need to regenerate the walkforward strategy code.
- Thank you everyone who participated in the impromptu survey asking about non-US date format considerations. Out of over 30 responses, 57% of non-US users indicated to use “12/31/2023” date format everywhere, while 27% did not have a preference and 16% preferred having “Dec 12 2023” the date format. While there is a majority in favor of “12/31/2023”, I like to facilitate everyone when I can, so have decided to create an option that will allow you to toggle the date formats. The default will be mm/dd/yyyy since the majority wanted that format, but others can change this on the Settings->General screen and then simply save the settings as the default so that it will remain persistent when you create new MultiWalk projects.
- MultiChart functions have been updated for increased cross-platform compatibility between TradeStation and MultiCharts. They have been renamed from MultiCharts[function_name] to MultiWalk[function_name]. If you have used the functions I named “MultiCharts” in your strategies (such as MultiChartsCloseD, MultiChartsHighD, etc.), please start to use the “MultiWalk” versions instead (MultiWalkCloseD, MultiWalkHighD, etc.). These functions will be available in the MultiWalk Pro Pack. See this article for more information.
- When verifying a profect (Settings->Project Files/Folders->Verify Project), the project configuration file will be saved before verification instead of after verification.
- Margin rates are now included in the Walkforward strategy header source code.