Newsletter
Article Library
Videos
What's New
About Us
Site Map
Search

 

 

 

Find Your Edge...

If you're still looking for an edge in the markets, mechanical trading systems are the best way to get it. Learn more.

 

Release Notes: Builder

 

 

General Notes:

  1. It's no longer necessary to uninstall prior versions of Builder before installing the new version, regardless of the version number. For example, versions 2.2.0 and 2.2.1 can be installed side-by-side.
  2. Provided the installation is on the same computer as the prior installation, no new activation code should be required. The new version should install already activated.
  3. Uninstalling or installing over an older version will not affect any project files (.gpstrat files) you may have created or saved.
  4. New versions of Builder are designed to read files (.gpstrat files) from prior versions. However, once a file is saved in the new version of Builder, you will not be able to open it in an older version.
  5. The most recent version released is listed first, followed by prior releases. The most recent release is always the recommended download version.

 

Version 2.2.1 (4/29/17)

Version 2.2.1 is mostly a bug-fix release, which corrects coding problems that could occur in version 2.2.0 when building with neural networks.

  

The following changes and bug fixes were made for this release:

  1. Simple inputs for a neural network can now be combined using abs(Ind1 - Ind2), whereas previously, the abs (absolute value) was not used.
  2. Some performance results in the Build Results tables, such as "longest drawdown", use a non-numeric format that makes it difficult to manipulate the values if they're copied to a spreadsheet. Longest drawdown, for example, is given in "xx hours yy minutes zz sec". These time span metrics are now given in numeric format as the number of days.
  3. [bug fix] A code error in which an unnecessary variable was added could occur when including a neural network along with a custom indicator returning a non-bool type.
  4. [bug fix] Neural network inputs could include invalid and/or undeclared variables.
  5. [bug fix] The Build Progress window plots the data for generation zero incorrectly unless or until the plot is closed and re-opened.
  6. [bug fix] The copy command on the Messages window doesn't accept the Ctrl-C keyboard combination.
  7. [bug fix] If a different file is selected in the symbol library for an existing symbol and it has a different file delimiter, the program could lose track of the custom indicators in the original file. This could result in a memory exception error.

 

Version 2.2.0 (3/29/17)

Version 2.2.0 includes several significant improvements to existing features, as well as six new bonus strategies for licensed (non-trial) users. Custom indicators have been enhanced so that they can process other price series, such as “close of data2”, “low of data3”, etc. The program can use these to generate conditions such as Average(Highest(close of data2, N1), N2) <= ZLTrend(high of data2, N3). This effectively makes it possible to build over multiple data series by adding additional columns of symbol prices to the primary symbol file.

  

For custom indicators returning a true/false (bool) value, code changes were made for all platforms so that they now work correctly when returning an integer, which has the value 1 for true and any other number for false (e.g., 0 for false). Also, the custom indicator code for MT4 was modified to include the iCustom usage, so that this is no longer required when entering the code string in Builder. The usage of the equality operator was expanded to include all boolean function types, including custom indicators with a return type of true/false.

  

21 new performance metrics were added: DoF Ratio, profit/DD ratio, Van Tharp’s SQN, Van Tharp's total R, min and max bars in trades, percent time in market, total net profit per share, adjusted net profit per share, buy-and-hold net profit, net profit/buy-and-hold ratio, adjusted net profit/buy-and-hold ratio, average entry/exit/total efficiency, maximum favorable excursion (MFE: min, max, and ave in $ and %). In addition, the Build Metrics window now supports cut, copy, paste and the ability to select multiple entries together to delete, cut, or copy. It's also now possible to save and load files of metric settings (new .gpmetrics file type).

  

In addition, the following changes and bug fixes were made for this release:

  1. The TRIX indicator has been modified to be the same as in the supported platforms. To avoid log(0) errors during the build process, the program rejects a strategy that contains an invalid usage of TRIX and creates a new strategy to replace it.
  2. Multiple metrics can be selected together on the Change Performance Metrics dialog, including for adding, removing, and moving metrics up and down in the list.
  3. When the build process is paused, file saving is now enabled.
  4. The file name is now used as the default symbol name and description when adding new symbols to the symbol library. The file selection dialog now remembers the file extension (.txt, .csv) last selected as a filter for displaying file types within the same session.
  5. The sort order of rows in the Build Results window is now retained within the same session until reset by the user.
  6. The time-out cancellation has been removed when evaluating after building. For example, if an MC analysis of an existing strategy previously took longer than the time-out interval, the evaluation would fail. The time-out interval now applies only to building and the statistical significance test.
  7. To clarify terminology and avoid confusion with the statistical significance test, the "Statistical Significance" metric has been renamed "Trade Significance".
  8. [bug fix] A check box for "Top Results" was left off the View menu (show/hide).
  9. [bug fix] When all values for a plot in the Build Progress window were the same, such as when a zero-length test segment was specified (i.e., 100% training data), the chart redrawing could hang, causing the program to freeze.
  10. [bug fix] Changes to custom indicators made through the Price File Format window were not saved when the Price File Format window was opened via the Build Symbols and Evaluation Symbols windows.
  11. [bug fix] If a market was added to Build Symbols from the symbol library and the Build Symbols window was not opened, the date range was undefined, which caused a program crash when building.
  12. [bug fix] When evaluating a single member of the Top Strategies population, the member numbers of the other strategies were reset to sequential order.
  13. [bug fix] The starting and ending dates on the Build Symbols dialog were not being set to the default range of the symbol when the symbol was added via the "Add to Build" button of the Symbol Library.

The platform-related files (i.e., the separate files that need to be installed for each trading platform) were not changed in this release. If you already have the latest versions of the platform files installed, there is no need to re-install them for this release.

 

 

Version 2.1.2 (12/18/16)

Version 2.1.2 is a minor release. After the release of version 2.1.1, a bug was discovered that can cause a program crash. While the conditions causing the crash occur infrequently, they can occur at any time. This problem has been corrected for version 2.1.2. As a result, it's recommended that version 2.1.2 be used in place of version 2.1.1. In addition, the following changes and bug fixes were made for this release:

  1. On the Program Options window (View menu), the so-called time-out interval is now specified in seconds, rather than minutes, and the default value is now 10 seconds. This is the maximum time the program can take to evaluate a strategy before the strategy evaluation is cancelled and a time-out error message is displayed.
  2. Pausing is now implemented for the evaluation of strategies when they are taken from the prior build to initialize the population for a new build; i.e., when the Reset-on-Build option is off/unchecked.
  3. Various improvements have been made to the error messages displayed in the Messages window.
  4. [bug fix] When the Reset-on-Build option was off/unchecked, versions 2.1.0 and 2.1.1 did not initialize all remaining members of the population after copying the members of the prior population.

The platform-related files (i.e., the separate files that need to be installed for each trading platform) were not changed in this release. If you already have the latest versions of the platform files installed, there is no need to re-install them for this release.

 

 

Version 2.1.1 (12/10/16)

Version 2.1.1 is a minor release. The most significant change involves the Build Symbols window. In prior versions, including 2.1.0, the data segments (training, test, and validation) were set using slider controls that allowed the user to change the percentage of data allocated to each segment. To give the user more control over the starting and ending date and time for each segment, these slider controls are now supplemented by date/time controls. In addition, the starting and ending date/times can now be specified down to the minute, which provides more precision when working with intraday data; see the Build Symbols figure on the screen shots page. In addition, the following changes and bug fixes were made for this version:

  1. The Messages window has been changed so that the current date and time are shown for each message; e.g., "[12/10/2016 11:11:46 AM] Generation 8: creating new population member 49 (49 of 500)".
  2. The View Prices command on the Build Symbols and Evaluation Symbols windows now restricts prices to the selected date range for that symbol. The prices for the entire available date range are still available through View Prices on the Symbol Properties window.
  3. [bug fix] In version 2.1.0, when building over a portfolio of symbols, the selected segment percentages were applied to the date range for each symbol separately. In cases where the different symbols had different starting and ending dates, this meant that the segment boundaries could be different for different symbols. In versions prior to 2.1, the segment boundaries were based on the same date for all symbol in a portfolio. Version 2.1 reverts back to the method used in prior versions so that each symbol in a portfolio will have the same segment boundary dates.
  4. [bug fix] The combination of "Short-only" and "Neural network" could cause a memory exception error and program crash if the neural network was too large.
  5. [bug fix] On the equity plot for a portfolio or when stress testing was applied, the different colors for the equity lines were not applied so that multiple lines had the same color.
  6. [bug fix] On the equity plot, the position of the symbol labels was incorrect (too high) when plotting stress testing results.
  7. [bug fix] If you opened the Symbol Properties window from the Build Symbols or Evaluation Symbols window and used the Reload button to update the available dates, those dates were not then updated on the Build Symbols or Evaluation Symbols window after Symbols Properties was closed.

The platform-related files (i.e., the separate files that need to be installed for each trading platform) were not changed in this release. If you already have the latest versions of the platform files installed, there is no need to re-install them for this release.

 

 

Version 2.1.0 (11/25/16)

Version 2.1.0 is a significant release. The principal changes in Builder version 2.1 include three-segment building (training, test, validation), full support for high-resolution ("high DPI") displays, such as high-resolution laptops, improved parallel processing algorithms for faster strategy building, new limit and stop entry order types, additional parameter ranges to allow more control over parameter values, price bands for limit orders on CME futures, and code improvements for NinjaTrader 7. This version also includes a new calculation engine for strategy evaluation with improved calculation of performance metrics.

 

The following are the other changes and improvements for this version:

  1. The Build/Eval Process window of version 2.0 has been replaced by three windows: Build Symbols window, Evaluation Symbols window, and the Build Progress window. The Build Symbols and Evaluation Symbols windows allow you to select symbols for building and evaluating strategies, respectively. The Build Progress window displays the Build Failure Tracking and Build Termination Tracking plots.
  2. A "Reset Layout" button has been added to the View menu to reset the pane layout to the default configuration for situations in which the layout cannot be reset manually.
  3. When a new symbol is added to the symbol library, the file selection dialog window is opened automatically before opening the Symbol Properties dialog.
  4. The Build Results table now has separate tabs for the main population and the Top Strategies population. The pull-down menu on each tab allows you to select between "training", "test", "validation", and "All segments".
  5. If a "time-out" error occurs during initialization of the population, the step is repeated up to several times in order to generate a valid population member, rather than stopping the initialization on the first failed attempt. The same approach is used when running the significance test.
  6. The limit for reading columns in the price file has been increased to accommodate up to approximately 1000 custom indicators.

The following bugs were fixed in version 2.1:

  1. [bug fix] Code error for TS 2000i: SetStopShare was used in place of SetStopContract.
  2. [bug fix] NinjaScript bugs: 1. BTAdjust was not switched from historical to real-time data correctly. 2. BarsSinceEntry was initialized incorrectly when BTAdjust was nonzero. 3. ExitOnClose is now set explicitly to false if no end-of-day exit. 4. BarRequired now set explicitly in Initialize.
  3. [bug fix] The significance test crashed the program when run on an older file.
  4. [bug fix] When running a significance test, the status bar incorrectly displayed the message "Build process paused. …" in some cases.
  5. [bug fix] The program locked up if set to 100% training.
  6. [bug fix] The equity plot scaled incorrectly in some cases when the net profit was negative.
  7. [bug fix] In performance reports for portfolios, the list of markets at the top formatted incorrectly.
  8. [bug fix] On the GP Settings window, the greater than (">") option was not being recorded for Build Failure Rules.
  9. [bug fix] If stress testing was selected but no method was chosen, it showed stress testing was performed in the build report.
  10. [bug fix] The Build Metrics window and the Top Strategies conditions window used the labels "in-sample" and "OOS" labels, as opposed to "training" and "test".
  11. [bug fix] The position size in the Trading Orders window was always 1 for exit orders, regardless of the size of the open position.
  12. [bug fix] The number of generations for the Build Failure Rules was off by 1.
  13. [bug fix] If the Build Failure and Termination rules both applied at the same time, the termination rules took precedence, which prevented the process from rebuilding.
  14. [bug fix] A code error bug gave repeated variable names with the following combination of settings: short-only, long/short symmetry, and neural network.
  15. [bug fix] The "Evolve Param Only" option for position sizing didn't work.
  16. [bug fix] The Builder Bonus files installed in the folder for version 1.4.
  17. [bug fix] When clicking View Prices on Build Symbols or Evaluation Symbols (formerly, Build/Eval Symbols), nothing was displayed if a row in the table of markets was not clicked/selected. Now it opens the first market in the table if one is not selected.
  18. [bug fix] Sorting of the Trade List was incorrect for the Direction and Equity columns.
  19. [bug fix] Trading costs were deducted from open trade profit/losses. By convention in Builder, trading costs are always deducted on the close of the trade.
  20. [bug fix] Negative values for daily, weekly, monthly, and annual rates of return were shown as zero.
  21. [bug fix] The number of trades in drawdowns was over-stated for portfolios because some trades were counted more than once.
  22. [bug fix] The default range for fixed size stops was not recorded after it was auto-calculated at start of build.

In addition, the user's guide and help files have been updated to reflect all changes in this version.

 

The platform-related files (i.e., the separate files that need to be installed for each trading platform) were not changed in this release. If you already have the latest versions of the platform files installed, there is no need to re-install them for this release.

 

Version 2.0.1 (8/10/15)

Version 2.0.1 is a bug-fix release. The following bugs were corrected for this version:

  1. [bug fix] Memory exception errors for the Symbol Properties and Build/Eval Process windows could cause a program crash, such as when adding a symbol to the symbol library.
  2. [bug fix] File permission issues for the symbol library could prevent adding new symbols to the library. The symbol library has now been moved from the installation folder to AppData.
  3. [bug fix] The drop-down menus on the Symbol Properties window for Symbol Type and Bar Type were not setting the correct values.
  4. [bug fix] The symbol library was misreading custom indicator data, causing errors in the display of the symbol library folders.
  5. [bug fix] When plotting price charts from the Build/Eval Process window, the default bar type and bar size were displayed on the chart title rather than the user-chosen values.
  6. [bug fix] The selection of the Strategy Builder button was not processed correctly on program start-up.
  7. [bug fix] Some of the program windows, including most of the drop-down settings windows on the Build menu, did not display the associated help file when the F1 key was pressed.

In addition, the user's guide and help files have been updated to describe the new name and location of the symbol library.

 

The platform-related files (i.e., the separate files that need to be installed for each trading platform) were not changed in this release. If you already have the latest versions of the platform files installed, there is no need to re-install them for this release.

 

Version 2.0.0 (7/31/15)

Version 2.0 is a major release. The program was completely redesigned, with a new user interface, price charting capabilities, a symbol library, a trading orders window, new features to detect and prevent over-fitting, and other changes. Please see the new user's guide and/or program help files on the download page for complete documentation. In addition, the following bug fixes were made for this version:

  1. [bug fix] Duplicate variables were generated in the code for some exit types, such as two variables with the name MMStopPctL.
  2. [bug fix] The fixed stop size could be selected by the program as zero if the minimum stop size on Parameter Ranges was set to a value less than the tick size.
  3. [bug fix] The Build Report only showed trading costs to 2 decimal digits, which is inadequate for forex.
  4. [bug fix] If the last bar in a portfolio of markets was less than the specified starting date, the program could crash.
  5. [bug fix] It was previously impossible to uncheck the "Exit after" option without also unchecking the exit-after order type.

The platform-related files (i.e., the separate files that need to be installed for each trading platform) were not changed in this release. If you already have the latest versions of the platform files installed, there is no need to re-install them for this release.

 

Version 1.7.2.1 (10/8/14)

This is a minor release primarily intended to correct a bug in the code generation; namely, a missing parameter when the N-bars exit type was used in combination with long/short symmetry. In addition, the Price File Format window now sets the initial file formatting for a new price file to the formatting of the market currently selected in the Market Data table. This makes it easy to format a new price file if it has the same formatting as one already formatted in the same project file. For example, when adding multiple price files that all have the same custom indicator formatting, the formatting now only needs to be set once. Subsequent price files added to the same project will default to the formatting of the currently selected file when initially opened in the Price File Format window. In addition, the following bug fixes were made for this version:

  1. [bug fix] The caption for Fig. 25 in the Performance Report Window section of the user's guide (p. 56 in the PDF version) displayed the wrong population member number.
  2. [bug fix] The table of order type names in the Trade List Table section of the user's guide (p. 60  in the PDF version) listed incorrect names for the exit order types.
  3. [bug fix] Custom indicators were incorrectly displayed in the Indicators table when a market was selected in the Market Data table that did not contain those indicators.
  4. [bug fix] When the Market Data table contained some markets with custom indicators and some without, selecting a market without custom indicators failed to remove those indicators from the build set prior to building, which resulted in error messages during building.

 

Version 1.7.2.0 (9/22/14)

This release includes five new exit order types: fixed target (e.g., exit at a profit of $500), percentage target (e.g., exit when the price increases 3%), trailing stop with a fixed-size floor, exit after N bars if the trade is a loss, and exit after N bars if the trade is a profit. The new order types are available on the Order Types tab and are described in the user's guide in the Introduction, Order Types. In addition, the following changes and bug fixes were incorporated into this version:

  1. "Consider All" and "Consider None" buttons have been added to the Indicators and Order Types tables to allow you to quickly remove all or add all items to or from the Consider column.
  2. An option to "Evaluate intraday strategies at optimal bar size if applicable" has been added to the Evaluation Options tab. This works in conjunction with the recently added option to vary the bar size for intraday data to evaluate such strategies at the optimal bar size found during the build process, rather than at the settings in place on the Markets tab.
  3. The Performance Report now displays a list of the markets -- including bar type and size -- used in evaluating the strategy to make it easier to recall which settings were in place the last time the strategy was evaluated.
  4. A Properties command has been added to the File menu. This opens a file properties window, which displays information about the currently open project file, including the version of Builder used to last save the file, the full path to the file, and a list of the price files in the Market Data table with full path names.
  5. For TradeStation/MultiCharts (EasyLanguage) code, market exit orders are now consolidated into a single condition and order statement, as has been the case for other code types.
  6. The up/down arrow keys can now be used to scroll through the list of markets in the Market Data table (Markets tab) so that the current selection will appear in the Settings table.
  7. The "Select New File" button on the Markets tab now opens to the folder containing the selected file rather than to the last selected folder, which makes it easier to identify the location of the selected price file.
  8. [bug fix] For MetaTrader 4 strategies, the "ATRS" variable name should have been "ATRL" when an ATR-based stop was applied on the bar of entry for long/short strategies.
  9. [bug fix] For AmiBroker, syntax errors were corrected for the ZLTrend and AdaptLen indicators that caused compile-time errors. The corrected functions are located in the include file, ASBuilderCommon.afl, which can be found in the AFL folder in the installation folder for Builder. Please refer to the installation instructions in the user's guide (Getting Started, Installation) for instructions on how to copy this to AmiBroker.

 

Version 1.7.1.2 (8/30/14)

This is a minor bug-fix release following the release of 1.7.1.1. The following changes and bug fixes were incorporated into this version:

  1. Changing a data setting that affected the default fixed stop size range prompted the program to recalculate the default stop size range. For large price data files, this could impact the responsiveness of the program. To avoid this, the program now recalculates the default fixed stop range only when the user clicks the "Use Defaults" button in the Parameter Ranges section of the Strategy Options window.
  2. [bug fix] Formatting issues for non-US locales persisted in 1.7.1.1. The problem was isolated to third-party code associated with the Settings table introduced in 1.7.1 that affected locale settings globally. Locale settings and associated number and currency formatting have now been restored to the same functionality as in 1.7.0 and 1.6.4.
  3. [bug fix] The Select New File button on Markets would cause a program crash if it was clicked when no entries were yet present in the Market Data table. The function of the button has been updated so that if no files exist in the table, clicking the button is the same as clicking the Add button, so that either button may be used to add the first file of price data to the table.
  4. [bug fix] The number of trading days for the number of trades per day metric was off by 1 in some circumstances. This has been corrected.

 

Version 1.7.1.1 (8/28/14)

This is a minor bug-fix release following the release of 1.7.1.0. The following changes and bug fixes were incorporated into this version:

  1. The optimal bar size for intraday data found during the build process if that option was selected is now reported in the Build Results tables as well as in the comment block at the top of the strategy code.
  2. [bug fix] For non-US locales, numbers and currencies were displayed as random characters. This also affected the display of the Indicators and Order Types tables. This has been corrected.
  3. [bug fix] The bar size was not being set correctly when reading intraday data, resulting in a reported bar size of 0 minutes under the File Settings section of the Settings table on Markets. The bar size should now be read correctly provided the price data file has consistent bar spacing. If not, it can be set manually in the table.
  4. [bug fix] The number of trades metrics (trades per day, week, month, years) were using the entire trading segment, rather than the segment under analysis, for the period part of the calculation. This has been corrected.

 

Version 1.7.1.0 (8/26/14)

This release adds the ability to optimize the bar size for intraday data. Provided the price data support intraday bars, a new option on Strategy Options allows you to select a range of bar sizes to consider for intraday data. The bar size will be included in the build process, and the optimal bar size will be reported in the build report. To support this feature, new functionality has been added to the Markets tab, which now allows the user to select the bar type, bar size, and session times to use for building and evaluating strategies. These settings can be different than the settings that describe the data in the price file. For example, if the price file contains 10 minute bars, the bar size can be changed to any intraday bar size larger than 10 minutes, and the bar type can be changed to daily, weekly, monthly, or range. For range bars, a Range Bar Size setting is available to specify the size of the range bars desired. The Markets tab has been redesigned to support the new functionality.

 

Please refer to the user's guide for details on the new features. The relevant sections of the guide that have been updated include: Input Data and Settings, Markets; and Input Data and Settings, Strategy Options (immediately following the description of the neural network option).

 

In addition, the following changes and bug fixes were incorporated into this release:

  1. Additional file delimiter options have been added to the Price File Format window, including semi-colons. This permits data from NinjaTrader to be exported and read into Builder.
  2. An option to limit the number of displayed lines in the Price File Format window to 200 has been added. This speeds up display times for large data files. Uncheck the option to see all the lines in the data file.
  3. The window opened to display the price data file when the View button is clicked now includes options to save the data to a csv file and copy the data to the clipboard.
  4. New metrics have been added for the number of trades per day, week, month, and year.
  5. The "available dates" for price data files is now checked and updated every time a project file is opened, so if the data in the price file has changed, the new date range will be picked up and reflected in the Market Data table.
  6. The "average profit per day" metric has been changed slightly so that it's now based on the actual number of trading days, rather than on the number of calendar days as before.
  7. [bug fix] The Top Strategies table was not updated after performing "Evaluate All" except for the first time after changing to Top Strategies unless the table selection was changed to the population display then back to Top Strategies. This has been corrected.
  8. [bug fix] Input descriptions were missing for inputs for price look-back indicators, such as C[NBarEnL1], where the description was missing for NBarEnL1. This has been corrected.

 

Version 1.7.0.0 (6/24/14)

This release adds NinjaScript code for NinjaTrader 7 as a code output option to Builder. Builder now fully supports NinjaTrader 7. All features and options, including the new neural network functionality and the recently added adaptive indicators, are available for inclusion in NinjaTrader strategies. A special code feature modifies the code based on whether the execution is on historical or real-time data to insure accuracy in both back-testing and real-time trading. Custom order-handling routines handle bracketed entry orders, one-cancels-other and contingent orders and ensure orders remain in balance. Additionally, the NinjaScript code is fully formatted and commented.

 

Please be sure to install the separate NinjaScript file into the NinjaTrader 7 platform prior to compiling any NinjaScript strategies generated by Builder. The NinjaScript file (NinjaTrader.Adaptrade.zip), which can be found in the NinjaScript folder within the Adaptrade Builder folder after Builder 1.7 is installed, contains several indicators, support functions, and order handling routines. It can be installed from within NinjaTrader by selecting Utilities from the File menu and selecting Import NinjaScript…

 

In addition, the following changes and bug fixes were incorporated into this release:

  1. A new option to "Fill limit order no better than limit price" has been added to the Evaluation Options tab. This option, which is consistent with similar assumptions made in NinjaTrader's back-testing order fill rules, prevents limit orders from being "filled" in back-testing at a price better than the order price when the bar opens above/below a sell/buy limit price. Selecting this option results in more conservative fill assumptions for limit orders.
  2. For Bollinger bands and Keltner channels, the standard deviation input is now used for both sides of the market when the symmetry option is selected, whereas previously, the input was repeated for the long and short sides of the market.
  3. Comments for each strategy input have been added to the input section of the strategy code for each supported language.
  4. [bug fix] The min and max time ranges in the Param statements for AmiBroker code incorrectly lacked seconds in some cases. This has been corrected.
  5. [bug fix] The exit-at-time exit order type was not properly synchronized with the corresponding option on Strategy Options to "exit after" time. This has been corrected.
  6. [bug fix] A strategy evaluation error was introduced into version 1.6.4 that caused rules to be incorrectly evaluated when a variable was compared to a constant, such as "VarL1 crosses above N1." This error did not affect any prior versions and has been corrected.

 

Version 1.6.4.0 (4/27/14)

Seven new zero-lag and adaptive indicators were added to Builder in this release. The adaptive indicators are exclusive to Adaptrade and adapt the indicator look-back length to the market. These new indicators include a zero-lag trend indicator, inverse Fisher RSI and inverse Fisher cycle, which is based on John Ehlers' cyber cycle indicator, as well as adaptive versions of each one. The new indicators are available for all supported platforms (TradeStation, MultiCharts, MetaTrader 4, and AmiBroker). The new indicators are described in the appendix to the user's guide "Technical Indicators", as well as in the same section in the help files, and can be found on the Indicators tab in Builder.

 

Code for the indicators is contained in supplementary files for each of the supported platforms. For TradeStation and MultiCharts, the code is contained in the files included in the EasyLanguage folder in the Builder installation folder. For MetaTrader 4, there are new include files in the Include folder, and the indicators themselves are contained in the Indicators folder in the MT4 folder in the installation folder. For AmiBroker, the indicator code is in the include file in the AFL folder in the installation folder. Any older versions of the files for both MT4 and AmiBroker should be replaced with the new versions. The indicators must be installed separately for your target platform or errors will result when strategies containing the new indicators are compiled in the platform. Please refer to the installation section of the user's guide for more information.

 

In addition, the following changes and bug fixes were incorporated into this release:

  1. [bug fix] When both long and short entries were market orders and a neural network was present, the short entry condition contained the code fragment "EntCondL = False", which was incorrect in this case. This has been corrected.
  2. [bug fix] For functions that return a true/false value, such as boolean custom indicators, the variable declaration was listed as numeric, rather than bool. This has been corrected.

 

Version 1.6.3.1 (3/30/14)

This is primarily a minor bug-fix release. The following changes and bug fixes were incorporated into this release:

  1. To improve the responsiveness of the Price File Format window for large price files, the window now displays only the first 200 lines of price data. This enables the window to open much faster than before when it displayed the entire price file.
  2. The "day price" functions (OpenD, HighD, LowD, CloseD), which are considered part of the "price patterns" indicator, were not previously prevented from inclusion in entry order prices even when the price patterns indicators was removed from the build set. The functions were not included in the entry or exit conditions or the neural network inputs if they were removed from the build set. However, to be consistent, the functions are now also prevented from being included in the entry order prices when the price patterns indicator is not part of the build set.
  3. [bug fix] When custom indicators returning a true/false value were part of the build set, Builder could crash under some circumstances. This has been corrected.
  4. [bug fix] When the build process was cancelled while running and a neural network was part of the strategies, the program could crash. This has been corrected.

 

None of the include files were changed, and no other changes were made to the program for this release.

 

Version 1.6.3.0 (3/21/14)

This release adds neural network capabilities to Builder. It's now possible to add a neural network to strategies generated by Builder. The neural network output is compared to a threshold level to determine trade entry. This condition is in addition to any other entry conditions that may be present. Builder will automatically select the inputs to the neural network and evolve the network along with the entry and exit conditions as part of the genetic programming process. Adding a neural network to the build process is as simple as selecting the option on the Strategy Options tab and entering three optional settings. A new section titled "Neural Networks" has been added to the Introduction chapter in the user's guide and help files to describe this new feature.

 

In order to execute Builder-generated strategies containing a neural network, supplementary code is required for each of the supported platforms. For TradeStation and MultiCharts, the code is contained in the files included in the EasyLanguage folder in the Builder installation folder. For MetaTrader 4, new code has been added to both the include and library files in the MT4 folder in the installation folder. For AmiBroker, the code is in the include file in the AFL folder in the installation folder. Any older versions of the files for both MT4 and AmiBroker should be replaced with the new versions. Please refer to the installation section of the user's guide for more information.

 

In addition, the following changes and bug fixes were incorporated into this release:

  1. A change was made to the generation of entry and exit conditions that reduces the number of trivial results (i.e., conditions that are "true" for all bars).
  2. Various minor code changes for MetaTrader 4 (MQL4 code) were made to make the code output more consistent with newer MQL4 conventions.
  3. Minor changes were made to some of the indicators in the include file for AmiBroker. While the changes should have no effect on the indicator values, any older version of the AFL include file should be replaced with the newer one.
  4. [bug fix] An error was introduced in version 1.6.0.0 in which the bid/ask spread value entered on the Markets tab was ignored in favor of the default value, which is the tick value inferred from the price data file. The result was that if the option to use the bid/ask spread was selected, the bid/ask spread was always equal to the inferred tick value, rather than to the value entered by the user. This has been corrected.

 

Version 1.6.2.0 (2/25/14)

The following new features, changes and bug fixes were incorporated into this release:

  1. Two new performance metrics have been added. The Sortino ratio and the MAR ratio are both risk-adjusted return metrics. The Sortino ratio is similar to the Sharpe ratio except that positive returns do not negatively affect the result. The MAR ratio is the average annual compounded rate of return divided by the maximum historical percentage drawdown. These metrics are described further in the Appendix to the user's guide and can be added to the Build Results table and Metrics lists by selecting "Change Metrics" from the Build Results context menu or from the Options window.
  2. The performance results tables have been consolidated into one table -- renamed Build Results -- with a pull-down menu to select between different views. The pull-down menu allows you to select between the population and Top Strategies lists and between in-sample, out-of-sample (OOS), and "All Segments", which combines the in-sample and OOS segments.
  3. An auto-save option has been added to the Options window to enable automatic saving of the project file during the build process after each generation.
  4. Price data files are now located based on a set of stored folders, which can be edited via the Options menu. When the program reads in the price data, it looks for the file in one of the stored folder locations. When a new file is selected on the Markets tab, the location of the file is recorded in the stored list for later use. This makes it easier to copy project and price data files since the full path of the price data file is no longer stored in the project file.
  5. On the Build Options tab, if the option to build using Monte Carlo analysis is not selected, the optional stress testing methods are dimmed to indicate that they don't apply to the build process.
  6. If the Build Results table is displaying the Top Strategies results, the table is not updated during the build process unless new strategies have been added, whereas previously the table was redrawn after each generation regardless of whether it changed or not.
  7. The "sort-to-match" option has been removed from the Options window and is now automatic.
  8. [bug fix] If custom indicators were used and all entries in the Market Data table were deleted before saving the file, the program would crash when opening the saved file. This has been corrected.
  9. [bug fix] Custom indicator function names were not shown in the Build Report if the associated market file was deleted from the Market Data table. This has been corrected.
  10. [bug fix] An error causing the display of custom return values on the Price File Format window for custom indicators to change to scientific notation has been corrected.
  11. [bug fix] A memory allocation error that could cause a program crash in some circumstances has been corrected.
  12. [bug fix] An error preventing the program from opening older project files, such as version 1.0.0, has been corrected.

 

Version 1.6.1.0 (12/6/13)

This is a minor bug-fix release primarily to correct two problems discovered with version 1.6.0, which introduced AmiBroker code output.

 

The following changes and fixes were incorporated into this release:

  1. The Suggest Range button on the Strategy Options tab for generating the range for fixed sized stops has been modified. Now labeled "Use Defaults", this button sets the values for the min and max fixed size stops to the default range calculated from the price data. This default range is now calculated automatically when the price data is read in and when the point value is changed, which affects the calculations. The fixed stop range is set to this default range automatically, so it is no longer necessary to click the button to use the calculated range. As before, the user can enter new values or click the Use Default button to revert to the default values calculated from the average true range of the price data. The calculation of the default values has also been improved to make it more reliable.
  2. [bug fix] Code elements (function names entered on the Price File Format window) for custom indicators were not being displayed in AmiBroker code. When a custom indicator was part of the logic, a blank was put in place of the function name. This has been corrected.
  3. [bug fix] Clicking the Suggest Range button on the Strategy Options tab to generate the range for fixed sized stops could cause a program crash. This has been corrected. The functionality of this button has been changed as well; please see item 1 above.

 

Version 1.6.0.0 (11/25/13)

The principal feature of this release is the addition of AmiBroker (AFL) code output, which runs in the AmiBroker trading platform. AmiBroker is popular for its low cost and wide array of features, including portfolio and walk-forward testing. The other changes and bug fixes of this release are detailed below.

 

Notes on AmiBroker code in Builder: The unique features of the AmiBroker (AFL) language make it easy to develop strategies with simple entry and exit logic, particularly if the logic is consistent with the design of the language. While most of the features in Builder are fully compatible with AmiBroker, a few of the options in Builder are impractical to include in AFL strategies due to the design and features of AFL. In particular, it was not practical to allow both long and short trades in the same AFL strategy. Of course, it's always possible in Builder to develop separate populations of long-only and short-only strategies. Because Builder-generated AFL strategies can only be long-only or short-only, the option to allow reversal trades ("Wait for exit before entering new trade") cannot be unchecked in Builder since unchecking it would only be helpful if reversal trades were possible. It should be kept in mind that converting strategies from a different code type, such as TradeStation, to AmiBroker will not work correctly if the strategy contains both long and short trades.

 

In addition to AmiBroker support, the following changes and fixes were incorporated into this release:

  1. To make is easier to re-use custom indicator column settings in the Price File Format window, it's now possible to select a new price file without changing anything else. Just click on the price file name in the Markets table and select a new file. The file formatting will remain the same as in the old file. To modify it, click the Format button. If you plan to reuse the custom indicator or other file formatting, you can "save as" the project file to a new name and use that the next time you want to reuse the prior settings.
  2. Indicators and order types that are not available for a specific trading platform or code type are grayed out in the Indicators and Order Types tables when you select that code type on the Evaluation Options tab.
  3. [bug fix] In MultiCharts, statements involving intraday data and the day-price indicators (LowD, HighD, OpenD, CloseD), such as RSI(LowD(0), N1), resulted in errors because MultiCharts cannot process nested indicators for some functions, such as RSI. The code has been modified to add a separate variable where necessary in this case; e.g., Var1 = LowD(0); RSI(Var1, N1).
  4. [bug fix] In MetaTrader 4, when an ATR stop was applied on the bar of entry for strategies with both long and short trades, the short side code had a sign error, resulting in the same code as for the long side. This has been corrected.
  5. [bug fix] Exit conditions for market exit orders were being reported in the build report when there was no market exit order. The problem has been corrected.
  6. [bug fix] The TRIX indicator was shifted incorrectly in cases where a shift value was present. This has been corrected.
  7. [bug fix] In cases where the position size exceeded the maximum internal integer value, the size was truncated to zero during the "round to nearest" calculation, resulting in the size defaulting to the minimum specified position size. This has been corrected.
  8. [bug fix] Risk values, which are always reported as the risk per share/contract in the Trade List table, were reported as zero if the risk value was less than 1 cent. Similarly, the risk values stored in the MSA file were written out in cents format, which resulted in zero values when the risk was less than 1 cent. Both problems have been corrected.

 

 

Version 1.5.4.0 (5/24/13)

This release allows the trades and settings for the selected strategy in Builder to be saved as a Market System Analyzer (MSA) file (extension .msa). MSA is a position sizing and money management program that complements Builder by enabling the user to explore different position sizing and money management settings and options, including equity curve crossover trading and Monte Carlo analysis.

 

To save the current strategy's trades and settings to a MSA file, either right-click on the Trade List and select Save to MSA File or select the same command from the File menu. The user's guide has been updated with a description of this command in the section Trade List Table (Build Results chapter) and in File Menu Commands (Menu Commands chapter).

 

No other changes were made to this version.

 

 

Version 1.5.3.0 (4/23/13)

This release adds stress testing with Monte Carlo analysis, as previewed in a recent newsletter article. The stress testing can be performed on existing strategies and incorporated into the build process for new strategies. When stress testing is applied, the results are reported based on the Monte Carlo analysis of the stress test results at a user-specified confidence level. The stress testing options and settings are available on the Build Options tab. The user's guide section for the Build Options tab describes the available settings and options. Also, please see the new section in the user's guide "Stress Testing and Monte Carlo Analysis" in the chapter Usage Topics for a discussion of this feature. The other features of this release are detailed below.

 

The following changes and fixes were incorporated into this release:

  1. Memory management has been improved, which should allow larger populations to be built before reaching the computer's memory limits.
  2. Two new metrics have been added to better account for open profit/losses: open profit/loss and the total net profit. The latter is the sum of the closed trade net profit and the open trade profit/loss. Optimizing for total net profit, rather than net (i.e., closed trade) profit should help avoid strategies that end the build period with large open losses.
  3. "Signal Price" has been added to the Trade List for both trade entry and trade exit. The signal price is the price calculated by the strategy, whereas the entry and exit prices are the (simulated) fill prices. The signal price is often different than the fill price because of where the bar opens following the bar on which the order price was calculated. Knowing the calculated price can help explain the position size for "percent of equity" position sizing, among other things.
  4. The order fill rule for filling limit orders only when the limit price has been exceeded has been added back in to Builder. This is in addition to the bid/ask fill rule on the Evaluation Options tab.
  5. The option on Evaluation Options to "Use position sizing stored with the strategy when evaluating existing strategies" has been replaced with a button "Reset to Build Settings". Now, whatever position sizing settings are visible on this tab will be applied when a strategy is evaluated. To restore the settings in place when the strategy was originally built, click the button.
  6. The text in the Output window can now be selected and copied to the clipboard.

 

 

Version 1.5.2.0 (2/15/13)

The most visible feature in this release is the new Welcome screen, which is optionally displayed when the program starts up. The Welcome screen allows you to directly access three new example projects for stocks, forex, and futures. The screen also displays tips and contains a link for the Quick Start Steps topic of the help files. The other features of this release are primarily convenience (user-interface) features and bug fixes, which are detailed below.

 

The following changes and fixes were incorporated into this release:

  1. The in-sample and out-of-sample Results and Top Strategies tables can be sorted together using a new option, which is selected by right-clicking on the tables ("Sort to Match").
  2. The up/down arrow keys can now be used to change the selection of the strategy in the Results and Top Strategies tables.
  3. "Move Up" and "Move Dn" buttons have been added to the Change Performance Metrics dialog window to allow you to move metrics up and down in the list of selected metrics. Also, these buttons can be accessed by right-clicking.
  4. Builder can now accept price files in reverse date order, where the most recent date is first and the earliest date is last in the file.
  5. Builder now verifies that all rows of price data are in consecutive order. If the dates appear out of order, it can indicate that the wrong date format is being used, which can be corrected by selecting a different locale.
  6. The maximum position size on the Evaluation Options tab now automatically changes to be at least as large as the fixed size when fixed size position sizing is selected. This helps prevent the position size from being inadvertently limited by an incorrect setting for the maximum position size.
  7. The Top Strategies tables are now checked for duplicates before adding a new strategy to the tables.
  8. To make it easier to delete items from the Top Strategies tables, multiple rows can be selected together using shift-click and control-click combinations. The selected strategies can be deleted using the delete key or by right-clicking and selecting "Delete Selected Strategies".
  9. [bug fix] In MetaTrader 4 code for fixed fractional position sizing, a semi-colon was missing at the end of the statement for the NSharesL or NSharesS variable. This has been corrected.
  10. [bug fix] The seconds part of the time field in a price file was not read correctly when the hour part was zero. This has been corrected.
  11. [bug fix] When no conditions were selected for the Top Strategies tables, every strategy was copied to Top Strategies by default. This has been changed so that if no conditions are selected, no strategies are copied to Top Strategies.
  12. [bug fix] The code for members in Top Strategies was not generated for strategies that were not saved in the Results table, which meant that, in some cases, the code window was blank and, in other cases, the code was from a prior generation. This problem, which also affected the strategy member number, has been corrected.
  13. [bug fix] Using a small population size or a small price file could cause a program crash in cases where the build process progressed so fast than the results panes couldn't keep up. This has been corrected.

 

 

Version 1.5.1.0 (1/25/13)

This release significantly enhances the build process in Builder. You can now build strategies based on performance requirements and constraints, such as profit factor >= 1.5, drawdown <= 20%, number of trades between 100 and 300, etc. The Build Metrics table has been replaced with separate lists of build objectives (metrics to minimize or maximize) and build conditions (metrics specified in the new constraint conditions). In addition, similar conditions can be specified to filter the results during building to set aside any strategies that meet your requirements. For example, you could have the program set aside any strategy from any step of any build that has a correlation coefficient greater than 0.95 as measured across all segments of the data and which has a net profit of more than $5000 on the out-of-sample segment. These strategies are listed in the new Top Strategies tables, which work the same as the existing performance tables.

 

In addition, the following changes and fixes were made in this release:

  1. [bug fix] Indicator shifting was not handled properly for the accumulation/distribution indicator, which could cause a program crash. This has been corrected.
  2. [bug fix] The code variable "InitialStop" was not being initialized properly when the option to apply protective stops on the bar of entry was used but no stop was used, resulting in a code compilation error. This has been corrected.
  3. [bug fix] The code variable for average true range (ATR) was incorrectly labeled when exits were applied on the bar of entry for ATR stops, resulting in a code compilation error. This has been corrected.
  4. [bug fix] In some cases, the Build Report incorrectly displayed the indicator list for a strategy as empty. This has been corrected.

 

 

Version 1.5.0.0 (12/23/12)

This release adds MetaTrader 4 script (MQL4 code) as an optional Code Output option. MetaTrader 4 (MT4) is a popular forex trading platform. Builder now includes special functionality, including versions of several indicators, specifically to ensure maximum compatibility with MT4. MT4 strategies ("Expert Advisors" or EAs) can be saved directly to a .mq4 file or copied and pasted into the MetaQuotes Language Editor (MetaEditor).

 

In addition, the following changes and fixes were made in this release:

  1. Indicator shifting has been added. For example, Average(C, N1)[NShift] indicates that the moving average has been shifted by NShift bars, which means the statement returns the average NShift bars ago. The probability that an indicator will be shifted can be specified under Strategy Options.
  2. An option has been added to Strategy Options for allowing nested indicators, such as Momentum(XAverage(H, N2), N3). Previously, nesting was always "on". If unchecked, indicators will not be nested, regardless of tree depth.
  3. Price files can now be read with the date and time in the same field; e.g., 11/5/2012 13:15 or 20090531 13:15. The field should be labeled "date" and no "time" field should be present.
  4. The percentage of computer memory currently in use is now displayed in the status bar. This makes it easier to see the relationship between program settings, such as population size, and the amount of memory used by the program.
  5. The Exit command (File menu) and the close button on the main window are now active at all times, including during the build process, and can be used to terminate the program at any time. A confirmation message is displayed before the program is closed if a build is ongoing.
  6. A value can be entered on the Markets tab for the bid/ask spread of each symbol. The value defaults to the tick size but can be changed to any value. The Order Fill Rule on the Evaluation Options tab has been changed so that, if checked, it uses the bid/ask spread to determine fills. For example, buys occur at the ask and sells at the bid, so a market buy order will be filled at the chart price (bid) plus the bid/ask spread. Similarly, a buy stop order will not be filled unless ask price (chart price plus bid/ask spread) rises to or through the stop price.
  7. The max bars back value ("Max Look-back Length") can now be entered for custom indicators on the Price File Format window.
  8. When strategies include both long and short trades that enter using market orders, logic has been added to prevent both long and short entries from occurring at the same time.
  9. On the Options window (Strategy menu), a time-out interval can be set to control how long the program waits for lengthy calculations. Previously, a "Calculations timed out..." error message was produced if any given strategy took longer than two minutes to evaluate. This cut-off time can now be set by the user.
  10. The cents part of the equity labels has been removed from the y-axis of the Equity Curve plot.
  11. [bug fix] Custom indicators were not listed in the Build Report in the indicators build set section. This has been corrected.
  12. [bug fix] The Suggest Range button on the Strategy Options tab did not work correctly when the average true range was less than 1.0. This has been corrected.

 

 

Version 1.4.1.0 (9/24/12)

This release changes the EasyLanguage code formatting of entry and exit conditions to solve a problem previously encountered in TradeStation. With nested indicators, such as Average(Average(Average(Average(C, N1), N2), N3), N4), TradeStation has difficulty evaluating the expression, which can cause the chart to freeze. Eventually, TradeStation will finish evaluating the strategy, but it can take many minutes in some cases. Aside from avoiding that kind of logic, the only solution previously was to rewrite the condition as follows:

   Var1 = Average(C, N1);

   Var2 = Average(Var1, N2);

   Var3 = Average(Var2, N3);

   EntCondL =Average(Var3, N4);

 

in which Var1, Var2, Var3, and Var4 are variables, and EntConL is the final, overall condition.

 

Builder now incorporates this style of code formatting, in which the entry and exit conditions are decomposed into multiple variables. This eliminates the difficulty TradeStation has with nested indicators. As a result, it's no longer necessary to reduce the tree depth in order to prevent complex, nested conditions or to rewrite the code by hand.

 

In addition, the following new features were added to the Price File Format window:

  1. A "Clear All Formatting" button has been added. This button removes all column headings from the table of price data and clears the table of custom indicator settings. This can be used prior to setting the column headings to remove the default headings in cases where each column must be relabeled.
  2. A "Data Format" pull-down menu has been added. This menu allows you to select the locale for use in interpreting the data in the price file. The menu defaults to "English (United States)", which means it will expect dates to be in MM/DD/YYYY format and numbers to use a "." as the decimal symbol and "," as the digit group symbol. Changing the format, for example, to "English (United Kingdom)" will cause the program to expect dates in the format DD/MM/YYYY. If the prices use a comma as the decimal symbol (e.g., 100,01), the correct selection may be a European format, such as French or German.

 

 

Version 1.4.0.0 (8/25/12)

This release adds portfolio capabilities. It's now possible to build over multiples markets simultaneously so that the resulting strategy is designed to perform on all selected markets. Building over multiple markets can produce strategies that are more robust that single-market strategies and enables a diversified, portfolio approach to trading. In addition to the new portfolio feature, the following changes and fixes were made in this release:

  1. The open trade equity has been added to the Performance Report, making it easier to determine if there is any significant performance impact from open trades.
  2. [bug fix] When the number of stored strategies was set to be larger than the population size, the program would attempt to evaluate the non-existent population members. This has been corrected.
  3. [bug fix] When the trade list was saved to a file, the quantity was displayed as "1" in the output file regardless of the true size. This has been corrected.
  4. [bug fix] The Equity Low performance metric displayed random characters when there were no trades in the segment (in-sample or out-of-sample). This has been corrected.
  5. [bug fix] In EasyLanguage code, range bars should not use the HighD, LowD, CloseD and OpenD functions, which return -1 when applied to range bars. Builder now excludes these functions from the build set when range bars are being used.
  6. [bug fix] The minimum number of shares setting from the Strategy Options tab has now been added to the Performance Report.

 

 

Version 1.3.0.1 (5/21/12)

This release corrects several errors in the prior release, mostly related to the position sizing features added in that version.

 

The following changes and fixes were made in this release:

  1. [bug fix] The list of Build Metrics sometimes displayed multiple instances of the Net Profit metric. Each additional occurrence pushed a metric off the bottom of the list. This has been corrected. However, the fix is not retroactive, so project files that display this problem will continue to do so. The extra occurrences of the Net Profit metric can be removed by right-clicking on the Build Metrics table and using the Remove button.
  2. [bug fix] With fixed fractional position sizing and no protective (money management) stop, the risk value was supposed to be provided by the largest loss. However, because the position size defaulted to zero, no trades were made in this case, so no losses were recorded. This has been corrected by adding a setting for the minimum number of shares strategies will trade, with a default value of 1. The minimum number of shares is set on the Evaluation Options tab.
  3. [bug fix] Return, return/drawdown ratio, percentage drawdown, and several other metrics dependent on account equity gave zero or incorrect results in the out-of-sample (OOS) period because the starting equity in the OOS period was incorrectly set to zero. This has been corrected. As a result, any strategies with an OOS period built in version 1.3.0.0 will need to be re-evaluated from the Build menu to properly calculate the OOS results. The equity curve will show a discontinuous jump until the strategy is re-evaluated.
  4. [bug fix] Parts of the build report did not update during the build process each generation, such as the number of generations and total build time. This has been corrected.
  5. [bug fix] Fixed dollar (protective) stops didn't work well for forex because the stop sizes, which are per-share, were too small in most cases to display properly in the EasyLanguage code. The input value for the stop size displayed only two decimal digits, which was insufficient to display the stop values. This has been corrected.
  6. [bug fix] Fixed ratio position sizing didn't work well for forex because it started at a position size of 1 and incremented the size by 1. Forex typically trades in sizes of 10,000 or 100,000 per lot. This has been corrected by using the "round to.." and minimum share options. If the option to round the position size to, say, 10,000 shares is selected, the delta value for the fixed ratio method will be relative to 10,000 shares. Also, the fixed ratio method now starts with the minimum number of shares specified on the Evaluation Options tab.
  7. [bug fix] The trading costs field in the table on the Markets tab didn't display enough decimal digits to display the trading costs for forex properly. For example, the costs for forex might be 0.003 per share for a lot size of 10,000, which would give costs of $30 per lot. The table now displays the decimal digits properly.
  8. [bug fix] When clicking on the results tables during building (e.g., to sort the results), the program sometimes crashed. This happened when the tables were redrawing while being updated with the results from the recently completed generation. This has been corrected.

 

Upgrading Note: As noted above in #3, any strategies built in version 1.3.0.0 with a non-empty out-of-sample (OOS) period will need to be re-evaluated from the Build menu to properly calculate the OOS results. The equity curve will show a discontinuous jump between the in-sample and OOS periods until the strategy is re-evaluated.

 

 

Version 1.3.0.0 (4/9/12)

This release adds position sizing options to the program. Whereas previously, the position size defaulted to "1" and all trades had the same size, strategies may now use any of six different position sizing methods, including fixed fractional, fixed ratio, constant value, and percent of equity. You can elect to have the build process choose the position sizing method and/or parameter value or set them yourself prior to building.

 

In addition to position sizing, the following changes and fixes were made in this release:

  1. More than 60 new performance metrics were added to provide more control in specifying build goals, including period returns (daily, weekly, monthly, annual), R-multiples, percentage drawdown, leverage, Sharpe ratio, and many others.
  2. A detailed performance report for each strategy, including results for long and short trades, is now part of the output. The report can be printed, copied, or saved to a file in several different formats.
  3. A build report is generated for each strategy describing the features of the strategy along with all the settings used in the build process. The report can be printed, copied, or saved to a file in several different formats.
  4. A time range option for trade entries was added so that the entry time can be limited to the chosen times on intraday data.
  5. An option for limit orders to be filled only when the limit price is exceeded was added, which makes it possible to build realistic strategies using limit orders on short intraday bars (e.g., 1 min or tick data).
  6. A new input data tab -- Evaluation Options -- was added for the new position sizing settings and options and the new limit order fill rule option.
  7. The set of performance metrics used in the performance tables and in the build metrics list can now be customized for each strategy.
  8. The Trade List now includes additional columns for the position size, entry and exit signal types (i.e., labels), position trading costs, and gross profit/loss.
  9. A program options feature was added to allow the following settings:
    1. The number of parallel processes used during the build can be specified to give the user more control over how the computer's cores are utilized.
    2. The default set of build metrics used for new projects can be selected from a list of all available metrics.
  10. The EasyLanguage code output now includes labels for each order.
  11. An open trade at the end of the trade history is now recorded in the trade list, where it's marked as "open trade".
  12. The equity curve can now be copied to the clipboard by right-clicking.
  13. A "Recommend Range" button has been added to the Strategy Options tab to calculate a recommended range of stop values for fixed size protective stops. Because these stops are now applied per share or contract, rather than "per trade", a meaningful range of stop sizes is sometimes not obvious. The button multiples the average true range by 0.25 and by 4.0 to determine the equivalent dollar stop values for the recommended range.
  14. [bug fix] The "known issue" from the prior release, related to the use of the SetStopLoss statement for protective stops applied on the bar of entry, has been eliminated with the addition of position sizing.
  15. [bug fix] When the stop type was changed from ATR to fixed sized stop for an existing strategy, and the strategy was rebuilt, the stop size was zero. This has been corrected.
  16. [bug fix] Invalid code output was generated when the symmetry option was used, then subsequently switched off, before rebuilding using the prior population as a starting point. This has been corrected.
  17. [bug fix] Percentage stops were incorrectly updated on each bar within Builder, whereas the generated code specified that they were updated only on the bar of entry. This has been corrected so that the stops are only calculated on the bar of entry within Builder.
  18. [bug fix] The risk values in Builder were not calculated correctly in some cases. This has been corrected.

 

Upgrading Notes: For those upgrading from a prior version of Builder, please note the following regarding the use of project files from prior versions:

  1. Previously, the point value was used for the number of shares of stock. Because Builder now includes position sizing, the point value for stocks should now be set to 1, and the number of shares should be set (if fixed size trading is desired) using the position sizing inputs on the Evaluation Options tab.
  2. Trading costs were previously interpreted as "per position", whereas now they are "per share or contract". For stock trades, where the point value previously was used to represent the number of shares, the costs will have to reduced to be "per share" if the point value is set to 1.

 

Version 1.2.3.1 (1/5/12)

This version is mainly a bug fix release. The following changes and fixes were made in this release:

  1. [bug fix] When multiple orders were filled on the same bar, such as an entry and an exit occurring on the same bar, the fill prices were incorrect in some cases. This has been corrected.
  2. [bug fix] For fixed dollar stops, the CurrentShares keyword was omitted from the stop price statement, resulting in  incorrect stop prices for stocks and forex. This has been corrected.
  3. [bug fix] For ATR and percentage stops, when the stops were applied on the bar of entry, the CurrentShares keyword was omitted from the SetStopLoss statement, resulting in incorrect values when applied to stocks and forex. This has been corrected.
  4. [bug fix] When time was provided in HHMM format in the price file, a value of zero (0000), representing midnight, was not read correctly, which resulted in an error message indicating that the time or date field format was incorrect. This has been corrected, so that a time of 0 is properly recorded as midnight.
  5. [bug fix] The total elapsed time displayed in the status bar was not initialized properly after the initial build, so that it displayed an incorrect value upon subsequent builds until the first time update. This has been corrected.
  6. [bug fix] A new routine to detect the number of logical cores has been implemented in order to address cases for which the prior function failed to detect the actual number of cores on the user's computer. This function is used in the parallel processing algorithms to allocate processing among the available cores.
  7. Price files can now be read with time values in the format HHMMSS (e.g., 091500 for 9:15 a.m.). Previously, time had to be either in Windows-standard format or in HHMM format.
  8. On the Build Options tab, the genetic programming options of crossover percentage, mutation percentage, tree depth, and tournament size have been labeled as "Advanced" to make it clearer that the default values usually suffice for most applications.
  9. The default tree depth has been reduced to 3 from the prior value of 4. In some cases, multiple levels of nesting of indicators can cause strategies to take too long to evaluate in TradeStation and MultiCharts. Reducing the tree depth should reduce the likelihood of obtaining such strategies.

Known issue (posted 1/15/12; corrected in v 1.3): The SetStopLoss statement contains the keyword CurrentShares, which will have the value zero when there is no open position. This will result in a stop size of zero, which will trigger an immediate exit at the entry price. A workaround is to replace "CurrentShares" with "MaxShares(1)".

 

Version 1.2.3.0 (11/22/11)

The following features and fixes are part of this release:

  1. Two new types of protective stop orders were added: a fixed size stop and a percentage stop. The fixed size stop is given in dollars (or your local currency); e.g., a $500 stop. The percentage stop is placed a given percentage from the entry price; e.g., 2% of the entry price below the entry for a long trade.
  2. All three types of protective stops can be applied on the bar of entry. This option on the Strategy Options tab is implemented using the SetStopLoss command in EasyLanguage.
  3. The following new indicators were added: weighted moving average, triangular moving average, TRIX, CCI, Bollinger band, Keltner channel, and standard deviation.
  4. Indicators that previously only accepted price or price-based indicators as input, such as moving averages, now also accept other types of indicators as input.
  5. The check-box option for exiting end-of-day was removed from the Strategy Options tab because it was redundant given the recently added ability to specify order types to include in all strategies. This now allows the build process to consider this exit type without requiring it to be included in each strategy whereas previously, the user had to choose whether or not to include it in each strategy.
  6. Minimum length values were added to the indicator and price pattern look-back ranges on the Strategy Options tab. For example, the indicator look-back range can be specified as "20 to 30".
  7. The Strategy Options tabbed window has been separated into three windows: Indicators, Order Types, and Strategy Options.
  8. Help buttons, which bring up the relevant help topic, have been added to each tabbed input window.
  9. The coloring on the out-of-sample (OOS) portion of the Trade List window has been changed. Instead of coloring the entire OOS portion red or green, depending on whether the OOS net profit is positive or negative, the background color for each row is colored red or green depending on the trade profit/loss. This provides contrast to the in-sample part of the list, where the text color is used to differentiate profits and losses.
  10. The start bar for evaluating strategies has been changed to be consistent with how strategies are evaluated in TradeStation. Previously, if the start date was changed in Builder, the strategies would use data prior to the new start date for the required look-back period; e.g., if the MaxBarsBack setting was 90, the strategy would look back 90 bars prior to the new start date. This has been changed so that the strategies now start all calculations on the new starting date.
  11. An "Elapsed Time" display message has been added to the status bar during builds.
  12. The time at which the build process is completed has been added to the Output window, alongside the existing total build time.
  13. The strategy member number has been added in parentheses to the display windows (Equity Curve, Trade List, Strategy Code) to make it easier to identify the strategy that has been selected from the performance tables.
  14. The MaxBarsBack value has been added to code heading comment block of each strategy to make it easier to set this value in TradeStation without having to refer back to the Builder file.
  15. A beep sound has been added to indicate when the build process is finished.
  16. The amount of installed memory recognized by Builder has been added to the About Builder window.
  17. There are new colors and icons for the user interface.
  18. [bug fix] The EasyLanguage keyword BarType has been replaced with DataCompression because the latter works for both TS 9 and TS 2000i, whereas BarType is not recognized in TS 2000i.
  19. [bug fix] The routine for detecting memory capacity in the 64-bit version of Builder may not have worked correctly in some cases. This has been corrected.
  20. [bug fix] Project files from versions 1.1.0 to 1.1.1 that contained an exit-on-close exit lost that exit when opened in versions of Builder newer than 1.1.1. This has been corrected.
  21. [bug fix] When performing an "Evaluate All", the population member numbers were reset, but the old numbers were still displayed in the strategy code header comment. This has been corrected so that the population numbers are not reset.
  22. [bug fix] When sorting the table of order types, the "Include" column disappeared. This has been corrected.

 

 

Versions 1.2.2.0 - 1.2.2.2 (9/6/11, 9/7/11, 9/20/11)

This release adds the ability to include custom indicators in Builder. If a custom indicator is plotted on a chart and the data is saved to a text file, the column of indicator values can be read into Builder and associated with a text string that represents the code for the corresponding indicator function used to generate the values in the file. When Builder uses the indicator in strategies, it includes the text string for the indicator function code in the entry or exit statement in which the indicator is used. Provided that function is available in the trading platform when the strategy is executed, the code will generate the same results as in Builder. More information on this feature can be found in the section of the user's guide entitled Input Data and Settings.

 

Part of this new feature is the Price File Format window, which allows the user to specify the columns of data in the text file of price data. This provides more flexibility for reading price files. For example, the minimum allowable price file now consists of the date and closing price, whereas previously it was necessary to include date, time, open, high, low, and close. Any column that should be ignored or skipped over can be labeled as such. The label for any column in the file can be selected from a list that includes date, time, open, high, low, close, volume, up-tick volume, down-tick volume, indicator (for custom indicator data), and don't read/ignore. Similarly, there is now a checkbox for combining the up-tick and down-tick volumes into total volume. The Price File Format window is opening automatically when reading in a new price file and can be opened again at any time from the Markets tab in order to change the settings.

 

[bug fix] Version 1.2.2.1 corrects a bug in version 1.2.2.0 that can cause sporadic program crashes when using custom indicators with a return type of "price". Otherwise, version 1.2.2.1 is identical to 1.2.2.0.

 

[bug fix] Version 1.2.2.2 corrects a bug that can cause occasional program crashes when building on intraday data when the exit end-of-day option is selected.

 

[bug fix] Version 1.2.2.2 improves the use of custom indicators when more than one custom indicator uses the custom return type. In version 1.2.2.0 and 1.2.2.1, different custom indicator returning custom return values could not be compared to each other. In version 1.2.2.2, it's possible for different custom indicators returning custom values to be compared to each other. For example, if you have several correlation indicators, each returning custom values in the range -1 to +1, the different indicators may now be compared to each other, such as correlation(C of data1, C of data2, 14) < correlation(C of data1, C of data3, 14).

 

 

Version 1.2.1.1 (8/8/11)

This release corrects several errors related to the new order processing engine developed for the prior release that can occur when using the new option to allow trades to reverse existing positions. Specifically, the changes in this version are as follows:

 

  1. [bug fix] When the option to "Wait for exit before entering new trade" was unchecked, certain exit orders previously were entered at incorrect prices when there was an open position on the same bar and the buy (sell) stop price was below (above) the open. This has been corrected.
  2. [bug fix] When the option to "Wait for exit before entering new trade" was unchecked and the option to exit-at-close was selected (checked), an extra variable (EndofSess) was added to the entry condition statements, which prevented entry orders from being placed. This has been corrected.
  3. A more refined assumption about the order of prices on a given bar has been incorporated into Builder. In general, it's not possible to know whether the high or low occurred first on a given bar given only the open, high, low and close. Consequently, when multiple orders are executed on the same bar, it's necessary to assume which occurred first, the high or the low. Typically, when the bar closes up, it's assumed that the low occurs first. However, when the close and the open are at the same price, Builder now looks at whether these prices are closer to the high or the low. If they're closer to the high, it's assumed that the high occurs first.
  4. The way in which the population is initialized when "Reset on Build" option is unchecked has been changed. Previously, the program just copied the members from the current population without re-evaluating them. It was assumed that in this case they would be used to continue building on the same price data. Now, the members that are copied from the prior population are re-evaluated before continuing. This makes it easier to develop strategies that can work across multiple markets. For example, you can build a few generations on one market, select a different market under the Markets tab, and, with the Reset on Build option unchecked, build a few generations on the second market. The second build step will start the build using the population members generated on the first market and evolve them from there using the second market's data. You could then repeat the process for other markets.
  5. The name of the project (.gpstrat) file is now included in the comment header block at the top of each strategy. To include this in existing strategies, just select the given strategy and select Evaluate from the Build menu.

 

Known issue in v 1.2.1.1:

When using the AccumDist function in intraday strategies, the volume in the price file should be the sum of the up tick and down tick volumes. Typically, the up and down tick volumes are present in separate fields in the price file. When Builder asks whether the two volume fields should be combined, it's necessary to say "yes" in order for the AccumDist function to evaluate correctly. However, with some symbols, the intraday volume in TradeStation is defined as the up tick volume only, so it's necessary to say "no" when asked to combine the two volume fields. For these symbols, the AccumDist function should be excluded from the build set or incorrect results may be obtained.

 

 

Version 1.2.1.0 (7/27/11)

This release includes versions compiled specifically for both 32-bit and 64-bit versions of Windows. Under 64-bit Windows, programs can allocate more than 2GB of memory, which is the limit under 32-bit Windows. This means that the 64-bit version of Builder can handle larger population sizes and longer price files. While the 32-bit version (and all prior releases) will work under both 32 and 64-bit versions of Windows, it's recommended that the 64-bit version be installed on computers running 64-bit Windows.

 

Please note that both the 32 and 64-bit versions of this release are compiled from the same code and are functionally identical, including the Builder (.gpstrat) files generated. Because they're the same program, only one may be installed on any given computer. If you first install the 32-bit version, it will be necessary to uninstall it if you later decide to install the 64-bit version. If your computer runs 64-bit Windows, it's strongly recommended that you install the 64-bit version; otherwise, it will be necessary to install the 32-bit version.

 

Other changes in version 1.2.1.0 are as follows:

 

  1. An "Include" column has been added to the Order Build Set table. Checking rows in this column specifies that the checked order type is to be included in every generated strategy. For example, to include a money management (protective) stop exit in each strategy, check the Include column for the protective stop order type.
  2. An option has been added to the Strategy Options tab: "Wait for exit before entering new trade". In prior versions, this was always true for generated strategies. If this option, which is checked by default, is unchecked, new entries can reverse existing positions; e.g., a short entry can reverse a long trade before the long trade exits on its own.
  3. A more versatile and accurate strategy order processing engine has been developed to support both current and future program requirements. This enables the simulation of more complex combinations of trading orders and yields more accurate results, including more accurate drawdown calculations. Somewhat slower processing times may be noticed.
  4. The About Builder window now includes the label "Windows 32-bit Edition" or "Windows 64-bit Edition" depending on which version is installed. The number of processor cores recognized by Builder is also displayed in this window.
  5. The View window on the Markets tab now allows full row selection to highlight the row of data clicked on.
  6. [bug fix] The highest and lowest indicator functions are now initialized better to give accurate results on bars prior to the MaxBarsBack setting.
  7. [bug fix] End-of-session logic used to filter entry and exit statements didn't work correctly on tick data where multiple ticks had the same time stamp. The end-of-session logic has been removed for tick and range bars.
  8. [bug fix] Trade exits based on the time limit condition (e.g., trade only between 10:30 and 12:30) were not executing properly on some data where the session end time preceded the session start time. This has been corrected.
  9. [bug fix] Time-based conditions for entry and exit didn't take into account the time range limit set by the user. Also, the number of bars for the "exit at N bars" exit was based on the total number of bars in the day, rather than the number of bars in the time range selected by the user for trading. Both issues have been corrected.
  10. [bug fix] Trades exiting on the last bar of the chart were not recorded or listed in the performance tables. This has been corrected.
  11. [but fix] In certain cases, a long entry and a short entry can both be filled at the open on the same bar, such that the second order reverses the position established by the first entry order, leaving the position dependent on which order is filled first. The cases of both entries being stop orders and both entries being limit orders were not properly accounted for in prior versions. This has been corrected.

 

Known issue in v 1.2.1.0 (corrected in version 1.2.1.1):

With the "Wait for exit before entering new trade" option turned off (unchecked) and the exit end-of-day option selected, there will be an extra EndofSess variable added to the entry conditions. The erroneous entry conditions look like the following (depending on other options selected):

 

    If EndofSess and (EntriesToday(Date) < 10 or EndofSess) and EntCondL then begin

 

The first EndofSess should not be present and should be removed in TradeStation before running the strategy. After removing the erroneous variable, the above statement should read as follows:

 

    If (EntriesToday(Date) < 10 or EndofSess) and EntCondL then begin

 

The results shown in Builder are not affected by the code error. This issue will be corrected in the next release.

 

 

Versions 1.2.0.2 (5/24/11)

The substantially faster build speed of version 1.2 makes it feasible to process much larger files of price data covering longer time periods. Unfortunately, this also means that the program can require more memory to process these larger files than is available from the computer. To avoid program crashes resulting from memory allocation errors, version 1.2.0.2 now includes memory management features that monitor Builder's memory usage. When more than 95% of the computer's memory is allocated and additional memory is required during the build process, Builder sends an error message to the Output window and exits the build. The message suggests reducing either the population size or the size of the price file. In most cases, the memory management routines shut down the build process while avoiding a program crash. The build parameters can then be changed and the build rerun.

 

The new memory features in version 1.2.0.2 also increase the size of the population that can be built before running into memory problems by roughly 50%.

 

Other changes in this version are as follows:

 

  1. The help files and PDF user's guide have been updated with the latest changes and features through this version.
  2. Previously, if the evaluation date range was changed so that it included periods both before and after the range of dates used in the build, only the largest of the two periods was included in the evaluation range. This was the out-of-sample period. This was done because Builder only tracks one out-of-sample period at a time -- either preceding or following the in-sample period, but not both. However, this meant that the user could select a date on the Markets tab, evaluate the strategy, and the strategy would not necessarily be evaluated over the entire chosen range of dates. This has been changed so that the evaluation is performed over the entire date range selected by the user on the date range bar on the Markets tab. If there are periods both preceding and following the build period, then the largest of those will be identified as the out-of-sample period.
  3. [bug fix] The option to limit trades to specified times of day on the Strategy Options tab did not cause trades to exit properly at the end of the time range in cases where the trading session spanned two days, such as with some forex data. This has been corrected.

 

 

Versions 1.2.0 and 1.2.0.1 (4/29/11 and 5/4/11)

These versions contain substantial improvements in strategy building speed along with several enhanced strategy logic features. The new features and improvements in these versions are as follows:

 

  1. The build algorithm has been fully parallelized to take full advantage of multi-core processors. Builder detects the number of physical cores on the computer and processes population members in parallel on the different cores.
  2. The strategy evaluation algorithm has been rewritten to improve processing speed. In combination with the new parallelized version of the build algorithm, initial testing indicates speed improvements of up to 25 times on a dual core machine compared to prior versions.
  3. An option to limit trades to specified times of day has been added to the Strategy Options tab. For example, an intraday strategy may be specified to trade only between 9:00 am and 12:00 pm. In this example, no trades will be entered prior to 9:00 am and any trade open at 12:00 pm will be closed at market.
  4. Logical conditions for exiting trades have been added. These conditions, which are equivalent to the entry conditions, are evolved along with the entry conditions during the build process. The conditions (one for long trades; another for short trades) are used to exit the trades at market. Accordingly, an "Exit at Market" order type has been added to the Order Build Set.
  5. Price-based indicators can now apply to other price-based indicators. For example, it's now possible to evolve logical conditions such as Average(XAverage(H, N1), N2), MACD(Highest(C, N1), N2, N3), and Momentum(Lowest(Average(C, N1), N2), N3). The following indicators have this capability: Average, XAverage, Highest, Lowest, RateofChange, RSI, Momentum, and MACD.
  6. The crosses above/crosses below operator has been added and can be seen in the Indicator Build Set.
  7. A new build metric has been added to measure the maximum value of the MAE (maximum adverse excursion) across all trades. This metric (Max MAE) is listed in the Build Metric table (Build Goals tab) and complements the Ave MAE metric that was added previously. Minimizing the Max MAE may improve trade quality.
  8. Variables have been added in the generated EasyLanguage code for the entry prices for stop orders and for target exit prices.
  9. More flexibility has been added in reading text files of price data. The file may now start with an optional line of labels. The lines of price data are assumed to consist of date, time, O, H, L, C, Volume1, Volume2. The last two fields are optional and contain volume information, such as the total volume or down tick and up tick volume, respectively. If two fields following the closing price are found, the user is prompted as to whether the two fields should be added together to get the total volume. For tick or intraday data, the two volume fields would generally represent up and down tick volume and should be combined to get the total volume.
  10. A "View" button has been added to the Markets tab. Clicking the button opens a simple tabular display of the price data for the market selected in the Market Data table.
  11. [bug fix] An error that caused end-of-day exits to occur at the end of the calendar day, rather than at the end of the trading session, primarily on forex data, has been corrected. The error affected intraday strategies with the "Exit End-of-Day" option selected for which the session starting time was later than the session ending time (i.e., the session spanned two calendar days).
  12. [bug fix, v 1.2.0.1] The setting for whether the two volume fields in a price file are combined to get the total volume was not recorded properly, which caused the program to prompt again for the same information. This has been corrected.
  13. [bug fix, v 1.2.0.1] A bug that caused the program to crash when the Cancel button was clicked in certain circumstances has been corrected.
  14. [bug fix, v 1.2.0.1] A bug that caused memory leaks when the Cancel button was clicked in certain circumstances has been corrected.
  15. [bug fix, v 1.2.0.1] An error that resulted in the Crosses above/below indicator to continue to be included in strategies after the user removed it from the build set has been corrected.
  16. [bug fix, v 1.2.0.1] When all but a small number of indicators were removed from the build set, the mutation operator caused a program crash. This has been corrected.

 

 

Version 1.1.1 (1/15/11)

This is mainly a "bug fix" release to correct several small errors in version 1.1.0, described below. If you currently have version 1.1.0 installed, you should read the items below to determine if installing this version would correct any discrepancies you may have noticed in your results compared to the corresponding results in TradeStation. The changes in this version are as follows:

 

  1. [bug fix] On intraday data, the Chaikin oscillator incorrectly used "volume" as the first input, rather than "ticks." This has been corrected. This only applies to intraday data, which includes tick and range bars. Please note that re-evaluating strategies that incorrectly use "volume" as the input will not change the input to "tick." The strategies must be rebuilt in order to obtain the correct code.
  2. [bug fix] When setting a limit on the number of entries per day on intraday data ("EntriesToday(date) < x"), the EasyLanguage code mistakenly examined the last bar of the day when evaluating the number of entries for the first bar of the day. In some cases, this prevented entries on the first bar of the day. This has been corrected. Re-evaluating a strategy that limits daily entries on intraday data will re-write the code to the correct form.
  3. [bug fix] The number of entries per day was not calculated correctly on intraday data when two entries occurred on the same bar. This has been corrected. Re-evaluating a strategy that includes such trades will correct the strategy results in Builder.
  4. [bug fix] When using Range bars in Builder, the OpenD, CloseD, HighD, and LowD functions did not match TradeStation. In TradeStation, these functions are set to return -1 on Range/Momentum bars. Builder previously calculated the correct values for the functions, which generated a mismatch between Builder and TradeStation. This has been corrected. Re-evaluating a strategy that contains these functions when the data is Range bars will correct the performance results in Builder.
  5. [bug fix] When using Range bars in TradeStation, the SetExitOnClose command is inactive. Previously in Builder, this command worked as expected, which produced a mismatch between Builder and TradeStation. This has been corrected. Selecting the "Exit end-of-day" option in Builder will still insert the SetExitOnClose command in the EasyLanguage code, but the command will not be recognized when evaluating the strategies, either in Builder or in TradeStation, when range bars are used. Re-evaluating a strategy that contains this command on range bar data will correct the performance results in Builder.
  6. Improvements to reading price files. Builder can now read trade times in a variety of formats, including the format used when saving price data from MultiCharts (e.g., 2:36:02 PM). A MultiCharts price file will generally be read correctly by Builder up through the volume field (date, time, O, H, L, C, Volume). Also, volume is now an optional field. If the volume field is not present, the volume values will be set to zero. For files saved from the TradeStation Data View window on intraday data, volume consists of two fields, up volume and down volume. The two values are added together to obtain the "volume" value for each bar. If the second field (down volume) is not present, the volume will be set to the first volume field.

 

 

Version 1.1.0 (11/12/10)

This is the final release of version 1.1.0 and replaces version 1.1.0 Beta, described below. This release includes fully updated documentation consisting of the PDF user's guide and the html help files that are accessible from within the running program. In addition to the documentation, several other changes and fixes have been implemented since the beta version was released. These include:

 

  1. If the program can't read the price data file or the format is incorrect, an error message is now displayed.
  2. [bug fix] An error in evaluating the order of entries when both long and short entries occur at the open has been corrected.
  3. [bug fix] An error where the open trade equity at the end of the in-sample period was not accounted for at the start of the out-of-sample period (when out-of-sample follows in-sample) has been corrected. The drawdown not includes the open loss at the end of the period.
  4. The absolute value operator is now used by default when forming the price difference for entry and exit stop and target orders unless the user has excluded absolute value from the build set. This should reduce the likelihood of ill-formed entry orders, such as a buy stop order below the market.
  5. [bug fix] A memory error that could cause the program to crash when building on intraday data has been corrected.
  6. [bug fix] An error in which the views were not updated after the population was re-initialized following a restart based on out-of-sample performance has been corrected.
  7. [bug fix] The horizontal scroll bars on the Markets and Build Options tabs now work properly.
  8. [bug fix] An error in which the slider control on the Markets tab was initialized with the in-sample and out-of-sample periods reversed when the out-of-sample preceded the in-sample has been corrected.
  9. The functionality of the Cancel button has been improved so that the program cancels more quickly. Previously, the program had to wait for the current population member to finish building before cancelling, which could make it seem like the program was "hanging" when building on long data files.
  10. [bug fix] An out-of-memory error that could crash the program when a large population size or large tree depth was selected now generates an error message recommending that the population size or tree depth be reduced.
  11. [bug fix] An error in which the "Reset on out-of-sample performance" field didn't permit a "." character for decimal numbers, such as the correlation coefficient, has been corrected.
  12. [bug fix] An error in which the AccumDist function (accumulation distribution) used "volume" as the input, rather than "ticks", when building on intraday data has been corrected.

 

 

Version 1.1.0 Beta (10/1/10)

This version is a major update of version 1.0.1. The following are some of the more notable features and changes in this version:

 

The settings table has been replaced by a series of tabbed windows that provide additional options and more intuitive controls, such as slider bars, spin buttons, tables, etc. The tabbed windows are: Markets, Strategy Options, Build Goals, and Build Options. A brief description of each one follows. The windows are shown on the Screen Shots page.

 

Markets Tab. This window provides a table of any price data files that have been selected. The build process will be run on whichever file is selected in the table. Following the build, any selected strategy may be evaluated on a different market by selecting the market from the table and selecting Evaluate from the Build menu.

 

This window also allows you to:

  1. Select the start and end dates for analysis, and
  2. Segment the data into in-sample and out-of-sample segments using a slider control. The build process will take place on the in-sample segment, and, following the build, the strategies will be evaluated on the out-of-sample data.

 

Strategy Options Tab. This window presents the list of available indicators and entry and exit orders in two table. The two tables represent the "build set". By clicking on each entry in the table, the associated indicator or order type can be added or removed from the build set. Removing an item means it will not be considered during the build process. By default, all items are initially included in the build set. This means all items may be chosen during the build process, although whether or not any given indicator or order type is used will depend on how it affects strategy performance.

 

This tab also includes other strategy options, such as long/short symmetry, market sides (long only, short only, or long/short), etc.

 

Build Goals Tab. This window contains a table of performance weightings to guide the build process. In this version of Builder, a number of new performance metrics have been added (see below). Additionally, you're no longer limited to merely weighting each performance metric. You can now select a target value for each metric. For example, if you want guide the build process to strategies with 200 trades, you can click in the Type column in the table in the row for the number of trades and select "Target" from the pull-down menu. Then enter a value of 200 for the target value. You would also enter a weight value to indicate how important this target value is relative to any other metrics you've selected. You can leave only a weight value for any metric that you want to minimize or maximize while selecting both a target and a weight for any metrics that you want to specify more precisely.

 

Build Options Tab. This window contains options that affect the build process, such as the population size, number of generations, tree depth, crossover percentage, etc. There is also a new option on this tab that resets the build process if the out-of-sample results don't meet your goals. You can have the program check the out-of-sample results every x generations, and start over if a specified performance value is not met.

 

Other new features in version 1.1.0 include:

 

  1. Support for tick and range bar data.
  2. Support for TS 2000i. Select TS 2000i on the Build Options tab under Code Output and re-evaluate a strategy using the Evaluate command (Build menu) to convert the code to TS 2000i format.
  3. A new price data file format is available to make it easier to copy data from TradeStation. While viewing a chart in TradeStation, just right-click the mouse and select "View Data Window". This option can also be found in the View menu in TradeStation. This will bring up a small window that shows the price data in the chart window. Click the disk icon in the upper-left-hand corner of the data window to save the price data to a text file. You can then select this file in the Markets tab in Builder, which is now capable of reading this format directly. This means the WriteOutPrices function is no longer needed for current versions of TradeStation, although it is still supported.
  4. When reading a price file, Builder now auto-detects the bar type, bar size, session times, date range, and tick size.
  5. The tick size is used to round fill prices to the nearest tick.
  6. The number of entries per day for day trading strategies can be limited to a maximum value via an option on the Strategy Options tab.
  7. Limit entry orders are now allowed.
  8. The out-of-sample (OOS) performance is listed in a table of results and shown on the equity curve. If the OOS results are profitable, the OOS part of the equity curve is shaded green; otherwise, it's shaded red.
  9. The trade-by-trade results are listed in a table. The trades in the OOS segment are shaded with a green background if the OOS segment is profitable or red if the OOS segment is unprofitable. In the in-sample segment, winning trades are shown in green text while losing trades are shown in red text. The trade data can be saved to a text file by right-clicking in the table and selecting "Save to file". The file format is compatible with Market System Analyzer (MSA).
  10. New indicators: volume, DI-/DI+, DMI, Accumulation/distribution, Chaiken, momentum, MACD, FastK, FastD.
  11. New performance metrics: Ave win, ave loss, win/loss ratio, ret/DD ratio, ave bars in trades, ave bars in wins, ave bars in losses, max win, max loss, average maximum adverse excursion.
  12. Additional complexity has been added to the entry and exit orders by generalizing the way stop and target prices are calculated.
  13. Specifying the number of generations as zero is now allowed. Doing this produces a population of randomly-generated strategies. This can be a good way to see the variety of strategy logic available from the program.
  14. The fidelity of the strategy evaluations relative to those in TradeStation has been improved. Any differences between Builder's performance reporting and the results of running the same strategy in TradeStation should now be minor, with most differences erring on the conservative side.

 

Several bug fixes have been made, including:

  1. The time-based exit order (exit when time exceeds a target value) incorrectly used >, rather than >=. This has been corrected.
  2. The drawdown calculation incorrectly omitted the trading costs on trade exit. This has been corrected.

 

Version 1.0.1 (5/27/10)

This version added an equity curve plot and a table of performance results to version 1.0.0.

 

 

Version 1.0.0 (3/28/10)

Initial release.

 

 

horizontal rule

 

Go to the online store

 

 

 

Copyright (c) 2004-2017 Adaptrade Software. All rights reserved.