Commit Graph

50 Commits

Author SHA1 Message Date
Gerardo Salazar f1c98b848a Partially fixes memory leak in PandasConverter 2020-12-06 19:13:54 -08:00
Gerardo Salazar 43c6d5cc5a Adds extra simplified history request method in PortfoliioLooper (#5003) 2020-12-06 15:13:32 -08:00
Colton Sellers 041f1d9db5 Limit Futures Resolutions in BaseData (#4979)
* Limit futures support resolutions

* Fix broken tests

* Address review
2020-12-03 21:50:17 -03:00
Martin-Molinero c7ccd60bf2 Fix unit test stack overflow (#4803)
- PortfolioLooper: implement IDisposable and handle the clean up of
  resources. Remove unused methods.
- BaseResultHandler will reset Console on exit
2020-10-01 14:49:43 -03:00
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
Adalyat Nazirov 1e3a1e3c43 Historical data requests start & time fix (#4733)
* regression tests

* fix: apply the same time convertion to history request time as for data time

* ver2

* fixup

* unit tests

* do not need this conversion because RoundDownInTimeZone returns in proper TZ

* comment

* requested changes

* refactoring

* more refactoring

* fix existing test: should return Sunday if open

* more symbols

* fix existing tests: submit new btcusd data

* fix

* add Cfd symbol
2020-09-24 14:51:35 -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
Alexandre Catarino 68455fe19c AnyCPU Prefer 64-bit for Report Project
All projects that depends on Python.Runtime.dll need to be compiled in 64-bit.
2020-07-29 12:41:44 +01: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
Stefano Raggi cfb3329f33 Update System.Net.Http to latest version
- also removed unused references
2020-05-22 22:55:18 +02:00
Martin-Molinero 1d0d4f4d7b Add assembly descriptions (#4442)
Add assembly descriptions
2020-05-21 09:35:12 -07:00
Gerardo Salazar 1910e8e233 Fixes issue in Report project where decimal.MaxValue made Json.NET deserialization fail 2020-05-19 17:17:35 -07:00
Martin Molinero 891cf4d69b Update to .Net 4.6.2 2020-05-15 17:32:46 -03:00
Gerardo Salazar 581eafb551 Address review - remove unused code in OrderTypeNormalizingJsonConverter 2020-04-15 09:59:21 -07: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 bd62a76a35 Fixes calculation of Cumulative Returns
* Updates outdated documentation
2020-04-06 10:45:52 -07:00
AlexCatarino 72f0f44f60 Updates Pythonnet Version
From 1.0.5.29 to 1.0.5.30
Ref.: https://github.com/QuantConnect/pythonnet/pull/42
2020-04-01 16:15:05 +01:00
Gerardo Salazar 208e6eb03e Address review - revert change to backtest sharpe if live not found 2020-03-26 12:17:03 -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 2868973a56 Fixes issue where null Series values would default to 0
* Adds a new JsonConverter implementation that handles null
  values in the ChartPoint JSON representation. It skips any
  value that is found to be "null" or unparsable
2020-03-09 12:10:23 -07:00
Jared c3407b3e8c Merge pull request #4088 from gsalaz98/bug-4081-embed-stylesheet-in-report-output
Embeds report stylesheet in the output file.
2020-02-11 17:11:48 -08:00
Gerardo Salazar d3a34dcd70 Fixes issue where report creator could not be ran in Mac OSX
* Adds `PythonInitializer.SetPythonPathEnvironmentVariable(...?)` method
2020-02-11 15:01:47 -08:00
Gerardo Salazar 2bce084546 Embeds report stylesheet in the output file.
This is done to make the HTML for the report a standalone page
without requiring the user to provide the *.css file along with
their report
2020-02-10 17:27:23 -08: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 1c4935fc60 Address review - increase performance and refactor
* Deletes NullAlphaHandler, NullLeanManager, NullSynchronizer
* Calculate the backtest and live PointInTimePortfolios only once now
* Refactor Metrics calculations
* Add missing license headers to some files
* Reverts accessibility of AddToUserDefinedAlgorithm to private
* Other misc. fixes and cleanup
2019-12-23 14:13:28 -08:00
Gerardo Salazar 53653fe6ed Address review - Revert version changes to sln file
* Fixes comments on a few report elements
* Fixes wrong name of a report element "psr kpi" -> "ir kpi"
2019-12-19 11:14:24 -08:00
Gerardo Salazar e7ce60e700 Fix failing tests
* Move config.json to config.example.json to fix tests
2019-12-19 10:11:47 -08:00
Gerardo Salazar e2c75fa5fa Address review - delete python report creator
* Move PortfolioLooper classes to their own files
* Remove VisualStudioPlugin project
* Add SharedAssemblyInfo
* Add new crisis events
2019-12-18 18:02:04 -08:00
Gerardo Salazar eb6e13d91f Fixes many issues and refactors some of the report creator
* Can handle null Result packets
* Created utility files
* Added various helper methods to PortfolioLooper
* Fixes build issue by removing System.Collections.Immutable
* Updates plots to show "Insufficient data" when it can't be created
* Hides empty crisis page
* Fixes wkhtmltopdf display bug
* Removes Calculations.cs
* Modifies accessibility of AddToUserDefinedUniverse in QCAlgorithm
* Add null value handling in OrderJsonConverter
* Various bug fixes
* Fixes broken ReportChartTests.py
* Adds leverage to PointInTimePortfolio
2019-12-18 16:10:56 -08:00
Gerardo Salazar 98680be625 Revert PSR report to use backtest result PSR statistic instead 2019-12-18 16:08:41 -08:00
Gerardo Salazar d3528c2ea2 Polish asset allocation and exposure charts 2019-12-18 16:08:41 -08:00
Gerardo Salazar 55d802a3b6 Implements support for FX pairs that require currency conversion
* Fixes bugs in various plots
2019-12-18 16:08:40 -08:00
Gerardo Salazar 9a2f20493a Finish implementing all graphs, fix bugs in various graphs
* Adds Asset allocation chart
* Fixes issue in monthly returns
* Fixes issue with matplotlib tick lines not being consistent
* Style plots correctly
2019-12-18 16:08:40 -08:00
Gerardo Salazar a94077f05a Implements exposure chart.
* Fixes bugs with the following plots:
  - Leverage
  - Drawdown
2019-12-18 16:08:40 -08:00
Gerardo Salazar ef3a688da5 Implements leverage chart 2019-12-18 16:08:40 -08:00
Gerardo Salazar 62714aabf6 Add license to source code files files missing it under Reports project 2019-12-18 16:08:40 -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
Gerardo Salazar e156b6d5ab Implement Rolling Sharpe ratio plot 2019-12-18 16:08:40 -08:00
Gerardo Salazar 3e81cdd07b Implement Rolling Beta (6 month and 12 month) chart 2019-12-18 16:08:40 -08:00
Gerardo Salazar 82429318d8 Implements Daily Returns chart and some styling fixes 2019-12-18 16:08:40 -08:00
Gerardo Salazar fa54cd9652 Implements Drawdown chart w/ drawdown periods 2019-12-18 16:08:40 -08:00
Gerardo Salazar a8574d437a Implements Returns Per Trade chart
* Fixes typo in function name in ReportCharts.py
2019-12-18 16:08:40 -08:00
Gerardo Salazar 261f07adef Implement Annual Returns plot section 2019-12-18 16:08:40 -08:00
Gerardo Salazar d7c7082543 Fixes bug preventing successful execution of the program
* Restyles and reworks some of the cumulative percentage gain graph
2019-12-18 16:08:40 -08:00
Jared Broad f66a682f63 Debug commit 2019-12-18 16:08:40 -08:00