Adaptive Modeler is an application for creating agent-based market
simulation models for price forecasting of real world stocks, ETFs or
other market traded securities.
This is explained in the Product >
Advantages section.
Yes. The free Evaluation Edition allows users to get familiar with
the technology and allows non-business users such as students and
researchers to do research and experiments. The Evaluation Edition
thereby contributes to a large and diverse user base resulting in
valuable feedback and knowledge sharing between users. This is
beneficial to the further development of Adaptive Modeler.
The Evaluation Edition does not expire (no limited trial
period).
Yes. The Professional Edition is intended for traders, investors and other professional users. It offers more more powerful features, more computing power and real-time forecasts and trading signals (see Compare Editions).
There is also a Standard Edition which offers basic functionality
including real-time forecasts and trading signals.
This is explained in Compare Editions (in particular see
Benefits of features).
No, Adaptive Modeler is not Open Source.
General knowledge of investing, trading and financial markets is assumed.
For advanced use, a basic understanding of how Adaptive Modeler creates trading
rules by Genetic Programming is recommended. This is explained in the
User's Guide.
No programming skills are required.
The User's Guide contains a Getting Started Tutorial to guide you through the main concepts and features of Adaptive Modeler.
This is described in the Product > System
Requirements section.
Currently Adaptive Modeler requires the Microsoft .Net runtime (version 2.0 or higher).
1. Download Adaptive Modeler from the download page
(select "Save").
2. Unzip the downloaded file.
3. If you are a user of previous versions of Adaptive Modeler, please
read Upgrading from previous versions first.
4. Launch Setup.exe and follow the instructions on screen.
Note: Before installing Adaptive Modeler, the installer checks if
Microsoft .Net 2.0 or higher is installed. If this is not the case,
Microsoft .Net will be downloaded from Microsoft and installed first
(after your consent). This requires an internet connection and may take
a few minutes. Administrator privileges may be required to install
Adaptive Modeler and/or Microsoft .Net.
Users of the Evaluation Edition can download the latest version from the download page. Users of the Standard or Professional Editions should contact Support for upgrading instructions.
Please take note of the following before installing a new version of Adaptive Modeler:
Adaptive Modeler reads quotes from ASCII
(CSV) files in familiar formats such as those used by popular charting
and technical analysis software packages.
No, Adaptive Modeler only reads quotes from ASCII (CSV) files. Most providers of
market data provide software to export the received data to ASCII (CSV) files.
Also several third party conversion tools exist. For more information,
see Market data.
Adaptive Modeler contains a flexible and intelligent data file reader
that automatically reads ASCII (CSV) files in a wide range of formats
such as those used by most charting and technical analysis software
packages. Most files will be read without adjustments or require only
minimal conversion. See the
User's Guide for more information on how to import market data.
Adaptive Modeler can only read MetaStock ASCII files, not the binary
MetaStock files. For more information on how to import ASCII files, see
the User's Guide.
Yes. See What quote intervals are supported?
Adaptive Modeler supports any quote interval ranging from 1 millisecond
to multiple days provided that processing time per quote is short
enough. For high-frequency data, the actual usable minimum interval thus
depends on situation specific factors such as CPU speed, model
parameters and data retrieval latency. Usually, processing time per
quote is only a fraction of a second. Variable intervals are also supported
(i.e. for constant range bars or tick data).
The more the better. Since Adaptive Modeler uses evolutionary
computing (meaning that it learns over time) a sufficient number (at
least a few thousand) of historical quotes of the selected security is
needed. Only after a sufficient number of quotes has been processed, any
statistical significance can be attributed to demonstrated forecasting
success.
Artificially created price series may be useful to "train" models,
especially when insufficient real historical data is available for a
security. There is no specific support for this but we encourage users
to experiment.
Adaptive Modeler does not automatically adjust for splits and dividends.
As stock splits have a distorting effect on model evolution and on
return calculations, the quote history file should be adjusted for
splits before creating a model. When a new split occurs, a new model
should be created after re-adjusting the historical quotes.
Whether or not historical quotes should be adjusted for dividends and by which method depends on situation specific factors and should be considered by the user. Note that return calculations in Adaptive Modeler do not include dividend payments.
Note that it may be necessary to adjust the rounding settings in
Adaptive Modeler when historical prices have become very low after
adjusting for splits and/or dividends.
Adaptive Modeler retrieves new quotes as soon as the quote file has been
updated (except when the model is paused). (The Evaluation Edition
processes recent quotes with a delay of a few days).
When a quote does not get imported even when there is a valid and
complete entry in the quote file, this can have the following causes:
1. The model may be paused. Press F3 to resume model evolution.
2. The quote file may (temporarily) not be accessible because another
application is locking the file. Make sure that the quote file is not
unnecessarily being locked by another application.
3. In the Evaluation Edition, processing of recent quotes is delayed
with a few days.
When quote data is found to be invalid or incomplete by Adaptive
Modeler, a warning is shown and model evolution is paused. The user can
now correct the quote file (see the
User's Guide for quote
data requirements). After correcting the quote file, the user should
resume model evolution (press F3) and operation will resume normally.
Erroneous quote data that might not be detected by Adaptive Modeler as
invalid or incomplete, should be corrected before model evolution comes
within 100 bars of the quotes to be modified or else they may already
have been read into a buffer and may not be read again.
Make sure that the quote file is properly formatted in one of the
supported quote file formats (see
User's Guide). If you
still experience problems, please report them on the forum (Quotes
section) and include a small part of the quote file.
The potential performance of trading based on a model's trading signals depends on:
Note: all returns shown in Adaptive Modeler are after all transaction costs (broker commissions, spread and slippage) but exclude dividends and interest payments.
The forecast success rate in its turn depends on:
It is therefore not possible to say anything in general about the potential performance of Adaptive Modeler. Adaptive Modeler is an application for creating market models that produce price forecasts. The accuracy of the forecasts of a specific model depends on all the factors given above. Adaptive Modeler is not an always winning trading system and its performance depends on how the user uses it.
To demonstrate some of the possibilities of Adaptive Modeler, some example models are provided. These are actual models and most of them can be used with any edition of Adaptive Modeler to review their historical performance as well as their performance from model creation date until now and onwards.
The example models serve as public examples and are not necessarily the best models that can be created with Adaptive Modeler. We do not provide details about the performance of other (proprietary) models that we may have created for our own use or for others. As these models are proprietary and/or subject to confidentiality agreements with their owners, it is not possible, nor would it be appropriate, to provide information about their perfomance. As a software publisher we wish not to make claims about investment returns, especially not unverifiable claims that could be seen as misleading and may in fact be illegal in some legislations. Also, such information is largely irrelevant to users since they will not be able to use those particular models nor is there any reason to expect that those models are the best possible models that can be created with Adaptive Modeler. Obviously, there are many different combinations of securities, quote intervals and parameter values. The vast majority of these combinations have not been explored by us. We don't extensively explore the search space of combinations to prevent unintended optimization (overfitting) of the internal design of the agent-based model to historical market data. It is therefore likely that other combinations of security, quote interval and model parameters exist with better performance.
Exploring the potential performance for a given security and quote interval requires experimentation and careful observation of results. With a given set of model parameters values, the results of different runs (separate model evolutions) can still vary because of random factors inherent to agent-based modeling and genetic programming. It may therefore be necessary to do a number of runs with the same parameter values for a reliable analysis of results.
Adaptive Modeler provides a variety of ways to review the quality of
previous forecasts and trading signals. Adaptive Modeler contains a
Trading Simulator with a Performane Overview showing various return/risk
indicators and sub period statistics. Also it is possible to project
likely future trading returns under given conditions through stochastic
simulation. However, as with any system that aims to make predictions
about the future, there is no guarantee that any demonstrated
forecasting success or trading performance will remain the same in the
future. The user should be aware of this and consider the risks and
potential rewards of every investment or trading decision on its own
merits. See also this Important
Information.
See the Example Models page.
Click on the "Performance" tab below the Charts window or open the Performance Window through the "View" menu. The Performance Window should now be showing. A "Settings" button
in the top-left corner allows changing the calculation period and other
settings. For more information, see the
User's Guide.
To evaluate the forecasting accuracy of a model, several indicators are provided.
For example, the Forecast Directional Accuracy (FDA) measures the percentage of bars
for which the price change direction was forecasted correctly. More about this
and other indicators is explained in the
User's Guide.
Adaptive Modeler only forecasts one bar ahead. This way the most recent
market price data is always available to the agent-based model when
calculating a forecast. Therefore, a market crash or bubble (or a new
trend) can only be
anticipated bar by bar as it unfolds. The effect of forecasting multiple
bars ahead could be imitated by evolving a separate model using a longer
quote interval.
The results of different runs (separate model evolutions using the same quote data and model parameters) can still vary because of random factors inherent to agent-based modeling and genetic programming. Random numbers are for instance used in the creation and evolution of trading rules. (Note that to recreate a model exactly it is necessary to use the same quote data, the same model parameter values, the same random seed value and the same version of Adaptive Modeler. Model evolution may also vary slightly across different CPU types, OS versions/settings and .Net runtime versions because of small floating point calculation differences).
For a more complete analysis of the potential performance of a given combination of quote data and model parameters, it is recommended to do a number of runs to see the variation in performance indicators.
For more information about the creation of trading rules through
genetic programming and running multiple model evolutions, see the
User's Guide.
Adaptive Modeler is primarily designed for active trading of stocks or stock indices (i.e. using futures or ETFs) with sufficient volatility and small spreads. Other securities such as forex currency pairs or commodities can also be used as in principle Adaptive Modeler can process any sort of time series.
In general however, the volatility on the used quote interval must be high enough to cover transaction costs (broker commissions, spread and slippage). If not, (simulated) trading performance will be poor even with high forecasting accuracy. For instance it will be more difficult to achieve good performance with a 1-minute interval than with a daily interval because the 1-minute price changes may be too small to cover transaction costs. This means that the break-even forecast success rate for a 1-minute interval is higher than for a daily interval.
Which securities can be forecasted best has not been extensively
researched by us. Many different stocks, ETFs, forex currency pairs,
commodities and other securities are being traded on financial markets
around the globe. Also, several different quote intervals could be used
for each of these securities. Different securities and quote intervals
may require different model parameter values. We don't extensively
explore the search space of combinations of security, quote interval and
model parameters to prevent unintended optimization (overfitting) of the
internal design of the agent-based model to historical market data.
There is no general answer to this. Some parameters clearly depend on
the quote data being used. For other parameters, the default settings
may be a good starting point but experimentation is strongly
recommended. No person or team alone can ever explore all the possible
parameter value combinations for all the quote data of different
securities and intervals. As said earlier, we don't extensively explore
the search space of all possible parameter values to prevent unintended
optimization (overfitting) of the internal design of the agent-based
model to historical market data. Therefore the default parameter values
are unlikely to be the best values for all cases.
Customizing the parameters to the specific quote data being used
includes things like:
- on the General tab; setting the right Market Trading Hours
- on the Model tab; entering the right Rounding
settings
- in the Gene Selection; enabling/disabling the open,
high, low, bid, ask genes (depending on which
data is included in the quote file and whether or not agents should see
it; note that high and low prices are sometimes considered unreliable
because of false spikes)
- in the Gene Selection; enabling/disabling volume related genes
(depending on whether or not volume data is included in the quote file
and agents should see it)
- on the Trading System tab; entering realistic transaction costs
(broker commission, spread and slippage) and your personal trading
preferences
- etc.
This depends on factors such as volatility, transaction costs and other
Trading System parameters. In general, it should at least be above 50%.
Then the forecasted direction of price change per bar is more often
right than wrong. With the Statistical Simulation data series it
is possible to project the potential returns based on expected values
for FDA, FDS, volatility, transaction cost and other Trading System
parameters. See the User's
Guide sections about Statistical Simulations for more
information about this.
Yes. On the Trading System tab in the "New/Edit Model" dialog,
check "Apply FDA filter" and enter the desired threshold value. The FDA
calculation settings can be changed by clicking on the "FDA settings..."
button.
A trading signal remains valid until a new signal is given. For more
details on how trading signals are being generated, see the Trading
Signal Generator section in the
User's Guide.
If your models are not profitable even though the Forecast
Directional Accuracy (FDA) is clearly above 50% on average, then the
bar-to-bar price changes are probably too small to cover transaction
costs (broker commissions, spread and slippage). For small price
changes, FDA needs to be higher to reach break-even than for bigger
price changes.
To increase FDA, try experimenting with other model parameters. If this
still doesn't work, then consider using a longer quote interval.
By default, Adaptive Modeler uses the Virtual Market Price as the forecast. Optionally, the forecast can also be based on the Best Agents Price. This feature is useful since it allows a comparison between the predictive abilities of the Virtual Market Price (which is based on the behavior of all agents) versus that of the Best Agents Price (which is based only on a group of the best performing agents).
Since an essential principle of Adaptive Modeler is to use the Virtual Market Price as the forecast, it may be interesting to see whether or not this in fact outperforms a forecast based on the behavior of only the best performing agents (which may seem more intuitive to some people and more in line with methods generally used by trading software).
As far as we have observed, the Virtual Market Price almost always
performs better than the Best Agents Price. However, this may not be the
case in all situations. Experimenting is recommended. Note that the
accuracy of both forecasts can easily be compared by showing two FDA
data series together in one chart and setting the source parameter of
one data series to the Virtual Market Price and the other to the Best
Agents Price. Also note that the Best Agents group size can be changed
on the Model tab of the "New/Edit Model" dialog.
The Professional Edition allows population size of up to 100,000 agents.
The Standard and Evaluation Editions allows population size of up to
2,000 agents.
Each agent has its own (technical) trading rule. The trading rules can use historical price and volume data as input and return an "advice" consisting of a desired position to hold in the security and an order limit price for buying or selling the security. The internal logic of the trading rules consists of various functions such as price and volume data access functions; average, min, and max functions; logical and comparison operators; and some basic Technical Indicators. In most cases, agents are technical traders.
The trading rules are created by and evolve through a special adaptive form of genetic programming. For more information about this, see the User's Guide.
It is also possible to simulate "zero-intelligence" trading by using
the RndPos and RndLim genes. With these genes the position advice and
order limit price are established randomly. This could be interesting
for comparison purposes. (To simulate complete zero-intelligence
trading, select only the genes "advice", "RndPos" and "RndLim"; disable
"Create unique genomes"; disable breeding by setting "Breeding cycle
frequency" to 1,000,000; set "Broker Commission for agents" to zero).
Through an evolutionary breeding process, agents with poor performance are regularly being replaced by new offspring agents. The trading rules of these new agents are being created through crossover of the trading rules of the best performing agents. This way (parts of) trading rules that perform well are reproduced and recombined while poor performing trading rules are being removed. This way, the population of trading rules as a whole attempts to adapt to changing market behavior. So the population is adapting rather than learning, as market behavior is dynamic.
Technically speaking, agents themselves don't adapt or learn since
their trading rule doesn't change during their lifetime. (Trading rules
only "change" by the replacement of old agents and their trading rules
by new agents with new trading rules).
Agents in Adaptive Modeler currently do not directly communicate with
each other. Agents are not connected in any network topology nor do they
swarm. This is still being researched. Of
course agents indirectly exchange information through the Virtual
Market.
No different types of agents have explicitly been defined in Adaptive
Modeler. So there are no specific agents defined for giving buy or sell
signals, no broker or market maker agents, no long term or short term
agents, etc. However, agents all have their own trading rule directing
their trading behavior in different ways. Therefore, groups of different
types of agents (in terms of their trading behavior) may emerge through
evolution. This can be observed with agent distribution data series that
reveal trading style characteristics such as Trade Duration
Distribution, Volatility Distribution and Beta Distribution (either in
distribution charts or in the Population window). For more details, see
the User's Guide.
The Virtual Market is a simulated double auction market where all buy
and sell orders from agents are collected. Every bar, after all agents
have evaluated their trading rule and placed their order, the clearing
price is calculated. The clearing price is the price at which the
highest trading volume can be matched. All matching orders are then
executed at the clearing price. For more details, see the
User's Guide.
Yes. In the Agent-based model, the Virtual Market clearing prices are based on the order limit prices of the agents. Because of the volume weighted clearing price calculation mechanism, an agent offering a higher bid price increases the chance of its buy order being executed and thereby having an increasing effect on the clearing price (vice versa for sell orders).
Price impact may also be an issue in the Trading Simulator when
(simulating) trading by amounts that may affect the real world market
price of thinly traded securities. In this case price impact can be
taken into account with the slippage parameter (on the Trading
System tab of the "New/Edit Model" dialog).
Adaptive Modeler calculates a new forecast every bar. The forecast is normally based on the Virtual Market price. This is the clearing price of the Virtual Market calculated using the volume weighted pricing mechanism that includes all agent orders. The forecast is therefore based on the buy and sell orders of a large number of agents. As explained elsewhere, the forecast can alternatively be based on the Best Agents Price.
After every new forecast the Trading System determines if a new
trading signal (long, short or cash) needs to be given based on the
forecast, the last known security price and the Trading System
parameters. A new trading signal will only be generated when the new
suggested position differs from the last generated signal. For more
details on how trading signals are being generated, see the Trading
Signal Generator section in the
User's Guide.
Yes. There is no difference in the way historical quotes and new quotes
are being processed. The model keeps evolving with every new quote. (The
Evaluation Edition processes recent quotes with a delay of a few days).
When a model has reached the end of the quote file, the forecast for the next bar has already been calculated. The forecast is shown in the Current Values window (if not, drag the Forecast dataseries from the Data Series window into the Current Values window). The trading signals can be seen in the Trading Signals window. The most recent signal is at the bottom of the list.
When a new quote is added to the quote file, it will automatically be
read by Adaptive Modeler. The model will then evolve one step further
and a new forecast (and trading signal if necessary) will be calculated.
(The Evaluation Edition processes recent quotes with a delay of a few
days).
No. In fact, there are no "training" or "operational" phases in Adaptive Modeler. There is no difference between the way the model processes historical quotes and the way it processes new quotes. The model keeps evolving with every new quote that is added to the quote file. A model does not first repeatedly train or optimize on historical data. Every quote bar is experienced (traded on) only once by the agents.
Since it is possible to switch the Trading Simulator on and off, it
could be said that an "operational" or "trading" phase starts when the
Trading Simulator gets started. However, this has nothing to do with the
evolution of the Agent-based model or the calculation of forecasts. The
Trading Simulator and the generation of trading signals has no effect on
the Agent-based model.
Yes. If you use intraday market data, then intraday trading signals will be generated.
(The Evaluation Edition processes recent quotes with a delay of a few
days).
Adaptive Modeler gives trading signals for entering and exiting Long and/or Short
positions based on the direction of bar-to-bar forecasts. (Short positions are optional.
The "Cash" signal indicates exiting any Long or Short position). The Trading Simulator
uses these signals to enter Long/Short positions for 100% of total equity (wealth).
Positions are held until the next signal is given. Some parameters are available to specify how forecasts are translated into signals such
as Allow Short Positions, Significant Forecast Range and
FDA filter. These can be found
on the Trading System tab of the Model parameters dialog. To use Adaptive Modeler's
forecasts and signals for other specific trading strategies, forecasts and signals (and
other data) can be exported for further processing by other applications.
Adaptive Modeler attempts to predict the direction of the bar-to-bar price changes.
Since in most financial markets this direction typically changes frequently (almost every bar), new signals are usually generated frequently. By changing the Significant Forecast
Range (on the Trading System tab of the Model parameters dialog) too small and/or too large
forecasted price changes can be ignored. Also an FDA filter can be used, to only generate
trading signals when Forecast Directional Accuracy is above a given threshold. If you want
to use other strategies or filters for processing forecasts into trading signals or for
post-processing the signals, then Adaptive Modeler's forecasts, signals and other data
can be exported for further
processing into trading signals by other applications.
The Trading Simulator executes simulated trades at the closing price of the last
received bar
(or last tick price), adjusted by the spread and
slippage values specified in the Trading System parameters. When in
reality it is not possible to trade at the closing price (for example when using daily quotes and
there is no after-hours market), the slippage parameter can be used to account for an average
expected price change from the closing price to the next opening price.
See Does Adaptive Modeler support order routing to online brokers?
See What quote intervals are supported?
It is not possible to directly edit an agent's trading rule. It is
however possible to influence the creation of trading rules through
genetic programming by specifying what functions ("genes") are to be
included/excluded and by changing size and depth limitations of the
trading rules. To do this, go to the "Genomes" tab of the "New/Edit
Model" dialog.
This is not possible. If agents would be able to use trading logic
written in an external (unknown) language, genetic operators such as
crossover and mutation could not be applied anymore. Also the control
and calculation of genome statistics would become problematic.
No, these selection criteria can not be changed currently. For more
information on how the selection criteria (the Breeding Fitness
Return and the Replacement Fitness Return) are calculated,
see the User's Guide.
This is not yet possible but being considered for future versions.
Adaptive Modeler currently creates "single security" models. So only one
security can be forecasted by a particular model.
Yes. This is possible through the Batch function (from the
"Tools" menu).
Any quote data that meets Adaptive Modeler's quote data format
requirements can be fed into Adaptive Modeler but no specific
functionality is included for futures, options or other derivative
instruments.
Adaptive Modeler forecasts one bar (or tick) ahead. There is always only
one forecast, and that forecast is intended for the next bar (or tick).
The effect of forecasting multiple bars ahead could be imitated by
creating a separate model that uses a longer quote interval.
Yes. All data series (including forecasts and trading signals) can be
exported to a CSV file (comma separated values) using the Export
function from the "Tools" menu.
After exporting data to a CSV file, the CSV file can be opened or
imported with Microsoft Excel or any other program that can read CSV
files.
No, Adaptive Modeler does not connect with databases.
Adaptive Modeler does not support automatic order placement with online
brokers. By exporting trading signals to CSV file, orders could
automatically be generated and sent to a broker by another application.
No, this is not possible. However, it is possible to import .CSV quote
files exported by MetaTrader4 into Adaptive Modeler.
No, this is not provided.