TRADINGENGINE

◦ HTTPStatus Exception: 401

◦ Developed with the software and tools below.

EditorConfig JSON

GitHub license git-last-commit GitHub commit activity GitHub top language

📖 Table of Contents


📍 Overview

Trading Engine server that simulates an exchange. You can create instruments, and each of them will have order books that you can execute trades on. Currently using a FIFO price time priority matching algorithm.


📦 Features

Server with multiple orderbooks FIFO matching algorithm Logerbook Templated code to use different loggers, matching algorithms, and orderbook implementations


📂 Repository Structure

└── TradingEngine/
    ├── AlgoTradingPlatform/
    │   └── .vscode/
    ├── ConsoleUI/
    │   ├── Console.cs
    │   ├── ConsoleUI.csproj
    │   └── obj/
    ├── GraphicCS/
    │   ├── Form1.Designer.cs
    │   ├── Form1.cs
    │   ├── Form1.resx
    │   ├── Graphic.cs
    │   ├── GraphicCS.csproj
    │   ├── GraphicCS.csproj.user
    │   ├── bin/
    │   └── obj/
    ├── GraphicUI/
    │   ├── Form1.Designer.cs
    │   ├── Form1.cs
    │   ├── Form1.resx
    │   ├── GraphicUI.csproj
    │   ├── GraphicUI.csproj.user
    │   ├── Program.cs
    │   ├── bin/
    │   └── obj/
    ├── InstrumentCS/
    │   ├── InstrumentCS.csproj
    │   ├── Security.cs
    │   ├── bin/
    │   └── obj/
    ├── LoggingCS/
    │   ├── AbstractLogger.cs
    │   ├── ILogger.cs
    │   ├── ITextLogger.cs
    │   ├── LogInformation.cs
    │   ├── LogLevel.cs
    │   ├── LoggerType.cs
    │   ├── LoggingCS.csproj
    │   ├── LoggingConfiguration/
    │   ├── TextLogger.cs
    │   ├── bin/
    │   └── obj/
    ├── OrderbookCS/
    │   ├── IMatchingOrderbook.cs
    │   ├── IOrderEntryOrderbook.cs
    │   ├── IReadOnlyOrderbook.cs
    │   ├── IRetrievalOrderbook.cs
    │   ├── MatchResult.cs
    │   ├── NoMatchOrderbook.cs
    │   ├── OrderbookCS.csproj
    │   ├── OrderbookSpread.cs
    │   ├── bin/
    │   └── obj/
    ├── OrdersCS/
    │   ├── CancelOrder.cs
    │   ├── CancelOrderStatus.cs
    │   ├── IOrderCore.cs
    │   ├── Limit.cs
    │   ├── LimitComparer.cs
    │   ├── ModifyOrder.cs
    │   ├── ModifyOrderStatus.cs
    │   ├── NewOrderStatus.cs
    │   ├── Order.cs
    │   ├── OrderBookEntry.cs
    │   ├── OrderCore.cs
    │   ├── OrderRecord.cs
    │   ├── OrderStatusCreator.cs
    │   ├── OrdersCS.csproj
    │   ├── RejectCreator.cs
    │   ├── Rejection.cs
    │   ├── RejectionReason.cs
    │   ├── Side.cs
    │   ├── bin/
    │   └── obj/
    ├── RejectCS/
    │   ├── Class1.cs
    │   ├── RejectCS.csproj
    │   └── obj/
    ├── TradingEngineServer/
    ├── WinFormsApp1/
    │   ├── .vs/
    │   ├── Form1.Designer.cs
    │   ├── Form1.cs
    │   ├── Form1.resx
    │   ├── Program.cs
    │   ├── WinFormsApp1.csproj
    │   ├── WinFormsApp1.csproj.user
    │   ├── WinFormsApp1.sln
    │   ├── bin/
    │   └── obj/
    ├── WinFormsLibrary1/
    │   ├── .vs/
    │   ├── Class1.cs
    │   ├── WinFormsLibrary1.csproj
    │   ├── WinFormsLibrary1.csproj.user
    │   ├── WinFormsLibrary1.sln
    │   ├── bin/
    │   └── obj/
    └── WinFormsLibrary2/
        ├── Class1.cs
        ├── WinFormsLibrary2.csproj
        └── obj/

⚙️ Modules

Winformslibrary2
File Summary
Class1.cs HTTPStatus Exception: 401
WinFormsLibrary2.csproj HTTPStatus Exception: 401
Obj
File Summary
WinFormsLibrary2.csproj.nuget.g.props HTTPStatus Exception: 401
WinFormsLibrary2.csproj.nuget.g.targets HTTPStatus Exception: 401
LoggingCS.csproj.nuget.g.targets HTTPStatus Exception: 401
LoggingCS.csproj.nuget.g.props HTTPStatus Exception: 401
ConsoleUI.csproj.nuget.g.targets HTTPStatus Exception: 401
ConsoleUI.csproj.nuget.g.props HTTPStatus Exception: 401
WinFormsLibrary1.csproj.nuget.g.props HTTPStatus Exception: 401
WinFormsLibrary1.csproj.nuget.g.targets HTTPStatus Exception: 401
InstrumentCS.csproj.nuget.g.targets HTTPStatus Exception: 401
InstrumentCS.csproj.nuget.g.props HTTPStatus Exception: 401
GraphicUI.csproj.nuget.g.targets HTTPStatus Exception: 401
GraphicUI.csproj.nuget.g.props HTTPStatus Exception: 401
WinFormsApp1.csproj.nuget.g.targets HTTPStatus Exception: 401
WinFormsApp1.csproj.nuget.g.props HTTPStatus Exception: 401
OrdersCS.csproj.nuget.g.targets HTTPStatus Exception: 401
OrdersCS.csproj.nuget.g.props HTTPStatus Exception: 401
GraphicCS.csproj.nuget.g.props HTTPStatus Exception: 401
GraphicCS.csproj.nuget.g.targets HTTPStatus Exception: 401
RejectCS.csproj.nuget.g.targets HTTPStatus Exception: 401
RejectCS.csproj.nuget.g.props HTTPStatus Exception: 401
OrderbookCS.csproj.nuget.g.props HTTPStatus Exception: 401
OrderbookCS.csproj.nuget.g.targets HTTPStatus Exception: 401
Net6.0-windows
File Summary
WinFormsLibrary2.GlobalUsings.g.cs HTTPStatus Exception: 401
.NETCoreApp,Version=v6.0.AssemblyAttributes.cs HTTPStatus Exception: 401
WinFormsLibrary2.AssemblyInfo.cs HTTPStatus Exception: 401
WinFormsLibrary2.GeneratedMSBuildEditorConfig.editorconfig HTTPStatus Exception: 401
WinFormsLibrary1.GeneratedMSBuildEditorConfig.editorconfig HTTPStatus Exception: 401
.NETCoreApp,Version=v6.0.AssemblyAttributes.cs HTTPStatus Exception: 401
WinFormsLibrary1.AssemblyInfo.cs HTTPStatus Exception: 401
WinFormsLibrary1.csproj.BuildWithSkipAnalyzers HTTPStatus Exception: 401
WinFormsLibrary1.GlobalUsings.g.cs HTTPStatus Exception: 401
WinFormsLibrary1.csproj.FileListAbsolute.txt HTTPStatus Exception: 401
GraphicUI.csproj.BuildWithSkipAnalyzers HTTPStatus Exception: 401
GraphicUI.AssemblyInfo.cs HTTPStatus Exception: 401
.NETCoreApp,Version=v6.0.AssemblyAttributes.cs HTTPStatus Exception: 401
GraphicUI.GlobalUsings.g.cs HTTPStatus Exception: 401
GraphicUI.csproj.FileListAbsolute.txt HTTPStatus Exception: 401
GraphicUI.GeneratedMSBuildEditorConfig.editorconfig HTTPStatus Exception: 401
WinFormsApp1.csproj.FileListAbsolute.txt HTTPStatus Exception: 401
.NETCoreApp,Version=v6.0.AssemblyAttributes.cs HTTPStatus Exception: 401
WinFormsApp1.GeneratedMSBuildEditorConfig.editorconfig HTTPStatus Exception: 401
WinFormsApp1.GlobalUsings.g.cs HTTPStatus Exception: 401
WinFormsApp1.AssemblyInfo.cs HTTPStatus Exception: 401
WinFormsApp1.csproj.BuildWithSkipAnalyzers HTTPStatus Exception: 401
GraphicCS.csproj.FileListAbsolute.txt HTTPStatus Exception: 401
GraphicCS.AssemblyInfo.cs HTTPStatus Exception: 401
.NETCoreApp,Version=v6.0.AssemblyAttributes.cs HTTPStatus Exception: 401
GraphicCS.GeneratedMSBuildEditorConfig.editorconfig HTTPStatus Exception: 401
GraphicCS.csproj.BuildWithSkipAnalyzers HTTPStatus Exception: 401
GraphicCS.GlobalUsings.g.cs HTTPStatus Exception: 401
Loggingcs
File Summary
TextLogger.cs HTTPStatus Exception: 401
ITextLogger.cs HTTPStatus Exception: 401
AbstractLogger.cs HTTPStatus Exception: 401
LogInformation.cs HTTPStatus Exception: 401
LoggingCS.csproj HTTPStatus Exception: 401
LoggerType.cs HTTPStatus Exception: 401
LogLevel.cs HTTPStatus Exception: 401
ILogger.cs HTTPStatus Exception: 401
Netstandard2.1
File Summary
LoggingCS.csproj.BuildWithSkipAnalyzers HTTPStatus Exception: 401
.NETStandard,Version=v2.1.AssemblyAttributes.cs HTTPStatus Exception: 401
LoggingCS.AssemblyInfo.cs HTTPStatus Exception: 401
LoggingCS.GeneratedMSBuildEditorConfig.editorconfig HTTPStatus Exception: 401
LoggingCS.csproj.FileListAbsolute.txt HTTPStatus Exception: 401
InstrumentCS.csproj.BuildWithSkipAnalyzers HTTPStatus Exception: 401
.NETStandard,Version=v2.1.AssemblyAttributes.cs HTTPStatus Exception: 401
InstrumentCS.AssemblyInfo.cs HTTPStatus Exception: 401
InstrumentCS.csproj.FileListAbsolute.txt HTTPStatus Exception: 401
InstrumentCS.GeneratedMSBuildEditorConfig.editorconfig HTTPStatus Exception: 401
.NETStandard,Version=v2.1.AssemblyAttributes.cs HTTPStatus Exception: 401
OrdersCS.csproj.BuildWithSkipAnalyzers HTTPStatus Exception: 401
OrdersCS.GeneratedMSBuildEditorConfig.editorconfig HTTPStatus Exception: 401
OrdersCS.csproj.FileListAbsolute.txt HTTPStatus Exception: 401
OrdersCS.AssemblyInfo.cs HTTPStatus Exception: 401
RejectCS.AssemblyInfo.cs HTTPStatus Exception: 401
.NETStandard,Version=v2.1.AssemblyAttributes.cs HTTPStatus Exception: 401
RejectCS.GeneratedMSBuildEditorConfig.editorconfig HTTPStatus Exception: 401
OrderbookCS.AssemblyInfo.cs HTTPStatus Exception: 401
.NETStandard,Version=v2.1.AssemblyAttributes.cs HTTPStatus Exception: 401
OrderbookCS.csproj.CopyComplete HTTPStatus Exception: 401
OrderbookCS.csproj.BuildWithSkipAnalyzers HTTPStatus Exception: 401
OrderbookCS.csproj.FileListAbsolute.txt HTTPStatus Exception: 401
OrderbookCS.GeneratedMSBuildEditorConfig.editorconfig HTTPStatus Exception: 401
Loggingconfiguration
File Summary
LoggerConfiguration.cs HTTPStatus Exception: 401
Consoleui
File Summary
ConsoleUI.csproj HTTPStatus Exception: 401
Console.cs HTTPStatus Exception: 401
Net6.0
File Summary
.NETCoreApp,Version=v6.0.AssemblyAttributes.cs HTTPStatus Exception: 401
ConsoleUI.GeneratedMSBuildEditorConfig.editorconfig HTTPStatus Exception: 401
ConsoleUI.AssemblyInfo.cs HTTPStatus Exception: 401
ConsoleUI.GlobalUsings.g.cs HTTPStatus Exception: 401
Winformslibrary1
File Summary
Class1.cs HTTPStatus Exception: 401
WinFormsLibrary1.csproj.user HTTPStatus Exception: 401
WinFormsLibrary1.csproj HTTPStatus Exception: 401
WinFormsLibrary1.sln HTTPStatus Exception: 401
Filecontentindex
File Summary
read.lock HTTPStatus Exception: 401
read.lock HTTPStatus Exception: 401
Instrumentcs
File Summary
InstrumentCS.csproj HTTPStatus Exception: 401
Security.cs HTTPStatus Exception: 401
Graphicui
File Summary
GraphicUI.csproj HTTPStatus Exception: 401
Form1.cs HTTPStatus Exception: 401
GraphicUI.csproj.user HTTPStatus Exception: 401
Program.cs HTTPStatus Exception: 401
Form1.Designer.cs HTTPStatus Exception: 401
Form1.resx HTTPStatus Exception: 401
Winformsapp1
File Summary
WinFormsApp1.csproj.user HTTPStatus Exception: 401
Form1.cs HTTPStatus Exception: 401
Program.cs HTTPStatus Exception: 401
WinFormsApp1.csproj HTTPStatus Exception: 401
Form1.Designer.cs HTTPStatus Exception: 401
Form1.resx HTTPStatus Exception: 401
WinFormsApp1.sln HTTPStatus Exception: 401
Orderscs
File Summary
CancelOrderStatus.cs HTTPStatus Exception: 401
OrderBookEntry.cs HTTPStatus Exception: 401
Order.cs HTTPStatus Exception: 401
LimitComparer.cs HTTPStatus Exception: 401
RejectionReason.cs HTTPStatus Exception: 401
Rejection.cs HTTPStatus Exception: 401
IOrderCore.cs HTTPStatus Exception: 401
ModifyOrder.cs HTTPStatus Exception: 401
CancelOrder.cs HTTPStatus Exception: 401
ModifyOrderStatus.cs HTTPStatus Exception: 401
RejectCreator.cs HTTPStatus Exception: 401
Limit.cs HTTPStatus Exception: 401
OrderRecord.cs HTTPStatus Exception: 401
OrderStatusCreator.cs HTTPStatus Exception: 401
OrdersCS.csproj HTTPStatus Exception: 401
NewOrderStatus.cs HTTPStatus Exception: 401
Side.cs HTTPStatus Exception: 401
OrderCore.cs HTTPStatus Exception: 401
Graphiccs
File Summary
Graphic.cs HTTPStatus Exception: 401
Form1.cs HTTPStatus Exception: 401
GraphicCS.csproj HTTPStatus Exception: 401
GraphicCS.csproj.user HTTPStatus Exception: 401
Form1.Designer.cs HTTPStatus Exception: 401
Form1.resx HTTPStatus Exception: 401
Rejectcs
File Summary
Class1.cs HTTPStatus Exception: 401
RejectCS.csproj HTTPStatus Exception: 401
Orderbookcs
File Summary
NoMatchOrderbook.cs HTTPStatus Exception: 401
IReadOnlyOrderbook.cs HTTPStatus Exception: 401
MatchResult.cs HTTPStatus Exception: 401
OrderbookCS.csproj HTTPStatus Exception: 401
IMatchingOrderbook.cs HTTPStatus Exception: 401
IRetrievalOrderbook.cs HTTPStatus Exception: 401
OrderbookSpread.cs HTTPStatus Exception: 401
IOrderEntryOrderbook.cs HTTPStatus Exception: 401

🚀 Getting Started

Dependencies

Please ensure you have the following dependencies installed on your system:

- ℹ️ Dependency 1

- ℹ️ Dependency 2

- ℹ️ ...

🔧 Installation

  1. Clone the TradingEngine repository:
git clone https://github.com/iyasinn/TradingEngine
  1. Change to the project directory:
cd TradingEngine
  1. Install the dependencies:
dotnet build

🤖 Running TradingEngine

dotnet run

🧪 Tests

dotnet test

🛣 Roadmap

  • Finish server endpoints
  • Finish graphical interface

🤝 Contributing

Contributions are always welcome! Please follow these steps:

  1. Fork the project repository. This creates a copy of the project on your account that you can modify without affecting the original project.
  2. Clone the forked repository to your local machine using a Git client like Git or GitHub Desktop.
  3. Create a new branch with a descriptive name (e.g., new-feature-branch or bugfix-issue-123).
git checkout -b new-feature-branch
  1. Make changes to the project's codebase.
  2. Commit your changes to your local branch with a clear commit message that explains the changes you've made.
git commit -m 'Implemented new feature.'
  1. Push your changes to your forked repository on GitHub using the following command
git push origin new-feature-branch
  1. Create a new pull request to the original project repository. In the pull request, describe the changes you've made and why they're necessary. The project maintainers will review your changes and provide feedback or merge them into the main branch.

📄 License

This project is licensed under the ℹ️ LICENSE-TYPE License. See the LICENSE-Type file for additional info.


👏 Acknowledgments

- ℹ️ List any resources, contributors, inspiration, etc.

↑ Return