Agent-Based Financial Economics


Agent-based financial economics is an interdisciplinary master-level course for economists and computer scientists offered by the department of Banking & Finance of University of Zurich. It is worth 3.0 ECTS credits and counts as BF4, ECON2, or more generally as OEC/WWF course for University of Zurich students, and as elective course for computer scientists from ETH.

Agent-based financial economics is a controversial but also promising modeling methodology that thrives best when combining economics knowledge with sound software engineering. Step by step, we create a large-scale economic simulation by introducing new and increasingly sophisticated agents (consumers, firms, funds, etc.), comparing the simulated outcomes with the equilibria known from classic economic theory. These agents are implemented by interdisciplinary teams with students from economics, finance, and computer science. The fitness of the economic agents is tested in a competitive setting. Due to the complexity of the simulation, agents will likely have to resort to behavioral heuristics. The interesting question is: will the invisible hand succeed in guiding them towards the efficient outcome anyway?

As a computer science student, you will get to learn the basic mechanisms of our economy and the financial markets, while applying your software engineering skills. As a economics or finance student, you will get a new, constructive perspective on economics and learn how to structure large-scale simulations in object-oriented programming.

Lesson 1: The Hermit

Here are the slides of the first lesson. Please follow these instruction on how to install the required software on you computer in order to solve the first exercise.

Lesson 2: Programming

In this lesson, we are making sure the simulation environment is properly setup for everyone and provide some programming basics so everyone is equipped with the tools and knowledge to solve the first exercise. (slides)

Lesson 3: Monetary Economy

Here are the slides of the third lesson, as well as exercise 2. This time, we will experiment with money supply and see what effect printing and distributing money has on the simulation.

Lesson 4: Adaptive Behavior

In lesson 4, we look at how methods from agile software engineering can help with agent-based modeling. The slides discussing the previous exercise can be found here. Exercise 4 can be found here and the online simulation here.

Lesson 5: Demographics

In lesson 5, we have a look at the World3 model and discuss the previous and next exercise. (slides).

Lesson 6: Stocks


Lesson 7: Market Making


Lesson 8: Leverage

In lesson 8, we have a look at a well-known leverage model (slides) using a Jupyter notebook. Furtheremore, here is the template for the final presentations.

Lesson 9: Learning


Recurring Themes

Emergence: how do the micro-properties of a system shape its macro-characteristics? When is the whole more than the sum of its parts? Evolutionary finance: what strategies do survive in the long run and how do evolutionary dynamics impact the macro outcome? Heuristics: Are there simple heuristics based on local information that allow agents to perform similarly well as agents with rational expectations and perfect information? Chaos: even simple system can exhibit chaotic behavior. Complexity: how can software engineering help in managing the complexity?


Farmer and Foley published a nice motivational article on why we need agent-based modeling in the well-known journal Nature. A list with some classics from the literature on agent-based economics can be found on Leigh Testfatsion's site. Another early and notable economic model is MOSES by Gunnar Eliassion, which served as a basis for various Swedisch economic policy decisions. The biggest effort so far to build a large-scale agent-based economic models is the European Crisis Economics project. Generally, literature will be provided during the course as needed. We will stick closer to classic general equilibrium models than other contemporary agent-based models, similar to like I previously did in this publication. Some fundamental thoughts on the role of computational complexity in social sciences can be found in the excellent article Why Philosophers Should Care About Computational Complexity by Scott Aaronson. A more hands-on article by myself is The Code is the Model, in which I apply the insights of agile software development to agent-based modeling.


There is no exam. Grades are based on exercises as well as a short presentation in the end. Computer scientists present the economic aspects of their findings, whereas economists will present the software engineering view.


If you want to attend this course, please fill in this form before the first lecture. Do not forget to also register in the UZH module booking system in time, whereas ETH students first need to register here following the instructions for module mobility like this (warning, the level of beraucracy that needs to be overcome here is not for the faint-hearted and seems to increase every year). For ETH students, credits will automatically be transferred to the ETH booking system once the semester is over.

Teams will be formed during the first lecture on September 20nd. The course takes place on Fridays from 14:15 to 15:45 at KOL-F-123, in the main building of University of Zurich. In case you have questions, feel free to get in touch with me by writing to .

Register Now

“What I cannot create, I do not understand.”
Richard Feynman