{"repo":"mkipnis/DistributedATS","free":true,"listed":false,"github":"https://github.com/mkipnis/DistributedATS","clone":"git clone https://github.com/mkipnis/DistributedATS.git","description":"DistributedATS is a FIX Protocol based multi matching engine exchange(CLOB) that integrates QuickFIX and LiquiBook over DDS","language":"C++","stars":113,"topics":["algotrading","clob","crypto","crypto-exchange","darkpool","darkpools","fix","fixgateway","fixprotocol","hft","hft-trading","market","marketdata","matching-engine","matching-engines","matchingengine","order-book","orderbook","quickfix"],"license":null,"category":"algotrading_backend","readme_excerpt":"## Distributed ATS\n\n\nDistributedATS is a [**FIX Protocol-based**](https://www.fixtrading.org) alternative trading system that integrates [QuickFIX](https://github.com/quickfix/quickfix) and [LiquiBook](https://github.com/enewhuis/liquibook) over [FastDDS](https://github.com/eProsima/Fast-DDS). This project simplifies the process of communication between multiple FIX gateways and multiple matching engines(CLOB) in real-time. FIX Gateways communicate with clients via FIX and Matching Engines and Middleware(Data Service) components via topic-based DDS IDL Pub/Sub mechanism.\n\n### Components\n\n* [**FIX Gateway**](https://github.com/mkipnis/DistributedATS/tree/master/FIXGateway/src) communicates with clients via FIX and with Matching Engines and Data Services via DDS. FIX Gateway converts FIX messages into DDS IDL and publishes converted IDLs to Matching Engines or Data Services, it converts DDS IDL messages received from Matching Engines and Data Services into FIX and sends them to FIX clients.\n\n* [**Matching Engine**](https://github.com/mkipnis/DistributedATS/tree/master/MatchingEngine/src) maintains order-books, publishes market data(conflated), matches orders, and publishes IDL-based Execution Reports. Matching Engine services critical to the order flow DDS messages including *NewOrderSingle*, *OrderCancelRequest*, *MassOrderCancel*, etc.\n\n* [**Data Service**](https://github.com/mkipnis/DistributedATS/tree/master/DataService/src) authenticates users, provides reference data, services mass order status requests, and market data snapshots. Data Service services all non-critical to order flow DDS messages including *Logon*, *Logout*, *MassOrderStatusRequest*, *MarketDataSnapshot*.  Data Service can service one or more FIX Gateways and Matching Engines.\n\n![N|Solid](https://raw.githubusercontent.com/mkipnis/DistributedATS/master/docs/Diagrams/CryptoCLOB.png?raw=true)\n\n\n\n## Examples\n### Crypto CLOB/ATS – three matching engines, each handling a subset of instruments.\n![Crypto Trader](docs/Diagrams/crypto_trader.gif)\n\n* Users: CRYPTO_TRADER_1, CRYPTO_TRADER_2, CRYPTO_TRADER_3, CRYPTO_TRADER_4 : Password: TEST\n* http://localhost:8080/\n```\nservices:\n  fast_dds_discovery:\n    container_name: fast_dds_discovery \n    image: ghcr.io/mkipnis/distributed_ats:latest\n    command: >\n      bash -c \"LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/fastdds discovery -q 51000\"\n    ports:\n      - \"51000:51000\"\n    restart: unless-stopped\n\n  distributed_ats:\n    container_name: distributed_ats\n    image: ghcr.io/mkipnis/dats_crypto_clob:latest\n    depends_on:\n      - fast_dds_discovery\n    command: >\n      bash -c \"cd /usr/local && source ./dats_env.sh && cd MiscATS && BASEDIR_ATS=`pwd`/CryptoCLOB python3 start_ats.py --ats CryptoCLOB/crypto_ats.json\"\n    volumes:\n      - ./logs_ats:/usr/local/MiscATS/CryptoCLOB/logs\n    ports:\n      - \"15001:15001\"\n      - \"16001:16001\"\n      - \"17001:17001\"\n    restart: unless-stopped\n\n  fix-ws-proxy:\n    build:\n      context: .\n      dockerfile: Dockerfile\n    container_name: fix-ws-proxy\n    image: ghcr.io/mkipnis/fix_ws_proxy:latest\n    ports:\n      - \"9002:9002\"\n    environment:\n      LD_LIBRARY_PATH: \"/usr/local/lib\"\n    restart: unless-stopped\n\n  # WebTrader Front-End\n  distributed_ats_webtrader:\n    container_name: distributed_ats_webtrader\n    image: ghcr.io/mkipnis/distributed_ats_webtrader:latest\n    volumes:\n      - ./webtrader_logs:/var/log/nginx\n    ports:\n      - \"8080:80\"\n    restart: \"no\"\n```\n\n\n### US Treasuries CLOB/ATS – one matching engine that handles hundreds of instruments.\n![UST Trader](docs/Diagrams/ust_trader.gif)\n* Users: UST_TRADER_1, UST_TRADER_2, UST_TRADER_3, UST_TRADER_4 : Password: TEST\n* http://localhost:8080/\n```\nversion: '2'\n\nservices:\n  fast_dds_discovery:\n    container_name: discovery_service\n    image: ghcr.io/mkipnis/distributed_ats:latest\n    command: >\n      bash -c \"LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/fastdds discovery -q 51000\"\n    ports:\n      - \"51000:51000\"\n    restart: unless-stopped\n\n  distributed_ats:\n    container_name: distributed_ats\n    image: ghcr.io/mkipnis/dats_ust_clob:latest \n    depends_on:\n      - fast_dds_discovery \n    command: >\n      bash -c \"cd /usr/local && source ./dats_env.sh && cd MiscATS && BASEDIR_ATS=`pwd`/USTreasuryCLOB python3 start_ats.py --ats USTreasuryCLOB/ust_ats.json\"\n    volumes:\n      - ./logs_ats:/usr/local/MiscATS/USTreasuryCLOB/logs\n    ports:\n      - \"15001:15001\"\n      - \"16001:16001\"\n    restart: unless-stopped\n\n  fix-ws-proxy:\n    build:\n      context: .\n      dockerfile: Dockerfile\n    container_name: fix-ws-proxy\n    image: ghcr.io/mkipnis/fix_ws_proxy:latest\n    ports:\n      - \"9002:9002\"\n    environment:\n      LD_LIBRARY_PATH: \"/usr/local/lib\"\n    restart: unless-stopped\n\n  # WebTrader Front-End\n  distributed_ats_webtrader:\n    container_name: distributed_ats_webtrader\n    image: ghcr.io/mkipnis/distributed_ats_webtrader:latest\n    volumes:\n      - ./webtrader_logs:/var/log/nginx\n    ports:\n      - \"8080:80\"\n    restart: \"no\"\n```\n\n### Multi Matching Engine ATS, with each component running in a separate container\n* [Docker Compose - Multi Matching Engine ATS](docker/docker-compose-multi-matching-engine.yml)\n* [Docker Compose - WebTrader](docker/docker-compose-webtrader.yml)\n\n\n### Dependencies\n\n|Dependency|Component|\n|----------|---------|\n|[FastDDS](https://github.com/eProsima/Fast-DDS)|[DDS/Middleware](https://www.dds-foundation.org/what-is-dds-3/)|\n|[QuickFIX](https://github.com/quickfix/quickfix)|[FIXGateway](https://github.com/mkipnis/DistributedATS/tree/master/FIXGateway)|\n|[LiquiBook](https://github.com/enewhuis/liquibook)|[MatchingEngine](https://github.com/mkipnis/DistributedATS/tree/master/MatchingEngine)|\n|[SQLite3](https://github.com/sqlite/sqlite)|[DataService](https://github.com/mkipnis/DistributedATS/tree/master/DataService)|\n\n\n### Sample Exchanges\n[MultiMatchingEngineATS](https://github.com/mkipnis/DistributedATS/tree/master/MiscATS/MultiMatchingEngineATS) - Two Matching Engines, three FIX Gateways, and two Data Services. The first matching engine consumes and processes orders from the instrument group MARKET_Y, the second from the instrument MARKET_Z\n\n[USTreasuryCLOB](https://github.com/mkipnis/DistributedATS/tree/master/MiscATS/USTreasuryCLOB) - A single Matching Engine, three FIX Gateways, and two Data Services. The matching engine consumes and processes orders from the instrument group MARKET_UST that covers 300+ instruments (OrderBooks)\n\n[CryptoCLOB](https://github.com/mkipnis/DistributedATS/tree/master/MiscATS/CryptoCLOB) - Three Matching Engines, three FIX Gateways, and two Data Services. The first matching engine consumes and processes orders from the instrument group BTC_MARKET, the second from the instrument ETH_MARKET, and the third from OTHER_COIN_MARKET\n\n### Other Utilities\n- [LatencyTest](https://github.com/mkipnis/DistributedATS/tree/master/LatencyTest) - A NewOrderSingle path latency measurement utility. LatencyTest correlates critical to the order flow messages across DistributedATS hops by serving as a FIX and DDS IDL client.\n- [SimulatorATS](https://github.com/mkipnis/DistributedATS/tree/master/SimulatorATS) - A random activity simulator that consumes market data, aggress on it with arbitrary quantities, cancels unfilled orders and sends mass cancel requests.\n\n### Sample Clients\n- [Python3/QuickFIX](https://github.com/mkipnis/DistributedATS/tree/master/MiscClients/python3)\n- [ReactJS and SpringBoot-QuickFIX/J](https://github.com/mkipnis/DistributedATS/tree/master/MiscClients/spring_reactjs)\n- [C++/FIX/JSON/ReactJS](https://github.com/mkipnis/DistributedATS/tree/master/MiscClients/cpp_ws_reactjs)\n- [Go/Rest](https://github.com/mkipnis/DistributedATS/tree/master/MiscClients/golang_rest_service)\n\n## High Level Data Flow Overview\n[Overview](https://github.com/mkipnis/DistributedATS/tree/master/docs/HighLevelDesign.md)\n\n### FIX Messages, Topics, Sources and Destinations\n\n|FIX Message|DDS Topic|Source|Destination|Content Description|\n|-----------|---|------|--------------------------|-----------|\n|Login(A)|LOGON_TOPIC|FIXGateway|DataService|Converted to IDL FIX Login|\n|Login(A)|LOGON_TOPIC|DataService|FIXGateway|Successfully Authenticated FIX Session by a Data Service |\n|Logout(5)|LOGOUT_TOPIC|DataService|FIXGateway|Unsuccessfully Authenticate FIX Session by Data Service|\n|NewOrderSingle(D)|NEW_ORDER_SINGLE_TOPIC|FIXGateway|MatchingEngine|New order single|\n|ExecutionReport(8)|EXECUTION_REPORT_TOPIC|MatchingEngine|FIXGateway|Execution Report to be sent to a client|\n|ExecutionReport(8)|EXECUTION_REPORT_TOPIC|MatchingEngine|DataService|Execution Report to be store to service Order Mass Status Requests|\n|OrderCancel Request(F)|ORDER_CANCEL_  REQUEST_TOPIC|FIXGateway|MatchingEngine|Converted to IDL Cancel Request from FIX Client|\n|OrderCancel Reject(9)|ORDER_CANCEL_REJECT_ TOPIC|MatchingEngine|FIXGateway|IDL Cancel Reject, if order can't be cancelled|\n|OrderCancelReplace Request(G)|ORDER_CANCEL_ REPLACE_REQUEST_TOPIC_NAME|FIXGateway|MatchingEngine|Converted to IDL Cancel Replace Request from FIX Client|\n|MassCancel Request(q)|ORDER_MASS_CANCEL_ REQUEST_TOPIC|FIXGateway|MatchingEngines|Mass Cancel requested by FIX Client or FIX Client Logout/Disconnect|\n|MassCancel Report(r)|ORDER_MASS_CANCEL_ REPORT_TOPIC|MatchingEngines|FIXGateway|Results of Mass Cancel Request|\n|MarketData Request(V)|MARKET_DATA_REQUEST _TOPIC|FIXGateway|DataService|Request for the current state of Order Book(Top 5 levels)|\n|MarketDataSnapshotFull Refresh(W)|MARKET_DATA_SNAPSHOT _FULL_REFRESH_TOPIC|DataService|FIXGateway|Current Market Data Snapshot(Top 5 levels)|\n|MarketDataSnapshotFull Refresh(W)|MARKET_DATA_SNAPSHOT _FULL_REFRESH_TOPIC|Data Service|MatchingEngine|OpeningPrices|\n|MarketDataIncremental Refresh(X)|MARKET_DATA_SNAPSHOT _FULL_REFRESH_TOPIC|MatchingEngine|FIXGateway|Incremental Market Data Request(Top 5 levels)|\n|MarketDataIncremental Refresh(X)|MARKET_DATA_SNAPSHOT _FULL_REFRESH_TOPIC|MatchingEngin","default_branch":"master","files":552,"tree":[".github/workflows/cmake-single-platform.yml","AUTHORS","CMakeLists.txt","Common/BasicDomainParticipant.h","Common/Common.h","Common/ConvertUtils.h","Common/LoggerHelper.h","Common/fix_json_converter.h","DataService/README.md","DataService/config/sample_data_service.ini","DataService/scripts/data_service_manager.py","DataService/scripts/dataservice.sh","DataService/sql/sqlite/create_database.sh","DataService/sql/sqlite/distributed_ats.db","DataService/src/AuthService.cpp","DataService/src/AuthService.h","DataService/src/CMakeLists.txt","DataService/src/ExecutionReportDataReaderListenerImpl.cpp","DataService/src/ExecutionReportDataReaderListenerImpl.h","DataService/src/LogonDataReaderListenerImpl.cpp","DataService/src/LogonDataReaderListenerImpl.hpp","DataService/src/LogoutDataReaderListenerImpl.cpp","DataService/src/LogoutDataReaderListenerImpl.hpp","DataService/src/MarketDataIncrementalRefreshDataReaderListenerImpl.cpp","DataService/src/MarketDataIncrementalRefreshDataReaderListenerImpl.h","DataService/src/MarketDataRequestDataReaderListenerImpl.cpp","DataService/src/MarketDataRequestDataReaderListenerImpl.h","DataService/src/MarketDataService.cpp","DataService/src/MarketDataService.h","DataService/src/OrderMassStatusRequestDataReaderListenerImpl.cpp","DataService/src/OrderMassStatusRequestDataReaderListenerImpl.h","DataService/src/OrderMassStatusRequestService.cpp","DataService/src/OrderMassStatusRequestService.h","DataService/src/RefDataService.cpp","DataService/src/RefDataService.h","DataService/src/SQLiteConnection.hpp","DataService/src/SecurityListRequestDataReaderListenerImpl.cpp","DataService/src/SecurityListRequestDataReaderListenerImpl.hpp","DataService/src/main.cpp","FIXGateway/README.md","FIXGateway/config/sample_fix_gwy.cfg","FIXGateway/scripts/fix_gateway_manager.py","FIXGateway/scripts/fixgateway.sh","FIXGateway/spec/FIX44.xml","FIXGateway/src/Application.cpp","FIXGateway/src/Application.hpp","FIXGateway/src/AuthServiceHelper.cpp","FIXGateway/src/AuthServiceHelper.h","FIXGateway/src/CMakeLists.txt","FIXGateway/src/ConcurrentQueue.h","FIXGateway/src/DataReaderContainer.h","FIXGateway/src/DataWriterContainer.hpp","FIXGateway/src/ExecutionReportDataReaderListenerImpl.cpp","FIXGateway/src/ExecutionReportDataReaderListenerImpl.h","FIXGateway/src/FIXMsgComposerThread.h","FIXGateway/src/FileLog.cpp","FIXGateway/src/FileLog.h","FIXGateway/src/LogonDataReaderListenerImpl.cpp","FIXGateway/src/LogonDataReaderListenerImpl.hpp","FIXGateway/src/LogoutDataReaderListenerImpl.cpp","FIXGateway/src/LogoutDataReaderListenerImpl.hpp","FIXGateway/src/MarketDataIncrementalRefreshDataReaderListenerImpl.cpp","FIXGateway/src/MarketDataIncrementalRefreshDataReaderListenerImpl.h","FIXGateway/src/MarketDataSnapshotFullRefreshDataReaderListenerImpl.cpp","FIXGateway/src/MarketDataSnapshotFullRefreshDataReaderListenerImpl.h","FIXGateway/src/OrderCancelRejectDataReaderListenerImpl.cpp","FIXGateway/src/OrderCancelRejectDataReaderListenerImpl.h","FIXGateway/src/OrderMassCancelReportDataReaderListenerImpl.cpp","FIXGateway/src/OrderMassCancelReportDataReaderListenerImpl.h","FIXGateway/src/SecurityListDataReaderListenerImpl.cpp","FIXGateway/src/SecurityListDataReaderListenerImpl.h","FIXGateway/src/SocketAcceptor.cpp","FIXGateway/src/SocketAcceptor.h","FIXGateway/src/SocketConnection.cpp","FIXGateway/src/SocketConnection.h","FIXGateway/src/main.cpp","GenTools/CMakeLists.txt","GenTools/QuickFIX2FastDDS/ComponentParser.py","GenTools/QuickFIX2FastDDS/Entity.py","GenTools/QuickFIX2FastDDS/Member.py","GenTools/QuickFIX2FastDDS/MessageParser.py","GenTools/QuickFIX2FastDDS/QuickFIX2FastDDS.py","GenTools/QuickFIX2FastDDS/RequiredFieldsComponents.py","GenTools/README.md","GenTools/idl/BusinessMessageReject.hpp","GenTools/idl/BusinessMessageReject.idl","GenTools/idl/BusinessMessageRejectAdapter.cpp","GenTools/idl/BusinessMessageRejectAdapter.hpp","GenTools/idl/BusinessMessageRejectCdrAux.hpp","GenTools/idl/BusinessMessageRejectCdrAux.ipp","GenTools/idl/BusinessMessageRejectLogger.hpp","GenTools/idl/BusinessMessageRejectPubSubTypes.cxx","GenTools/idl/BusinessMessageRejectPubSubTypes.hpp","GenTools/idl/BusinessMessageRejectTypeObjectSupport.cxx","GenTools/idl/BusinessMessageRejectTypeObjectSupport.hpp","GenTools/idl/CMakeLists.txt","GenTools/idl/ExecutionReport.hpp","GenTools/idl/ExecutionReport.idl","GenTools/idl/ExecutionReportAdapter.cpp","GenTools/idl/ExecutionReportAdapter.hpp","GenTools/idl/ExecutionReportCdrAux.hpp","GenTools/idl/ExecutionReportCdrAux.ipp","GenTools/idl/ExecutionReportLogger.hpp","GenTools/idl/ExecutionReportPubSubTypes.cxx","GenTools/idl/ExecutionReportPubSubTypes.hpp","GenTools/idl/ExecutionReportTypeObjectSupport.cxx","GenTools/idl/ExecutionReportTypeObjectSupport.hpp","GenTools/idl/Header.hpp","GenTools/idl/Header.idl","GenTools/idl/HeaderAdapter.cpp","GenTools/idl/HeaderAdapter.hpp","GenTools/idl/HeaderCdrAux.hpp","GenTools/idl/HeaderCdrAux.ipp","GenTools/idl/HeaderLogger.hpp","GenTools/idl/HeaderPubSubTypes.cxx","GenTools/idl/HeaderPubSubTypes.hpp","GenTools/idl/HeaderTypeObjectSupport.cxx","GenTools/idl/HeaderTypeObjectSupport.hpp","GenTools/idl/Heartbeat.hpp","GenTools/idl/Heartbeat.idl","GenTools/idl/HeartbeatAdapter.cpp","GenTools/idl/HeartbeatAdapter.hpp","GenTools/idl/HeartbeatCdrAux.hpp","GenTools/idl/HeartbeatCdrAux.ipp","GenTools/idl/HeartbeatLogger.hpp","GenTools/idl/HeartbeatPubSubTypes.cxx","GenTools/idl/HeartbeatPubSubTypes.hpp","GenTools/idl/HeartbeatTypeObjectSupport.cxx","GenTools/idl/HeartbeatTypeObjectSupport.hpp","GenTools/idl/Logon.hpp","GenTools/idl/Logon.idl","GenTools/idl/LogonAdapter.cpp","GenTools/idl/LogonAdapter.hpp","GenTools/idl/LogonCdrAux.hpp","GenTools/idl/LogonCdrAux.ipp","GenTools/idl/LogonLogger.hpp","GenTools/idl/LogonPubSubTypes.cxx","GenTools/idl/LogonPubSubTypes.hpp","GenTools/idl/LogonTypeObjectSupport.cxx","GenTools/idl/LogonTypeObjectSupport.hpp","GenTools/idl/Logout.hpp","GenTools/idl/Logout.idl","GenTools/idl/LogoutAdapter.cpp","GenTools/idl/LogoutAdapter.hpp","GenTools/idl/LogoutCdrAux.hpp","GenTools/idl/LogoutCdrAux.ipp","GenTools/idl/LogoutLogger.hpp","GenTools/idl/LogoutPubSubTypes.cxx","GenTools/idl/LogoutPubSubTypes.hpp","GenTools/idl/LogoutTypeObjectSupport.cxx","GenTools/idl/LogoutTypeObjectSupport.hpp","GenTools/idl/MarketDataIncrementalRefresh.hpp","GenTools/idl/MarketDataIncrementalRefresh.idl","GenTools/idl/MarketDataIncrementalRefreshAdapter.cpp","GenTools/idl/MarketDataIncrementalRefreshAdapter.hpp","GenTools/idl/MarketDataIncrementalRefreshCdrAux.hpp","GenTools/idl/MarketDataIncrementalRefreshCdrAux.ipp","GenTools/idl/MarketDataIncrementalRefreshLogger.hpp","GenTools/idl/MarketDataIncrementalRefreshPubSubTypes.cxx","GenTools/idl/MarketDataIncrementalRefreshPubSubTypes.hpp","GenTools/idl/MarketDataIncrementalRefreshTypeObjectSupport.cxx","GenTools/idl/MarketDataIncrementalRefreshTypeObjectSupport.hpp","GenTools/idl/MarketDataRequest.hpp","GenTools/idl/MarketDataRequest.idl","GenTools/idl/MarketDataRequestAdapter.cpp","GenTools/idl/MarketDataRequestAdapter.hpp","GenTools/idl/MarketDataRequestCdrAux.hpp","GenTools/idl/MarketDataRequestCdrAux.ipp","GenTools/idl/MarketDataRequestLogger.hpp","GenTools/idl/MarketDataRequestPubSubTypes.cxx","GenTools/idl/MarketDataRequestPubSubTypes.hpp","GenTools/idl/MarketDataRequestTypeObjectSupport.cxx","GenTools/idl/MarketDataRequestTypeObjectSupport.hpp","GenTools/idl/MarketDataSnapshotFullRefresh.hpp","GenTools/idl/MarketDataSnapshotFullRefresh.idl","GenTools/idl/MarketDataSnapshotFullRefreshAdapter.cpp","GenTools/idl/MarketDataSnapshotFullRefreshAdapter.hpp","GenTools/idl/MarketDataSnapshotFullRefreshCdrAux.hpp","GenTools/idl/MarketDataSnapshotFullRefreshCdrAux.ipp","GenTools/idl/MarketDataSnapshotFullRefreshLogger.hpp","GenTools/idl/MarketDataSnapshotFullRefreshPubSubTypes.cxx","GenTools/idl/MarketDataSnapshotFullRefreshPubSubTypes.hpp","GenTools/idl/MarketDataSnapshotFullRefreshTypeObjectSupport.cxx","GenTools/idl/MarketDataSnapshotFullRefreshTypeObjectSupport.hpp","GenTools/idl/NewOrderSingle.hpp","GenTools/idl/NewOrderSingle.idl","GenTools/idl/NewOrderSingleAdapter.cpp","GenTools/idl/NewOrderSingleAdapter.hpp","GenTools/idl/NewOrderSingleCdrAux.hpp","GenTools/idl/NewOrderSingleCdrAux.ipp","GenTools/idl/NewOrderSingleLogger.hpp","GenTools/idl/NewOrderSinglePubSubTypes.cxx","GenTools/idl/NewOrderSinglePubSubTypes.hpp","GenTools/idl/NewOrderSingleTypeObjectSupport.cxx","GenTools/idl/NewOrderSingleTypeObjectSupport.hpp","GenTools/idl/OrderCancelReject.hpp","GenTools/idl/OrderCancelReject.idl","GenTools/idl/OrderCancelRejectAdapter.cpp","GenTools/idl/OrderCancelRejectAdapter.hpp","GenTools/idl/OrderCancelRejectCdrAux.hpp","GenTools/idl/OrderCancelRejectCdrAux.ipp","GenTools/idl/OrderCancelRejectLogger.hpp","GenTools/idl/OrderCancelRejectPubSubTypes.cxx","GenTools/idl/OrderCancelRejectPubSubTypes.hpp","GenTools/idl/OrderCancelRejectTypeObjectSupport.cxx","GenTools/idl/OrderCancelRejectTypeObjectSupport.hpp","GenTools/idl/OrderCancelReplaceRequest.hpp","GenTools/idl/OrderCancelReplaceRequest.idl","GenTools/idl/OrderCancelReplaceRequestAdapter.cpp","GenTools/idl/OrderCancelReplaceRequestAdapter.hpp","GenTools/idl/OrderCancelReplaceRequestCdrAux.hpp","GenTools/idl/OrderCancelReplaceRequestCdrAux.ipp","GenTools/idl/OrderCancelReplaceRequestLogger.hpp","GenTools/idl/OrderCancelReplaceRequestPubSubTypes.cxx","GenTools/idl/OrderCancelReplaceRequestPubSubTypes.hpp","GenTools/idl/OrderCancelReplaceRequestTypeObjectSupport.cxx","GenTools/idl/OrderCancelReplaceRequestTypeObjectSupport.hpp","GenTools/idl/OrderCancelRequest.hpp","GenTools/idl/OrderCancelRequest.idl","GenTools/idl/OrderCancelRequestAdapter.cpp","GenTools/idl/OrderCancelRequestAdapter.hpp","GenTools/idl/OrderCancelRequestCdrAux.hpp","GenTools/idl/OrderCancelRequestCdrAux.ipp","GenTools/idl/OrderCancelRequestLogger.hpp","GenTools/idl/OrderCancelRequestPubSubTypes.cxx","GenTools/idl/OrderCancelRequestPubSubTypes.hpp","GenTools/idl/OrderCancelRequestTypeObjectSupport.cxx","GenTools/idl/OrderCancelRequestTypeObjectSupport.hpp","GenTools/idl/OrderMassCancelReport.hpp","GenTools/idl/OrderMassCancelReport.idl","GenTools/idl/OrderMassCancelReportAdapter.cpp","GenTools/idl/OrderMassCancelReportAdapter.hpp","GenTools/idl/OrderMassCancelReportCdrAux.hpp","GenTools/idl/OrderMassCancelReportCdrAux.ipp","GenTools/idl/OrderMassCancelReportLogger.hpp","GenTools/idl/OrderMassCancelReportPubSubTypes.cxx","GenTools/idl/OrderMassCancelReportPubSubTypes.hpp","GenTools/idl/OrderMassCancelReportTypeObjectSupport.cxx","GenTools/idl/OrderMassCancelReportTypeObjectSupport.hpp","GenTools/idl/OrderMassCancelRequest.hpp","GenTools/idl/OrderMassCancelRequest.idl","GenTools/idl/OrderMassCancelRequestAdapter.cpp","GenTools/idl/OrderMassCancelRequestAdapter.hpp","GenTools/idl/OrderMassCancelRequestCdrAux.hpp","GenTools/idl/OrderMassCancelRequestCdrAux.ipp","GenTools/idl/OrderMassCancelRequestLogger.hpp","GenTools/idl/OrderMassCancelRequestPubSubTypes.cxx","GenTools/idl/OrderMassCancelRequestPubSubTypes.hpp","GenTools/idl/OrderMassCancelRequestTypeObjectSupport.cxx","GenTools/idl/OrderMassCancelRequestTypeObjectSupport.hpp","GenTools/idl/OrderMassStatusRequest.hpp","GenTools/idl/OrderMassStatusRequest.idl","GenTools/idl/OrderMassStatusRequestAdapter.cpp","GenTools/idl/OrderMassStatusRequestAdapter.hpp","GenTools/idl/OrderMassStatusRequestCdrAux.hpp","GenTools/idl/OrderMassStatusRequestCdrAux.ipp","GenTools/idl/OrderMassStatusRequestLogger.hpp","GenTools/idl/OrderMassStatusRequestPubSubTypes.cxx","GenTools/idl/OrderMassStatusRequestPubSubTypes.hpp","GenTools/idl/OrderMassStatusRequestTypeObjectSupport.cxx","GenTools/idl/OrderMassStatusRequestTypeObjectSupport.hpp","GenTools/idl/SecurityList.hpp","GenTools/idl/SecurityList.idl","GenTools/idl/SecurityListAdapter.cpp","GenTools/idl/SecurityListAdapter.hpp","GenTools/idl/SecurityListCdrAux.hpp","GenTools/idl/SecurityListCdrAux.ipp","GenTools/idl/SecurityListLogger.hpp","GenTools/idl/SecurityListPubSubTypes.cxx","GenTools/idl/SecurityListPubSubTypes.hpp","GenTools/idl/SecurityListRequest.hpp","GenTools/idl/SecurityListRequest.idl","GenTools/idl/SecurityListRequestAdapter.cpp","GenTools/idl/SecurityListRequestAdapter.hpp","GenTools/idl/SecurityListRequestCdrAux.hpp","GenTools/idl/SecurityListRequestCdrAux.ipp","GenTools/idl/SecurityListRequestLogger.hpp","GenTools/idl/SecurityListRequestPubSubTypes.cxx","GenTools/idl/SecurityListRequestPubSubTypes.hpp","GenTools/idl/SecurityListRequestTypeObjectSupport.cxx","GenTools/idl/SecurityListRequestTypeObjectSupport.hpp","GenTools/idl/SecurityListTypeObjectSupport.cxx","GenTools/idl/SecurityListTypeObjectSupport.hpp","GenTools/run_fastddsgen.sh","GenTools/spec/dats_requirements.xml","LICENSE.TXT","LatencyTest/Application.cpp","LatencyTest/Application.h","LatencyTest/CMakeLists.txt","LatencyTest/ExecutionReportDataReaderListenerImpl.cpp","LatencyTest/ExecutionReportDataReaderListenerImpl.h","LatencyTest/LatencyTest.cfg","LatencyTest/LatencyTest.cpp","LatencyTest/LatencyTest.h","LatencyTest/NewOrderSingleDataReaderListenerImpl.cpp","LatencyTest/NewOrderSingleDataReaderListenerImpl.h","LatencyTest/README.md","MatchingEngine/README.md","MatchingEngine/config/sample_matching_engine.ini","MatchingEngine/scripts/matching_engine_manager.py","MatchingEngine/scripts/matchingengine.sh","MatchingEngine/src/CMakeLists.txt","MatchingEngine/src/DataWriterContainer.h","MatchingEngine/src/Market.cpp","MatchingEngine/src/Market.h","MatchingEngine/src/MarketDataSnapshotFullRefreshDataReaderListenerImpl.cpp","MatchingEngine/src/MarketDataSnapshotFullRefreshDataReaderListenerImpl.h","MatchingEngine/src/NewOrderSingleDataReaderListenerImpl.cpp","MatchingEngine/src/NewOrderSingleDataReaderListenerImpl.h","MatchingEngine/src/Order.cpp","MatchingEngine/src/Order.h","MatchingEngine/src/OrderBookStats.h","MatchingEngine/src/OrderCancelReplaceRequestDataReaderListenerImpl.cpp","MatchingEngine/src/OrderCancelReplaceRequestDataReaderListenerImpl.h","MatchingEngine/src/OrderCancelRequestDataReaderListenerImpl.cpp","MatchingEngine/src/OrderCancelRequestDataReaderListenerImpl.h","MatchingEngine/src/OrderException.cpp","MatchingEngine/src/OrderException.h","MatchingEngine/src/OrderMassCancelRequestDataReaderListenerImpl.cpp","MatchingEngine/src/OrderMassCancelRequestDataReaderListenerImpl.h","MatchingEngine/src/PriceDepthPublisherService.cpp","MatchingEngine/src/PriceDepthPublisherService.hpp","MatchingEngine/src/SecurityListDataReaderListenerImpl.cpp","MatchingEngine/src/SecurityListDataReaderListenerImpl.h","MatchingEngine/src/SecurityListRequestDataWriterListener.h","MatchingEngine/src/main.cpp","MiscATS/CryptoCLOB/README.md","MiscATS/CryptoCLOB/config/data_service_a.ini","MiscATS/CryptoCLOB/config/data_service_b.ini","MiscATS/CryptoCLOB/config/fix_gwy_1.cfg","MiscATS/CryptoCLOB/config/fix_gwy_2.cfg","MiscATS/CryptoCLOB/config/fix_gwy_3.cfg","MiscATS/CryptoCLOB/config/matching_engine_MARKET_BTC.ini","MiscATS/CryptoCLOB/config/matching_engine_MARKET_ETH.ini","MiscATS/CryptoCLOB/config/matching_engine_MARKET_OTHER_COIN.ini","MiscATS/CryptoCLOB/crypto_ats.json","MiscATS/CryptoCLOB/data/distributed_ats.db","MiscATS/CryptoCLOB/sql/populate_db.sh","MiscATS/MultiMatchingEngineATS/README.md","MiscATS/MultiMatchingEngineATS/config/data_service_a.ini","MiscATS/MultiMatchingEngineATS/config/data_service_b.ini","MiscATS/MultiMatchingEngineATS/config/fix_gwy_1.cfg","MiscATS/MultiMatchingEngineATS/config/fix_gwy_2.cfg","MiscATS/MultiMatchingEngineATS/config/fix_gwy_3.cfg","MiscATS/MultiMatchingEngineATS/config/matching_engine_MARKET_Y.ini","MiscATS/MultiMatchingEngineATS/config/matching_engine_MARKET_Z.ini","MiscATS/MultiMatchingEngineATS/data/distributed_ats.db","MiscATS/MultiMatchingEngineATS/multi_matching_engine.json","MiscATS/MultiMatchingEngineATS/sql/populate_db.sh","MiscATS/USTreasuryCLOB/README.md","MiscATS/USTreasuryCLOB/StaticData/Data/ust_bills_20210301.json","MiscATS/USTreasuryCLOB/StaticData/Data/ust_bonds_20210301.json","MiscATS/USTreasuryCLOB/StaticData/Data/ust_notes_20210301.json","MiscATS/USTreasuryCLOB/StaticData/USTDataSaverPY/USTDataSaverPY.py","MiscATS/USTreasuryCLOB/StaticData/USTDataSaverPY/populate_ust_static_data.sh","MiscATS/USTreasuryCLOB/config/data_service_a.ini","MiscATS/USTreasuryCLOB/config/data_service_b.ini","MiscATS/USTreasuryCLOB/config/fix_gwy_1.cfg","MiscATS/USTreasuryCLOB/config/fix_gwy_2.cfg","MiscATS/USTreasuryCLOB/config/matching_engine_MARKET_UST.ini","MiscATS/USTreasuryCLOB/data/distributed_ats.db","MiscATS/USTreasuryCLOB/sql/populate_db.sh","MiscATS/USTreasuryCLOB/ust_ats.json","MiscATS/start_ats.py","MiscATS/stop_ats.py","MiscClients/cpp_ws_reactjs/fix_ws_proxy/CMakeLists.txt","MiscClients/cpp_ws_reactjs/fix_ws_proxy/FIX44.xml","MiscClients/cpp_ws_reactjs/fix_ws_proxy/fix_application.cpp","MiscClients/cpp_ws_reactjs/fix_ws_proxy/fix_application.h","MiscClients/cpp_ws_reactjs/fix_ws_proxy/fix_ws_proxy.cpp","MiscClients/cpp_ws_reactjs/fix_ws_proxy/fixproxy.ini","MiscClients/cpp_ws_reactjs/fix_ws_proxy/ws_server.cpp","MiscClients/cpp_ws_reactjs/fix_ws_proxy/ws_server.h","MiscClients/cpp_ws_reactjs/py_client/py_client.py","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/package.json","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/public/favicon.ico","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/public/index.html","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/public/logo192.png","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/public/logo512.png","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/public/manifest.json","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/public/robots.txt","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/App.css","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/App.js","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/App.test.js","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/components/Helpers.js","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/components/History.js","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/components/Login.js","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/components/PositionsAndMarketData.js","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/components/PriceLevels.js","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/components/Ticket.js","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/data_man/DataMan.js","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/data_man/OrderMan.js","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/data_man/PositionMan.js","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/index.css","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/index.js","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/logo.svg","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/reportWebVitals.js","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/setupTests.js","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/websocket_fix_utils/FIXConvertUtils.js","MiscClients/cpp_ws_reactjs/webtrader_reactjs_ws/src/websocket_fix_utils/FIXMessageHandler.js"],"storefront":"/r/mkipnis","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/mkipnis/DistributedATS/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}