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 second lesson, as well as exercise 2. This time, we will try to find out whether the agents can do better by teaming up and coordinating their efforts through an open market.Lesson 3: Money
In lesson 4, the model will be extended to growth by introducing births and a maximum age. Besides the standard slides, we will discuss the role of agile software development in agent-based modelling. Exercise 4 can be found here.Lesson 5: Stocks
To depart from the feudalistic world of the previous exercise, we introduce a stock market, allowing everyone to become a capitalist, resulting in a much more equal distribution of wealth and to invest retirement savings actively. To have a functioning stock market, a new firm type market maker is introduced, which acts as a counterparty when consumers buy or sell stocks. Besides the lesson 5 slides, I have uploaded a proof behind the bancor formular for your reference. Exercise 5 can be found here.Lesson 6: Flows
Lesson 8 is about unit tests and test driven development, using the example of market making. It is easy to test whether market making is done well, but it is hard to actually come up with a good market making strategy, making this problem well-suited for testing. Here are the slides and the accompanying exercise.Lesson 9: Capital
In lesson 9, we extend the model to capital by making land tradable and producible. A newly introduced agent RealEstateAgent does not only act as a market maker for land, but also has a production function to convert man-hours into land (think of land development, deforestation, building roads, etc.). However, this production function has "a memory" and is shared among all real estate agents. Thus, it gets increasingly harder to develop new land, depending on how much land has already been produced. Here are the slides, some auxiliary slides on the farm's production decision, and the final exercise.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?Literature
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.Grading
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.Registration
If you want to attend this course, please fill in this form before September 21st. Seats are assigned on a first-come-first-serve basis and limited to 30 students. Do not forget to also register in the UZH module booking system before October 13th, whereas ETH students first need to register here before September 15th, choosing "Wirtschaftswissenschaftl. Fakultät" and "MA UZH Wirtschaftswissenschaften". For ETH students, credits will automatically be transferred to the ETH booking system once the semester is over.
Teams of two will be formed during the first lecture on September 22nd. 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 email@example.com .