ScalABM/auctions

Milestone 0.10

Closed this issue · 4 comments

@bherd-rb and @rafabap I would be interested in your thoughts on the description and timeline for the 0.10 release milestone.

At a high level I think that the initial release should contain the following:

  • An API for expressing preferences in terms of collections of price-points (i.e., price quantity pairs).
  • Implementations of the four-heap order book algorithm for storing single orders for a particular tradable good.
  • An API for expressing pricing rules that map the state of an order book to a price.
  • A generic auction interface capable of expressing single-unit forms of the following auction types: first-price and second price auctions, first-and second price reverse auctions, continuous double auctions, and periodic double auctions.
  • An API for describing quoting policies that allow traders to probe the auction for information (or possible allow for the auction to broadcast quotes to all market participants, depending).
  • Java hooks into the core-Scala implementations of the above to facilitate use of the API by the rest of the core-esl team (and users at Bosch).
  • Infrastructure to support unit, functional, and performance testing.

I think hitting these targets by the end of April is feasible. I have a workshop in London on 3-4 May and @rafabap also has the Cloudera sponsored workshop in early May and it would be good to have a concrete implementation with demos available.

Thoughts?

@bherd-rb What should be included on the Java side in the first release?

@davidrpugh The double auction wrapper on the Java side is no longer up-to-date. Most of the factory methods that you recently added are missing. Furthermore, there is currently no Java wrapper for the reverse auction. I could try to get those two issues resolved this week.

In addition to that, I don't know how well the other stuff that you developed (e.g. quoting policies) can be used from within Java. I would also have to test that.

@bherd-rb I would like to include a Java wrapper for the auction type that is most useful for your team in the first release. Ideally this wrapper would expose that same level of flexibility wrt pricing rules and quoting rules as the Scala API for that auction type. This way it can serve as a template for myself to add other auction types to the Java API in future releases.

@davidrpugh Yes, that sounds good. I'll open a new PR and implement the necessary changes to the existing double auction wrapper, as well as a first version of the reverse auction wrapper.