Boutquin.Trading.Application
0.5.0.1-beta01
dotnet add package Boutquin.Trading.Application --version 0.5.0.1-beta01
NuGet\Install-Package Boutquin.Trading.Application -Version 0.5.0.1-beta01
<PackageReference Include="Boutquin.Trading.Application" Version="0.5.0.1-beta01" />
paket add Boutquin.Trading.Application --version 0.5.0.1-beta01
#r "nuget: Boutquin.Trading.Application, 0.5.0.1-beta01"
// Install Boutquin.Trading.Application as a Cake Addin #addin nuget:?package=Boutquin.Trading.Application&version=0.5.0.1-beta01&prerelease // Install Boutquin.Trading.Application as a Cake Tool #tool nuget:?package=Boutquin.Trading.Application&version=0.5.0.1-beta01&prerelease
Boutquin.Trading.Application
*** Very much a work in progress ***
Application Layer
This project contains the application layer for a multi-asset, multi-currency, multi-strategy, event-driven trading platform for back testing strategies with portfolio-based risk management and %-per-strategy capital allocation..
Here are few key details:
IPortfolio Interface: The interface defines the properties and methods that a portfolio should have. It includes properties like IsLive, EventProcessor, Broker, Strategies, AssetCurrencies, HistoricalMarketData, HistoricalFxConversionRates, and EquityCurve which give essential data about the portfolio.
Portfolio Class: This class is an implementation of the IPortfolio interface. It provides the concrete implementation of the properties and methods defined in the interface. Note that few properties throw a NotImplementedException which signifies that those properties' implementation is not yet done in this class.
The methods are mainly focused on portfolio management in an automated trading system:
- HandleEventAsync: Asynchronously handle an event using the EventProcessor.
- UpdateHistoricalData: Update the historical market data and foreign exchange conversion rates based on the new market event.
- UpdateCashForDividend: Update the cash of each strategy holding a particular asset when a dividend event occurs.
- SubmitOrderAsync: Submit an order to the brokerage.
- GenerateSignals: Generate trading signals based on the market data.
- UpdatePosition and UpdateCash: Update the asset quantity in a strategy's position and the cash balance respectively.
- UpdateEquityCurve: Update the equity curve based on the total portfolio value.
- AdjustPositionForSplit and AdjustHistoricalDataForSplit: Adjust the positions and the historical market data respectively when a stock split occurs.
- etStrategy and GetAssetCurrency: Get the strategy or asset currency based on the name.
- CalculateTotalPortfolioValue: Calculate the total value of the portfolio.
Contributing
If you'd like to contribute to the development of the Security Master Data Access Layer, please feel free to submit a pull request or open an issue with your suggestions or improvements.
License
This project is licensed under the Apache 2.0 License. See the LICENSE file for more information.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- Boutquin.Trading.Domain (>= 0.5.0.1-beta01)
- System.Linq.Async (>= 6.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.5.0.1-beta01 | 59 | 5/15/2024 |
0.4.0-beta01 | 65 | 4/20/2024 |
0.3.0-beta01 | 60 | 4/16/2024 |
0.1.1-beta09 | 54 | 4/5/2024 |
0.1.1-beta05 | 73 | 3/16/2024 |
0.1.1-beta02 | 117 | 1/5/2024 |
0.1.1-beta01 | 67 | 1/5/2024 |
0.1.0-beta33 | 99 | 5/27/2023 |
0.1.0-beta30 | 87 | 5/23/2023 |
0.1.0-beta29 | 78 | 5/15/2023 |
0.1.0-beta28 | 81 | 5/14/2023 |
Initial version.