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
@@ -38,6 +38,7 @@
<ItemGroup>
<Content Include="BasicTemplateOptionsFrameworkAlgorithm.py" />
<Compile Include="Properties\AssemblyInfo.cs" />
<None Include="BlackLittermanPortfolioOptimizationFrameworkAlgorithm.py" />
<None Include="packages.config" />
<None Include="PearsonCorrelationPairsTradingAlphaModelFrameworkAlgorithm.py" />
</ItemGroup>
@@ -107,7 +108,7 @@
<None Include="main.py" />
<None Include="MarginCallEventsAlgorithm.py" />
<None Include="MarketOnOpenOnCloseAlgorithm.py" />
<None Include="MeanVarianceOptimizationAlgorithm.py" />
<None Include="MeanVarianceOptimizationFrameworkAlgorithm.py" />
<None Include="MovingAverageCrossAlgorithm.py" />
<None Include="MultipleSymbolConsolidationAlgorithm.py" />
<None Include="OptionChainConsistencyRegressionAlgorithm.py" />