Commit Graph

13 Commits

Author SHA1 Message Date
Gerardo Salazar 40c3062348 Improves Report Generator stability and fixes various bugs (#4759)
* Improves stability and fixes various bugs

  * Adds unit tests covering changes
  * Adds COVID-19 crisis plots
  * Adjusts styling of crisis plots for more pleasant viewing
  * Fixes bug where null BacktestResult caused application to crash
  * Order JSON bug fixes and stability improvements
  * MaxDrawdownReportElement now produces results for Live
  * Replaced Estimated Capacity w/ Days Live
  * Added Live marker to sharpe ratio
  * Added support for MOO and MOC orders in PortfolioLooper

* Address review: adds new unit tests and cleans up code

  * Bug fix: use LastFillTime instead of Order.Time for MOO and MOC

* Address review: Fixes tests and cleans up code
2020-09-29 10:03:26 -03:00
Martin-Molinero f4ed48fce2 Always use AlgorithmHandler.DataProvider (#4658)
- `UniverseSelection` and `Research` will always use
  `AlgorithmHandler.DataProvider` instance instead of
  `DefaultDataProvider`
- Remove Compression at test/app.config since the dll isn't required
- Add missing license header
2020-08-27 16:07:56 -03:00
Martin Molinero bcc67d2457 DataPermissionManager is used by history provider
- DataPermissionManager will be used by the history provider
- Moving interfaces from Engine to Common
2020-06-12 12:51:14 -03:00
Martin Molinero 452bf27bd9 Adding new DataPermissionManager
- Adding new DataPermissionManager that will own the existing
  datachannelProvider. Will assert configurations before added to the
  data feed. Adding unit tests
2020-06-12 12:34:10 -03:00
Martin Molinero 4a99eb11c6 Fix regression tests
- Fix regression tests. Future symbol contains the market which was used
  un the order hash list
2020-04-28 16:29:16 -03:00
Gerardo Salazar 558779949d Address review - trim unecessary code and ignore case on Enum parse 2020-04-14 11:08:40 -07:00
Gerardo Salazar 093ddc848d Fixes issue when parsing LiveResult JSON with string OrderType values 2020-04-10 17:24:20 -07:00
Gerardo Salazar e5ed489e0b Fixes issue where PortfolioLooper would crash generating certain reports
* Updates SharpeRatioReportElement calculation
2020-03-26 11:50:08 -07:00
Martin-Molinero 78fb93a64b Merge branch 'master' into bug-report-generator-add-null-handling-for-valuetype-jsonconverter 2020-03-18 17:06:19 -03:00
Gerardo Salazar c9e6d52b83 Address review - adds unit tests for NullResultValueTypeJsonConverter
* Downgrades Json.NET to 10.0.3 for project compatibility
* Cleans up unused imports and unused code
2020-03-12 15:34:40 -07:00
Gerardo Salazar 77411a0b09 Fixes issue where setting leverage on cash accounts results in error
* Adds new unit tests
2020-03-12 10:42:30 -07:00
Gerardo Salazar 5d663e8944 Fixes various issues
* Fixes issue with how cumulative percent change was calculated
* Reworks PercentChange extension method
* Fixes PortfolioLooper leverage calculation
* Disable page 2 of reports
* Fix issue where missing values produced misaligned shape in
AnnualReturnsReportElement.cs
2019-12-31 17:37:19 -08:00
Gerardo Salazar 7cc4dec6b7 Reworks structure of project
We now will calculate all of the metrics needed to directly plot the
data in C# instead of doing calculations in Python.

This has added benefits in that the code can be easily reused to generate
plots from Result packets and makes the underlying plotting library we
use more extensible and replaceable.

* Adds Calculations.cs
* Refactors some of ReportCharts.py
* Adds Drawdown classes
* Adds Deedle and MathNet.Numerics packages
* Completes calcuations in C# side instead of Python

Side note: I think it's a little funny that we were previously
calculating the plots via Pandas, which uses a C backend. Effectively, we
were transferring data between at least 2 separate FFI
boundaries: C# -> Py -> C -> ? (whatever BLAS is written in)
2019-12-18 16:08:40 -08:00