The Professional Trader has features to optimize the inputs to nets. There have
been others who have used Genetic Algorithms (GAs) to find inputs to feed a
net before, but we are also finding optimum parameters for the indicators you
are using, as well as the buy/sell thresholds when training by profit. There
are several objective functions for optimization, not just simple profit.
The most exciting thing
about the Professional Trader may not have anything to do with neural nets.
The most exciting thing may be the trading strategy optimizer, which optimizes
systems by GA even if they don't have neural nets! For example, you can enter
a traditional trading strategy (using crossovers and breakouts, say) and then
find optimal parameters for those crossovers and breakouts. Not only that, but
you can tell the optimizer to get rid of useless rules if you have provided
several. We have actually built some pretty good trading systems that didn't
use nets at all.
The NeuroShell Trader Professional includes
a trading strategy optimizer, which optimizes
systems by genetic algorithm even if they don't have neural nets! For example,
you can enter a traditional trading strategy (using crossovers and breakouts,
say) and then find optimal parameters for those crossovers and breakouts. Not
only that, but you can tell the optimizer to get rid of useless rules if you
have provided several. We have actually built some pretty good trading systems
that didn't use nets at all. To
learn more about trading strategies, visit the Trading Strategy Wizard.
The Trader Professional also has features
to optimize the inputs to nets. There have been others who have used genetic
algorithms to find inputs to feed a net before, but the NeuroShell Trader Professional
can also find optimum parameters for the indicators as well as the buy/sell
thresholds when training by profit. To
learn more about predictions, visit the Prediction Wizard.
How Are Genetic Algorithms
Different than Other Optimizers?
Most optimization techniques used today are simple "exhaustive
search" methods, meaning that every possible combination is tried to see what
was the best one. This is a very accurate approach, since you are bound to
find the best combination of variables - eventually. However, it is a very
inefficient approach, because whenever there are more than a few thousand
combinations, it takes too long to try them all. That is why users of exhaustive
search optimizers tend to limit the number of variables they use, or tend
to limit the number of values these variables can take.
The genetic algorithm, by contrast, does not
try every possible combination. It attempts instead to intelligently get closer
and closer to the best solution. Therefore, far more variables can be utilized,
and you can allow all values of a variable. Optimization can still take a
good deal of time if you give a GA a fair number of variables, but it will
be doing much more work in that amount of time.
More efficient optimizers than exhaustive search
optimizers are in use. If they are not genetic algorithms, however, they are
most likely only searching one section of the search space at a time. Genetic
algorithms are searching dozens or hundreds of parts of the search space simultaneously.
This means they are far less susceptible to becoming stuck in "local minima"
as the others quite often do. (Local minima are decent solutions that the
optimizer can never “get out of” in order to find better solutions.)
Indicators you build can now be saved and used later in different charts. Saved
indicators can also be loaded into the regular Trader, meaning that you can
now sell or distribute indicators to all NeuroShell Trader users. You can save
them in existing indicator categories, or invent your own.
To create a custom indicator,
first build it in the Indicator Wizard as usual. In order to save your indicator,
you use the Save Indicator button in the Indicator Wizard. To activate this
button, click on any level of the indicator as shown in the picture below:
Then the following dialog
Furthermore, if you distribute
one of these custom indicators, you can specify the help topic and help file
that will be displayed if the end user presses Indicator Help. Of
course, you are responsible for writing this help file yourself.
The Advanced button brings
up the following:
The parameters of those
indicators can be hidden from end users, meaning that your proprietary secrets
will be safe. Also, parameters the user sees can be mapped to multiple parameters
in the indicators. For example, if your custom indicator uses close a lot, the
user only had to define it once.
The Professional Trader can allow creation of sound and/or popup custom text
alerts when an event occurs. Unlike some packages which have a limited number
of alerts available, the NeuroShell Trader alerts are unlimited in scope and
can be based upon any combination of indicators, predictions, and/or trading
Alerts are inserted from
the Insert menu, just like indicators:
You can give your alerts
special names and even notes to yourself:
Then, when you later view
the Alert window, you are notified of all alerts (like all such layouts in the
Trader, clicking on a column sorts the display by that column):
Alerts can be modified in
the same manner in which you modify indicators, predictions, and trading strategies.
to user created DLL functions/subroutines
The NeuroShell Trader Professional now has indictors that can call external
DLLs created (usually) in C or C++ ('DLL calls' category in the Indicator Wizard).
This is a very powerful feature, because it means that now you can build custom
indicators and other functions and use them in the NeuroShell Trader. You can
even build a business selling these to NeuroShell Trader users. However, you
will need to have a programmer available to help you set up the calls to the
DLLs, and the programmer will have to know something about the DLL he/she is
trying to call.
There are two types of DLL
1. Calling DLL by value.
In this mode, the DLL is called once for each bar. The inputs to the DLL will
usually be some current or lagged values, and the output will be associated
with that bar on the chart. This mode would be perfect for building a custom
indicator in C++.
2. Calling DLL by array.
In this mode, the DLL is called only once for the entire chart. Each parameter
is an array that is as large as the number of bars loaded in the chart. The
output is an array of the same size. This mode is for building some sort of
process that needs all the data at once. One example might be your own custom
model, like a neural network. Note, however, that training a neural network
could take some time, during which the user is staring at a frozen chart. Also,
the indicator is called each time the chart is refreshed, so you will want to
have a mechanism that is aware that it shouldnt retrain each time the
DLL is called.
to NeuroShell 2 and Predictor/Classifier Nets
You can now call neural networks you created with NeuroShell 2, NeuroShell Predictor,
or NeuroShell Classifier within the Trader. These net calls are special indicators
in the 'DLL calls' category in the Indicator Wizard. You still have to train
these nets within the respective programs, but they can be fired in the Trader,
looking like an indicator. This indicator can then be used in a trading strategy,
another indicator, or even another net. It is easy to train nets in these programs
using Trader data if you use the Traders file export facility.
In order to call Predictor/Classifier
networks, you must own the NeuroShell Run-Time Server.
When you call the indicator
to fire NeuroShell 2 nets you must not only pass it the inputs to the net in
the proper order, but the path to the .DEF file as well. For Predictor and Classifier
nets, you will need the path to the saved network file as well as the inputs.