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; } } }