Files
quantconnect--lean/Algorithm.Python/QuantConnect.Algorithm.Python.csproj
T
Michael Handschuh 362826988f Improve DynamicSecurityData usability
Adds IRegisteredSecurityDataTypesProvider to track all the data types
registered in the algorithm. Using this data, we can detect if it's
possible that we'll eventually have a property of a certain type name.
For example, consider I wish to use security.Data.TradeBar but we haven't
received any trade bars yet. Before this change a KeyNotFoundException
would be raised, but since we can determine that we expect to have trade
bars, we can detect this and return an empty list when we haven't received
any data yet. This also removes the need to constantly do a HasData<T>()
check before accessing the dynamic members.

Closes #3620
2019-09-30 19:06:21 -04:00

310 lines
19 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.2.9.3\build\Microsoft.CodeAnalysis.FxCopAnalyzers.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.2.9.3\build\Microsoft.CodeAnalysis.FxCopAnalyzers.props')" />
<Import Project="..\packages\Microsoft.NetFramework.Analyzers.2.9.3\build\Microsoft.NetFramework.Analyzers.props" Condition="Exists('..\packages\Microsoft.NetFramework.Analyzers.2.9.3\build\Microsoft.NetFramework.Analyzers.props')" />
<Import Project="..\packages\Microsoft.NetCore.Analyzers.2.9.3\build\Microsoft.NetCore.Analyzers.props" Condition="Exists('..\packages\Microsoft.NetCore.Analyzers.2.9.3\build\Microsoft.NetCore.Analyzers.props')" />
<Import Project="..\packages\Microsoft.CodeQuality.Analyzers.2.9.3\build\Microsoft.CodeQuality.Analyzers.props" Condition="Exists('..\packages\Microsoft.CodeQuality.Analyzers.2.9.3\build\Microsoft.CodeQuality.Analyzers.props')" />
<Import Project="..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.2.9.3\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.2.9.3\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.props')" />
<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>{48289996-CE56-4EDF-B451-4A2B1519EBC3}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>QuantConnect.Algorithm.Python</RootNamespace>
<AssemblyName>QuantConnect.Algorithm.Python</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<LangVersion>6</LangVersion>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<CodeAnalysisRuleSet>..\QuantConnect.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>6</LangVersion>
<CodeAnalysisRuleSet>..\QuantConnect.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>6</LangVersion>
<CodeAnalysisRuleSet>..\QuantConnect.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Content Include="AddAlphaModelAlgorithm.py" />
<Content Include="AddRiskManagementAlgorithm.py" />
<Content Include="AddUniverseSelectionModelAlgorithm.py" />
<Content Include="Alphas\ContingentClaimsAnalysisDefaultPredictionAlpha.py" />
<Content Include="Alphas\GasAndCrudeOilEnergyCorrelationAlpha.py" />
<Content Include="Alphas\GlobalEquityMeanReversionIBSAlpha.py" />
<Content Include="Alphas\IntradayReversalCurrencyMarketsAlpha.py" />
<Content Include="Alphas\GreenblattMagicFormulaAlpha.py" />
<Content Include="Alphas\MeanReversionLunchBreakAlpha.py" />
<Content Include="Alphas\PriceGapMeanReversionAlpha.py" />
<Content Include="Alphas\SykesShortMicroCapAlpha.py" />
<Content Include="Alphas\RebalancingLeveragedETFAlpha.py" />
<Content Include="Alphas\TriangleExchangeRateArbitrageAlpha.py" />
<Content Include="Alphas\ShareClassMeanReversionAlpha.py" />
<Content Include="Alphas\TripleLeverageETFPairVolatilityDecayAlpha.py" />
<Content Include="Alphas\VIXDualThrustAlpha.py" />
<Content Include="BasicCSharpIntegrationTemplateAlgorithm.py" />
<Content Include="BasicSetAccountCurrencyAlgorithm.py" />
<None Include="USTreasuryYieldCurveDataAlgorithm.py" />
<None Include="SmartInsiderDataAlgorithm.py" />
<None Include="PandasDataFrameHistoryAlgorithm.py" />
<None Include="CustomDataAddDataRegressionAlgorithm.py" />
<Content Include="CustomDataAddDataOnSecuritiesChangedRegressionAlgorithm.py" />
<Content Include="CustomDataAddDataCoarseSelectionRegressionAlgorithm.py" />
<Content Include="DynamicSecurityDataAlgorithm.py" />
<Content Include="KerasNeuralNetworkAlgorithm.py" />
<None Include="PsychSignalSentimentRegressionAlgorithm.py" />
<Content Include="CustomDataUsingMapFileRegressionAlgorithm.py" />
<Content Include="TradingEconomicsCalendarIndicatorAlgorithm.py" />
<Content Include="OnEndOfDayRegressionAlgorithm.py" />
<Content Include="SECReportDataAlgorithm.py" />
<Content Include="UniverseUnchangedRegressionAlgorithm.py" />
<Content Include="USEnergyInformationAdministrationAlgorithm.py" />
<None Include="NLTKSentimentTradingAlgorithm.py" />
<None Include="PytorchNeuralNetworkAlgorithm.py" />
<None Include="RawPricesUniverseRegressionAlgorithm.py" />
<None Include="CapmAlphaRankingFrameworkAlgorithm.py" />
<None Include="ScikitLearnLinearRegressionAlgorithm.py" />
<None Include="SmaCrossUniverseSelectionAlgorithm.py" />
<Content Include="Benchmarks\StatefulCoarseUniverseSelectionBenchmark.py" />
<Content Include="Benchmarks\StatelessCoarseUniverseSelectionBenchmark.py" />
<Content Include="G10CurrencySelectionModelFrameworkAlgorithm.py" />
<Content Include="ExpiryHelperAlphaModelFrameworkAlgorithm.py" />
<Content Include="BasicTemplateFuturesFrameworkAlgorithm.py" />
<Content Include="BasicTemplateOptionsFrameworkAlgorithm.py" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Content Include="InsightWeightingFrameworkAlgorithm.py" />
<None Include="CompositeRiskManagementModelFrameworkAlgorithm.py" />
<None Include="BlackLittermanPortfolioOptimizationFrameworkAlgorithm.py" />
<None Include="packages.config" />
<None Include="TensorFlowNeuralNetworkAlgorithm.py" />
<None Include="TiingoDailyDataAlgorithm.py" />
<None Include="PearsonCorrelationPairsTradingAlphaModelFrameworkAlgorithm.py" />
</ItemGroup>
<ItemGroup>
<None Include="AddRemoveSecurityRegressionAlgorithm.py" />
<None Include="app.config">
<SubType>Designer</SubType>
</None>
<None Include="BasicTemplateAlgorithm.py" />
<None Include="BasicTemplateCryptoAlgorithm.py" />
<None Include="BasicTemplateDailyAlgorithm.py" />
<None Include="BasicTemplateFillForwardAlgorithm.py" />
<None Include="BasicTemplateForexAlgorithm.py" />
<None Include="BasicTemplateFrameworkAlgorithm.py" />
<None Include="BasicTemplateFuturesAlgorithm.py" />
<None Include="BasicTemplateFuturesConsolidationAlgorithm.py" />
<None Include="BasicTemplateFuturesHistoryAlgorithm.py" />
<None Include="BasicTemplateIntrinioEconomicData.py" />
<None Include="BasicTemplateLibrary.py" />
<None Include="BasicTemplateOptionsAlgorithm.py" />
<None Include="BasicTemplateOptionsFilterUniverseAlgorithm.py" />
<None Include="BasicTemplateOptionsHistoryAlgorithm.py" />
<None Include="BasicTemplateOptionStrategyAlgorithm.py" />
<None Include="BasicTemplateOptionTradesAlgorithm.py" />
<None Include="BrokerageModelAlgorithm.py" />
<None Include="BubbleAlgorithm.py" />
<None Include="build.sh" />
<None Include="build.bat" />
<None Include="CoarseFineFundamentalComboAlgorithm.py" />
<None Include="CoarseFineFundamentalRegressionAlgorithm.py" />
<None Include="CoarseFundamentalTop3Algorithm.py" />
<None Include="CompositeAlphaModelFrameworkAlgorithm.py" />
<None Include="ConstituentsQC500GeneratorAlgorithm.py" />
<None Include="CustomBenchmarkAlgorithm.py" />
<None Include="CustomChartingAlgorithm.py" />
<None Include="CustomDataBitcoinAlgorithm.py" />
<None Include="CustomDataIndicatorExtensionsAlgorithm.py" />
<None Include="CustomDataNIFTYAlgorithm.py" />
<None Include="CustomDataRegressionAlgorithm.py" />
<None Include="CustomDataUniverseAlgorithm.py" />
<None Include="CustomIndicatorAlgorithm.py" />
<None Include="CustomModelsAlgorithm.py" />
<None Include="CustomSecurityInitializerAlgorithm.py" />
<None Include="CustomVolatilityModelAlgorithm.py" />
<None Include="DailyAlgorithm.py" />
<None Include="DataConsolidationAlgorithm.py" />
<None Include="DelistingEventsAlgorithm.py" />
<None Include="DisplacedMovingAverageRibbon.py" />
<None Include="DividendAlgorithm.py" />
<None Include="DropboxBaseDataUniverseSelectionAlgorithm.py" />
<None Include="DropboxUniverseSelectionAlgorithm.py" />
<None Include="EmaCrossUniverseSelectionAlgorithm.py" />
<None Include="EmaCrossUniverseSelectionFrameworkAlgorithm.py" />
<None Include="ETFGlobalRotationAlgorithm.py" />
<None Include="FilteredIdentityAlgorithm.py" />
<None Include="FinancialAdvisorDemoAlgorithm.py" />
<None Include="FractionalQuantityRegressionAlgorithm.py" />
<None Include="FuturesMomentumAlgorithm.py" />
<None Include="HistoryAlgorithm.py" />
<None Include="IndicatorWarmupAlgorithm.py" />
<None Include="HourReverseSplitRegressionAlgorithm.py" />
<None Include="HourSplitRegressionAlgorithm.py" />
<None Include="IndicatorSuiteAlgorithm.py" />
<None Include="LimitFillRegressionAlgorithm.py" />
<None Include="MACDTrendAlgorithm.py" />
<None Include="main.py" />
<None Include="MarginCallEventsAlgorithm.py" />
<None Include="MarketOnOpenOnCloseAlgorithm.py" />
<None Include="MaximumPortfolioDrawdownFrameworkAlgorithm.py" />
<None Include="MeanVarianceOptimizationFrameworkAlgorithm.py" />
<None Include="MovingAverageCrossAlgorithm.py" />
<None Include="MultipleSymbolConsolidationAlgorithm.py" />
<None Include="OptionChainConsistencyRegressionAlgorithm.py" />
<None Include="OptionChainProviderAlgorithm.py" />
<None Include="OptionExerciseAssignRegressionAlgorithm.py" />
<None Include="OptionOpenInterestRegressionAlgorithm.py" />
<None Include="OptionRenameRegressionAlgorithm.py" />
<None Include="OptionSplitRegressionAlgorithm.py" />
<None Include="OrderTicketDemoAlgorithm.py" />
<None Include="ParameterizedAlgorithm.py" />
<None Include="QCUWeatherBasedRebalancing.py" />
<None Include="QuandlFuturesDataAlgorithm.py" />
<None Include="QuandlImporterAlgorithm.py" />
<None Include="readme.md" />
<None Include="RawPricesCoarseUniverseAlgorithm.py" />
<None Include="RegressionAlgorithm.py" />
<None Include="RegressionChannelAlgorithm.py" />
<None Include="RenkoConsolidatorAlgorithm.py" />
<None Include="RollingWindowAlgorithm.py" />
<None Include="ScheduledEventsAlgorithm.py" />
<None Include="ScheduledUniverseSelectionModelRegressionAlgorithm.py" />
<None Include="SectorExposureRiskFrameworkAlgorithm.py" />
<None Include="StandardDeviationExecutionModelRegressionAlgorithm.py" />
<None Include="TimeInForceAlgorithm.py" />
<None Include="TrailingStopRiskFrameworkAlgorithm.py" />
<None Include="UncorrelatedUniverseSelectionFrameworkAlgorithm.py" />
<None Include="UniverseSelectionDefinitionsAlgorithm.py" />
<None Include="UniverseSelectionRegressionAlgorithm.py" />
<None Include="UpdateOrderRegressionAlgorithm.py" />
<None Include="UserDefinedUniverseAlgorithm.py" />
<None Include="VolumeWeightedAveragePriceExecutionModelRegressionAlgorithm.py" />
<None Include="WarmupAlgorithm.py" />
<None Include="WarmupHistoryAlgorithm.py" />
<None Include="WeeklyUniverseSelectionRegressionAlgorithm.py" />
<None Include="Benchmarks\BasicTemplateBenchmark.py" />
<None Include="Benchmarks\EmptyMinute400EquityBenchmark.py" />
<None Include="Benchmarks\EmptySingleSecuritySecondEquityBenchmark.py" />
<None Include="Benchmarks\HistoryRequestBenchmark.py" />
<None Include="Benchmarks\CoarseFineUniverseSelectionBenchmark.py" />
<None Include="Benchmarks\IndicatorRibbonBenchmark.py" />
<None Include="Benchmarks\ScheduledEventsBenchmark.py" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Algorithm\QuantConnect.Algorithm.csproj">
<Project>{3240aca4-bdd4-4d24-ac36-bbb651c39212}</Project>
<Name>QuantConnect.Algorithm</Name>
</ProjectReference>
<ProjectReference Include="..\Common\QuantConnect.csproj">
<Project>{2545c0b4-fabb-49c9-8dd1-9ad7ee23f86b}</Project>
<Name>QuantConnect</Name>
</ProjectReference>
<ProjectReference Include="..\Indicators\QuantConnect.Indicators.csproj">
<Project>{73fb2522-c3ed-4e47-8e3d-afad48a6b888}</Project>
<Name>QuantConnect.Indicators</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="ConvertToFrameworkAlgorithm.py" />
</ItemGroup>
<ItemGroup>
<None Include="OptionDataNullReferenceRegressionAlgorithm.py" />
</ItemGroup>
<ItemGroup>
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.2.9.3\analyzers\dotnet\Microsoft.CodeAnalysis.VersionCheckAnalyzer.dll" />
<Analyzer Include="..\packages\Microsoft.CodeQuality.Analyzers.2.9.3\analyzers\dotnet\cs\Humanizer.dll" />
<Analyzer Include="..\packages\Microsoft.CodeQuality.Analyzers.2.9.3\analyzers\dotnet\cs\Microsoft.CodeQuality.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.CodeQuality.Analyzers.2.9.3\analyzers\dotnet\cs\Microsoft.CodeQuality.CSharp.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.NetCore.Analyzers.2.9.3\analyzers\dotnet\cs\Microsoft.NetCore.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.NetCore.Analyzers.2.9.3\analyzers\dotnet\cs\Microsoft.NetCore.CSharp.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.NetFramework.Analyzers.2.9.3\analyzers\dotnet\cs\Microsoft.NetFramework.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.NetFramework.Analyzers.2.9.3\analyzers\dotnet\cs\Microsoft.NetFramework.CSharp.Analyzers.dll" />
</ItemGroup>
<ItemGroup>
<Reference Include="StringInterpolationBridge, Version=0.9.1.0, Culture=neutral, PublicKeyToken=761dcf67ba0bf74d, processorArchitecture=MSIL">
<HintPath>..\packages\StringInterpolationBridgeStrong.0.9.1\lib\net40\StringInterpolationBridge.dll</HintPath>
</Reference>
</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" />
</Target>
<Choose>
<When Condition="$(IsWindows) AND '$(ForceLinuxBuild)' != 'true'">
<ItemGroup>
<Reference Include="Python.Runtime, Version=1.0.5.25, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\QuantConnect.pythonnet.1.0.5.25\lib\win\Python.Runtime.dll</HintPath>
</Reference>
</ItemGroup>
</When>
<When Condition="$(IsLinux) OR '$(ForceLinuxBuild)' == 'true'">
<ItemGroup>
<Reference Include="Python.Runtime, Version=1.0.5.25, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\QuantConnect.pythonnet.1.0.5.25\lib\linux\Python.Runtime.dll</HintPath>
</Reference>
</ItemGroup>
</When>
<When Condition="$(IsOSX) AND '$(ForceLinuxBuild)' != 'true'">
<ItemGroup>
<Reference Include="Python.Runtime, Version=1.0.5.25, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\QuantConnect.pythonnet.1.0.5.25\lib\osx\Python.Runtime.dll</HintPath>
</Reference>
</ItemGroup>
</When>
</Choose>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent Condition="'$(OS)' == 'Windows_NT' ">
build
</PostBuildEvent>
<PostBuildEvent Condition="'$(OS)' != 'Windows_NT'">
./build.sh
</PostBuildEvent>
</PropertyGroup>
<Import Project="..\packages\QuantConnect.pythonnet.1.0.5.25\build\QuantConnect.pythonnet.targets" Condition="Exists('..\packages\QuantConnect.pythonnet.1.0.5.25\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.25\build\QuantConnect.pythonnet.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\QuantConnect.pythonnet.1.0.5.25\build\QuantConnect.pythonnet.targets'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.2.9.3\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.2.9.3\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeQuality.Analyzers.2.9.3\build\Microsoft.CodeQuality.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeQuality.Analyzers.2.9.3\build\Microsoft.CodeQuality.Analyzers.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.NetCore.Analyzers.2.9.3\build\Microsoft.NetCore.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.NetCore.Analyzers.2.9.3\build\Microsoft.NetCore.Analyzers.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.NetFramework.Analyzers.2.9.3\build\Microsoft.NetFramework.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.NetFramework.Analyzers.2.9.3\build\Microsoft.NetFramework.Analyzers.props'))" />
<Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.2.9.3\build\Microsoft.CodeAnalysis.FxCopAnalyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.2.9.3\build\Microsoft.CodeAnalysis.FxCopAnalyzers.props'))" />
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>