ATS Swarm Adapter Add-Ins for Dakota 3

The ATS Swarm Adapters for BioComp Dakota 3 extend the set of swarm adaptation algorithms that are installed with Dakota 3. Swarm adapters control the movement of trade bots within the adapted parameter space. The goal of a swarm adapter is to move the trade bots into the most profitable region within the parameter space. In academia, this is described as particle swarm optimization in a dynamic environment. Changing a trade bots adapted parameter values is equivalent to moving the trade bot within the parameter space.

The bot trading rules and related adapted parameters are defined by the signal generator. All trade bots within a given swarm are based on the same signal generator. An example of an adapted parameter is the period of a stochastic oscillator. A minimum and maximum value for the oscillator period is set in the signal generator. The swarm adapter will update the period of each bot within the swarm when a new data record is processed. The new value is likely to be different to the previous value, although this is not necessarily the case. The assigned value for the stochastic oscillator period is constrained to be greater than or equal to the minimum value and less than or equal to the maximum value as defined by the signal generator.

Swarm adapters use information such as:

  • Each trade bots historical performance over a moving lookback window. The Bot Performance add-ins compute performance of each bot as each new data record is processed.
  • Each bots current parameter values.
  • The current velocity of the bot within the parameter space.
  • The positions of the best n performing bots either in the entire swarm or within some distance of the bot being processed.

For example, a flocking algorithm will modify each trade bots parameter values so that they move toward the best performing bot in the swarm. Different swarm adapters will potentially use different information and apply different rules to determine the movement of each trade bot within the bot parameter space.

To use an ATS Swarm Adapter, expand the Adapter node on the Swarm tab within Dakota 3 and select one of the ATS Swarm Adapters as pictured below.

ATS Swarm Adapter Add-Ins for Dakota 3

ATS Swarm Adapter Add-Ins for Dakota 3

 

The ‘… Adapted’ swarm adapters modify properties of the bot such as the Velocity Factor and Convergence Rate in response to bot performance as computed by the selected Bot Performance add-in. All of the adapted swarm adapters have a parameter named Performance Threshold. The Performance Threshold should be set to a number that would be considered to be a good performance level given the chosen Bot Performance add-in and performance Lookback Period of the Bot Performance add-in. For example, if the selected Bot Performance add-in was the PropOfPerfect and the Lookback Period was 50 then an appropriate setting for the Performance Threshold would be 0.25 which corresponds to 25% of perfect trading. By contrast, if the Bot Performance add-in was the WinLossRatio then an appropriate setting for the Performance Threshold would be 2.0.

The non-adapted swarm adapters either do or can adapt to some degree. The nature of the adaptation is like a switch, either on or off and usually depends on the performance of the best bot in the swarm. If the performance is negative then the bots will tend to explore the adapted parameter space rather than converge on the positions of the better performing bots. The non-adapted swarm adapters are not necessarily inferior, they may be more suitable for the particular Signal Generator and Security that you are using.

We’ll have a look at a couple of the swarm adapters to get an idea of what parameters are involved and how they work.

The Localized ZBoid swarm adapter minimizes bot collisions within the adapted parameter space while moving each bot towards a combination of the best outperforming neighboring bot and the recently acquired personal best position.

Localized ZBoid Swarm Adapter Parameters

Localized ZBoid Swarm Adapter Parameters

Parameter descriptions for the Flocking ZBoid swarm adapter follow.

Velocity Factor: The Velocity Factor determines how much a given trade bots previous velocity within the parameter space contributes to the bots new velocity during the adaptation process.

Convergence Rate: The Convergence Rate is the rate at which trade bots converge toward the position of the best bot in the swarm.

Shell Radius: The Shell Radius is used to avoid bot collisions within the adapted parameter space. You can think of it as a ‘soft’ shell that is used to repel other trade bots that move within the Shell Radius. The Shell Radius is a normalized Euclidean distance.

Neighborhood Radius: If the normalized Euclidean distance between 2 bots is less than or equal to the Neighborhood Radius then the bots are considered to be neighbors.

Noise Level: The Noise Level is the maximum amount of noise that is added to each trade bots new velocity when updating the bot positions. The value is a proportion of the parameter range.

Enable Scatter: The trade bots will move toward their original positions if Enable Scatter is set to True and the performance of the best bot is less than zero.

Enable Mutation: If Enable Mutation is set to True then the adapted bot parameter values will be randomly mutated.

Mutation Rate: The Mutation Rate is the probability that a given adapted parameter value will be mutated when the bot positions are updated.

Limit Velocity: If Limit Velocity is set to True then the amount that the adapted parameter values can change by is limited during the swarm update procedure.

Max Velocity: The Max Velocity is the maximum amount that adapted parameter values can change by during the swarm update procedure. It is entered as a proportion of the parameter ranges.

Enable Smoothing: If Enable Smoothing is set to True then a record each bots smoothed adapted bot parameter values will be kept. Bots will then flock toward the smoothed parameter values rather than the current position of the top performing bots. Personal best bot positions will also be the smoothed values rather than the actual position of the bot at the time the recently acquired best performance was achieved.

Smoothing Period: The period of the exponential moving average used to smooth the bot parameter values should Enable Smoothing be set to True.

Exclude Bottom N: The worst N performing bots signals will be ignored.

Exclude Top N: The best N performing bots signals will be ignored.

The Formation Flocking swarm adapter encourages trade bots to maintain similar relative positions to one another while moving all trade bots towards the best n performing bots in the swarm.

Formation Flocking Swarm Adapter Parameters

Formation Flocking Swarm Adapter Parameters

Parameter descriptions for the Formation Flocking swarm adapter follow.

Velocity Factor: The Velocity Factor determines how much a given trade bots previous velocity within the parameter space contributes to the bots new velocity during the adaptation process.

Convergence Rate: The Convergence Rate is the rate at which trade bots converge toward the position of the best bot in the swarm.

Noise Level: The Noise Level is the maximum amount of noise that is added to each trade bots new velocity when updating the bot positions. The value is a proportion of the parameter range.

Leader Count: The Leader Count is the number of top performing bots in the swarm that the other bots will move toward. The global best position is computed by averaging the positions of the top N performing bots.

PSO Algorithm: The PSO Algorithm is the particle swarm optimization algorithm that determines how bot positions will be updated. The available PSO algorithms are Constricted and Standard.

Enable Scatter: The trade bots will move toward their original positions if Enable Scatter is set to True and the performance of the best bot is less than zero.

Enable Mutation: If Enable Mutation is set to True then the adapted bot parameter values will be randomly mutated.

Mutation Rate: The Mutation Rate is the probability that a given adapted parameter value will be mutated when the bot positions are updated.

Limit Velocity: If Limit Velocity is set to True then the amount that the adapted parameter values can change by is limited during the swarm update procedure.

Max Velocity: The Max Velocity is the maximum amount that adapted parameter values can change by during the swarm update procedure. It is entered as a proportion of the parameter ranges.

Enable Smoothing: If Enable Smoothing is set to True then a record each bots smoothed adapted bot parameter values will be kept. Bots will then flock toward the smoothed parameter values rather than the current position of the top performing bots. Personal best bot positions will also be the smoothed values rather than the actual position of the bot at the time the recently acquired best performance was achieved.

Smoothing Period: The period of the exponential moving average used to smooth the bot parameter values should Enable Smoothing be set to True.

Exclude Bottom N: The worst N performing bots signals will be ignored.

Exclude Top N: The best N performing bots signals will be ignored.

Kind Regards,

James

Leave a Reply

Your email address will not be published. Required fields are marked *