Getting started with MemExchange

16. oktober 2015

Getting started with MemExchange

This post is a introduction on how to get MemExchange up and running

The post will cover:

  • Download the source code
  • Start the server
  • Start the client
  • Submit an order


Don't know what this is? Read What is MemExchange?


Download the source code

Latest version of the code can be found on github here:

Currently the master branch is also the working branch which may result in the branch being partially broken. Once the first version is done, feature branches will be introduced.


Start the server

Once you have downloaded the source code at opened it in visual studio, you can right click the MemExchange.Server project Debug -> Start new Instance.

The project is a single server -> multiple client application. The server needs to be run first.

Running the server should give you a console window with some debug output. The server will dump log messages in the console window while running. Should look something like this.


Start the Client

While the server is running, right click MemExchange.Client.UI -> Debug -> Start new instance

This should prompt you with a setup window like this:

ClientId: A randomized client id which will identify your orders. If you wish, you can start another client with the same client id and it will shoe the same orders.

Server address: Address to the server.

Command port and Publish port: Unless you changed something on the server, don't change these.

Hit Start to connect to the server.


Submit an order

You should have a client window that looks something like this.

For the record, I have done absolutely nothing to make the UI pretty. The UI is merely a wrapper of the API.


The top part of the screen is where you can enter new orders. Enter a symbol, price and quantity and hit "Send order". This sends the order to the server which will send back a add event.

The bottom part of the screen shows your current active orders. Here you can delete and/or modify them.


That's it.

Progress as of today - No order matching is implemented. The serer supports adding/deleting/modifying orders and communicating this to the clients. Pretty basic stuff.