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 0 Tracking Error 0 Treynor Ratio 0 Total Fees $0.00 |
namespace QuantConnect.Algorithm.CSharp { public class ModulatedResistanceContainmentField : QCAlgorithm { // pointer to hold our options symbol Symbol optionSymbol; // pointer to hold contract we want to call history for OptionContract atmContract; public override void Initialize() { SetStartDate(2020, 2, 20); //Set Start Date SetCash(100000); //Set Strategy Cash // Add our equity symbol AddEquity("SPY", Resolution.Minute); // Add options data for our equity symbol var option = AddOption("SPY"); // Filter options to ones expiring within 2 weeks option.SetFilter(0,14); // Store symbol for SPY options optionSymbol = option.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) { // Get option chain from slice data if that options symbol exists OptionChain chain; if (data.OptionChains.TryGetValue(optionSymbol, out chain)) { // we find at the money (ATM) put contract with farthest expiration and store in pointer atmContract = chain .OrderByDescending(x => x.Expiry) .ThenBy(x => Math.Abs(chain.Underlying.Price - x.Strike)) .ThenByDescending(x => x.Right) .FirstOrDefault(); } // if we have picked a contract, let's get the last 10 minutes of historical data if(atmContract != null){ var historicalData = History(atmContract.Symbol, 10, Resolution.Minute); foreach(var bar in historicalData){ Debug($"{bar.Time} , {bar.Close}"); } } } } }