The following are the primary new features in NeuroShell Trader 6.0:
- Multiple Time Frames: (Power User Feature) Adds the ability to mix and match multiple time frame data, indicators, predictions and trading strategies.
At the start of the Indicator, Trading Strategy and Prediction Wizards and when inserting Existing Data/Calculations, you are given a choice of selecting either “Same frequency as chart” or “Chart independent frequency“. If you choose “Same frequency as chart“, the data, indicator, prediction or trading strategy will be the same frequency as the current chart and will change frequencies with the chart if you change the underlying chart frequency. If you choose “Chart independent frequency“, the data, indicator, prediction or trading strategy will be the frequency you have selected and will not change frequencies if you change the underlying frequency of the chart.
Note that this interface allows you to mix and match different frequencies to your heart’s content. You could add a daily data stream to a 5 minute data stream, add the result to a 2.5 range bar prediction, which then feeds into a 2000 volume bar Trading Strategy and display all of the above on a 333 volume chart.
- Position Sizing: (Power User Feature) Trading Strategies Only Adds many choices for determining how many shares/contracts/units to buy with each trade. The following Position Sizing methods are now available on the “Position Sizing” tab of the Trading Strategy Parameters Dialog:
-
Fixed Size: Buy a fixed number of shares/contracts/units.
-
Fixed Dollar: Buy a fixed dollar amount of shares/contracts/units.
-
Percent of Account: Buy as many shares/contracts/units as possible with the specified percent of account equity.
-
Fixed Leverage: Buy the number of shares/contracts/units that limits trading to the specified leverage of the account equity.
-
Fixed Fractional: Buy the number of shares/contracts/units that risks the specified fraction of account equity per trade, where risk per trade is the size of the initial protective stop or the largest historical trade loss when a trade has no initial protective stop.
-
Kelly formula: Buy the number of shares/contracts/units that risks the fraction of account equity per trade calculated by the Kelly Formula, which takes into account the systems history of winning and losing trades. Risk per trade is the size of the initial protective stop or the largest historical trade loss when a trade has no initial protective stop.
-
Optimal f: Buy the number of shares/contracts/units that risks the fraction of account equity per trade calculated to maximize the systems end profit. Risk per trade is the size of the initial protective stop or the largest historical trade loss when a trade has no initial protective stop. Developed by Ralph Vince.
-
Secure f: Buy the number of shares/contracts/units that risks the fraction of account equity per trade calculated to maximize the systems end profit when limited to the specified maximum system drawdown. Risk per trade is the size of the initial protective stop or the largest historical trade loss when a trade has no initial protective stop. Developed by Leo Zamansky and David Stendahl.
-
Profit Risk: Buy the number of shares/contracts/units that risks the specified fraction of initial account equity and the specified fraction of closed trade profits per trade. Risk per trade is the size of the initial protective stop or the largest historical trade loss when a trade has no initial protective stop.
-
Volatility Risk: Buy the number of shares/contracts/units that risks the specified fraction of account equity per Average True Range of price movement
-
Fixed Ratio: Buy an additional share/contract/unit each time profits increase by the specified profit per share/contract/unit multiplied by the number of shares/contracts/units currently being traded.
-
Margin + Drawdown Sizing: Buy the number of shares/contracts/units such that the account equity will cover the margin requirement and the specified multiple of the largest historical system drawdown.
-
Fixed Dollar Amount per Unit: Buy one share/contract/unit for every specified dollar amount of account equity.
-
Fixed Dollar Risk: Buy the number of shares/contracts/units that risks the specified dollar amount per trade, where risk per trade is the size of the initial protective stop or the largest historical trade loss when a trade has no initial protective stop.
-
Position Sizing Optimization: (Power User Feature) Trading Strategies Only Adds the ability to let the optimizer choose the optimal position sizing parameters and/or method.
To select one or more position sizing methods, click in the box to the left of each position sizing name. If only one position sizing method is selected, it will display a black lock icon in the box to the left of the method name, which indicates that NeuroShell will only calculate results using that position sizing method. However if multiple position sizing methods are selected, they will display a red circular arrow icon in the box to the left of the method name, which indicates that NeuroShell Trader will determine which of the selected methods gives the best results during optimization.
To turn optimization of the parameter(s) of a selected position sizing method on or off, click in the box to the left of each parameter name. A black lock icon in the box to the left of a parameter, is an indication that NeuroShell will only calculate results using the listed parameter value. A red circular arrow icon in the box to the left of a parameter name, is an indication that NeuroShell Trader will determine a parameter value within the listed parameter range that gives the best results during optimization.
- Pyramiding/Scaling: (Power User Feature) Trading Strategies Only Adds the ability to pyramid/scale into and out of trades with more than one entry or exit order. The following Pyraminding/Scaling options are available on the “Position Scaling” tab of the Trading Strategy Parameters Dialog:
-
Pyramid/Scale into Positions: A check box which allows activation of position scaling on entries.
-
Max number of entries per Position: Allows you to choose the maximum number of independent entries that are allowed for each trading position.
-
Entries change in Size: Allows you to specify by how much subsequent entries change in size as a percentage of the prior entry. So for instance if you specify 100%, all entries will be the same constant size. However if you specify 50%, then each subsequent entry will be half the size of the previous entry (for instance entries of 1000 shares, 500 shares, 250 shares and then 125 shares, for a final position size of 1875 shares)
-
Restrict each entry condition to generating one entry per position: Use this option to cause each entry condition to generate only one entry scaling. By default, if you had an entry condition like CrossAbove(Close,Open), the trading strategy would generate a new scale in entry order each time the close crossed above the open. However, you could use this option to allow the CrossAbove(Close,Open) to generate only one entry scaling and then add additional entry conditions like CrossAbove(Close, Multiply(EntryPrice,1.1)), CrossAbove(Close, Multiply(EntryPrice,1.2)) and CrossAbove(Close, Multiply(EntryPrice,1.3)) to generate additional entry scale ins when the price jumps 10 percent, 20 percent and 30 percent beyond the first entry.
-
Pyramid/Scale out of Positions: A check box which allows activation of position scaling on exits.
-
Max number of exits per Position: Allows you to choose the maximum number of independent exits that are allowed for each trading position.
-
Exits change in Size: Allows you to specify by how much subsequent exits change in size as a percentage of the prior exit. So for instance if you specify 100%, all exits will be the same constant size. However if you specify 200%, then each subsequent exit will be half the size of the previous exit (for instance exits of 125 shares, 250 shares, 500 shares and then 1000 shares)
-
Restrict each exit condition to generating one exit per position: Use this option to cause each exit condition to generate only one exit scaling. By default, if you had an exit condition like CrossBelow(Close,Open), the trading strategy would generate a new scale in exit order each time the close crossed below the open. However, you could use this option to allow the CrossBelow(Close,Open) to generate only one entry scaling and then add additional entry conditions like CrossBelow(Close, Multiply(ExitPrice,0.9)), CrossBelow(Close, Multiply(ExitPrice,0.8)) and CrossBelow(Close, Multiply(ExitPrice,0.7)) to generate additional exit scale outs when the price goes below 90 percent, 80 percent and 70 percent beyond the first exit.
- Pyramiding/Scaling Optimization: (Power User Feature) Trading Strategies Only Adds the ability to let the optimizer choose the optimal pyramiding/scaling parameters (i.e. “Max number of entries”, “Entries change in size”, “Max number of exits” and “Exits change in size” parameters).
To enable Pyramiding/Scaling Optimization, select the appropriate check box on the “Optimization” tab of the Trading Strategy Parameters Dialog. Once Position Scaling Parameter Search is checked, any desired changes to the default Position Scaling Parameter optimization ranges can be made on the “Position Scaling” tab of the Trading Strategy Parameters Dialog.
Note that if you want the optimizer to decide if position scaling should be used at all, simply make sure to set the minimum value for Max number of entries and exits to a value of 1.
- Multiple Template Optimization and Backtesting: (Power User Feature) Trading Strategies Only Adds the ability to optimize and backtest multiple templates in bulk using the same date, cost, position sizing, position scaling and optimization parameters.
To backtest more than one template at a time, simply multiple select the templates you wish to backtest on the first page of the wizard and then press the Next button. As there are multiple templates and thus input sets selected, the wizard skips the inputs page and goes directly to the parameters page, from which you can choose to modify the dates, costs, and optimization parameters that you wish to use during optimization of all the templates. It should be noted that the default parameters will be the parameters of the first template selected. Once you have the parameters set as you desire, press the next button to backtest the templates. After all the templates have been backtested and you have analyzed the backtest results, put a check mark in the box next to the templates you wish to add to the chart and press the wizard Finish button.
- Walkforward Optimization: (Power User Feature) Trading Strategies Only Adds the ability to “walkforward” optimizations such that each new optimization is applied to a new out of sample Actual Trading period. This allows users to evaluate the out of sample performance of a strategy reoptimized regularly on newer data.
Take for instance simulating reoptimizing a trading strategy every week for the past 10 weeks. After each reoptimization, you then traded the optimized strategy for a week until the next time you reoptimized. This scenario can now be simulated by setting up 10 walkforwards with an Actual Trading period of 1 week. With these settings, NeuroShell Trader will perform 11 total optimizations, each shifted by one week. 10 of those optimizations will show the Actual Trading had you traded the week following the optimization period. The final optimization (walkforward 0), is optimized up to the very last date so you can go forward into the future trading having optimized on the very latest data in the same manner as the prior 10 simulated optimizations.
To enable Walkforward Optimization, select the “Walk-forward optimization” check box on the “Advanced” tab of the Trading Strategy Parameters Dialog. Then enter the number of walk-forwards you wish to perform in the corresponding text box. Remember that there will be one more optimization than the number of walkforwards entered as the final optimization will be labeled walkforward 0 and will be the optimization that gets used when you start trading into the future.
The amount that each walkforward is shifted forward in time is controlled by the size of the actual trading period. To setup actual trading, select the “Dates” tab of the Trading Strategy Parameters Dialog, select the “Start trading before last chart date” check box and then use the dropdown above the Trading label to select the size of the actual trading period. [NOTE: If you do not see the “Start trading before last chart date” check box on the “Dates” tab, then you will need to go to the main NeuroShell Menu, select “Options” from the “Tools” menu, and then turn on the “Allow real trading to begin before last chart date” option on the “Advanced” tab of the Options dialog.]
Note that once you have setup walkforward optimization, you have the choice of whether the actual trading of each walkforward resets it’s starting account balance to the original account balance or if it starts with the account balance that remained after the subsequent walkforward’s actual trading. To setup the carrying forward of the previous account balance, simply select “Carry forward actual trading account balances to next walkforward” on the “Advanced” tab of the Trading Strategy Parameters Dialog. Setting the account balance carry forward option will allow you to simulate the real world scenario where you started trading with a given account balance, reoptimized regularly, but never added more money to your account balance to offset losses as you traded.
- Position Size Graph Notation: To aid in identifying the number of shares/contracts/units to buy or sell when using Position Sizing and Pyramiding/Scaling, the number of share/contract/units being bought or sold is now annotated above or below the buy/sell signal annotation (blue or red triangle) for all trading strategies.
- New Optimization Interface: A new optimization interface has been introduced which allows for the optimization of individual parameters or inputs to be turned on or off independently of all the other inputs and parameters.
To individually control parameter optimization of an input parameter, click in the box to the left of the parameter name.
A black lock icon in the box to the left of a parameter, indicates that NeuroShell will only use the listed parameter value.
A red circular arrows icon in the box to the left of a parameter, indicates that NeuroShell Trader will determine a parameter value within the listed parameter range that gives the best results during optimization.
A gray circular arrows icon in the box to the left of a parameter, indicates that the listed parameter range specifies only a single value, so NeuroShell Trader will only use that single value.
To individually control input selection optimization for an input, click in the box to the left of the input.
A black lock icon in the box to the left of the input, indicates that NeuroShell will always use that input.
A red circular arrows icon in the box to the left of the input, indicates that NeuroShell Trader will determine during optimization whether or not that input should be used to obtain optimal results.
When an input’s parameters are not shown/expanded, a black lock icon with small red arrows in the lower right corner, simply indicates that although the input itself is always used, one or more of it’s undisplayed parameters will be optimized. In other words, parameter optimization is enabled for this particular input.
When an input’s parameters are not shown/expanded, a red circular arrows icon with small black lock in the lower right corner, simply indicates that although NeuroShell will determine during optimization whether or not the input is used, none of it’s undisplayed parameters are being optimized. In other words, rule selection is enabled for this particular input.
Optimization mode is now controlled from a dropdown box above the input and condition lists in the 2nd page of the prediction and trading strategy wizards. As in previous versions, No Optimization, Input Selection, Parameter Optimization and Full Optimization choices are still available. However, there is now a new Custom Optimization choice available as well which allows for individual selection of which inputs are optimized, which inputs are always used, which parameters are optimized and which parameters are locked to their original value.
Switching back and forth between custom optimization and one of the originasl four optimization modes will remember your last custom settings. However, when in one of the original four optimization modes, modifying the individual optimization settings of a rule or parameter will automatically switch to custom optimization and any previous custom settings will be lost.
- Multi-Core Distributed Optimization: Adds the ability to distribute optimization processing across multiple computer cores and multiple hyper threads on a single computer.
As an example, if you have an Intel Core i7 processor, which has 4 processing cores each with the ability to process two simultaneous hyper threads, the NeuroShell Trader optimization processing could be spread out to 8 different threads instead of the single thread optimization of previous NeuroShell versions. Theoretically, you could realize up to an 8x speed increase in optimization on a Core i7 computer, however due to the overhead of controlling, setup and communication with each distributed thread, the speed increase may approach but will never reach 8x.
By default, NeuroShell Trader versions that allow distributed optimization across multi-cores will automatically distribute optimization across all available cores and hyperthreads. To change the optimization distribution settings from their default, select “Options” from the “Tools” menu and then select the “Distributed Optimization” tab.
If you wish to limit the number of cores/hyperthreads utilized during optimization (for instance if you want to use other programs during optimization without any processor sharing), you can limit the number of Distributed multiple processing cores by changing the setting of the “Use X of Y available cores/hyperthreads” option, where X is the number of optimization threads you want to run and Y is the maximum available for your computer/processor.
Distribution of optimization across multiple cores/hyperthreads can be turned off completely by unchecking the “Distribute optimization across multiple processor cores” check box.
During Optimization, when distributed optimization is being performed, the label beside the progress percent bar that says “Optimizing Strategy”, will also display the number of processors being utilized by the optimization. If you want to see the details of how the optimization is being distributed, double click on the label showing the number of processors being utilized to bring up the Distributed Processing Control Panel which shows the computer, individual count, total %, average time, last count, last % and last time for each processor.
- Trading Time Range: (NeuroShell DayTrader Only) Adds the ability to specify the time range during which trading is allowed. NeuroShell will automatically ignore trading signals outside of this time range and will automatically close out any open positions at the end of the time range.
A “Restrict trading to a specific time range” option has been added to the “Dates” tab of both the prediction and trading strategy parameter dialogs. After selecting the option, simply enter the desired start and end time. Note that you can specify an overnight time range by setting the start time after the end time (for instance start at 4:00pm and end at 9:00am).
- Chart Session Start/End Times: (NeuroShell DayTrader Only) Adds the ability to specify the first time and last time displayed on the chart and used in all calculations.
To specify the start and end time, select “Format Chart” and in the Dates tab, check the “Restrict data loaded to a specific time range” option and specify the desired start and end time range. Note that you can specify an overnight time range by setting the start time after the end time (for instance start at 4:00pm and end at 9:30am).
- FOREX Pips Commissions: To aid in accurately modeling Forex trading models, pip entry commission and a pip exit commission options have been added to the entry and exit commissions section on the “Costs” tab of both the Trading Strategy and Prediction Parameters Dialogs.
- Exchange Rates: To allow for the translation of trading performance results back into dollars for instruments that are not quoted in dollars (for instance many Forex rates and foreign exchange trade instruments), the ability to specify a conversion exchange rate data stream has been added in 6.0. So for instance, if you were trading EUR/JPY, which is quoted in Japense Yen, you could specify the U.S. Dollar versus Japense Yen exchange rate so that all profits, drawdowns, etc are expressed in U.S. Dollars instead of the quoted currency of Japense Yen.
Note that if your home currency is not the U.S. Dollar, then you could also utilize the exchange rate specification to convert all trading performance results into your home currency. So for instance if you are trading Microsoft on the NASDAQ, but want the trading performance results to be expressed in Euro instead of U.S. Dollars, you would specify a Euro/US Dollar data stream as the exchange rate for MSFT.
To specify an exchange rate for a Trading Strategy or a Prediction, you must check the “Exchange Rate” check box on the “Costs” tab of the Trading Strategy or Prediction Parameters Dialogs. After checking “Exchange Rate“, press the “View/Modify Exchange Rates” button. A list of all the ticker symbols on the current chart page will be displayed. To select or change the exchange rate for a listed ticker symbol, simply select the ticker symbol and press the “Set Exchange Rate” button. You will be guided through the process of selecting the exchange rate ticker symbol.
Depending upon the exchange rate data available, you should specify either a direct exchange rate (1 unit of home currency = X units of the quote currency) or an indirect exchange rate (1 unit of the quote currency = X units of home currency).
If your home currency is the U.S. Dollar, the following are examples of exchange rates you should specify when trading FOREX and U.S. Exchanges:
Euro (EUR/USD) = No Exchange Rate necessary, already quoted in dollars.
Great British Pound (GBP/USD) = No exchange rate necessary, already quoted in dollars.
Canadian Dollar (USD/CAD) = USD/CAD direct rate (or CAD/USD indirect rate)
Japanese Yen (USD/JPY) = USD/JPY direct rate (or JPY/USD indirect rate)
Euro Yen Cross (EUR/JPY) = USD/JPY direct rate (or JPY/USD indirect rate)
Pound Australian Cross (AUD/GBP) = GBP/USD indirect rate (or USD/GBP direct rate)
Microsoft (MSFT) = No exchange rate necessary, already quoted in dollars.
ES Emini Contracts (ES) = No exchange rate necessary, already quoted in dollars.
If your home currency is the Euro, the following are examples of exchange rates you should specify when trading FOREX and U.S. Exchanges when you want all performance results to be expressed in Euro:
Euro (EUR/USD) = EUR/USD direct exchange rate (or USD/EUR indirect rate)
Pound (GBP/EUR) = No Exchange Rate necessary, already quoted in Euros.
Pound Australian Cross (AUD/GBP) = GBP/EUR indirect rate (or EUR/GBP direct rate)
Microsoft (MSFT) = EUR/USD direct rate (or USD/EUR indirect rate)
ES Emini Contracts (ES) = EUR/USD direct rate (or USD/EUR indirect rate)
When you specify a direct exchange rate, the following are the calculations that NeuroShell Trader will make to determine the units to trade and profit/loss:
Profit = (Sell Price ‘ Buy Price) * Units Traded / Direct Exchange Rate
Units to Trade = Home Currency * Direct Exchange Rate / Current Rate
When you specify an indirect exchange rate, the following are the calculations that NeuroShell Trader will make to determine the units to trade, commission and profit/loss:
Profit = (Sell Price ‘ Buy Price) * Units Traded * Indirect Exchange Rate
Units to Trade = Home Currency / Indirect Exchange Rate / Current Rate
Note that if you want to specify exchange rates for ticker symbols prior to the exchange rate being needed in a chart, trading strategy or prediction, you can enter exchange rates at any time by selecting the “Options ‘” from the “Tools” menu. You will find the same interface described above on the “Exchange Rates” tab, except that you have the ability to add/remove any tickers you want no matter whether they are currently being used on a chart or not. However, please note that if you choose to use this interface to enter exchange rates, you will still need to check the “Exchange Rates” check box in the Trading Strategy and Prediction wizards in order for the exchange rates to be applied to the Trading Strategy or Prediction.
- Trade in Dollars: To aid in the trading of Forex models and other instruments that might trade in dollars instead of shares/contracts/lots, an option has been added to allow for sending orders to the brokerage during integrated trading in dollar amounts instead of in shares/contracts/units. To activate this option, select the “Send Orders to brokerage in $ amount instead of # shares/contracts/units” check box on the “Position Sizing” tab of the Trading Strategy Parameters Dialog.
Note that if your trading instrument is not quoted in dollars, then you will be sending trades to the brokerage in the quoted currency unless you specify an exchange rate. So for instance if you select this option when trading EUR/JPY without an exchange rate specified, your trades will be sent to your brokerage as the amount of Japanese Yen you wish to trade. However if you select this option and specify a Yen to Dollar exchange rate, then your EUR/JPY trades will be sent to your broker as the amount of U.S. Dollars you wish to trade.
IMPORTANT: Please note that when trading in Dollars (or any other currency amount) instead of a fixed number of shares/contracts/lots, it is extremely likely that trades that NeuroShell places to close out positions may not entirely close out a position and you will have to do manual position cleanup with your Broker’s web interface. The reason for this is because even though NeuroShell Trader signaled a close out trade of something like $100,000 based upon the most current price and exchange rate available, by the time the trade reaches your brokerage, the price and/or exchange rate may have changed every so slightly such that a close out trade would actually require a trade of $99,999 or $100,001, thus still leaving $1 worth of manual position cleanup on your part.
- More Objective Functions: Adds more objective function, particularly those aimed at maximizing the robustness of equity curves.
-
Maximize Expectancy: Expectancy provides a measure of a systems reward to risk ratio and is calculated as the Average Trade Profit divided by the Average Trade Loss.
-
Maximize K-Ratio: The K-Ratio provides a measure of the performance and stability of the equity curve. The formula for K-Ratio is Slope of the Equity Curve Linear Regression / (Standard Error of Equity Curve Regression Line * Number of bars traded)
-
Maximize Compounded Annual Growth Rate: Compounded Annual Growth Rate is the annual percentage rate growth of the account from the beginning account balance to the ending account balance.
-
Maximize Mar Ratio: Mar Ratio is the Compounded Annual Growth Rate divided by the largest percent drawdown as measured from an equity high to a subsequent equity low.
-
Minimize Ulcer Index – A measure of downside volatility. The Ulcer Index is computed as the square root of the sum of squares of the percent drawdowns at each bar in the equity curve.
-
Maximize Ulcer Performance Index – The Ulcer Performance Index adds a performance measure to the Ulcer Index and is computed as the Average Yearly Return on Account divided by the Ulcer Index.
-
Minimize Lake Ratio: Provides a measure of the duration and size of drawdowns relative to the account equity. It is computed as the sum of the last account equity high minus current account equity at each bar traded divided by the sum of the current account equity at each bar traded. The Lake Ratio can be visualized by thinking of the equity curve as peaks and valleys with all the valleys filled in with water up to the level of the previous highest peak. Using this visualization, the Lake Ratio is then simply the ratio of the volume of water above the equity curve divided by the volume of earth beneath the equity curve.
-
Maximize Lake Ratio Performance Index: Adds a performance measure to the Lake Ratio and is computed as the Average Yearly Return on Account multiplied by the Lake Ratio.
-
Maximize Regressed Annual Return: The Regressed Annual Return is similar to the Compounded Annual Growth Rate, but is more resistant to changes in the start and end dates. It is computed as the annual percentage rate growth of the equity curve’s linear regression line.
-
Maximize Robust Sharpe Ratio: The Robust Sharpe Ratio is more resistant to changes in the start and end dates than the Sharpe Ratio. It is computed as the Regressed Annual Return divided by the standard deviation of trade returns.
-
Maximize Net Profit minus Drawdown: Provides a means of filtering out strategies that were profitable, despite a very large drawdown larger than the final profit. Calculated as the Net Profit minus the Max Drawdown
-
Maximize Percent Profitable Days: Percent Profitable Days is simply 100 multiplied by the number of profitable days divided by the number of days traded.
-
Maximize Return * %Profitable Days: Adds a performance measure to Percent Profitable Days and is computed as the Average Yearly Return on Account multiplied by the Percent Profitable Days.
-
Maximize Return * Equity Correlation * %Profitable Days: Adds both a performance and consistency of performance component to Percent Profitable Days and is computed as the Average Yearly Return on Account multiplied by the Equity Curve Correlation multiplied by the Percent Profitable Days.
- Selectable Optimization Method: Adds the ability to select the optimization algorithm used by the Prediction and Trading Strategy optimization. On the Optimization tab of the Prediction Parameters dialog and the Advanced tab of the Trading Strategy Parameters dialog, you may now select one of the following optimization algorithms:
-
Gene Hunter Optimization ‘ The classic genetic algorithm used in previous NeuroShell Trader versions
-
Evolution Strategy Optimization ‘ Evolution Strategies are variants of genetic algorithms that use real numbers instead of integers in chromosomes, and therefore do not cross segments of a chromosome, but instead cross whole chromosomes. The individuals represent potential solutions to a problem. The individuals are tested by a fitness function and the results are used to determine if the individual will be included in the next generation of potential solutions. For more information refer to the following book: Michalewicz, Z., “Genetic Algorithms + Data Structures = Evolution Programs”, Second, Extended Edition, Springer-Verlag, New York, NY, 1992, chapter 8, Evolution Strategies and Other Methods.
-
Swarm Optimization ‘ Like genetic algorithms, Particle Swarm Optimization begins with a random population of solutions in the form of individuals. (Individuals represent a set of problem values that are being optimized.) As time progresses, the individuals “swarm” generally towards the best individuals, but not directly as some randomness is involved. The best individuals are judged by a fitness function relevant to the problem, e.g., maximize the number of correct classifications or minimize the number of false negatives. For more information refer to the following paper: Eberhart, R. C. and Kennedy, J., A New Optimizer Using Particle Swarm Theory. Proceedings of the Sixth International Symposium on Micromachine and Human Science, Nagoya, Japan, pp 39-43, 1995.
-
Brute Optimization ‘ This is an exhaustive brute force search of all possible parameter combinations as used in most other technical analysis packages. Note that if the parameter range is a floating point parameter range (1.1 to 1.5), then the brute force algorithm splits the range into 20 increments instead of searching the unlimited floating point precision possibilities). Note also that if you have a large number of parameters or a very wide parameter search space, brute force effectively becomes useless as it could take weeks, months or years to search every parameter combination of a large parameter space.
- Insert Existing Data/Calculation Improvements: Insert Existing Data/Calculations interface has been updated to assist in adding data when there is lots of data items on the chart. The interface now shows a line style and colored icon for each item visible on the chart that matches how the data is currently displayed on the chart. Additionally, the data is sorted and put into subgraph folders based upon the order the data is currently displayed on the chart (as opposed to old versions which showed it in order it was inserted into the chart irregardless of how it was currently being displayed).
- Market On Close Order Types: Added an addition Market on Close order type to allow for backtesting order fills at the close of the same bar on which the signal was generated.
Market Close (next bar) Order – Enters at the closing of the next bar. [This is the same as the 5.x Market Close order type]
Market Close (current bar) Order – Enters at the closing price of the last completed bar. [This is the new order type]
Note that because the Market Close (current bar) is filling at a price that already occurred when the order is generated, you should not expect to get the same fill price when using Integrated Trading or manually placing your order with a brokerage.
- Miscellaneous Speed Improvements: Miscellaneous speed improvements over 5.0 have been made in the following areas:
-
User Interface speed improvements on charts that contain large numbers of chart pages (i.e. 50+ chart pages)
-
Some optimization speed improvements over version 5.0