Overall Statistics
Total Trades
2
Average Win
0%
Average Loss
0%
Compounding Annual Return
-34.846%
Drawdown
29.200%
Expectancy
0
Net Profit
-19.297%
Sharpe Ratio
-1.12
Probabilistic Sharpe Ratio
5.837%
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0
Beta
0.995
Annual Standard Deviation
0.336
Annual Variance
0.113
Information Ratio
0.22
Tracking Error
0.007
Treynor Ratio
-0.378
Total Fees
$2.68
namespace QuantConnect.Algorithm.CSharp
{
    public class TachyonResistanceChamber : QCAlgorithm
    {

        public override void Initialize()
        {
            SetStartDate(2019, 9, 16);  //Set Start Date
            SetCash(100000);             //Set Strategy Cash
            
            // AddEquity("SPY", Resolution.Minute);

			SetExecution(new ImmediateExecutionModel());

			SetPortfolioConstruction(new EqualWeightingPortfolioConstructionModel());

			UniverseSettings.Resolution = Resolution.Minute;
			var symbols = new[] { QuantConnect.Symbol.Create("SPY", SecurityType.Equity, Market.USA) };
			SetUniverseSelection( new ManualUniverseSelectionModel(symbols) );
			
			SetAlpha(new MyAlpha());
        }

    }
    
    
    public class MyAlpha : AlphaModel
    {
    	
    	InsightCollection symbolInsights;
    	List<Symbol> symbols;
    	
    	
    	public MyAlpha(){
    		symbolInsights = new InsightCollection();
    		symbols = new List<Symbol>();
    	}
    	
    	
    	public override IEnumerable<Insight> Update(QCAlgorithm algorithm, Slice data){
    		var insights = new List<Insight>();
    		
    		var activeInsights = symbolInsights.GetActiveInsights(algorithm.UtcTime);
    		
    		foreach(var symbol in symbols){
    			
    			if(!activeInsights.Select(x => x.Symbol).Contains(symbol)){
    				var insight = Insight.Price(symbol, TimeSpan.FromDays(2), InsightDirection.Up, null, 100, null, null);
    				insights.Add(insight);
    				symbolInsights.Add(insight);
    			}
    			
    			
    		}
    		
    		return insights;
    	}
    	
    	public override void OnSecuritiesChanged(QCAlgorithm algorithm, SecurityChanges changes)
            {
                foreach (var symbol in changes.AddedSecurities.Select(x => x.Symbol))
                {
                    if (symbols.Contains(symbol)) continue;
                    	symbols.Add(symbol);
                }
            }
    	
    	
    	
    }
}