Documentation ¶
Overview ¶
GoTrade is a FIX protocol electronic trading and order management system written in Golang, structured for typical multi-asset institutional use.
Dependencies:
gogo/protobuf A fork of golang/protobuf with tweaks and extras quickfixgo/quickfix FIX Engine in Golang nats-io/nats Performant messaging bus in Golang, seems resemblance of TibRV
There are sub-packages within the gotrade package for various components:
core/...: The low-level API that gives consumers all the knobs they need proto/...: The messaging protocol of various entities, in Protobuf format. services/...: Core services managing multi-asset order flow database/...: (not provided yet) SQL scripts and data layer APIs (PostgreSQL here but the idea is to support different storage engines without breaking everything)
Then on top of the core packages, we have:
cmd/...: Command-line executables, a.k.a final products test/...: Integration tests, etc.
To avoid cyclic imports, imports should never pull in higher-level APIs into a lower-level package. For example, you could import all of core and shell from cmd/... or test/..., but you couldn't import any of shell from core/....
Directories ¶
Path | Synopsis |
---|---|
cmd
|
|
MCSellSideSim
Command line executable entry package for SellSideSimulator
|
Command line executable entry package for SellSideSimulator |
MCSimulator
Command line executable entry package for FIX buy side simulator
|
Command line executable entry package for FIX buy side simulator |
OrderRouter
Command line executable entry package for Order Router
|
Command line executable entry package for Order Router |
core
|
|
logger/handlers
Package es implements an Elasticsearch batch handler.
|
Package es implements an Elasticsearch batch handler. |
order
Core order APIs
|
Core order APIs |
service
Core service infrastructure for servicing starting/stopping/SIGTERM, and heartbeating etc
|
Core service infrastructure for servicing starting/stopping/SIGTERM, and heartbeating etc |
proto
|
|
order
Package order is a generated protocol buffer package.
|
Package order is a generated protocol buffer package. |
pricing
Package pricing is a generated protocol buffer package.
|
Package pricing is a generated protocol buffer package. |
service
Package service is a generated protocol buffer package.
|
Package service is a generated protocol buffer package. |
services
|
|
marketconnectors/common/order
A common FIX Client required by QuickFIX, should work for most of market connectors.
|
A common FIX Client required by QuickFIX, should work for most of market connectors. |
marketconnectors/sellsidesim/orderbook
A simulated order book bid offer matching by bloomberg pricefeed quotes this is to give our sell side FIX engine simulate a false feel of reality, so as to support MARKET or LIMIT orders
|
A simulated order book bid offer matching by bloomberg pricefeed quotes this is to give our sell side FIX engine simulate a false feel of reality, so as to support MARKET or LIMIT orders |
marketconnectors/simulator
MC Simulator communicates with SellSideSim service in FIX protocol as a mean to test trade life cycle
|
MC Simulator communicates with SellSideSim service in FIX protocol as a mean to test trade life cycle |
orderrouter
Serving order New/Cancel/Replace tasks, communicates with various market connectors
|
Serving order New/Cancel/Replace tasks, communicates with various market connectors |
test
|
|
Click to show internal directories.
Click to hide internal directories.