Synthetixio / simulation

Agent-based model of the proposed stablecoin.
24 stars 18 forks source link

Dynamic population adjustment by profitability #42

Open zyzek opened 6 years ago

zyzek commented 6 years ago

Agents shouldn't keep on performing the same strategy if it's losing them money. On the other hand, they should also keep a lookout to see if there's anything more-profitable they could switch to.

Agents should be somewhat loyal to their existing strategy to prevent jitter. Maybe different agents can have different timeframes they expect to be profitable over, or different appetites for risk and volatility. Agents should switch strategies stochastically and with a probability in proportion with the profitability different between their current strategy and any potential rival strategy.

Profitability will be directly measured over different timeframes for each population of agents. Someone should always be engaging in each strategy as a bellwether for it, so that there are always profitability metrics available -- but perhaps they only need to trade in infinitesimal quantities if the profitability is measured in percentages.

This might also extend to increasing demand for the system by new players who previously had no strategy at all, allowing an influx of new capital.

I'm not sure that mesa can handle floating population levels so perhaps at some point if agents want to change strategies then either the strategies needs to be abstracted out from MarketPlayers, or each agent should have a wrapper so that different agent classes can swap in and out.

This should be optional/switchable so that #26 can still work.