I ran the same system on QC's servers and local.  See attached project and backtest for QC server results.  Data in local for the AAPL is from 1998 to October 2021.   Local results produce what appear to be only a few trades prior to 2015.  Exact same code.  Below is the log of of the local backtest and the ‘lean report.'  How are the 2 results different?

BACKTEST LOG:
2010-01-01 00:00:00 Launching analysis for 1434750789 with LEAN Engine v2.5.0.0
2020-12-31 16:00:00 Algorithm Id:(1434750789) completed in 26.54 seconds at 49k data points per second. Processing total of 1,306,057 data points.

LEAN REPORT:
20230101 17:55:35.590 TRACE:: QuantConnect.Report.Main(): Parsing source files...backtest-data-source-file.json,
20230101 17:55:36.158 TRACE:: QuantConnect.Report.Main(): Instantiating report...
20230101 17:55:36.199 TRACE:: QuantConnect.Report.Report(): Processing backtesting orders
20230101 17:55:36.225 TRACE:: Config.Get(): Configuration key not found. Key: plugin-directory - Using default value:
20230101 17:55:36.230 TRACE:: Config.Get(): Configuration key not found. Key: composer-dll-directory - Using default value:
20230101 17:55:36.233 TRACE:: Composer(): Loading Assemblies from /Lean/Report/bin/Debug/
20230101 17:55:36.347 TRACE:: Config.GetValue(): api-data-update-period - Using default value: 1
20230101 17:55:36.352 TRACE:: Config.Get(): Configuration key not found. Key: data-directory - Using default value: ../../../Data/
20230101 17:55:36.352 TRACE:: Config.Get(): Configuration key not found. Key: version-id - Using default value:
20230101 17:55:36.352 TRACE:: Config.Get(): Configuration key not found. Key: cache-location - Using default value: /Lean/Data
20230101 17:55:36.570 ERROR:: Extensions.TryParseSecurityType(): Attempted to parse unknown SecurityType: CryptoFuture
20230101 17:55:36.583 ERROR:: Extensions.TryParseSecurityType(): Attempted to parse unknown SecurityType: cryptofuture
20230101 17:55:36.594 TRACE:: Config.GetValue(): scheduled-event-leaky-bucket-capacity - Using default value: 120
20230101 17:55:36.594 TRACE:: Config.GetValue(): scheduled-event-leaky-bucket-time-interval-minutes - Using default value: 1440
20230101 17:55:36.594 TRACE:: Config.GetValue(): scheduled-event-leaky-bucket-refill-amount - Using default value: 18
20230101 17:55:36.601 TRACE:: Config.Get(): Configuration key not found. Key: results-destination-folder - Using default value: /Lean/Report/bin/Debug
20230101 17:55:36.603 TRACE:: SecurityPortfolioManager.SetAccountCurrency(): setting account currency to USD
20230101 17:55:36.670 TRACE:: BacktestingResultHandler(): Sample Period Set: 22.32
20230101 17:55:36.672 TRACE:: Time.TradeableDates(): Security Count: 1
20230101 17:55:36.678 TRACE:: Config.GetValue(): forward-console-messages - Using default value: True
20230101 17:55:36.701 TRACE:: BacktestingResultHandler.Exit(): starting...
20230101 17:55:36.720 TRACE:: Debug: Changing account currency from USD to USD...
20230101 17:55:36.724 TRACE:: BacktestingResultHandler.Exit(): Saving logs...
20230101 17:55:36.725 TRACE:: Debug: Your log was successfully created and can be retrieved from: /Lean/Report/bin/Debug/59075efc3ef74380a92c275bd087e179-log.txt
20230101 17:55:36.725 TRACE:: BacktestingResultHandler.Run(): Ending Thread...
20230101 17:55:36.725 TRACE:: StopSafely(): waiting for 'Result Thread' thread to stop...
20230101 17:55:36.785 TRACE::
STATISTICS:: OrderListHash d41d8cd98f00b204e9800998ecf8427e
20230101 17:55:36.785 TRACE:: BacktestingResultHandler.SendAnalysisResult(): Processed final packet
20230101 17:55:36.785 TRACE:: QuantConnect.Report.Report(): Processing live orders
20230101 17:55:36.789 TRACE:: Report.Report(): Writing backtest point-in-time portfolios to JSON file: /tmp/report-backtesting-portfolio.json
20230101 17:55:36.795 TRACE:: PythonInitializer.Initialize(): start...
20230101 17:55:37.700 TRACE:: PythonInitializer.Initialize(): ended
20230101 17:55:39.515 TRACE:: QuantConnect.Report.Main(): Starting content compile...
20230101 17:55:39.516 TRACE:: QuantConnect.Report.Compile(): Rendering strategy name...
20230101 17:55:39.516 TRACE:: QuantConnect.Report.Compile(): Rendering description...
20230101 17:55:39.516 TRACE:: QuantConnect.Report.Compile(): Rendering version...
20230101 17:55:39.516 TRACE:: QuantConnect.Report.Compile(): Rendering stylesheet...
20230101 17:55:39.516 TRACE:: QuantConnect.Report.Compile(): Rendering live marker key...
20230101 17:55:39.516 TRACE:: QuantConnect.Report.Compile(): Rendering runtime days kpi...
20230101 17:55:39.519 TRACE:: QuantConnect.Report.Compile(): Rendering cagr kpi...
20230101 17:55:39.522 TRACE:: QuantConnect.Report.Compile(): Rendering turnover kpi...
20230101 17:55:39.523 TRACE:: QuantConnect.Report.Compile(): Rendering max drawdown kpi...
20230101 17:55:39.524 TRACE:: QuantConnect.Report.Compile(): Rendering sharpe kpi...
20230101 17:55:39.524 TRACE:: QuantConnect.Report.Compile(): Rendering psr kpi...
20230101 17:55:39.525 TRACE:: QuantConnect.Report.Compile(): Rendering ir kpi...
20230101 17:55:39.525 TRACE:: QuantConnect.Report.Compile(): Rendering markets kpi...
20230101 17:55:39.529 TRACE:: QuantConnect.Report.Compile(): Rendering trades per day kpi...
20230101 17:55:39.530 TRACE:: QuantConnect.Report.Compile(): Rendering estimated algorithm capacity...
20230101 17:55:39.539 TRACE:: QuantConnect.Report.Compile(): Rendering monthly return plot...
20230101 17:55:40.336 TRACE:: QuantConnect.Report.Compile(): Rendering cumulative returns...
20230101 17:55:40.643 TRACE:: QuantConnect.Report.Compile(): Rendering annual returns...
20230101 17:55:40.889 TRACE:: QuantConnect.Report.Compile(): Rendering returns per trade...
20230101 17:55:41.172 TRACE:: QuantConnect.Report.Compile(): Rendering asset allocation over time pie chart...
20230101 17:55:41.349 TRACE:: QuantConnect.Report.Compile(): Rendering drawdown plot...
20230101 17:55:41.727 TRACE:: QuantConnect.Report.Compile(): Rendering daily returns plot...
/Lean/Report/bin/Debug/ReportCharts.py:292: FutureWarning: The default dtype for empty Series will be 'object' instead of 'float64' in a future version. Specify a dtype 
explicitly to silence this warning.
 live_series = pd.Series(live_returns[1], index=live_returns[0])
20230101 17:55:41.978 TRACE:: QuantConnect.Report.Compile(): Rendering rolling beta to equities plot...
20230101 17:55:47.773 TRACE:: QuantConnect.Report.Compile(): Rendering rolling sharpe ratio plot...
20230101 17:55:48.671 TRACE:: QuantConnect.Report.Compile(): Rendering leverage plot...
/Lean/Report/bin/Debug/ReportCharts.py:942: UserWarning: FixedFormatter should only be used together with FixedLocator
 ax.set_xticklabels(ax.get_xticklabels(), rotation=0, ha='center')
20230101 17:55:48.902 TRACE:: QuantConnect.Report.Compile(): Rendering exposure plot...
20230101 17:55:49.229 TRACE:: QuantConnect.Report.Compile(): Rendering crisis page...
20230101 17:55:52.360 TRACE:: QuantConnect.Report.Compile(): Rendering crisis plots...
20230101 17:55:55.368 TRACE:: QuantConnect.Report.Main(): Writing content to file /tmp/report.html
20230101 17:55:55.370 TRACE:: QuantConnect.Report.Main(): Completed.