I wrote a simple program to model a market with 4 trader strategies (screenshot included): 1. Fundamental analysis 2. Trend followers 3. Counter-trend followers 4. Noise traders (to maintain market activity) The strategies are simple but each trader (500 in this example) has a different threshold for when to buy, when to take profit, and when to sell at a loss within their general strategy. The result is often unexpected price patterns (the price moves based on the balance of trade). One interesting scenario is when all participants are fully invested in the stock (including fundamental analysts). It will peak, dip a bit, get a second wind from the counter-trend traders, then the market will fail completely and drop like a rock. No matter what the paper value of the traders, when the money runs out the stock cannot maintain its price. This result relates to economic principles as well as how people balance their portfolio by redistributing assets. The example is a bit extreme, but it can help to explain general market cycles in terms of capital distribution. Another scenario is a volatile/illiquid market (I increase the price response to trade imbalances). The trend traders invest heavily when this occurs, making the bubble worse. Although fundamental analysts normally won't chase this beyond a certain point, large fund investors and others certainly do in the real markets. Greed creates the bubble, and fear causes the crash. I can model more specific strategies if anyone would like to give suggestions on what to put against each other. It would be interesting to see what general strategy works under what conditions. I can also probably model limit orders and market microstructure if I can get something more specific.