You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+24-15Lines changed: 24 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,9 +2,9 @@
2
2
3
3
# High level
4
4
5
-
Builds a live orderbook from http snapshots from N configurable exchanges and updates it through
6
-
websocket depth updates. After a update the best ten asks and bids aswell as well as the spread
7
-
are provided through a grpc server endpoint
5
+
Builds a live orderbook from http snapshots from N configurable exchanges and then updates the orderbook
6
+
through soft real time websocket depth updates. After a update the best ten asks and bids aswell as well
7
+
as the spread are provided through a grpc server endpoint
8
8
9
9
# Lower level
10
10
@@ -13,18 +13,24 @@ pinned threads.
13
13
14
14
Orderbook is ran with multiplie threads. One for writing to the book the others for reading it.
15
15
16
+
## Orderbook structure
17
+
18
+
// todo -- update my reasoning here ... on why i didn't just use a simple red black tree
19
+
or the previous [initial linked list idea](https://github.com/githubsands/liquidity-engine/pull/10)
20
+
16
21
# Configuration
17
22
18
23
Exchange boots through a config by running `./orderbook-quoter-server --config=$(CONFIG_LOCATION)`. The
19
24
amount of exchanges in the exchange array must be equal to the orderbook's `exchange_count`. Every
20
25
`depth` field must be equal in the exchanges and orderbook's depth field should cover the entire
21
-
expected trading range for the lifetime of this service. The larger expected volatility the higher the orderbook's
22
-
depth needs to be.
26
+
expected trading range for the lifetime of this service.
27
+
28
+
The larger expected volatility the higher the orderbook's depth needs to be.
23
29
24
30
```
25
31
exchanges:
26
32
- client_name: "binance_usa_1"
27
-
exchange_name: 1
33
+
exchange_name: 0
28
34
snapshot_enabled: true
29
35
http_client: true
30
36
snapshot_uri: "http://localhost:5000"
@@ -34,7 +40,7 @@ exchanges:
34
40
depth: 5000
35
41
buffer_size: 6000
36
42
- client_name: "binance_usa_2"
37
-
exchange_name: 2
43
+
exchange_name: 1
38
44
snapshot_enabled: true
39
45
http_client: true
40
46
snapshot_uri: "http://localhost:6000"
@@ -85,9 +91,9 @@ Wrapper around exchange stream to handle websocket sinks and other functionality
85
91
86
92
### DepthDriver
87
93
88
-
Provides a controlling interface to all exchange streams.
94
+
Provides a controlling interface to all exchange streams that push depths.
89
95
90
-
Future work:
96
+
#### Future work:
91
97
92
98
(1) Needs to handle orderbook reset and orderbook snapshot
93
99
retriggering with correct sequencing (https://github.com/binance/binance-spot-api-docs/blob/master/web-socket-streams.md#how-to-manage-a-local-order-book-correctly)
@@ -104,7 +110,7 @@ Has 2 states:
104
110
105
111
(2) Updating the the orderbook with ws depths and then reading the orderbook for best deals
106
112
107
-
Future work:
113
+
#### Future work:
108
114
109
115
(1) A state when the orderbook is needs rebuilding if a ExchangeStream websocket connection fails.
110
116
@@ -122,24 +128,27 @@ Future work:
122
128
123
129
#### 1. Depth Generator
124
130
125
-
Generates depths in many different sequences.
131
+
Generates depths in many different sequences: upward, downward through
132
+
hacking a brownian motion stochastic process.
126
133
127
-
Future Work:
134
+
##### Future Work:
128
135
129
136
Oscillating Depths rather then just upward and downward trends
130
137
131
138
#### 2. Exchange Stubs
132
139
133
-
Provides both HTTP and websocket endpoints for depths. Leverages depth generator.
140
+
Provides both HTTP and websocket endpoints for depths. Leverages depth generator
141
+
as a dependency.
134
142
135
143
#### 3. Exchange Server
136
144
137
-
Dockerized exchange stub for full integration testing.
145
+
Dockerized exchange stub for full integration testing. Leverages exchange stub as a
146
+
dependency.
138
147
139
148
### Quote GRPC Server
140
149
141
150
Takes the spread and provides the best ten deals and asks to a grpc client
0 commit comments