Adaptive Modeler is a software application for creating agent-based market
simulation models for price forecasting of real world stocks, ETFs or
other market traded securities.
Simply said, an agent-based model is a bottum-up computer simulation of many people and/or organizations interacting in
some environment, in order to see their collective effects. For more about this
and how we make use of it,
please see the Technology section.
This is explained in the Product >
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
knowledge sharing between users and valuable feedback. This is also
beneficial for the further development of Adaptive Modeler. The
Evaluation Edition delays the processing of recent quotes and can
therefore not be used for actual trading.
The Evaluation Edition automatically expires one and a half year
after the version release date. However, under current policy, users can
then download and install the latest version of the Evaluation Edition
and continue their use.
Yes. The Professional Edition is intended for traders, investors and other professional users. It offers more features, more computing power and real-time forecasts and trading signals (see Compare Editions).
There is also a Standard Edition that offers the main functionality
including real-time forecasts and trading signals.
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
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
Currently Adaptive Modeler requires the Microsoft .Net runtime (version
3.5 or higher).
1. Download Adaptive Modeler from the download page
of the Altreva website (Evaluation Edition) or from the personal download link provided
by Altreva Support (Standard and Professional Edition). In either case, 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 3.5 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.
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. Also, a sufficient number of quotes needs to have been processed
for demonstrated forecasting performance to be statistically
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
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 and processes new quotes as soon as they
have been added to the quote file (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
then 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 contact
Support 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 accuracy 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.
We do not provide performance information of 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 do not want 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 would be largely irrelevant to users since they would not be able to use those particular models nor is there any reason to expect that those models would be the best possible models that could be created with Adaptive Modeler. Obviously, there are many different combinations of securities, quote intervals and model parameter settings. The vast majority of these combinations have not been explored by us. In order to prevent (unintended) optimization (overfitting) of the internal design of the agent-based model to historical market data, we do not extensively or systematically explore the search space of combinations. It is therefore likely that combinations of security, quote interval and model parameters exist with better performance than known to us.
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 the use of random numbers 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 accuracy of
previous forecasts and trading signals. Adaptive Modeler contains a
Trading Simulator with a Performane Overview showing various return/risk
indicators, sub period statistics and trades 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
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
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
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
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 Microsoft .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
Adaptive Modeler is primarily designed for active trading of stocks or stock indices (i.e. using ETFs or futures) with sufficient volatility and small spreads. Other securities such as forex currency pairs or commodities may also be used since in principle Adaptive Modeler can process any kind of time series.
In general, 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 using a 1-minute interval than using a daily interval because the 1-minute price changes may be too small to cover transaction costs. This means that the break-even forecast accuracy level for a 1-minute interval is higher than for a daily interval.
We have not extensively researched which securities can be forecasted best. 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. In order to prevent
(unintended) optimization (overfitting) of the internal design of the
agent-based model to historical market data, we do not extensively
or systematically explore the search space of combinations of security, quote interval and
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 do not extensively or
the search space of all possible parameter values, in order 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 bid and ask also apply to the Virtual Market; 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)
- in the Gene Selection; enable/disable genes related to custom input variables (depending on whether or not these are included in the quote file and whether or not agents should be able to see them)
- on the Trading System tab; entering realistic transaction costs (broker commission, spread and slippage) and your personal trading preferences
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 bar-to-bar price changes 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 "Model
check "Apply FDA filter" and enter the desired threshold value. The FDA
calculation settings can be changed by clicking on the "FDA settings..."
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
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
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 "Model Configuration" dialog.
The Professional Edition supports a population size of up to 100,000 agents.
The Standard Edition supports 10,000 agents and the Evaluation Edition 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 strongly typed 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 can be useful 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. These new agents each get a trading rule that is created through crossover and mutation 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 and also through the breeding process.
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
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 "Model Configuration" 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
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
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
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. Because signals tend to switch frequently,
Adaptive Modeler is suitable for day trading or swing trading strategies amongst others.
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 Configuration 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 Configuration 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
(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.
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 "Model
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.
The selection criteria for breeding and replacement are the Breeding Fitness
Return and the Replacement Fitness Return. These can not be
changed currently. It is possible however to change the method of
selecting the best agents for breeding. This can be either truncation
(default method, maximum selection pressure) or tournament
(adjustable selection pressure).
Yes, in the Professional Edition agents can use data of up to 100 additional
input variables that are included in the quote file. This can be any
data that could help forecasting such as fundamental data, economic indicators, other price series or custom technical
indicators. See the section Custom input variable in the
User's Guide for how to
set this up.
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
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
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
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.