Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dynamic population adjustment by profitability #42

Open
zyzek opened this issue Oct 22, 2017 · 0 comments
Open

Dynamic population adjustment by profitability #42

zyzek opened this issue Oct 22, 2017 · 0 comments

Comments

@zyzek
Copy link
Contributor

zyzek commented Oct 22, 2017

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants