Overall Statistics
Total Trades
0
Average Win
0%
Average Loss
0%
Compounding Annual Return
0%
Drawdown
0%
Expectancy
0
Net Profit
0%
Sharpe Ratio
0
Probabilistic Sharpe Ratio
0%
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0
Beta
0
Annual Standard Deviation
0
Annual Variance
0
Information Ratio
-9.647
Tracking Error
0.101
Treynor Ratio
0
Total Fees
$0.00
Estimated Strategy Capacity
$0
using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data.Fundamental;
using QuantConnect.Data.UniverseSelection;
using QuantConnect.Securities;
using static System.DateTime;
using System;
using System.Collections.Generic;
using System.Linq;
using QuantConnect.Data;
using QuantConnect.Data.Custom;
using QuantConnect.Data.Market;
using QuantConnect.Indicators;
using QuantConnect.Securities.Equity;
using QuantConnect.Interfaces;





namespace QuantConnect
{
    /// <summary>
    /// Basic template algorithm simply initializes the date range and cash
    /// </summary>
    public class DailyIdentityAlgorithm : QCAlgorithm
    {

        
        ////////////////////////////////////// SPY VARIABLES //////////////////////////////////////////////////
        private Symbol _spy = QuantConnect.Symbol.Create("SPY", SecurityType.Equity, Market.USA);
        private SimpleMovingAverage _sma_spy;
        private Identity _identity_spy;
        
        private decimal _spy_max;


        /// <summary>
        /// Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.
        /// </summary>
        public override void Initialize()
        {
            SetStartDate(2021, 03 ,24);   //Set Start Date
            SetEndDate(2021, 08, 27);       //Set End Date
            SetCash(Convert.ToDouble(GetParameter("cash")));   //Set Strategy Cash
            double cash = Convert.ToDouble(GetParameter("cash"));
            double perActionFunds= Convert.ToDouble(10.0);//GetParameter("per action fund"));
            
   //////////////////////// Manual Universe Selection ///////////////////////////////////////////////////////////////       
            
            ////////////////////////////////////// SPY VARIABLES INITIALIZAZTION //////////////////////////////////////////////////
            AddEquity("SPY", Resolution.Minute);
            _sma_spy = SMA("SPY", 60, Resolution.Daily, x => ((TradeBar)x).Volume);
            _identity_spy = Identity("SPY", Resolution.Daily, Field.High);
            _spy_max = 0.0M;

            
            
            

 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////    
        
            
            // schedule an event to fire every trading day for a security
            // the time rule here tells it to fire 10 minutes before SPY's market close
            bool liquidate = Convert.ToBoolean(GetParameter("liquidate"));
            if (liquidate = true){
            Schedule.On(DateRules.EveryDay("SPY"), TimeRules.BeforeMarketClose("SPY", 10), () => //Don't have to change it for  every instrument in the portfolio
             {
            	Liquidate();//Liquidate entire portfolio
             });
            
            }
            SetWarmUp(TimeSpan.FromDays(1));
            
        }
        
        

        
        

        /// <summary>
        /// OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.
        /// </summary>
        /// <param name="data">Slice object keyed by symbol containing the stock data</param>
        public override void OnData(Slice data)
        {
         TradeBars bars = data.Bars;
         
         if (data.ContainsKey("SPY") && bars["SPY"].Price > _identity_spy.Current.Value && _identity_spy.IsReady){
         	_spy_max = Math.Max(_spy_max, data["SPY"].High);
         	Plot("SPY", "Price", bars["SPY"].Price);
         	Plot("SPY", "HOD", _spy_max);
         }
        
        
        }//closes OnData
        
        
        public override void OnEndOfDay()
        {
        	_spy_max = 0.0M;
        }
	    
    }
        	
}