62837116c3
Use ring buffer to keep track of previous trades
2024-05-26 21:21:21 +02:00
6bf9480601
Add license to gemspec
2024-03-29 08:36:32 +01:00
fd00a29667
Fix crash when unregistering unauthenticated connection
2024-02-26 19:41:59 +01:00
ede4916284
Add basic server setup
...
Add a command line tool to start a simple one node server setup
of the exchange
2024-02-18 21:26:52 +01:00
84b0cb9540
Add json message serializer
...
Basic serializer to serialize server messages to json.
2024-02-18 21:26:30 +01:00
bfe77a7c2e
Add event machine websocket server
2024-02-18 21:15:55 +01:00
9f8fce38ce
Add message processor implementation
2024-02-18 21:15:34 +01:00
f29f429c3c
Implement matching engine
2024-02-18 20:13:58 +01:00
7278b77702
Use symbols to represent side
2024-02-18 19:31:32 +01:00
66044ddae1
Add message parser
2024-02-14 19:33:05 +01:00
dd0b83734d
Add message struct definitions
...
All message structs required to run the exchange
2024-02-10 11:21:21 +01:00
b9ea7cca30
Implement basic message broker
2024-02-03 22:25:37 +01:00
14557d2a34
Add method to retrieve a user's orders in a limit order book
2024-02-03 21:29:27 +01:00
1bdb619f6c
Implement basic capped trade tracker
2024-02-03 21:04:09 +01:00
16028989e4
Allow iteration of limit volume tracker entries
2024-02-03 20:29:38 +01:00
4b48904f1e
Rename new_volume to quantity in LimitVolumeChange
2024-02-03 20:24:07 +01:00
64b17e0803
Reformat matcher
2024-02-03 20:21:40 +01:00
bd0aa1245a
Use nested hash instead of tuple for hash keys
2024-01-22 16:54:49 +01:00
dd441df8ff
Return the cancelled order explicitly
2024-01-21 19:00:17 +01:00
cd2262e895
Separate LimitOrderBook#match into its own method
2024-01-21 18:59:40 +01:00
0ba5914b9c
Move next_trade to matcher implementation
2024-01-20 17:27:09 +01:00
188f45d4c4
Implement a limit volume tracker
...
Implement the limit volume tracker that keeps track of the limit
volumes and emits change events that can be used by clients to
update their copy of the order book
2023-11-08 22:47:08 +01:00
b7df45794c
Refactor how we require the book commponents
2023-11-08 22:44:47 +01:00
1e62686e69
Rename OrderBook to LimitOrderBook
2023-11-08 20:35:14 +01:00
509b00bb14
Move order book to Rex::Book namespace
2023-11-08 20:33:49 +01:00
0efb6b0e88
Remove limit volume tracking from order book
...
It is not super relevant for the current matching engine,
we are going to solve this in the server implementation
2023-10-30 20:43:49 +01:00
79be3b534c
Implement limit volume tracking
2023-10-29 20:07:39 +01:00
87f56e6e9b
Remove unused exception
2023-10-29 20:07:39 +01:00
5862368498
Rename amount to quantity
...
More idiomatic naming for the order quantities.
2023-10-29 20:07:39 +01:00
2b9c82c4f6
Add stack overflow based test case for matcher implementation
2023-10-29 20:07:39 +01:00
55f8652c64
Increase branch test coverage
2023-10-29 20:07:39 +01:00
7191df2a90
Add automatic order id assignment to order book
2023-10-29 20:07:39 +01:00
8668ad8927
Add add_and_match_order method to orderbook
2023-10-28 23:00:09 +02:00
37435355ae
Implement matching system
2023-10-28 22:42:19 +02:00
57436c9eb0
Finish basic order book implementation
2023-10-28 19:26:53 +02:00
c16e705a4c
Finish limit implementation
2023-10-28 14:06:21 +02:00
b3b31427db
Add factory for orders
2023-10-28 14:06:03 +02:00
986fc47c73
Fix standard ruby style issues
2023-10-27 19:14:57 +02:00
e92a3b1102
Add Order#filled? method
2023-10-27 19:09:24 +02:00
a51c0724c2
Add new models to rex library
2023-10-27 14:57:04 +02:00
44ab975d2f
Add order book scaffolding
2023-10-27 14:56:35 +02:00
da31634600
Implement limit
2023-10-27 14:56:19 +02:00
59420ee879
Implement order model
2023-10-27 14:56:05 +02:00
c8a7022e5b
First commit
2023-10-27 14:53:56 +02:00