Let's continue our journey in our current heuristic, always keeping in mind our objective.
As new prices arrive, the algorithm responds with trading actions. These trading actions result in new players, or in closing some of the open players. In any case, the player cloud
evolves in time, in response to the incoming prices.
We identify
4 "phases" for the evolution of
each of the 2 player Sell/Buy player subsets. These 4 stages are called:
SCALPING-LOADING
HEDGING-PROTECTING
SCALPING-REVERSING
HEDGING-REALIZING
Let's make immediately an example of such an evolution. Assume you start with a Sell player. In such a case the Sell-Player subset will be in the phase "
Scalping-Loading". The player itself will be a "Scalping-Loading" Sell player.
Now imagine we continue adding more sell players. These would would also be "Scalping-Loading" Sell players. Now since the application at any time wants to keep bounded the difference between the sell and buy averages, it will start new Buy players. In such a case the Buy-Player subset will be in the phase of "Hedging-Protecting". So we are in a phase which looks like: SELL side: "
Scalping-Loading", BUY side: "
Hedging-Protecting".
As time progresses, various things can happen, including an "inversion" of position (buy-player position will exceed sell players. For sake of example, imagine that after a few of these protective Buy players, the price starts reversing. In such a case we may switch to another phase, like: SELL side: "
Scalping-Reversing" ,BUY side: "
Hedging-Realizing".
So, as the player cloud evolves we can see various
combinations of the buy/sell phases.
For the moment, let's skip the technical details on how these phases are triggered, and let's assume for now the notion at an "intuitive" level. "
Loading" and "
Reversing" should be enough self descriptive. "
Protecting" is also quite intuitive and denotes players which are intended to "protect" an opposite side which is currently losing. "
Realizing" is a variant of the protecting mode, when the price is not actually running away, but there is still need to contain the other losing side. This component would capture the many moves and "retreats" which happen during a price reversal.
For each of the different phases, a new player will follow a different
a set of rules with different parameters. For ease of use (and implementation), the set rules have all the
same general structure for all phases: what changes is the actual values of the
parameters of each rule, which are set up by the fund manager. The rules govern both the open and close of a player, defining completely its behavior. An example of such a set of
rules is as follows (we will examine these rules one by one, in the next posts) is the following:
In addition to these rules which apply to a given player in a given phase, there are also the so called "overrides", which are optional behavior overrides, to be possibly triggered under special conditions. We will see these later on.
The picture is completed by additional rules which serve the purpose to govern
general aspects and the
interdependence between players.
Finally there are possible
position constraints, which are useful for "biased" games (eg., instruments with obvious drift) to adjust the game behavior to real world features of actual instruments. These constraints are currently part of the
layer settings (that is instrument-specific settings), which we will examine in detail later on.
A
real world example of these phases in action is the following (current situation of GDXJ). Top image shows open players, bottom image shows all orders, including closed players. You can see in the top image those open buy players (blue squares) which have remain "stranded", and
could not close. While in a common approach they probably would have been "
stops", in our approach they are well "alive" players which will be "reused", when protection is needed, they are
kept in consideration to
size the
new "reversing" sell players (
use of past trading information), and, most importantly and they can also be possibly closed in profit in future ("
loss recycling"), thus contributing to the PNL "drift".