40c3062348
* 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
234 lines
13 KiB
XML
234 lines
13 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
|
<PropertyGroup>
|
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
<ProjectGuid>{2431419F-8BC6-4F59-944E-9A1CD28982DF}</ProjectGuid>
|
|
<OutputType>Exe</OutputType>
|
|
<RootNamespace>QuantConnect.Report</RootNamespace>
|
|
<AssemblyName>QuantConnect.Report</AssemblyName>
|
|
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
|
|
<FileAlignment>512</FileAlignment>
|
|
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
|
<NuGetPackageImportStamp>
|
|
</NuGetPackageImportStamp>
|
|
<TargetFrameworkProfile />
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
|
<DebugSymbols>true</DebugSymbols>
|
|
<DebugType>full</DebugType>
|
|
<Optimize>false</Optimize>
|
|
<OutputPath>bin\Debug\</OutputPath>
|
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
|
<ErrorReport>prompt</ErrorReport>
|
|
<WarningLevel>4</WarningLevel>
|
|
<DocumentationFile>bin\Debug\QuantConnect.Report.xml</DocumentationFile>
|
|
<Prefer32Bit>false</Prefer32Bit>
|
|
</PropertyGroup>
|
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
|
<DebugType>pdbonly</DebugType>
|
|
<Optimize>true</Optimize>
|
|
<OutputPath>bin\Release\</OutputPath>
|
|
<DefineConstants>TRACE</DefineConstants>
|
|
<ErrorReport>prompt</ErrorReport>
|
|
<WarningLevel>4</WarningLevel>
|
|
<Prefer32Bit>false</Prefer32Bit>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<StartupObject>QuantConnect.Report.Program</StartupObject>
|
|
</PropertyGroup>
|
|
<ItemGroup>
|
|
<Reference Include="Deedle, Version=2.1.0.0, Culture=neutral, processorArchitecture=MSIL">
|
|
<HintPath>..\packages\Deedle.2.1.0\lib\net45\Deedle.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="FSharp.Core, Version=4.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
|
<HintPath>..\packages\FSharp.Core.4.5.2\lib\net45\FSharp.Core.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="MathNet.Numerics, Version=4.9.0.0, Culture=neutral, processorArchitecture=MSIL">
|
|
<HintPath>..\packages\MathNet.Numerics.4.9.0\lib\net461\MathNet.Numerics.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="MoreLinq, Version=3.2.0.0, Culture=neutral, PublicKeyToken=384d532d7e88985d, processorArchitecture=MSIL">
|
|
<HintPath>..\packages\morelinq.3.2.0\lib\net451\MoreLinq.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
|
<HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="NodaTime, Version=1.3.0.0, Culture=neutral, PublicKeyToken=4226afe0d9b296d1, processorArchitecture=MSIL">
|
|
<HintPath>..\packages\NodaTime.1.3.4\lib\net35-Client\NodaTime.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="System" />
|
|
<Reference Include="System.Core" />
|
|
<Reference Include="System.Numerics" />
|
|
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
|
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="System.Runtime.Serialization" />
|
|
<Reference Include="System.Threading.Tasks.Extensions, Version=4.1.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
|
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.4.0\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
|
|
</Reference>
|
|
<Reference Include="System.ValueTuple, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
|
<HintPath>..\packages\System.ValueTuple.4.4.0\lib\net461\System.ValueTuple.dll</HintPath>
|
|
<Private>True</Private>
|
|
</Reference>
|
|
<Reference Include="System.Xml.Linq" />
|
|
<Reference Include="System.Data.DataSetExtensions" />
|
|
<Reference Include="Microsoft.CSharp" />
|
|
<Reference Include="System.Data" />
|
|
<Reference Include="System.Xml" />
|
|
</ItemGroup>
|
|
<PropertyGroup>
|
|
<IsWindows>false</IsWindows>
|
|
<IsWindows Condition="'$(OS)' == 'Windows_NT'">true</IsWindows>
|
|
<IsOSX>false</IsOSX>
|
|
<IsOSX Condition="'$(IsWindows)' != 'true' AND '$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))' == 'true'">true</IsOSX>
|
|
<IsLinux>false</IsLinux>
|
|
<IsLinux Condition="'$(IsWindows)' != 'true' AND '$(IsOSX)' != 'true' AND '$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))' == 'true'">true</IsLinux>
|
|
</PropertyGroup>
|
|
<Target Name="PrintRID" BeforeTargets="Build">
|
|
<Message Text="IsWindows $(IsWindows)" Importance="high" />
|
|
<Message Text="IsOSX $(IsOSX)" Importance="high" />
|
|
<Message Text="IsLinux $(IsLinux)" Importance="high" />
|
|
<Message Text="ForceLinuxBuild $(ForceLinuxBuild)" Importance="high" />
|
|
<Message Text="SelectedOptimization $(SelectedOptimization)" Importance="high" />
|
|
</Target>
|
|
<Choose>
|
|
<When Condition="$(IsWindows) AND '$(ForceLinuxBuild)' != 'true'">
|
|
<ItemGroup>
|
|
<Reference Include="Python.Runtime, Version=1.0.5.30, Culture=neutral, processorArchitecture=MSIL">
|
|
<HintPath>..\packages\QuantConnect.pythonnet.1.0.5.30\lib\win\Python.Runtime.dll</HintPath>
|
|
</Reference>
|
|
</ItemGroup>
|
|
</When>
|
|
<When Condition="$(IsLinux) OR '$(ForceLinuxBuild)' == 'true'">
|
|
<ItemGroup>
|
|
<Reference Include="Python.Runtime, Version=1.0.5.30, Culture=neutral, processorArchitecture=MSIL">
|
|
<HintPath>..\packages\QuantConnect.pythonnet.1.0.5.30\lib\linux\Python.Runtime.dll</HintPath>
|
|
</Reference>
|
|
</ItemGroup>
|
|
</When>
|
|
<When Condition="$(IsOSX) AND '$(ForceLinuxBuild)' != 'true'">
|
|
<ItemGroup>
|
|
<Reference Include="Python.Runtime, Version=1.0.5.30, Culture=neutral, processorArchitecture=MSIL">
|
|
<HintPath>..\packages\QuantConnect.pythonnet.1.0.5.30\lib\osx\Python.Runtime.dll</HintPath>
|
|
</Reference>
|
|
</ItemGroup>
|
|
</When>
|
|
</Choose>
|
|
<ItemGroup>
|
|
<Compile Include="..\Common\Properties\SharedAssemblyInfo.cs">
|
|
<Link>Properties\SharedAssemblyInfo.cs</Link>
|
|
</Compile>
|
|
<Compile Include="OrderTypeNormalizingJsonConverter.cs" />
|
|
<Compile Include="NullResultValueTypeJsonConverter.cs" />
|
|
<Compile Include="PortfolioLooper\MockDataFeed.cs" />
|
|
<Compile Include="PortfolioLooper\PortfolioLooperAlgorithm.cs" />
|
|
<Compile Include="ReportElements\DaysLiveReportElement.cs" />
|
|
<Compile Include="ResultsUtil.cs" />
|
|
<Compile Include="Metrics.cs" />
|
|
<Compile Include="Rolling.cs" />
|
|
<Compile Include="DeedleUtil.cs" />
|
|
<Compile Include="PointInTimePortfolio.cs" />
|
|
<Compile Include="PortfolioLooper\PortfolioLooper.cs" />
|
|
<Compile Include="CrisisEvent.cs" />
|
|
<Compile Include="Crisis.cs" />
|
|
<Compile Include="DrawdownCollection.cs" />
|
|
<Compile Include="DrawdownPeriod.cs" />
|
|
<Compile Include="ReportElements\AssetAllocationReportElement.cs" />
|
|
<Compile Include="ReportElements\ExposureReportElement.cs" />
|
|
<Compile Include="ReportElements\LeverageUtilizationReportElement.cs" />
|
|
<Compile Include="ReportElements\RollingSharpeReportElement.cs" />
|
|
<Compile Include="ReportElements\RollingPortfolioBetaReportElement.cs" />
|
|
<Compile Include="ReportElements\DailyReturnsReportElement.cs" />
|
|
<Compile Include="ReportElements\DrawdownReportElement.cs" />
|
|
<Compile Include="ReportElements\ReturnsPerTradeReportElement.cs" />
|
|
<Compile Include="ReportElements\AnnualReturnsReportElement.cs" />
|
|
<Compile Include="ReportElements\CumulativeReturnsReportElement.cs" />
|
|
<Compile Include="ReportElements\MonthlyReturnsReportElement.cs" />
|
|
<Compile Include="ReportElements\KellyEstimateReportElement.cs" />
|
|
<Compile Include="ReportElements\ChartReportElement.cs" />
|
|
<Compile Include="ReportElements\TradesPerDayReportElement.cs" />
|
|
<Compile Include="ReportElements\PSRReportElement.cs" />
|
|
<Compile Include="ReportElements\MaxDrawdownReportElement.cs" />
|
|
<Compile Include="ReportElements\InformationRatioReportElement.cs" />
|
|
<Compile Include="ReportElements\MarketsReportElement.cs" />
|
|
<Compile Include="ReportElements\CAGRReportElement.cs" />
|
|
<Compile Include="ReportElements\TurnoverReportElement.cs" />
|
|
<Compile Include="ReportElements\SharpeRatioReportElement.cs" />
|
|
<Compile Include="ReportElements\EstimatedCapacityReportElement.cs" />
|
|
<Compile Include="ReportElements\CrisisReportElement.cs" />
|
|
<Compile Include="ReportElements\ReportElement.cs" />
|
|
<Compile Include="ReportElements\IReportElement.cs" />
|
|
<Compile Include="Report.cs" />
|
|
<Compile Include="Program.cs" />
|
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
|
<Compile Include="ReportKey.cs" />
|
|
<Compile Include="ReportElements\TextReportElement.cs" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Content Include="css\report.css">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="ReportCharts.py">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<None Include="App.config" />
|
|
<Content Include="config.example.json">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<None Include="packages.config" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\Algorithm\QuantConnect.Algorithm.csproj">
|
|
<Project>{3240ACA4-BDD4-4D24-AC36-BBB651C39212}</Project>
|
|
<Name>QuantConnect.Algorithm</Name>
|
|
</ProjectReference>
|
|
<ProjectReference Include="..\Api\QuantConnect.Api.csproj">
|
|
<Project>{c5d44209-49a0-4505-a870-043c5ef5fddf}</Project>
|
|
<Name>QuantConnect.Api</Name>
|
|
</ProjectReference>
|
|
<ProjectReference Include="..\Brokerages\QuantConnect.Brokerages.csproj">
|
|
<Project>{2D3E13CF-2D14-4180-A42D-F0A13AF0ADE2}</Project>
|
|
<Name>QuantConnect.Brokerages</Name>
|
|
</ProjectReference>
|
|
<ProjectReference Include="..\Common\QuantConnect.csproj">
|
|
<Project>{2545C0B4-FABB-49C9-8DD1-9AD7EE23F86B}</Project>
|
|
<Name>QuantConnect</Name>
|
|
</ProjectReference>
|
|
<ProjectReference Include="..\Configuration\QuantConnect.Configuration.csproj">
|
|
<Project>{0aeb4ea3-28c8-476e-89fd-926f06590b4c}</Project>
|
|
<Name>QuantConnect.Configuration</Name>
|
|
</ProjectReference>
|
|
<ProjectReference Include="..\Engine\QuantConnect.Lean.Engine.csproj">
|
|
<Project>{12156F46-D07E-4E3D-AD2B-7409E82AB62F}</Project>
|
|
<Name>QuantConnect.Lean.Engine</Name>
|
|
</ProjectReference>
|
|
<ProjectReference Include="..\Logging\QuantConnect.Logging.csproj">
|
|
<Project>{01911409-86BE-4E7D-9947-DF714138610D}</Project>
|
|
<Name>QuantConnect.Logging</Name>
|
|
</ProjectReference>
|
|
<ProjectReference Include="..\Messaging\QuantConnect.Messaging.csproj">
|
|
<Project>{f2e90e2d-ba25-40e2-b39a-0ba31e68f7f8}</Project>
|
|
<Name>QuantConnect.Messaging</Name>
|
|
</ProjectReference>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Content Include="ReportChartTests.py" />
|
|
<Content Include="template.crisis.html">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
<Content Include="template.html">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</Content>
|
|
</ItemGroup>
|
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
|
<Import Project="..\packages\QuantConnect.pythonnet.1.0.5.30\build\QuantConnect.pythonnet.targets" Condition="Exists('..\packages\QuantConnect.pythonnet.1.0.5.30\build\QuantConnect.pythonnet.targets')" />
|
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
|
<PropertyGroup>
|
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
|
</PropertyGroup>
|
|
<Error Condition="!Exists('..\packages\QuantConnect.pythonnet.1.0.5.30\build\QuantConnect.pythonnet.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\QuantConnect.pythonnet.1.0.5.30\build\QuantConnect.pythonnet.targets'))" />
|
|
</Target>
|
|
</Project> |