Refactors portfolio construction models with portfolio optimization

- Creates `MinimumVariancePortfolioOptimizer` and `MaximumSharpeRatioPortfolioOptimizer` portfolio optimizer. They implement `Optimize` method that returns a array of float representing the portfolio weights.
- Refactors `BlackLittermanOptimizationPortfolioConstructionModel` and `MeanVarianceOptimizationPortfolioConstructionModel` to use the portfolio optimizers. Part of the logic in BLOPC was changed to match the MVOPC one.
- Adds `BlackLittermanPortfolioOptimizationFrameworkAlgorithm` similar to `MeanVarianceOptimizationFrameworkAlgorithm` that uses BLOPC.
This commit is contained in:
AlexCatarino
2018-07-20 23:09:48 +01:00
parent ada48acfde
commit b0d1606118
9 changed files with 434 additions and 256 deletions
@@ -26,6 +26,7 @@
<Compile Include="BasicTemplateCryptoAlgorithm.py" />
<Compile Include="BasicTemplateIntrinioEconomicData.py" />
<Compile Include="BasicTemplateOptionsFrameworkAlgorithm.py" />
<Compile Include="BlackLittermanPortfolioOptimizationFrameworkAlgorithm.py" />
<Compile Include="CompositeAlphaModelFrameworkAlgorithm.py" />
<Compile Include="ConstituentsQC500GeneratorAlgorithm.py" />
<Compile Include="ConvertToFrameworkAlgorithm.py" />
@@ -85,7 +86,7 @@
<Compile Include="main.py" />
<Compile Include="MarginCallEventsAlgorithm.py" />
<Compile Include="MarketOnOpenOnCloseAlgorithm.py" />
<Compile Include="MeanVarianceOptimizationAlgorithm.py" />
<Compile Include="MeanVarianceOptimizationFrameworkAlgorithm.py" />
<Compile Include="MovingAverageCrossAlgorithm.py" />
<Compile Include="MultipleSymbolConsolidationAlgorithm.py" />
<Compile Include="OptionChainConsistencyRegressionAlgorithm.py" />