I'm trying to run a local backtest.
I have succesfully cloned, built and run LEAN "Launcher" on linux.

1. First problem is with universe selection. When I stop with a breakpoint in MyCoarseFilterFunction, IEnumerable<CoarseFundamental> coarseFundamentals is empty. Same code pasted on quantconnect.com runs great and produces result in debug so the code is correct (see below).

2. Skylight does not work on my linux mint xfce. When I run from a terminal, all I get is:
"
2020-10-21T19:33:52.786Z TRACE:: Main(): Starting Skylight v0.1.11 (production)
(electron) The default value of app.allowRendererProcessReuse is deprecated, it is currently "false".  It will change to be "true" in Electron 9.  For more information please check https://github.com/electron/electron/issues/18397
Checking for update
"
after which prompt returns. "ps aux | grep sky" and "ps aux | grep quant" does not return anything.

https://github.com/QuantConnect/Lean#installation-instructionshttps://github.com/QuantConnect/Lean#installation-instructions public class MyAlgorithm : QCAlgorithm { public override void Initialize() { SetStartDate(2007, 1, 1); SetEndDate(2010, 1, 1); SetCash(10 * 1000); UniverseSettings.Resolution = Resolution.Daily; AddUniverse(MyCoarseFilterFunction, FineSelectionFunction); AddAlpha(new MyAlphaModel(this)); SetPortfolioConstruction(new BlackLittermanOptimizationPortfolioConstructionModel()); SetExecution(new StandardDeviationExecutionModel(60, 2, Resolution.Daily)); SetRiskManagement(new TrailingStopRiskManagementModel(0.03m)); } private IEnumerable<Symbol> MyCoarseFilterFunction(IEnumerable<CoarseFundamental> coarseFundamentals) { var x = coarseFundamentals .Select(symbol => { Debug(symbol.Symbol); Log(symbol.Symbol); return symbol; }) .Where(coarseFundamental => coarseFundamental.HasFundamentalData) .Select(coarseFundamental => coarseFundamental.Symbol); Debug("MyCoarseFilterFunction2"); foreach (var symbol in coarseFundamentals) { Debug(">" + symbol.Symbol); } return x; } private IEnumerable<Symbol> FineSelectionFunction(IEnumerable<FineFundamental> fineFundamentals) => fineFundamentals .Select(fineFundamental => fineFundamental.Symbol) .Select(symbol => { Debug(symbol); return symbol; }); /// OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here. /// Slice object keyed by symbol containing the stock data public override void OnData(Slice data) { if (Portfolio.Invested) { SetHoldings("SPY", 0); } else { SetHoldings("SPY", 1); Debug("Purchased Stock"); Log("Purchased Stock"); } } }

 

Author