Canyonlands 2002
Grand Canyon 2001
SSN FAQ Geneology

Idea Futures code in E

This is a project I'm doing on my own. I hope eventually to find a way to use it as part of a real money public Idea Futures market, possibly at the Simon Center. But for now, it's just me playing.

This page is where I will publish code I am writing in E. E is a new language with good support for security, concurrency, and distributed computing. The current version of the code doesn't make much use of the support for distributed computing; that will appear as the code grows. The security properties are hard to see now, and that's part of the point of E: good Object Oriented coding practices are good security practices. One of my main objectives in writing this first version of the code was to show what well designed and well formatted E code would look like. If you have comments on the design or formatting, please let me know.

This program is a MarketMaker for an Idea Futures market, representing a cross-product of claims to support betting on conditional claims. The code is based on LISP code provided by Robin Hanson, and recent papers he has written on market scoring rules and design of institutions to support conditional bets.

In the code, Individual Claims are represented by an IssueDescription. They indicate how many positions are in the basic claim, and what the positions are. Claims are collected into IssueSets, which are held by MarketMakers. (Anyone can make a new IssueSet, but they only matter when someone is creating a market in the set of issues.)

The multidimensional arrays representing the cross-product of claims are represented by Boxes. There are subclasses for holding the MarketMaker's current probability assignments, and for holding the assets of each participant in the market. When someone trades with the MarketMaker, the player's assets and the MarketMaker's probabilities change in parallel.

Here's a transcript of an example interaction with the code.