GitXplorerGitXplorer
g

thebook-haskell

public
5 stars
0 forks
0 issues

Commits

List of commits on branch master.
Unverified
932e281fc00258af38dbc0585fdbebc2af70e4ed

Implement the stopping of the listener.

jjkozlowski committed 11 years ago
Unverified
7e8135261dec21c4e68e84c2c499a26953d119c4

Cleanup and listen on . directory.

jjkozlowski committed 11 years ago
Unverified
5896146b27fb9fcf44aeadc4d0d907e7cd16f6a5

Remove deprecated command.

jjkozlowski committed 11 years ago
Unverified
23e30b74240714d59957e1af27892dcc4a31255a

Added a test autorun in .ghci, so awesome.

jjkozlowski committed 11 years ago
Unverified
12eaa3cd622bccfabab962178d56d6810adaba8a

Fix formatting.

jjkozlowski committed 11 years ago
Unverified
f8e263b8b7623b8dffb97e0316f9ced978680437

Try to bring back single --exclude-dir.

jjkozlowski committed 11 years ago

README

The README file for this repository.

thebook-haskell - Electronic order book in Haskell.

Build Status Coverage Status

The overriding goal of this project is to (eventually) create a (near) clone of the LSE SETS system. The project is progressing slowly but hopefully some day it will actually be useable.

Done

  • Parser of ITCH.xml schemas that generates the records, binary and arbitrary instances for the messages (almost as part of the build).
  • Stupid conduit demo where server pushes random ITCH messages and client prints those.

Goals and TODOs

General features

  • Networking (FIX in/OUCH or ITCH out)
  • Separate business logic (pure model of order book) from the side-effecting bits.
    • The business logic should be written as a rule engine, proposed syntax is in src/Data/TheBook/Rule.hs and a concrete monad is in src/Data/TheBook/Monad.hs.
  • Separate market data distribution engine.
  • Admin commands (create market, clear order book)

Order types

  • Limit orders
  • Market orders
  • TimeInForce
  • Stop limit orders
  • Stop orders
  • Iceberg orders
  • Passive Only
  • Hidden Limit Orders
  • Mid Price Pegged Orders
  • Named Orders
  • Executable Quotes
  • Firm Quotes

Config

  • Use dire for config.

Examples

  • Use doctest for examples in haddocks.

Phases

  • Validation (NewOrderSingle enters -> Particular order comes out)
  • The following are performed until trade happens
  • Depending on the order a particular rule is invoked for matching it and that results in TradeInstruction
  • This then goes to the order book to be executed and results in Trade
  • Then we invoke rules on the trade (if e.g. iceberg is executed, it needs to reenter book)
  • Once no more trades can happen, we go through rules on what to do with order next (Market is cancelled, limit order enters book etc.)

Useful

ITCH