18 using System.ComponentModel.Composition;
39 private bool _dataMonitorWired;
128 bool researchMode =
false,
134 throw new ArgumentNullException(nameof(results));
138 throw new ArgumentNullException(nameof(setup));
140 if (dataFeed ==
null)
142 throw new ArgumentNullException(nameof(dataFeed));
144 if (transactions ==
null)
146 throw new ArgumentNullException(nameof(transactions));
148 if (realTime ==
null)
150 throw new ArgumentNullException(nameof(realTime));
152 if (mapFileProvider ==
null)
154 throw new ArgumentNullException(nameof(mapFileProvider));
156 if (factorFileProvider ==
null)
158 throw new ArgumentNullException(nameof(factorFileProvider));
160 if (dataProvider ==
null)
162 throw new ArgumentNullException(nameof(dataProvider));
164 if (objectStore ==
null)
166 throw new ArgumentNullException(nameof(objectStore));
168 if (dataPermissionsManager ==
null)
170 throw new ArgumentNullException(nameof(dataPermissionsManager));
186 if (!liveMode && !researchMode)
188 _dataMonitorWired =
true;
202 var setupHandlerTypeName =
Config.
Get(
"setup-handler",
"ConsoleSetupHandler");
203 var transactionHandlerTypeName =
Config.
Get(
"transaction-handler",
"BacktestingTransactionHandler");
204 var realTimeHandlerTypeName =
Config.
Get(
"real-time-handler",
"BacktestingRealTimeHandler");
205 var dataFeedHandlerTypeName =
Config.
Get(
"data-feed-handler",
"FileSystemDataFeed");
206 var resultHandlerTypeName =
Config.
Get(
"result-handler",
"BacktestingResultHandler");
207 var mapFileProviderTypeName =
Config.
Get(
"map-file-provider",
"LocalDiskMapFileProvider");
208 var factorFileProviderTypeName =
Config.
Get(
"factor-file-provider",
"LocalDiskFactorFileProvider");
209 var dataProviderTypeName =
Config.
Get(
"data-provider",
"DefaultDataProvider");
210 var objectStoreTypeName =
Config.
Get(
"object-store",
"LocalObjectStore");
211 var dataPermissionManager =
Config.
Get(
"data-permission-manager",
"DataPermissionManager");
212 var dataMonitor =
Config.
Get(
"data-monitor",
"QuantConnect.Data.DataMonitor");
215 composer.GetExportedValueByTypeName<
IResultHandler>(resultHandlerTypeName),
216 composer.GetExportedValueByTypeName<
ISetupHandler>(setupHandlerTypeName),
217 composer.GetExportedValueByTypeName<
IDataFeed>(dataFeedHandlerTypeName),
219 composer.GetExportedValueByTypeName<
IRealTimeHandler>(realTimeHandlerTypeName),
220 composer.GetExportedValueByTypeName<
IMapFileProvider>(mapFileProviderTypeName),
222 composer.GetExportedValueByTypeName<
IDataProvider>(dataProviderTypeName),
223 composer.GetExportedValueByTypeName<
IObjectStore>(objectStoreTypeName),
227 composer.GetExportedValueByTypeName<
IDataMonitor>(dataMonitor)
230 result.FactorFileProvider.Initialize(result.MapFileProvider, result.DataProvider);
231 result.MapFileProvider.Initialize(result.DataProvider);
236 throw new ArgumentException($
"The {typeof(ApiDataProvider)} can only be used with {typeof(LocalZipFactorFileProvider)}" +
237 $
" and {typeof(LocalZipMapFileProvider)}, please update 'config.json'");
251 Log.
Trace(
"LeanEngineAlgorithmHandlers.Dispose(): start...");
254 Setup.DisposeSafely();
256 if (_dataMonitorWired)
262 Log.
Trace(
"LeanEngineAlgorithmHandlers.Dispose(): Disposed of algorithm handlers.");