Adaptrade Builder Changelog

What's new in Adaptrade Builder 4.6.0

Dec 20, 2023
  • The way percentage-based entries and exits are calculated was changed so that they work correctly with negative prices. This affects percentage-based protective stop orders, in which the exit price is based on a percentage of the market price, percentage-based target exits, and percentage-based entry stop and limit orders. For positive price data, the calculated prices are exactly the same as in prior versions; the change only affects the results for negative price data, such as prices that result from back-adjusting over a long time horizon.
  • [bug fix] The program could crash or the program window could go blank during building, sometimes after a large number of generations were completed, regardless of the program settings. This bug is only present in version 4.5.
  • [bug fix] On the Trades List window, if no trades were selected and the user right-clicked on the heading row and selected "Copy to CSV" or "Copy to HTML" from the context menu, the program would close.
  • No changes were made to the user's guide or to Adaptrade Editor for this version.

New in Adaptrade Builder 4.5.0 (Nov 18, 2023)

  • A change was made to the way "included" exit order types are interpreted by the program. If multiple protective stop, target exits, or trailing stop orders are selected in the "Include" column, the program will pick one of the included order types at random. That way, you'll be guaranteed to get one of the included order types, but you're still leaving it up to the program to choose which one. For example, if you "include" all three types of protective stop orders, one of the stop orders will be included in each strategy. The same process applies to target exits and to trailing stops. Previously, if multiple types in the same category of exit order were "included", the first one in the orders list was included in each strategy.
  • Two new options were added for opening the editor from within Builder: (1) Double-clicking on the strategy in the Build Results table, and (2) right-clicking on the code pane and selecting a new menu option on the context (pop-up) menu.
  • [bug fix] When including a neural network, variable definitions and declarations were missing or incorrect for some strategies.
  • [bug fix] When running the significance test on symbols with custom indicators, the program was unable to find the custom indicator values, so it terminated the test. In other cases, the program could crash due to multiple warning windows being opened at once from multiple processing threads.
  • [bug fix] If too many order types were "included" on the Order Types window, it could cause a program crash.
  • [bug fix] The average percentage loss metric value was incorrectly calculated by dividing by the number of winning trades, rather than the number of losing trades
  • [bug fix] When a multiplier of ATR (e.g., X1 * AveTrueRange) appeared in a logical condition (though not when it appeared in orders), it was set to zero in the Builder back-test. The bug only affected "constant * ATR", not "ATR * constant".
  • [bug fix] The build report didn't list "included" indicators.
  • [bug fix] When Builder saved a trade list to a MSA file, it failed to record the trade data format as English (US) format and set the account locale format to the user's current locale setting.
  • Several changes were made to the user's guide: (1) An incorrect description of buy stop orders when using the bid/ask spread was corrected (Symbols and Settings, Symbol Library, Symbol Settings, Bid/Ask Spread), (2) text was added to Build Settings, Indicators and Order Types to explain that for included indicators, the indicators are added to all entry and exit conditions (EntL, EntS, ExitL, ExitS), to the neural network, and to entry prices (if an included indicator is a price), and (3) text was added to Build Settings, Evaluation Options, Significance Test Panel to point out that if the test is run after the build is completed, the test cannot be run if the build data are not available.
  • This version of Builder also includes a new version of Adaptrade Editor, version 1.4.0, which is a minor bug-fix release. For details, please see the release notes for Editor.

New in Adaptrade Builder 4.4.0 (Apr 20, 2023)

  • Version 4.4.0 adds an "Include" column to the Indicators window. Indicators can be included in each strategy, similar to the "Include" column for order types. Checking the Include column for an indicator means the build process will include the indicator in each logical condition (long entry, short entry, long exit (if applicable), short exit (if applicable)), and in at least one neural network input (if present). If one of the order price indicators is included and price-based orders are used, the included indicator will be used as the first price in the order. Because of the stochastic nature of the evolutionary algorithm, it's not possible to guarantee the inclusion of indicators in every strategy, although in most cases, the selected indicators will be present.
  • In addition, the following changes and bug fixes were made for this release:
  • A change was made to the algorithm for generating neural network inputs to make it more efficient. A consequence is that neural network inputs now tend to have more variables than in prior versions; i.e., they're more complex.
  • [bug fix] When the "well formed" stop/limit order option was selected (Evaluation menu, Order Placing Options), the order price used to perform the entry restriction calculation was set to zero in the Builder back-test for $-based and %-based stop and limit orders, resulting in zero long trades for stop orders and zero short trades for limit orders in Builder for these order types. Because the generated code was correct, this resulted in discrepancies between the results in Builder and those in the trading platform. The "well-formed" option worked correctly for price-based stops and limits. Note that $-based and %-based stops and limits don't benefit from the "well-formed" option since those order types are well-formed by definition.

New in Adaptrade Builder 4.3.0 (Dec 16, 2022)

  • Version 4.3.0 adds strategy "lock options", contained in a new drop-down window on the Build menu. The lock options prevent the build process from modifying the selected parts of the strategy logic and entry and exit orders. For example, you could use the editor to write a strategy that buys on a 5-point pull-back. You could then import the strategy into Builder and use the cloning feature to duplicate the strategy across the population. If you then use the lock options to lock the long entry conditions, the program will evolve the exit conditions while leaving the entry condition unchanged. In that way, you can find the optimal exit conditions for your entry condition.

New in Adaptrade Builder 4.2.1 (Sep 5, 2022)

  • New behavior for stop and limit entry orders: The close of the current bar is checked against the limit/stop price, and the order is only placed if the close is on the correct side of the entry price (e.g., for a long stop order, the close must be below the stop price). New strategies default to the new behavior, which can be overridden via an option on the Evaluation menu. The default behavior for strategies developed in prior versions is if the order price is on the wrong side of the market, the order is automatically converted to a market order. Older strategies can be converted to the new behavior by selecting the new option and re-evaluating the strategy.
  • The first line of labels in a data file is parsed if present and used to initialize the field labels, including for custom indicators. Any field not recognized as a standard field (OHLC, volume, uptick, downtick) is considered a custom indicator, and the custom indicator name is added to the table of custom indicators on the Data File Format window. Field enclosures can be "", <>, or none.
  • When clicking the View Data button, the window now opens immediately and displays "Loading data. Please wait..." until the data are loaded and displayed in the window. Also, when using this window from either the symbol library or the Build and Evaluation Symbols windows, the View Data window can be kept open while selecting different symbols to view.
  • For custom indicators, the View Data window now displays the custom indicator function name in the column heading, rather than "Indicator 1", "Indicator 2", etc.
  • When adding custom indicator specifications to the Data File Format window, the table of custom indicators now scrolls to the position of the most recent entry after adding a new indicator, rather than returning to the top of the table after each new entry, which makes it more convenient to add new entries after reaching the bottom of the visible table.
  • A warning message box was added so that if the user has the bar size option selected and also has custom indicators in the build set, a warning is displayed. Custom indicators should not generally be used with the option for changing the bar size.
  • A new version of the built-in editor, Adaptrade Editor version 1.2, is included with this release.
  • [bug fix] When using custom indicators in some cases, the indicator name could be displayed either as a blank (empty) string or as a string of random characters.
  • [bug fix] On the Build Symbols and Evaluation Symbols window, when the Include check-box was clicked or the Series drop-down was changed, a program crash could occur in some cases.
  • [bug fix] Setting the number of concurrent (parallel) processes (View menu, Program Options) to a number greater than 64 caused a program crash.
  • [bug fix] The length of the "Trading Period" on the Performance Report incorrectly reported the number of days in cases where the length was given in years and days.
  • [bug fix] On the Data File Format window, when the Number of Inputs for a custom indicator was changed, it changed the the number of inputs for all other custom indicators to the same value.
  • [bug fix] When building for AmiBroker, the input for the Trix indicator was not included in the code, and the function input was unassigned.
  • [bug fix; version 4.2.1] AmiBroker code: The "[bar]" subscript was left off the closing price for the stop/limit entry order condition added in 4.2.0 in which the stop/limit order is not placed unless the order price is on the right side of the market.
  • [bug fix; version 4.2.1] AmiBroker code: The standard deviation indicator was mis-copied in version 4.2.0 to StdDev from the correct name StDev. Versions prior to 4.2.0 had the correct name.
  • [bug fix; version 4.2.1] For Bollinger bands and Keltner channels used in price-based entry and exit orders, the input for the number of standard deviations was incorrectly applied, resulting in incorrect indicator values.

New in Adaptrade Builder 4.2.0 (Aug 27, 2022)

  • Version 4.2 adds several new options for specifing stop and limit entry and exit orders. Entry and exit orders can use a fixed number of points relative to a specified price, such as "Highest(H, 10) + 25". Exit orders no longer need to be relative to the entry price; for example, "Exit long at Lowest(L, 15) stop" or "Exit long at Average(H, 30) limit". For both entry and exit orders, Bollinger bands, Keltner channels and any custom indicator returning a price value can now be used as one of the specified prices.
  • In addition, the following changes and bug fixes were made for this release:
  • New behavior for stop and limit entry orders: The close of the current bar is checked against the limit/stop price, and the order is only placed if the close is on the correct side of the entry price (e.g., for a long stop order, the close must be below the stop price). New strategies default to the new behavior, which can be overridden via an option on the Evaluation menu. The default behavior for strategies developed in prior versions is if the order price is on the wrong side of the market, the order is automatically converted to a market order. Older strategies can be converted to the new behavior by selecting the new option and re-evaluating the strategy.
  • The first line of labels in a data file is parsed if present and used to initialize the field labels, including for custom indicators. Any field not recognized as a standard field (OHLC, volume, uptick, downtick) is considered a custom indicator, and the custom indicator name is added to the table of custom indicators on the Data File Format window. Field enclosures can be "", <>, or none.
  • When clicking the View Data button, the window now opens immediately and displays "Loading data. Please wait..." until the data are loaded and displayed in the window. Also, when using this window from either the symbol library or the Build and Evaluation Symbols windows, the View Data window can be kept open while selecting different symbols to view.
  • For custom indicators, the View Data window now displays the custom indicator function name in the column heading, rather than "Indicator 1", "Indicator 2", etc.
  • When adding custom indicator specifications to the Data File Format window, the table of custom indicators now scrolls to the position of the most recent entry after adding a new indicator, rather than returning to the top of the table after each new entry, which makes it more convenient to add new entries after reaching the bottom of the visible table.
  • A warning message box was added so that if the user has the bar size option selected and also has custom indicators in the build set, a warning is displayed. Custom indicators should not generally be used with the option for changing the bar size.
  • A new version of the built-in editor, Adaptrade Editor version 1.2, is included with this release.
  • [bug fix] When using custom indicators in some cases, the indicator name could be displayed either as a blank (empty) string or as a string of random characters.
  • [bug fix] On the Build Symbols and Evaluation Symbols window, when the Include check-box was clicked or the Series drop-down was changed, a program crash could occur in some cases.
  • [bug fix] Setting the number of concurrent (parallel) processes (View menu, Program Options) to a number greater than 64 caused a program crash.
  • [bug fix] The length of the "Trading Period" on the Performance Report incorrectly reported the number of days in cases where the length was given in years and days.
  • [bug fix] On the Data File Format window, when the Number of Inputs for a custom indicator was changed, it changed the the number of inputs for all other custom indicators to the same value.
  • [bug fix] When building for AmiBroker, the input for the Trix indicator was not included in the code, and the function input was unassigned.

New in Adaptrade Builder 4.1.0 (Mar 16, 2022)

  • Version 4.1 includes a new strategy "cloning" feature that can be used to copy and optionally mutate any member of the main population to either add to or replace existing members. Cloned members can be mutated by parameter values only or by paramerer values and logic. The cloning feature, which is accessible via the right-click menu of the Build Results table, provides a quick and easy way to seed the main population with variations of an existing strategy in order to start the build process from that strategy.
  • In addition, the following changes and bug fixes were made for this release:
  • For NinjaTrader 7/8, changes were made to the AS_OrderProcessing.cs file to prevent the submission of orders when the same type of order is cancel-pending. This function should be re-installed into the NinjaTrader environment following the installation instructions in the user's guide (Getting Started, Installation).
  • A new version of the built-in editor, Adaptrade Editor version 1.1, is included with this release.
  • [bug fix] When closing an editor window, if the editor prompted the user to save changes to the strategy prior to closing the window, the changes were not saved back to Builder in some cases.
  • [bug fix] In MT4, indicators applied to secondary data series with volume as an input could cause a program crash in some cases.
  • [bug fix] Shift values were not being applied to custom indicators.
  • [bug fix] The custom format option on the Data Format window incorrectly processed 2-digit years, resulting in unreadable dates.
  • [bug fix] If the detailed equity curve was displayed and a strategy was selected from the Build Results that did not display the detailed equity curve, it could cause a program crash.
  • [bug fix] When using a custom format on the Data Format window, if the thousands separator was the same as the decimal separator, it could cause a formatting error for number fields
  • [bug fix] When saving Ninja strategies from the code window using "Save NinjaScript Strategy to File", the program used the wrong parameter ranges unless the user explicitly entered the range values. Setting the ranges using the "Use Defaults" buttons didn't register the values, even though the correct ranges appeared in the strategy code.
  • [bug fix] If one side of a strategy was deactivated in the editor then saved to Builder and re-opened in the editor, that side was still active in the editor.
  • [bug fix] If position sizing was changed in Editor and saved for a strategy in Builder, the position sizing could revert to the previous values when the strategy was re-opened in the Editor.
  • [bug fix] If the code type of the strategy was different than the code type currently selected on the Evaluation menu, the strategy would open in the Editor with the code type on the Evaluation menu, rather than the code type of the strategy.
  • [bug fix] The program could crash after pausing and resuming.
  • [bug fix] On the Metrics window, the Load and Save buttons didn't work correctly for non-English locales.
  • [bug fix] In the editor, if the Accumulation/distribution or Chaiken indicators were applied to intraday data, an error message was erroneously displayed indicating that the "Ticks" indicator -- an implicit input to the indicator -- was not supported.
  • [bug fix] When opening a strategy in the editor where the entry condition was a custom indicator returning true/false, the condition was not listed in the Conditions table.
  • [bug fix] In the editor, the pull-down menu of conditions on the Orders tab did not always select the correct condition in cases where two condition differed only by the shift value.
  • [bug fix] In the editor, when multiple "UNKNOWN_INDICATOR"s were present, only the first one was colored red.

New in Adaptrade Builder 4.0.0 (Sep 4, 2021)

  • Version 4 adds Adaptrade Editor as an integrated component to Builder. Adaptrade Editor is a stand-alone Windows-based point-and-click trading strategy editor that allows you to create and/or edit strategies. You can open Editor directly from within Builder with any strategy in either population (main or Top Strrategies) to change the strategy logic, settings, parameter values, etc. You can also create new strategies and add them to either population. Editor can be accessed either via the Build menu, File menu, or by right-clicking a strategy in the Build Results table. Because Editor is its own program, it has a separate user's guide and help files.
  • In addition, the following change and bug fixes were made for this release:
  • [bug fix] Custom indicators returning true/false could cause a program crash due to improper handling of the logical "not" operator during mutation operations.
  • [bug fix] If position size was entered as a fractional number, the fraction was retained, even though position size is, by definition, an integer value in Builder.

New in Adaptrade Builder 3.4.0 (Jun 10, 2021)

  • The primary change to Builder for version 3.4.0 is the addition of import and export commands for individual trading strategies. These commands can be accessed either via the File menu or using the right-click (context) menu of the Build Results tables. Exporting strategies saves them to files with the extension .gpcode. These files can subsequently be imported back into any current project file, into either the main or Top Strategies population. This provides a way to save individual strategies separately from project files. In addition, by importing previously exported strategies into the main population (and unchecking "Reset on Build"), you can "seed" the initial population with your favorite, previously built strategies.
  • In addition, the following change and bug fixes were made for this release:
  • Strategies can now be deleted from the main population, and strategies can be copied into the main population from Top Strategies.
  • [bug fix] For multi-data strategies in NinjaTrader 7/8, a run-time error ("object reference not set to an instance of an object") could occur when starting the strategy in simulation or real-time.
  • [bug fix] For multi-data series in NinjaTrader 7/8, some parts of the strategy code were not adequately restricted based on the data series, which could cause multiple incorrect entries at the start of the strategy back-test.
  • [bug fix] Integer inputs, such as day-of-week, chosen by the build process were not rounded to the nearest integer, which could affect comparisons involving >= or <= operators.
  • [bug fix] If the neural network option was checked but there were no neural network inputs, which could happen if the population was started from a prior population ("Reset on Build" unchecked) without the neural network option, the entry condition could include the NNOutput variable, which would be undefined.

New in Adaptrade Builder 3.3.3 (Mar 29, 2021)

  • It's no longer necessary to uninstall prior versions of Builder before installing the new version, regardless of the version number. For example, versions 3.3.3 and 2.5.0 can be installed side-by-side.
  • Uninstalling or installing over an older version will not affect any project files (.gpstrat files) you may have created or saved.
  • New versions of Builder are designed to read project 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.
  • The most recent version released is listed first, followed by prior releases. The most recent release is always the recommended download version.

New in Adaptrade Builder 3.3.2 (Mar 22, 2021)

  • Version 3.3.2 corrects the lack of backwards compatibility for strategies in 3.3.0 that included a neural network. If strategies created in version 3.2.0 or older that include a neural network are evaluated in 3.3.0, different results will be obtained as a result of the updates to the neural network function in 3.3.0. While this has no effect on strategies created in 3.3.0, with or without a neural network, it breaks compatibility with previously created strategies if they include a neural network. Version 3.3.2 corrects this so that older strategies with a neural network generate the same results when evaluated in 3.3.2 as in older versions of Builder (assuming the same data and settings). In the platform, compatibility is achieved by using a different NNCompute function, called NNCompute2, for new strategies that include a neural network. Previously generated strategies will continue to call the original NNCompute function when running in the platform.

New in Adaptrade Builder 3.2.0 (Dec 8, 2020)

  • The most significant additions to Builder for version 3.2.0 are ideal trades and the Ideal Matches metric, which were discussed in a recent newsletter article. Building strategies to maximize the Ideal Matches metric guides the population towards strategies that tend to be as close as possible to the so-called ideal trades, which the user can view on the price chart and which represent trades with a specified profit and risk. In addition, two new price-based indicators were added in this release: floor trader pivots and the "typical price". These indicators represent commonly used price levels and can be used both in entry and exit conditions as well as in prices for stop and limit orders for both entries and exits.
  • In addition, the following bug fixes were made for this release:
  • [bug fix] The end-of-week exit type was dimmed in the Order Types menu for non-EasyLanguage code types but was not removed from the build set. So if it was present in the build set prior to selecting a non-EasyLanguage code type, it could appear in the strategy logic, causing end-of-week exits, but not be present in the strategy code (where it would be invalid for that code type).
  • [bug fix] A bug in the display of messages in the Messages window could cause a program crash.
  • [bug fix] Pausing and un-pausing the program could cause a program crash, particularly for large populations.
  • [bug fix] When the Top Strategies build results tables were scrolled during building, the program could crash.
  • [bug fix] When the Reset Layout button was used, the drop-down menu on the Build Results tables was not redrawn and you couldn't change from one table to the next.
  • [bug fix] The Build Report did not show the optional day-of-week for the "Exit after" time option on the Strategy Logic menu.
  • [bug fix] The Limit Order Options dialog opened the wrong help file when the help icon ("?") was clicked.
  • [bug fix] Several clarifications were made to the user's guide/help files.

New in Adaptrade Builder 3.1.0 (Dec 8, 2020)

  • Version 3.1.0 includes a number of bug fixes and other improvements. The following changes and bug fixes were made for this release:
  • An end-of-week order type has been added for use with the EasyLanguage code type; no other scripting languages support an end-of-session order that can be limited to a specific day. The end-of-week order type exits any open position at the session close on Friday. For a similar option for other code types, please see the next item below.
  • The "Exit after" time option on the Strategy Logic menu has been expanded to include an optional day-of-week condition. For example, you can include the following exit type: "exit after 12:45 pm on Friday". Any day of the week may be selected, including "All days", which is the default and produces the same behavior as in prior releases.
  • On the Data File Format window, the "None" format on the drop-down menu for saved file formats reverts the formatting back to the original file format, so if a new format is selected or the column formatting is cleared, selecting "None" from the drop-down will restore the formatting.
  • For the View Data window, the number of significant digits for display was increased to 10.
  • The user interface theme "Office 2019" was added to the "Theme" menu. This is an updated variation of the Office 2016 theme, including both dark and "colorful" themes.
  • [bug fix] In some cases the range values for NinjaScript 8 properties (for inputs) did not contain the input value, which prevented the strategy from being compiled.
  • [bug fix] In exit conditions based on the number of bars since entry for NinjaTrader 8, the function BarsSinceEntryExecution() excluded the input referencing the data series. The same problem was present with BarsSinceEntry() for NinjaTrader 7.
  • [bug fix] The new cost option for "percent of trade" was based on a percentage of the trade profit/loss, whereas it should have been a percentage of the trade value. It's now based on trade value (i.e., the product of entry price, position size, and point value).
  • [bug fix] Cancelling the significance test caused the program to crash and close.
  • [bug fix] When the tick size was changed on Symbol Properties, it reverted back to the default after building with that symbol.
  • [bug fix] The custom date and time formatting options on the Data Format window didn't work correctly when no time field was present.
  • [bug fix] When an NinjaTrader 8 strategy lost its connection during real-time trading and then reconnected, if it had open orders, NinjaTrader 8 disabled the strategy, saying it can't modify a historical order that transitions to "live".
  • [bug fix] The congestion count function/indicator could get stuck in a loop if the price data had an anomalous pattern, such as zero-height bars or all bars were the same. The function is now limited to a maximum count of 100 bars.
  • [bug fix] On the Data File Format window, when a saved file format was selected, it applied it but didn't show it on the grid. Also, the column formatting was incorrect in some cases when the number of columns and/or the number of custom indicators changed for a selected file format.
  • [bug fix] For some files of price data containing a field for the symbol, Builder interpreted the file as containing a line of column labels, which prevented it from reading the first row of data.
  • [bug fix] For MetaTrader 4, the "SharesPerLot" variable was only correct for forex, not stocks or futures. SharesPerLot is now set to either 100000 for forex or 1 for stocks/futures.
  • [bug fix] MetaTrader 4 code price rounding was incorrect for non-forex. It now rounds to the nearest tick size for non-forex.
  • [bug fix] In EasyLanguage and NinjaTrader 7/8 code, the variable EndofSess was declared in certain cases when it was not used.
  • [bug fix] On Symbol Properties, if the user attempted to change one of the dropdown menus (Symbol Type, Bar Type, Cost Type) by typing in a new value, and then clicked the dropdown button, it could cause a program crash.
  • [bug fix] Price (O, H, L, C) values of 0 resulted in a file reading error, which prevented some back-adjusted price data files from being read.

New in Adaptrade Builder 3.0.0 (Dec 8, 2020)

  • The most significant new feature in version 3.0.0 is the addition of NinjaTrader 8 as a code output option. Other changes include the addition of the following new indicators: Ulcer index, RocketRSI, consecutive bars up, consecutive bars down, and congestion count. The Ulcer index calculates the average percentage drawdown in price, providing a general measure of downside risk in the market. RocketRSI is John Ehlers' improved version of the RSI index. The congestion count returns the number of consecutive bars where there is at least one price in common among all bars. High numbers indicate a "congested" or range-bound market. The number of consecutive bars up and down, along with the congestion count, expand Builder's repertoire of indicators for price pattern-based strategies.
  • In addition, the following improvements and bug fixes were made for this release:
  • Two new trading cost options were added: "Amount per trade" and "Percent of trade". These are in addition to the existing "Amount per share" option. The option is selected on the Symbol Properties window and is used to interpret and apply the entered cost value.
  • Two new metrics were added: (1) Average Length of Trades, which complements the existing metrics "Ave Length of Losses" and "Ave Length of Wins", and (2) Return on Maximum Drawdown.
  • A new code option on the Position Sizing menu allows you to select between accumulating the equity for position sizing purposes as the strategy executes or basing the position size on the entered value of equity ("Starting Equity"). The latter is more suitable for live trading, where you would typically want to base the position size on the current value of account equity.
  • True/false (boolean) custom indicators can now use two new logical operators: "not" and "not-equal". This simplifies the expression of logical statements and removes an asymmetry that previously resulted from converting 1/0 to true/false. Now, VarL1 == 1 means "VarL1 is true" and VarL1 != 1 means "VarL1 is false", in which VarL1 is the custom true/false indicator. This implies you might see statements such as CondL1 && (VarL1 == 1), CondL1 = VarL2 != N1 (in which N1 is either 0 or 1), CondS1 == (VarS2 != 1), (VarL4 != 1) || (VarL5 == 1), and so on.
  • Data files that contain quoted fields and numbers with a thousands delimeter (e.g., "12,300.45") can now be read properly. Among other things, this means that the equity table from Market System Analyzer (MSA) can be read into Builder as an equity curve symbol.
  • The risk-based calculations for Van Tharp's metrics -- R-multiples, total R, std dev of R-mults, SQN -- now use the average loss for any trade where the trade risk is undefined. The average loss is calculated over all segments, including both long and short trades.
  • The performance of the equity plotting has been improved for curves with a large number of trades and for plotting of the detailed equity curve. Unnecessary redrawing has been eliminated.
  • On the Symbol Properties window, the number of decimal digits of precision for the tick size, bid/ask spread, and trading costs has been increased.
  • The buy-and-hold PL per share metric has been modified slightly to exclude trading costs.
  • [bug fix] For strategies using multiple data series with code written in EasyLanguage, the data series within the variable declarations was missing; e.g., it wrote "Var: VarL1(0);" rather than "Var: VarL1(0, data2);".
  • [bug fix] The copy commands (Copy Table, Copy to CSV, Copy to HTML) for the Build Results table didn't copy all rows and put the elements in the wrong order for tables larger than the window size. The same problems were present for the Copy to CSV and Copy to HTML commands for the Trades Pane.
  • [bug fix] For strategies with fixed ratio position sizing with code written in NinjaScript 7, the Equity and StartEquity variables were not declared or defined.
  • [bug fix] For strategies using multiple data series in AmiBroker (AFL code), if the time frame of the different series was the same as the primary series, it gave a warning message. Moreover, if the warning message was overridden, incorrect variable names were sometimes used in the statements for neural network inputs.
  • [bug fix] In AmiBroker code, the equity symbol (Foreign("~~~EQUITY", "C")) was used to represent the accumulated equity value for position sizing, which required the strategy to be run twice: once to define the EQUITY symbol and a second time to use it. To avoid this complication, equity is no longer accumulated for AmiBroker. The new "Equity Calculation" option on the position sizing menu is not available for AmiBroker code, which always uses the current (input) value of account equity for position sizing.
  • [bug fix] R-Multiples were calculated incorrectly when variable position sizing was used due to the fact that the P/L values were not calculated "per share".
  • [bug fix] The average risk metric was calculated over all trades, rather than over only the trades for which risks were defined, which distorted the result in cases where not all trades had a defined risk value.
  • [bug fix] The Sharpe and Sortino metrics didn't include months with no trades, whereas such months should have been counted as having a return of zero.
  • [bug fix] On the Build Symbols and Evaluation Symbols windows, the available date range changed to the selected date range after re-opening the window.
  • [bug fix] The Build Symbols and Evaluation Symbols windows allowed the user to choose dates outside the date range of the primary symbol(s) (i.e., over dates only available on secondary symbols, for which no trades were generated) in some circumstances.
  • [bug fix] Equity curve symbols were mistaken for primary price symbols, which could cause a program crash.
  • [bug fix] When a price data file was in order of descending dates and less than the entire date range was selected for building, an error message was displaying indicating that the file could not be read, and the build process was terminated.
  • [bug fix] For the case where the build process failed due to too little data -- e.g., if there were fewer bars of data than the look-back length of the strategy -- the build process failed to put out an error message or look for a new strategy (as it does when strategies fail when TRIX doesn't evaluate properly). It now puts out a message and tries to find a new strategy that needs fewer bars of data.
  • [bug fix] The equity plot could "hang" when it had only one trade with zero net profit.
  • [bug fix] Reloading the chart while the program was building on the same data could cause a crash.
  • [bug fix] The option selected on the price chart to "Show Trades" was not being recorded for storage in the project file.
  • [bug fix] The maxbarsback value was not correct for custom indicators that used a shift value.
  • [bug fix] In some cases, the Trading Orders window displayed redundant exit orders for the same trade, such as a market order and a limit order. Also, orders were repeated in some cases.
  • [bug fix] Key messages to the Messages window, such as the message indicating completion of the build process, were not being added to the message queue when the build process finished very quickly, which prevented the messages from being displayed.

New in Adaptrade Builder 2.5.0 (Dec 8, 2020)

  • Version 2.5.0 adds the ability to include multiple data series in the same strategy. For example, a strategy for trading individual stocks could include logic based on interest rates and forex prices. Up to 20 different symbols can be included in the same strategy, and secondary symbols need not be of the same time frame as the primary symbol. For example, if the primary symbol is 5-minute bars of a stock index future, daily bars of a forex symbol could be added as a secondary symbol. Or the same symbol can be added multiple times with different bar sizes, such as 5-minute bars, 60-minute bars, and daily bars of the E-mini S&P futures.
  • In addition, the following changes and bug fixes were made for this release:
  • A new Data Format window allows for the number and date formatting options to be directly selected, such as the decimal delimiter and date separator symbol, as an alternative to formatting numbers and dates using "locales". In prior versions, only locales were available; now, either locales or the new Data Format window may be used.
  • The formatting options selected on the Data File Format window, including the formatting selected on the new Data Format window, can be saved and are displayed in a pull-down menu for reuse. Similarly, the number and date formatting options selected on the new Data Format window can be saved and retrieved separately via that window.
  • Theming has been expanded to include all parts of the user interface, including the equity curve, trade list, reports, build results tables, etc. In addition, new themes, including a new black theme, have been added.
  • The Reset Layout button on the View menu has been redesigned and now includes the Build Progress window, which previously could only be reset by deleting the registry entry.
  • The number of inputs for custom indicators has been added to the Data File Format window so that the calculation of strategy complexity can include custom indicators.
  • Writing to the Messages window has been improved so that messages no longer appear out-of-sequence, and fewer messages are skipped.
  • On the Build Symbols and Evaluation Symbols windows, the "Set Properties" window for setting the properties for multiple symbols now allows the user to select the properties they want to "set all" for.
  • The Data File Format window now uses a new grid control that no longer limits the number of columns of data and therefore the number of custom indicators that can be included in a price file.
  • [bug fix] Previously, when the session times were reset so that they didn't match the exact bar times in the file, the program tried to convert (for intraday data) the bars to match the specified session times. This could slow down the reading/processing of data for large files. In cases where the user's session times are within the bar size of the session times recognized by the program or if the starting and ending session times are the same, the conversion is now skipped, which can significantly increase reading/processing speed for large files.
  • [bug fix] Small price data files where the length of the file was less than the max allowable line length were not read correctly.
  • [bug fix] In the trade list, trades in the validation segment were colored green or red (profitable or unprofitable) based on the profit/loss value prior to deducting trading costs, which was inconsistent with program conventions.

New in Adaptrade Builder 2.4.0.0 (Dec 19, 2017)

  • Version 2.4.0 implements the technique described in the article Optimal Strategy Diversification, which illustrates how to build a strategy that is optimal in combination with an existing portfolio. This feature is based on a new type of symbol for representing external equity curves. When an external equity curve is added as one of the build symbols, the program can generate strategies that optimize the combined (portfolio) equity, taking into account how the generated strategies perform in combination with the external equity curve. Several other bug fixes and changes were made for this release. Please refer to the Release Notes page for more information

New in Adaptrade Builder 2.3.1.0 (Sep 22, 2017)

  • The following changes and bug fixes were made for this release:
  • The new subtree pruning mutation operator introduced in 2.3.0 is now used to reduce the tree depth whenever it exceeds the user's specified max tree depth. This helps keep the strategy complexity from increasing over generations due to recombination through crossover and mutation.
  • The build step of replacing duplicate strategies has been parallelized to reduce build times.
  • If the symbol library is not found when the program starts up, the program now prompts the user to select the library file. The program then saves the library contents to the correct (default) path and file name for subsequent use.
  • To simplify data management, the price data files for the examples and bonus files (i.e., for bonus project files for which price data has been provided) are now located in a new folder named "Data", which is located at the default path C:Program FilesAdaptrade SoftwareData.
  • [bug fix] A problem with one of the new mutation operators could cause the size of the entry or exit condition tree to grow too large, causing a program crash.
  • [bug fix] The date range was not read when adding a new symbol to the symbol library. Instead, the program was using the default date range of the symbol selected at the time the "Add New Symbol" command was selected.
  • [bug fix] The end-of-day exit type was not being included in all strategies when "included" in the Order Types menu.

New in Adaptrade Builder 2.3.0.0 (Aug 28, 2017)

  • Version 2.3.0 implements significant changes to the genetic programming algorithm. The changes are designed to increase diversity in the population and maintain diversity during building so that improvement in the results can be seen for many more generations than was possible in prior versions. The changes include the use of subpopulations, which means the main population can be divided into two or more groups of strategies that are evolved separately. The subpopulations can optionally be mixed every few generations to share traits. In addition, five new mutation operators have been added: subtree substitution, subtree simplification, subtree complication, subtree pruning, and subtree addition. The probability of selecting one type of mutation operator over another is self-adapted by the build process (i.e., the probabilities are evolved during the build process). To further increase diversity, duplicate strategies are replaced (anti-clone rule) at the end of each generation by new, randomly created strategies.
  • In addition, the following changes and bug fixes were made for this release:
  • The last price data used in building or evaluating is cached, rather than deleting it after building or evaluating, to save time re-loading it if another build or evaluation on the same data is run.
  • The Build Progress window now remembers its location, size, and minimize/restored status when closed. Also, if it's closed during building, it remembers that and doesn't automatically open next time at the start of a build.
  • [bug fix] If the date range was much less than the range of available data, the build was much slower.
  • [bug fix] In NinjaScript, when the option to restrict the number of entries per day was used on daily bars (although this is redundant), the code Bars.FirstBarOfSession did not work. It has been replaced with Bars.BarsSinceSession == 0,which works for both intraday and higher bar intervals.
  • [bug fix] In NinjaScript, when a strategy uses ExitOnClose = true, it cancels any open orders present on the last bar of the session, which means that in historical testing an open entry order placed on the last bar of the session to be placed on the first bar of the next session was cancelled, causing a mismatch between the historical results in Builder and those in NinjaTrader. A work-around has been implemented that places the order on the second bar of the next session. This only affects historical testing, not real-time trading.
  • [bug fix] In NinjaScript, the orders are GTC and are only canceled at the beginning of the next bar. This is a problem if the user is only trading RTH since the order may be filled in the evening session. Code has been added to cancel any open orders 30 seconds prior to the end of the session; exit-on-close orders are set to be filled 60 seconds prior to the end of the session, so this should not interfere with ExitOnClose.
  • [bug fix] Delete and Add context (right-click) menu items on the Evaluation Symbols window did not work.
  • [bug fix] The user's guide/help files incorrectly stated that the day-of-week indicator returns values between 1 and 7. The appendix (Technical Indicators) was corrected to read that it returns values between 0 and 6 for Sunday through Saturday, respectively.

New in Adaptrade Builder 2.2.1.0 (May 1, 2017)

  • The following changes and bug fixes were made for this release:
  • Simple inputs for a neural network can now be combined using abs(Ind1 - Ind2), whereas previously, the abs (absolute value) was not used
  • 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
  • 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
  • bug fix] Neural network inputs could include invalid and/or undeclared variables
  • bug fix] The Build Progress window plots the data for generation zero incorrectly unless or until the plot is closed and re-opened
  • bug fix] The copy command on the Messages window doesn't accept the Ctrl-C keyboard combination
  • 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

New in Adaptrade Builder 2.2.0.0 (Apr 4, 2017)

  • 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
  • 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
  • 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
  • When the build process is paused, file saving is now enabled
  • 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
  • The sort order of rows in the Build Results window is now retained within the same session until reset by the user
  • 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
  • To clarify terminology and avoid confusion with the statistical significance test, the "Statistical Significance" metric has been renamed "Trade Significance"
  • [bug fix] A check box for "Top Results" was left off the View menu (show/hide)
  • [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
  • [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
  • [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
  • [bug fix] When evaluating a single member of the Top Strategies population, the member numbers of the other strategies were reset to sequential order
  • [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

New in Adaptrade Builder 2.1.2.0 (Jan 1, 2017)

  • 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:
  • 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.
  • 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.
  • Various improvements have been made to the error messages displayed in the Messages window.
  • [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.

New in Adaptrade Builder 2.1.1.0 (Jan 1, 2017)

  • 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:
  • 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)".
  • 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.
  • [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.
  • [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.
  • [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.
  • [bug fix] On the equity plot, the position of the symbol labels was incorrect (too high) when plotting stress testing results.
  • [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.

New in Adaptrade Builder 2.1.0.0 (Dec 9, 2016)

  • 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:
  • 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.
  • 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.
  • When a new symbol is added to the symbol library, the file selection dialog window is opened automatically before opening the Symbol Properties dialog.
  • 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".
  • 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.
  • 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:
  • [bug fix] Code error for TS 2000i: SetStopShare was used in place of SetStopContract.
  • [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.
  • [bug fix] The significance test crashed the program when run on an older file.
  • [bug fix] When running a significance test, the status bar incorrectly displayed the message "Build process paused. …" in some cases.
  • [bug fix] The program locked up if set to 100% training.
  • [bug fix] The equity plot scaled incorrectly in some cases when the net profit was negative.
  • [bug fix] In performance reports for portfolios, the list of markets at the top formatted incorrectly.
  • [bug fix] On the GP Settings window, the greater than (">") option was not being recorded for Build Failure Rules.
  • [bug fix] If stress testing was selected but no method was chosen, it showed stress testing was performed in the build report.
  • [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".
  • [bug fix] The position size in the Trading Orders window was always 1 for exit orders, regardless of the size of the open position.
  • [bug fix] The number of generations for the Build Failure Rules was off by 1.
  • [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.
  • [bug fix] A code error bug gave repeated variable names with the following combination of settings: short-only, long/short symmetry, and neural network.
  • [bug fix] The "Evolve Param Only" option for position sizing didn't work.
  • [bug fix] The Builder Bonus files installed in the folder for version 1.4.
  • [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.
  • [bug fix] Sorting of the Trade List was incorrect for the Direction and Equity columns.
  • [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.
  • [bug fix] Negative values for daily, weekly, monthly, and annual rates of return were shown as zero.
  • [bug fix] The number of trades in drawdowns was over-stated for portfolios because some trades were counted more than once.
  • [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.

New in Adaptrade Builder 2.0.1.0 (Aug 11, 2015)

  • [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.
  • [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.
  • [bug fix] The drop-down menus on the Symbol Properties window for Symbol Type and Bar Type were not setting the correct values.
  • [bug fix] The symbol library was misreading custom indicator data, causing errors in the display of the symbol library folders.
  • [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.
  • [bug fix] The selection of the Strategy Builder button was not processed correctly on program start-up.
  • [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.

New in Adaptrade Builder 2.0.0.0 (Aug 6, 2015)

  • 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:
  • [bug fix] Duplicate variables were generated in the code for some exit types, such as two variables with the name MMStopPctL.
  • [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.
  • [bug fix] The Build Report only showed trading costs to 2 decimal digits, which is inadequate for FOREX.
  • [bug fix] If the last bar in a portfolio of markets was less than the specified starting date, the program could crash.
  • [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.

New in Adaptrade Builder 1.7.2.1 (Oct 9, 2014)

  • [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.
  • [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.
  • [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.
  • [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.

New in Adaptrade Builder 1.7.2.0 (Sep 23, 2014)

  • "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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • [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.
  • [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.

New in Adaptrade Builder 1.7.1.2 (Sep 13, 2014)

  • 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.
  • [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.
  • [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.
  • [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.

New in Adaptrade Builder 1.7.1.1 (Aug 29, 2014)

  • 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.
  • [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.
  • [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.
  • [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.

New in Adaptrade Builder 1.7.1.0 (Aug 27, 2014)

  • 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:
  • 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.
  • 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.
  • 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.
  • New metrics have been added for the number of trades per day, week, month, and year.
  • 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.
  • 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.
  • 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.
  • 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.

New in Adaptrade Builder 1.7.0.0 (Jun 25, 2014)

  • 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:
  • 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
  • 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
  • Comments for each strategy input have been added to the input section of the strategy code for each supported language
  • [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
  • [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
  • [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

New in Adaptrade Builder 1.6.4.0 (Apr 28, 2014)

  • 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:
  • [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.
  • [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.

New in Adaptrade Builder 1.6.3.1 (Apr 28, 2014)

  • This is primarily a minor bug-fix release. The following changes and bug fixes were incorporated into this release:
  • 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.
  • 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.
  • [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.
  • [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.

New in Adaptrade Builder 1.6.3.0 (Apr 28, 2014)

  • 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:
  • 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).
  • Various minor code changes for MetaTrader 4 (MQL4 code) were made to make the code output more consistent with newer MQL4 conventions.
  • 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.
  • [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.

New in Adaptrade Builder 1.6.2.0 (Apr 28, 2014)

  • The following new features, changes and bug fixes were incorporated into this release:
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • The "sort-to-match" option has been removed from the Options window and is now automatic.
  • [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.
  • [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.
  • [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.
  • [bug fix] A memory allocation error that could cause a program crash in some circumstances has been corrected.
  • [bug fix] An error preventing the program from opening older project files, such as version 1.0.0, has been corrected.

New in Adaptrade Builder 1.6.1.0 (Apr 28, 2014)

  • 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:
  • 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.
  • [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.
  • [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.

New in Adaptrade Builder 1.6.0.0 (Apr 28, 2014)

  • 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:
  • 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.
  • 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.
  • [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).
  • [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.
  • [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.
  • [bug fix] The TRIX indicator was shifted incorrectly in cases where a shift value was present. This has been corrected.
  • [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.
  • [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.

New in Adaptrade Builder 1.5.4.0 (Apr 28, 2014)

  • 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.

New in Adaptrade Builder 1.5.3.0 (Apr 28, 2014)

  • 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:
  • Memory management has been improved, which should allow larger populations to be built before reaching the computer's memory limits.
  • 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.
  • "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.
  • 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.
  • 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.
  • The text in the Output window can now be selected and copied to the clipboard.

New in Adaptrade Builder 1.5.2.0 (Apr 28, 2014)

  • 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:
  • 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").
  • The up/down arrow keys can now be used to change the selection of the strategy in the Results and Top Strategies tables.
  • "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.
  • 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.
  • 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.
  • 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.
  • The Top Strategies tables are now checked for duplicates before adding a new strategy to the tables.
  • 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".
  • [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.
  • [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.
  • [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.
  • [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.
  • [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.

New in Adaptrade Builder 1.5.1.0 (Apr 28, 2014)

  • 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