# On Deep-Fake Stock Prices and Why Investor Behavior Might Not Matter
## 3 Methodology  
We propose a Boolean Network model with 32 agents. The agents trade only one asset. In each iteration, each agent can be in three different states or positions. Long (1), that is, buying; do nothing, or hold (0), that is, neither buying nor selling; and short (\(-\)1), that is, selling. The existing pattern of individual positions gives the configuration of the system at any given point in time. The dynamical law or the rule for updating the status of agents is synchronous, local, and universal. The status of all agents is updated at the same time, during each iteration. All agents use the same status-updating rules. The rules are local and represent variations of [PERSON]'s Cellular Automata rules [63; 64], in particular Rule 110. Rule 110 is an elementary cellular automaton that describes the status of a cell across several iterations based on the status of its immediate neighbors. The outcomes of this rule are 01101110, which is the binary equivalent of 110. Our agents rely only on the status of the nearest neighbors to the right and left. An exemplification of one of the rules used here is graphically represented in Figure 1.  
At t = 1, the agents are initialized. We have also experimented with restricting selling at the very beginning, but we found the results were not sensitive to the initial conditions; other things held constant. An example of the emerging pattern of buying, holding, and selling is presented in Figure 2.  
Figure 1: An example of updating rules derived from [PERSON]’s Rule 110. We define the Net Current Position (NCP) at each iteration as the sum of individual positions:  
\[\text{NCP(t)}=\text{SUM[Position(i)]}\text{, where i = 1 to 32}\]  
We define the Change in the Net Current Position (t) as the difference between two consecutive Net Current Positions:  
\[\text{Chg.NCP(t)}=\text{NCP(t)}-\text{NCP(t-1)}\]  
\[\text{CumNP(t)}=\text{NCP(t)}+\text{CumNP(t-1)}\]  
We define the Long-to-Hold and Short-to-Hold ratios as:  
\[\text{LTH(t)}=\text{Number of long positions(t)/Number of hold positions(t)}\]  
\[\text{STH(t)}=\text{Number of short positions(t)/Number of hold positions(t)}\]  
The price is estimated with the help of three alternative recurrent formulas. \[\text{P}_{1}(t)=\text{P}_{1}(t-1)[1+\text{NCP(t)/k}_{1}\text{Chg.NCP(t)}]\]  
\[\text{P}_{2}(t)=\text{P}_{2}(t-1)[1+\text{Chg.NCP(t)}+\text{Chg.NCP(t-1)/k}_{2} \text{NCP(t-1)}]\text{k}_{3}\]  
Figure 2.0  
where k\({}_{1}\), k\({}_{2}\), k\({}_{3}\), k\({}_{4}\), k\({}_{5}\), and k\({}_{6}\) are constant parameters. The choice of formulas and parameters is to a great extent arbitrary. The only constraints are that the price is self-referential and that it represents some function of the number of long and/or short positions and/or of their change. The price represents a recurrent linear transformation that transforms the Nx32 matrix, representing the overall configuration of the system over N iterations, into a Nx1 vector, representing the asset price over N periods. Figure 2.1 An example of system configuration emerging from combining updating rules with initial conditions. The first row represents the initial conditions of the 32 agents, and for this reason the buy position is coded in dark blue instead of black. We also build optional market squeezes into our model. When activated, we constrain the position taken by each agent based on accumulated cash balances. Market squeezes always override the dynamical law. A short squeeze can be triggered when the cash balance is larger than a critical value parameter that is part of the initial conditions. When a short squeeze occurs, the agent must take a long position, that is, buy in the next iteration, regardless of its neighbors' positions. This is so because large positive cash balances accumulate as a result of a long-term imbalance between the number of times the agent has been selling as opposed to buying.